Hackconf 2016 - Да пишем код за хиляди сървъри

Preview:

Citation preview

Да пишем код за хиляди сървъри

@stoitsev

Backend или Сървърна част

MVC Структура

ORM

Библиотека за тестове

Миграции за СУБД

Библиотека за шаблони

Библиотека за кеширане

Превод и локализация

Scaffolding

Logging

Сигурност

Валидация на форми

Мащабируемост или scalability

Вертикално

Хоризонтално скалиране

Хоризонтално скалиране

Разпределена система“Разпределена система е група от самостоятелни сървъри, които работят заедно и отвън изглеждат

като една цялостна система”

120 сървъра=

1 сървър на месец

1200 сървъра=

1 сървър на 15 дни

12000 сървъра=

1 сървър на 7.5 часа

Няма stackoverflow

Децентрализирани алгоритми

1. Никоя машина няма информация за състоянитето на цялата система.

2. Всяка машина решава спряло локалната си информация.

3. Повреда е една машина не разваля целия алгоритъм.

4. Не се предполага че съществъва глобален часовник.

Gossip based membership

1. Няма централизирано знание

2. Всеки сам има списък 3. Ако една машина се

повреди, алгоритъма си работи

4. Няма глобален часовник

КонсистентностConsistency

ДостъпностAvailability

Репликация

Репликация

Разделяне на мрежатаPartition tolerance

100 лв.

100 лв. 100 лв.

CAP Теорема

ДоказателствоSeth Gilbert and Nancy Lynch. 2002. Brewer's conjecture and the feasibility of consistent, available,

partition-tolerant web services.

Консистентност Или

Достъпност

Кворум

PH PDC

TSTS

“A distributed system is one in which the failure of a computer you didn't even know existed can render your own computer unusable.”

Ресурси

https://en.wikipedia.org/wiki/Fallacies_of_distributed_computing

https://www.goodreads.com/book/show/405614.Distributed_Systems

https://www.coursera.org/specializations/cloudcomputing

http://the-paper-trail.org/blog/consensus-protocols-paxos/

http://dl.acm.org/citation.cfm?id=564601

https://www.cs.cornell.edu/projects/ladis2009/papers/lakshman-ladis2009.pdf

http://static.googleusercontent.com/media/research.google.com/en//archive/gfs-sosp2003.pdf

Въпроси?

Recommended