Преждевременная оптимизация архитектуры / Евгений...

67
Преждевременная оптимизация архитектуры Евгений Потапов Антон Баранов

Upload: ontico

Post on 06-Jan-2017

200 views

Category:

Engineering


2 download

TRANSCRIPT

Page 1: Преждевременная оптимизация архитектуры / Евгений Потапов, Антон Баранов (ITSumma)

Преждевременная оптимизация архитектуры

Евгений ПотаповАнтон Баранов

Page 2: Преждевременная оптимизация архитектуры / Евгений Потапов, Антон Баранов (ITSumma)

Евгений ПотаповITSumma, генеральный директор

15 лет опыта системного администрирования

Компания основана в 2008 году

О нас

Page 3: Преждевременная оптимизация архитектуры / Евгений Потапов, Антон Баранов (ITSumma)

О насАнтон БарановITSumma, начальник отдела по работе с клиентами

В прошлом - системный администратор Linux.

Более 7 лет опыта работы с Linux-системами и web-проектами различной сложности.

Последние три года тружусь над обеспечением стабильной работы highload-проектов для посетителей со всего мира.

Page 4: Преждевременная оптимизация архитектуры / Евгений Потапов, Антон Баранов (ITSumma)

• Работаем с 2008 года• Штат 60 человек• Офисы в Иркутске,

Санкт-Петербурге и Москве• Более 200 клиентов• 100 активных чатов в

день• 150000 оповещений в

месяц

ITSumma

Page 5: Преждевременная оптимизация архитектуры / Евгений Потапов, Антон Баранов (ITSumma)
Page 6: Преждевременная оптимизация архитектуры / Евгений Потапов, Антон Баранов (ITSumma)

Откуда берется беда?

Page 7: Преждевременная оптимизация архитектуры / Евгений Потапов, Антон Баранов (ITSumma)

Главные причины аварий•Ошибки в работе, связанные с новыми версиями приложения

Page 8: Преждевременная оптимизация архитектуры / Евгений Потапов, Антон Баранов (ITSumma)

Главные причины аварий•Ошибки в работе, связанные с новыми версиями приложения•Проблемы, связанные с ростом нагрузки и масштабированием

Page 9: Преждевременная оптимизация архитектуры / Евгений Потапов, Антон Баранов (ITSumma)

Главные причины аварий•Ошибки в работе, связанные с новыми версиями приложения•Проблемы, связанные с ростом нагрузки и масштабированием•Аварии, связанные с ошибками планирования архитектуры проекта

Page 10: Преждевременная оптимизация архитектуры / Евгений Потапов, Антон Баранов (ITSumma)

Ошибки планирования архитектуры

Page 11: Преждевременная оптимизация архитектуры / Евгений Потапов, Антон Баранов (ITSumma)

Ошибки планирования архитектуры•Новые решения создают дополнительную

сложность

Page 12: Преждевременная оптимизация архитектуры / Евгений Потапов, Антон Баранов (ITSumma)

Ошибки планирования архитектуры•Новые решения создают дополнительную

сложность• Сложность уменьшает надежность эксплуатации

Page 13: Преждевременная оптимизация архитектуры / Евгений Потапов, Антон Баранов (ITSumma)

Ошибки планирования архитектуры•Новые решения создают дополнительную

сложность• Сложность уменьшает надежность эксплуатации• Закон Луссера

Page 14: Преждевременная оптимизация архитектуры / Евгений Потапов, Антон Баранов (ITSumma)

Закон Луссера

надёжность ракеты равна произведению надёжности всех компонентов, а не надёжности самого ненадёжного элемента

Page 15: Преждевременная оптимизация архитектуры / Евгений Потапов, Антон Баранов (ITSumma)

Закон Луссера

Page 16: Преждевременная оптимизация архитектуры / Евгений Потапов, Антон Баранов (ITSumma)

Причины создания сложности•Решение для данной проблемы уникальное

Page 17: Преждевременная оптимизация архитектуры / Евгений Потапов, Антон Баранов (ITSumma)

