SlideShare a Scribd company logo
1 of 31
Download to read offline
01. Введение
Проектирование высоконагруженных систем
Вадим Цесько
В этой лекции 2
История Web
Цель курса
Будущие лекции
Источники
Курсовой проект
История Web 3
The future is already here —
it’s just not very evenly
distributed.
William Gibson
Эры 4
«The Practice of Cloud System Administration ...» by Limoncelli
et al. (Appendix B):
The pre-web era (1985-1994)
The first web era (1995-2000)
The dot-bomb era (2000-2003)
The second web era (2003-2010)
The cloud computing era (2010-present)
The Pre-Web Era (1985–1994) 5
Internal customers of computer systems
Downtime used to be normal
Text-based Internet
Mainframes with spare capacity
«Fault-tolerant» computers if needed
Predictable growth
The Bubble (1995–2000) 6
Internet-only 24x7 companies
xDSL, VoIP, multi-user games, music, videos
Large AND reliable systems (Sun E4500), load balancers
Machine per website (licensing)
Unpredictable growth — bigger machines
Against economies of scale: more customers — higher
$/customer cost
Pre-announce downtimes or N+1/N+2
The Dot-Bomb Era (2000–2003) 7
Same high availability
Cheap surplus capacity: fiber, colocation — a kickstart
Commoditization of hardware, lower $ of home PCs, x86
LAMP vs Java/.NET
Recovery-Oriented Computing
Distributed computing techniques
Custom-designed stripped machines
The 2nd Web Era (2003–2010) 8
Better economics — second chance (Search, Ads, etc.)
HDFS, Hadoop, HBase, etc.
Standardization and automation
Datacenter as a computer
More $ effectiveness — PUE from 2.5 to 1.08
Ad-based freemium services
The Cloud Era (2010–present) 9
Faster communication, SSD, virtualization, SDN, etc.
Powerful life-critical mobile computing
Demand for low latency and even higher reliability
Larger infrastructure is cheaper
Profit from spare capacity subsidizes infra
Win-win: affordable, agile, elastic, etc.
Высоконагруженные системы 10
Устоявшегося определения нет
Обычно реактивные — отвечают на внешние запросы
RPS/QPS > 1 K
p99 < 300 мс
p999 < 1 с
Утилизация ресурсов 50-70%
Определения 11
Сервер — ПО
Сервис — система или продукт из нескольких серверов
Машина — ВМ или железка
Доступность — доля времени за год/неделю/день, когда
система отвечала на запросы (99.9%, 99.9%, etc.)
Масштабируемость — способность системы расширяться с
ростом нагрузки
Цель курса 12
Цель:
Подготовить разработчиков высоконагруженных систем
Задачи:
Подходы к построению
Стек технологий
Инструменты
Промышленные практики
02. Типовые архитектуры 13
Производительность и оптимизация
Масштабируемость
Распределённые системы и отказоустойчивость
Кеширование и очереди
Микросервисы
Толстые и тонкие клиенты
Выбор технологий
03. Эксплуатация 14
Роли и процессы
Деплой
Управление конфигурацией серверов
Инструменты администрирования
Выбор железа
Управление ростом и отказоустойчивостью
Инциденты
04. Сетевой стек 15
TCP/IP
Web
Мобильные клиенты
Тонкая настройка
Оптимизации
Версионирование
Новые протоколы
05. Балансировка 16
DNS
L4 и L7
Атаки
GSLB и CDN
Маршрутизация
HTTPS/TLS
06. Процессоры и память 17
Многоядерность и NUMA
Иерархия памяти
Энергоэффективность
Доступ к данным
HDD, SSD and beyond
RAID
Эксплуатация
07. JVM 18
(ОС)
Подсистемы JVM
Куча и GC
Оптимизации
Отладка
Профилирование
08. Мониторинг 19
Люди
Мониторинг железа
Мониторинг сервисов
Инциденты из практики
Жизненный цикл инцидента
Учения
Эксперименты
09. Облака 20
Экономика роста
Задачи и проблемы
IaaS, PaaS, SaaS
Технологии
Эксплуатация
Опыт ОК
10. Примеры систем 21
One Blob Storage
One Cold Storage
Кеширование
Блоги 22
https://shipilev.net
https://mechanical-sympathy.blogspot.ru
http://stuff-gil-says.blogspot.ru
http://psy-lob-saw.blogspot.ru
http://www.brendangregg.com
https://blog.acolyer.org
https://aphyr.com
Конференции 23
https://jug.ru
https://jokerconf.com
https://jpoint.ru
http://www.highload.ru
https://www.devoxx.co.uk
https://qconlondon.com
https://thestrangeloop.com
https://en.wikipedia.org/wiki/List_of_computer_
Статьи 24
https://research.google.com/pubs/papers.html
https://research.fb.com/publications/
https://github.com/mr-mig/every-programmer-should-know
https://github.com/papers-we-love/papers-we-love
http://amturing.acm.org/lectures.cfm
http://www.sigplan.org/Awards/
Курсовой проект 25
Key-Value хранилище
CRUD API
Персистентное
Распределённое
Отказоустойчивое
Быстрое
Базовые технологии 26
Java 8
com.sun.net.httpserver.*
Файл(ы)/Embedded DBMS/one.nio.mem.*
HTTP REST API1
Параметры:
-Xmx1g
Сетевой порт
Путь на диске 32 ГБ
(Топология)
Организация 27
1. https://github.com/polis-mail-ru
2. Форкаем проект 2017-highload-kv
3. Реализуем хранилище, в цикле:
Отлаживаем
Расширяем и прогоняем модульные тесты
Подтягиваем тесты из upstream
4. Посылаем pull request в бранч со своим именем
5. Исправляем замечания
6. Получаем баллы
Обязательные этапы 28
1. Standalone: HTTP REST API + storage
GET/PUT/DELETE /v0/entity?id=<id>
Функциональные тесты
2. Multi Node: Coordinator, Sharding, Replication
Настраиваемая консистентность
Тесты на отказоустойчивость/консистентность
3. High Load: stress tests, optimization
Индивидуальная работа
Фиксы производительности
Баллы 29
1. Максимум — 30 баллов х 3 этапа + 10 бонусных
Хорошая реализация — 20 баллов/этап
2. Бонусные фичи
100 M ключей
Consistent hashing
Streaming (значения > 1 ГБ)
Разрешение конфликтов
Expire
Server-side processing
Что-то своё?
Вопросы? 30
https://polis.mail.ru/blog/view/110/
https://incubos.org/contacts/
Начинаем писать своё хранилище прямо сегодня вечером!
Спасибо за внимание!
Вадим Цесько

