Upload
nikolay-stoitsev
View
231
Download
8
Embed Size (px)
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
Въпроси?