Причины создания сложности•Решение для данной проблемы уникальное•О существующем решении не известно

Page 18: Преждевременная оптимизация архитектуры / Евгений Потапов, Антон Баранов (ITSumma)

Причины создания сложности•Решение для данной проблемы уникальное•О существующем решении не известно•Решение известно, но оно неинтересное

Page 19: Преждевременная оптимизация архитектуры / Евгений Потапов, Антон Баранов (ITSumma)
Page 20: Преждевременная оптимизация архитектуры / Евгений Потапов, Антон Баранов (ITSumma)

Небольшой проект

Ожидаемая посещаемость после старта проекта

3000 – 5000 RPS

Page 21: Преждевременная оптимизация архитектуры / Евгений Потапов, Антон Баранов (ITSumma)

Небольшой проект«Облако – это очень надежно»

Падения Amazon Web Services:21 апреля 2011 года: US East – 53 часа7 августа 2011 года: EU West – 36 часов29 июня 2012 года: US East – 7 часов20 сентября 2015 года: US East – 5 часов4 июня 2016 года: AWS Sydney – 5 часов

Page 22: Преждевременная оптимизация архитектуры / Евгений Потапов, Антон Баранов (ITSumma)

Небольшой проект«Облако масштабируется»Большинство хостингов в РФ – 12 ядер, максимум 24 – дальше – горизонтальное масштабирование

Page 23: Преждевременная оптимизация архитектуры / Евгений Потапов, Антон Баранов (ITSumma)

Небольшой проектПроще и надежнее железного сервера ничего нет

Page 24: Преждевременная оптимизация архитектуры / Евгений Потапов, Антон Баранов (ITSumma)

Небольшой проект…но и там бывают проблемыГоризонтальное масштабирование и резервирование проекта:•Балансировка web-инстансов•Балансировка нагрузки на БД

Page 25: Преждевременная оптимизация архитектуры / Евгений Потапов, Антон Баранов (ITSumma)

Небольшой проект

Проект T: резервные инстансы находятся на одних и тех же физических серверах

Page 26: Преждевременная оптимизация архитектуры / Евгений Потапов, Антон Баранов (ITSumma)

Небольшой проектРезервирование•Резервная площадка должна быть в другом ЦОДе•Виртуализация добавляет осложнений•Резерв это не бэкап

Page 27: Преждевременная оптимизация архитектуры / Евгений Потапов, Антон Баранов (ITSumma)

Распределение нагрузки между БД

Проект Х: пост не успевает появиться в списке после создания записи

Page 28: Преждевременная оптимизация архитектуры / Евгений Потапов, Антон Баранов (ITSumma)

Небольшой проектЗа чем следить:•Мониторинг статуса реплики•Мониторинг отставания репликации•Мониторинг консистентности репликации

синхронная репликация не панацея

Page 29: Преждевременная оптимизация архитектуры / Евгений Потапов, Антон Баранов (ITSumma)

Несколько web-серверов – единый балансировщик

Проект F: падение балансировщика приводит к падению всего проекта

Page 30: Преждевременная оптимизация архитектуры / Евгений Потапов, Антон Баранов (ITSumma)

Несколько web-серверов – единый балансировщик

Проект F: падение узла без failover портит весь трафик (а не треть)

Page 31: Преждевременная оптимизация архитектуры / Евгений Потапов, Антон Баранов (ITSumma)

Небольшой проектНесколько web-серверов – общие данные – NFS•Простое, понятное решение•Нет проблем с синхронизацией данных•Понятная настройка

Page 32: Преждевременная оптимизация архитектуры / Евгений Потапов, Антон Баранов (ITSumma)

Небольшой проектПроблемы с NFS:•Сбой связи между NFS-сервером и web-сервером•Восстановление работоспособности требует перезагрузки

Page 33: Преждевременная оптимизация архитектуры / Евгений Потапов, Антон Баранов (ITSumma)