More Related Content

Similar to Технополис. HighLoad. 01. Введение

Мониторинг ЦОД средствами Dell Foglight
Мониторинг ЦОД средствами Dell FoglightМониторинг ЦОД средствами Dell Foglight
Мониторинг ЦОД средствами Dell FoglightMarina Gryshko
 
Cloud Computing
Cloud ComputingCloud Computing
Cloud Computingmmm07
 
E&С_2013_Data_center_ukraine_www.encint.com_demo_version
E&С_2013_Data_center_ukraine_www.encint.com_demo_versionE&С_2013_Data_center_ukraine_www.encint.com_demo_version
E&С_2013_Data_center_ukraine_www.encint.com_demo_versionExpert and Consulting (EnC)
 
облако для корпоративных ландшафтов практические аспекты выбора
облако для корпоративных ландшафтов   практические аспекты выбораоблако для корпоративных ландшафтов   практические аспекты выбора
облако для корпоративных ландшафтов практические аспекты выбораPlenipotentiary_Iryna
 
архитектурные особенности высоконагруженных систем в телекоме
архитектурные особенности высоконагруженных систем в телекомеархитектурные особенности высоконагруженных систем в телекоме
архитектурные особенности высоконагруженных систем в телекомеOntico
 
Cloud overview 60_min
Cloud overview 60_minCloud overview 60_min
Cloud overview 60_minPavel Gelvan
 
Презентация Защита данных от Dell Software: краткий обзор и планы развития ...
Презентация Защита данных от Dell Software:  краткий обзор и планы  развития ...Презентация Защита данных от Dell Software:  краткий обзор и планы  развития ...
Презентация Защита данных от Dell Software: краткий обзор и планы развития ...Marina Gryshko
 
Защита данных от Dell Software: краткий обзор и планы развития продуктов
Защита данных от Dell Software: краткий обзор и планы  развития продуктов   Защита данных от Dell Software: краткий обзор и планы  развития продуктов
Защита данных от Dell Software: краткий обзор и планы развития продуктов BAKOTECH
 
Безопасность гибридных облаков
Безопасность гибридных облаковБезопасность гибридных облаков
Безопасность гибридных облаковAndrey Beshkov
 
Positive Hack Days. Козлов. Экономия при переходе в облака или безопасность!?
Positive Hack Days. Козлов. Экономия при переходе в облака или безопасность!?Positive Hack Days. Козлов. Экономия при переходе в облака или безопасность!?
Positive Hack Days. Козлов. Экономия при переходе в облака или безопасность!?Positive Hack Days
 
Cti контактный центр_по_запросу_10.06.2014
Cti контактный центр_по_запросу_10.06.2014Cti контактный центр_по_запросу_10.06.2014
Cti контактный центр_по_запросу_10.06.2014Tim Parson
 
Гибридные Центры Обработки Данных
Гибридные Центры Обработки ДанныхГибридные Центры Обработки Данных
Гибридные Центры Обработки ДанныхTechExpert
 
Облака в Украине и ЕС как инструменты защиты ИТ: практические аспекты
Облака в Украине и ЕС как инструменты защиты ИТ: практические аспектыОблака в Украине и ЕС как инструменты защиты ИТ: практические аспекты
Облака в Украине и ЕС как инструменты защиты ИТ: практические аспектыDe Novo
 
