iForum-2017  Мини-мастер класс по высоконагруженным системам: Терминология. Основные принципы. Архитектура. iForum, 17 апреля 2012 - Украинский форум интернет-деятелей
Украинский форум интернет-деятелей
Киев, 17 апреля 2012, МВЦ
Мини-мастер класс по высоконагруженным системам: Терминология. Основные принципы. Архитектура.
 
Эксперементальный доклад. Обладая внушительным опытом консалтинга крупных проектов, сталкивающихся с наплывом посетителей и не справляющихся с нагрузкой, от ВКонтакте и Photosight до Эльдорадо и 1С-Битрикса, я обратил внимание на то, что каждый раз команда экспертов рассказывает одно и тоже. В любом проекте мы говорим о фронтенде, очередях, партиционировании, каждый раз отговариваем заказчика от вертикального масштабирования и каждый раз раскрываем "тайну" виртуальных шардов ;)

За этот час я попробую дать вам набор ИНСТРУМЕНТОВ для построения высоконагруженных систем. Я не расскажу о том, как правильно, но расскажу о том, как ВОЗМОЖНО. Раскрою пару десятков инструментов, которые применяются архитекторами крупных проектов. Какие из них использовать в своей работе - уже решать вам.

Итак, о чем будем говорить: 1. Высоконагруженные веб-сервисы, общая архитектура системы: монолитное приложение или cервис-ориентированная архитектура.

2. Масштабирование архитектурного решения: в пространстве (распределение элементов программной системы по разным машинам, шардинг, принципы шардинга) или во времени (асинхронная обработка, пост-обработка). Вертикальное и горизонтальное масштабирование.

3. Масштабирование фронт-енд: балансировка нагрузки, проблема одновременного переподключения клиентов.

4. Архитектура приложения: трехзвенная модель архитектуры, разделение на слои: представление, бизнес-логика, данные.

5. Кеширование: проблема инвалидации кеша: малое время жизни кеша vs. сложная система инвалидации.

6. Масштабирование баз данных: различные типы БД (RDBMS, NoSQL), тюнинг запросов, шардинг, репликация, партиционирование, особенности использования БД в высоконагруженных проектах: отход от классической теории, денормализация данных.

7. Надежность (точнее - ненадежность): надежность железа; надежность, обеспечиваемая программными средствами; избыточность и дублирование.

8. Мониторинг и предупреждение проблем.

9. Эксплуатация высоконагруженных систем: dev-ops, общие вопросы администрирования, deployment.
Олег Бунин
Ontico
Консультант, организатор и разработчик компании "Онтико" (Ontico.ru)

Специалист по высоконагруженным системам в Интернете, консультировал ВКонтакте.ру.


Информационные спонсоры

 

Интернет-портал форума
Блог форума
Social Media партнёр
Радио-партнёр
Контент-партнёр
HR-партнёр
Новостной
интернет-партнёр
Информационное агентство форума
IT-портал форума
Цветочный партнёр
Экологический партнёр