Небольшой проектДеплой•Git pull – неинтересно•CI – очень интересно

Page 34: Преждевременная оптимизация архитектуры / Евгений Потапов, Антон Баранов (ITSumma)

Небольшой проектДеплой•CI – необходим контроль информационной схемы•CI – overhead на внедрение•CI – дополнительная сложность во время деплоя

Page 35: Преждевременная оптимизация архитектуры / Евгений Потапов, Антон Баранов (ITSumma)

Средний проектВыбор замены для NFS:CEPH? Слишком сложно, а для конфигурирования, нет времени- MOOSEFS!

Page 36: Преждевременная оптимизация архитектуры / Евгений Потапов, Антон Баранов (ITSumma)

Средний проектMooseFS•Всё идеально, но…

Page 37: Преждевременная оптимизация архитектуры / Евгений Потапов, Антон Баранов (ITSumma)

Средний проектMooseFS•Сбой по питанию

Page 38: Преждевременная оптимизация архитектуры / Евгений Потапов, Антон Баранов (ITSumma)

Средний проект

Page 39: Преждевременная оптимизация архитектуры / Евгений Потапов, Антон Баранов (ITSumma)

Средний проектВыбор решения для хранения данных - вопрос открытый

Page 40: Преждевременная оптимизация архитектуры / Евгений Потапов, Антон Баранов (ITSumma)

Средний проектОшибки системы деплоя:•Различие dev и prod баз данных по количеству данных

Page 41: Преждевременная оптимизация архитектуры / Евгений Потапов, Антон Баранов (ITSumma)

Средний проектОшибки системы деплоя:•Различие dev и prod баз данных по количеству данных•Не учитывается нагрузка на prod

Page 42: Преждевременная оптимизация архитектуры / Евгений Потапов, Антон Баранов (ITSumma)

Средний проектОшибки системы деплоя:•Различие dev и prod баз данных по количеству данных•Не учитывается нагрузка на prod•Разные конфигурации ПО dev и prod серверов

Page 43: Преждевременная оптимизация архитектуры / Евгений Потапов, Антон Баранов (ITSumma)

Средний проектОшибки системы деплоя:•Различие dev и prod баз данных по количеству данных•Не учитывается нагрузка на prod•Разные конфигурации ПО dev и prod серверов•Разное «железо» у stage и prod

Page 44: Преждевременная оптимизация архитектуры / Евгений Потапов, Антон Баранов (ITSumma)

Высокая нагрузка на БД

Page 45: Преждевременная оптимизация архитектуры / Евгений Потапов, Антон Баранов (ITSumma)

Средний проектНа что надеемся?•Апгрейд «железа» вместо оптимизации запросов к БД

Page 46: Преждевременная оптимизация архитектуры / Евгений Потапов, Антон Баранов (ITSumma)

Средний проектНа что надеемся?•Апгрейд «железа» вместо оптимизации запросов к БД•«Тюнинг сервера»

Page 47: Преждевременная оптимизация архитектуры / Евгений Потапов, Антон Баранов (ITSumma)

Средний проектНа что надеемся?•Апгрейд «железа» вместо оптимизации запросов к БД•«Тюнинг сервера»•Переход на другую БД

Page 48: Преждевременная оптимизация архитектуры / Евгений Потапов, Антон Баранов (ITSumma)

Средний проект•Сбор статистики и анализ долгих запросов

Page 49: Преждевременная оптимизация архитектуры / Евгений Потапов, Антон Баранов (ITSumma)

Средний проект•Сбор статистики и анализ долгих запросов•Сбор статистики по числу запросов

Page 50: Преждевременная оптимизация архитектуры / Евгений Потапов, Антон Баранов (ITSumma)

Средний проект•Сбор статистики и анализ долгих запросов•Сбор статистики по числу запросов•Кластеризация данных

Page 51: Преждевременная оптимизация архитектуры / Евгений Потапов, Антон Баранов (ITSumma)