Как создать гибридное облако. решения De novo для гибридных облачных архитектур
Как создать гибридное облако. решения De novo для гибридных облачных архитектурКак создать гибридное облако. решения De novo для гибридных облачных архитектур
Как создать гибридное облако. решения De novo для гибридных облачных архитектурPlenipotentiary_Iryna
 
De Novo _ Как создать гибридное облако
De Novo _ Как создать гибридное облакоDe Novo _ Как создать гибридное облако
De Novo _ Как создать гибридное облакоPlenipotentiary_Iryna
 
Rus ibm cloud computing
Rus ibm cloud computingRus ibm cloud computing
Rus ibm cloud computingAlexey Ivlev
 

Similar to Технополис. HighLoad. 01. Введение (20)

Мониторинг ЦОД средствами Dell Foglight
Мониторинг ЦОД средствами Dell FoglightМониторинг ЦОД средствами Dell Foglight
Мониторинг ЦОД средствами Dell Foglight
 
Cloud Computing
Cloud ComputingCloud Computing
Cloud Computing
 
Cloud Computing
Cloud ComputingCloud Computing
Cloud Computing
 
Cloud Computing
Cloud ComputingCloud Computing
Cloud Computing
 
Backup commvault data_line
Backup commvault data_lineBackup commvault data_line
Backup commvault data_line
 
E&С_2013_Data_center_ukraine_www.encint.com_demo_version
E&С_2013_Data_center_ukraine_www.encint.com_demo_versionE&С_2013_Data_center_ukraine_www.encint.com_demo_version
E&С_2013_Data_center_ukraine_www.encint.com_demo_version
 
облако для корпоративных ландшафтов практические аспекты выбора
облако для корпоративных ландшафтов   практические аспекты выбораоблако для корпоративных ландшафтов   практические аспекты выбора
облако для корпоративных ландшафтов практические аспекты выбора
 
архитектурные особенности высоконагруженных систем в телекоме
архитектурные особенности высоконагруженных систем в телекомеархитектурные особенности высоконагруженных систем в телекоме
архитектурные особенности высоконагруженных систем в телекоме
 
Cloud overview 60_min
Cloud overview 60_minCloud overview 60_min
Cloud overview 60_min
 
Презентация Защита данных от Dell Software: краткий обзор и планы развития ...
Презентация Защита данных от Dell Software:  краткий обзор и планы  развития ...Презентация Защита данных от Dell Software:  краткий обзор и планы  развития ...
Презентация Защита данных от Dell Software: краткий обзор и планы развития ...
 
Защита данных от Dell Software: краткий обзор и планы развития продуктов
Защита данных от Dell Software: краткий обзор и планы  развития продуктов   Защита данных от Dell Software: краткий обзор и планы  развития продуктов
Защита данных от Dell Software: краткий обзор и планы развития продуктов
 
Безопасность гибридных облаков
Безопасность гибридных облаковБезопасность гибридных облаков
Безопасность гибридных облаков
 
Positive Hack Days. Козлов. Экономия при переходе в облака или безопасность!?
Positive Hack Days. Козлов. Экономия при переходе в облака или безопасность!?Positive Hack Days. Козлов. Экономия при переходе в облака или безопасность!?
Positive Hack Days. Козлов. Экономия при переходе в облака или безопасность!?
 
Cti контактный центр_по_запросу_10.06.2014
Cti контактный центр_по_запросу_10.06.2014Cti контактный центр_по_запросу_10.06.2014
Cti контактный центр_по_запросу_10.06.2014
 
Гибридные Центры Обработки Данных
Гибридные Центры Обработки ДанныхГибридные Центры Обработки Данных
Гибридные Центры Обработки Данных
 
Облака в Украине и ЕС как инструменты защиты ИТ: практические аспекты
Облака в Украине и ЕС как инструменты защиты ИТ: практические аспектыОблака в Украине и ЕС как инструменты защиты ИТ: практические аспекты
Облака в Украине и ЕС как инструменты защиты ИТ: практические аспекты
 
Как создать гибридное облако. решения De novo для гибридных облачных архитектур
Как создать гибридное облако. решения De novo для гибридных облачных архитектурКак создать гибридное облако. решения De novo для гибридных облачных архитектур
Как создать гибридное облако. решения De novo для гибридных облачных архитектур
 
De Novo _ Как создать гибридное облако
De Novo _ Как создать гибридное облакоDe Novo _ Как создать гибридное облако
De Novo _ Как создать гибридное облако
 
Rus ibm cloud computing
Rus ibm cloud computingRus ibm cloud computing
Rus ibm cloud computing
 
Oblachnye vychisleniya -_ponyatiya_i_tehnologii
Oblachnye vychisleniya -_ponyatiya_i_tehnologiiOblachnye vychisleniya -_ponyatiya_i_tehnologii
Oblachnye vychisleniya -_ponyatiya_i_tehnologii
 

Технополис. HighLoad. 01. Введение