HighLoad для начинающихМИНКИН АНДРЕЙ NAMBA TAXI
Кто я? Team lead DevOps
NambaTaxiNamba FoodBeSmartNamba
План доклада Что такое HighLoad Архитектура Инфраструктура Оптимизация Профайлинг Выводы
План доклада Что такое HighLoad Архитектура Инфраструктура Оптимизация Профайлинг Выводы
Что такое HighLoad?
Что такое HighLoad?
Нагрузка, с которой не справляется железо
Стандартный цикл web приложения
Запросы от сети читаются Парсятся Делаются запросы в БД Формируются ответы Отправляются клиентам
Где может наступить HighLoad?
CPU RAM NET Disk IO Database
Как быть?
Менять архитектуру Решать со стороны инфраструктуры Оптимизировать
План доклада Что такое HighLoad Архитектура Инфраструктура Оптимизация Профайлинг Выводы
АрхитектураСервисно-ориентированная архитектураВертикальное масштабированиеГоризонтальное масштабированиеОтложенные вычисления
Асинхронная обработкаКонвейерная обработкаИспользование толстого клиентаКешированиеФункциональное разделение
ШардингВиртуальные шардыЦентральный диспетчерРепликацияПартиционирование
КластеризацияДенормализацияВведение избыточностиПараллельное выполнение
План доклада Что такое HighLoad Архитектура Инфраструктура Оптимизация Профайлинг Выводы
Инфраструктура IaaS (IBM Bluemix, AWS) Строить свою инфраструктуру
План доклада Что такое HighLoad Архитектура Инфраструктура Оптимизации Профайлинг Выводы
Оптимизации Рефакторинг кода Рефакторинг архитектуры
НЕ ОПТИМИЗИРУЙТЕ ПРЕЖДЕВРЕМЕННО!
Инструменты OpBeat NewRelic
План доклада Что такое HighLoad Архитектура Инфраструктура Оптимизация Профайлинг Выводы
Профайлинг
Профайлеры Xhprof Blackfire Pinba Pynba
CprofileRuby-profstackprof
Глаза Мониторинг Метрики производительности приложений
Выводы Что такое HighLoad Архитектура Инфраструктура Оптимизация Профайлинг Выводы
Выводы Преждевременно не оптимизируйте Хорошая архитектура сразу – утопия Запаситесь глазами на продакшне Хорошая архитектура растет вместе с вами Хорошую архитектуру легко менять
Спасибо
Skype: gen1us2k