Крупный проект•Любовь к новым технологиям и «построению архитектур»•Безоговорочная вера в автоматизацию•Отсутствие регулярных аудитов производительности

Page 52: Преждевременная оптимизация архитектуры / Евгений Потапов, Антон Баранов (ITSumma)

Крупный проект«Любовь к новым технологиям»•«мы хотим как-то использовать докер и консул в своем проекте»

Page 53: Преждевременная оптимизация архитектуры / Евгений Потапов, Антон Баранов (ITSumma)

Крупный проект«Любовь к новым технологиям»•«мы хотим как-то использовать докер и консул в своем проекте»•«обновление конфигурации только через chef»

Page 54: Преждевременная оптимизация архитектуры / Евгений Потапов, Антон Баранов (ITSumma)

Крупный проект«Любовь к новым технологиям»•«мы хотим как-то использовать докер и консул в своем проекте»•«обновление конфигурации только через chef»•«давайте сделаем кластер»

Page 55: Преждевременная оптимизация архитектуры / Евгений Потапов, Антон Баранов (ITSumma)

Крупный проект«Любовь к новым технологиям» - как жить?•Нельзя использовать технологии ради технологий•Простые действия становятся сложными – об этом

надо помнить

Page 56: Преждевременная оптимизация архитектуры / Евгений Потапов, Антон Баранов (ITSumma)

Крупный проектВера в автоматизацию•«Наш кластер будет отказоустойчивым»

Page 57: Преждевременная оптимизация архитектуры / Евгений Потапов, Антон Баранов (ITSumma)

Крупный проектВера в автоматизацию•«Наш кластер будет отказоустойчивым»•«Оно само перебалансируется в случае аварии»

Page 58: Преждевременная оптимизация архитектуры / Евгений Потапов, Антон Баранов (ITSumma)

Крупный проектВера в автоматизацию•«Наш кластер будет отказоустойчивым»•«Оно само перебалансируется в случае аварии»•«Наш стек технологий полностью исключает такую

ситуацию»

Page 59: Преждевременная оптимизация архитектуры / Евгений Потапов, Антон Баранов (ITSumma)

Вера в автоматизацию - как жить?

Page 60: Преждевременная оптимизация архитектуры / Евгений Потапов, Антон Баранов (ITSumma)

Крупный проектНе забываем про оптимизацию:•1 страница – 8000 запросов к SQL•Частые деплои – отсутствие профилирования•Отсутствует регулярный аудит производительности

Page 61: Преждевременная оптимизация архитектуры / Евгений Потапов, Антон Баранов (ITSumma)

Бомба замедленного действия:

Проект К: рост нагрузки на CPU не пропорционален росту траффика

Page 62: Преждевременная оптимизация архитектуры / Евгений Потапов, Антон Баранов (ITSumma)

Бомба замедленного действия:

Проект К: каждый деплой немного увеличивает время ответа

Page 63: Преждевременная оптимизация архитектуры / Евгений Потапов, Антон Баранов (ITSumma)

Вместо выводов•Не все новое – хорошее

Page 64: Преждевременная оптимизация архитектуры / Евгений Потапов, Антон Баранов (ITSumma)

Вместо выводов•Не все новое – хорошее•Не все интересное – нужное

Page 65: Преждевременная оптимизация архитектуры / Евгений Потапов, Антон Баранов (ITSumma)

Вместо выводов•Не все новое – хорошее•Не все интересное – нужное•Не все крутое – полезное

Page 66: Преждевременная оптимизация архитектуры / Евгений Потапов, Антон Баранов (ITSumma)

Вместо выводов•Не все новое – хорошее•Не все интересное – нужное•Не все крутое – полезное•Во многой мудрости много печали

Page 67: Преждевременная оптимизация архитектуры / Евгений Потапов, Антон Баранов (ITSumma)

Евгений Потаповhttp://facebook.com/eapotapov

[email protected]

Антон Баранов

https://www.facebook.com/anton.s.baranov

[email protected]

http://itsumma.ru

Вопросы?