SlideShare a Scribd company logo
1 of 51
Download to read offline
Построение кластеров, 
нагрузочное тестирование и 
capacity planning 
Куликовский Дмитрий 
dkulikovsky@yandex-team.ru
С чего всё начинается 
Возможные варианты: 
1) Стартап – сервис, который только начинает свою 
жизнь 
2) BigData only – сервис по обработке данных, 
mapReduce, machine learning и прочий OLAP 
3) Проект с историей и большим количеством legacy 
Нижний колонтитул
Важность проектирования 
• Где разместить проект 
• Какой уровень резервирования необходим 
• Что должно войти в SLA 
• Как проект будет масштабироваться 
4
Использовать облако или нет? 
5
Масштабирование 
• Масштабирование может быть 
как вертикальным, так и 
горизонтальным. 
• Шардирование – основа для 
горизонтального 
масштабирования. 
• Правильная архитектура в 
целом – основа для 
вертикального масштабирования 
6
Deploy 
Перед тем как начать разрабатывать новый сервис или 
просто собирать кластер для майнинга данных, нужно 
ответить на крайне важные вопросы про то как обновлять 
или откатывать софт в продакшине. 
• Как выкладывать новый софт? 
• Как в продакшн выходит новый релиз пакета или ядра? 
• Релизный цикл, continous integration 
• Тесты, препродакшн стенд 
• Как выкладывать хотфиксы или откатываться назад? 
7
Всегда есть что то еще 
Всё предусмотреть невозможно, поэтому 
нужно пользоваться простыми правилами: 
• Сначала проектировать, потом делать 
• Unix way – каждый кусок делать должен делать свою 
работу и делать её хорошо 
• SLA 
• и самое главное.. 
8
9
Новый сервис: свои сложности 
• Серверов и мощностей всегда мало, их приходится 
экономить 
• Сервера живут у какого то хостера или в облаке и их 
обслуживание затрудненно 
• Приходится учитывать вероятность того что сервер или 
диск будут менять долго – день, два, неделю 
• Если все сервера в одном дц, он может полностью выйти из 
строя, даже сгореть
Новый сервис: свои сложности 
• Нет большого выбора в решениях по 
резервированию 
• Зачастую нет хорошего выбора железа 
• В облаках есть свои проблемы – например нельзя, 
докупив новые мощности, решить проблему 
медленного IO 
• Множество других проблем из-за того что 
эксплуатация инфраструктуры отдана внешним людям
Выбор софта 
Правильный выбор софта, который будет 
использоваться – один из самых важных моментов в 
жизни сервиса. Использовать ли Mysql или купить 
лицензию Oracle. Приобрести лицензию на gpfs или 
использовать cephfs (которое еще даже не production 
ready).. 
12
Выбор софта 
λ Oracle или mysql 
λ Gpfs или Ceph 
λ VmWare или OpenStack 
λ И т.д. 
13
Новый сервис: очевидные телодвижения 
• Нужно сразу выделить мощности под разработку и 
тестирование 
• Отследить очевидные точки отказа и подумать как их 
зарезервировать 
• Мониторинг – что и как мониторить 
• Графики – опять же, что и как показывать на 
графиках 
14
Простой пример 
15
Новый сервис: очевидные телодвижения 
• Бекапы важных данных 
• Учесть административные риски: 
• Новости хостера 
• Даты контрактов 
• Ситуация в стране 
• и т.д. 
• Удалённые бекапы 
16
Кластер для big data 
• Какой софт использовать 
• Резервирование на уровне приложения или 
средствами ОС 
• Как проводить обновление, обслуживание кластеров 
• real time или работа с большими заданиями 
17
Проект с историей 
18 
How did this Happen?
Проект с историей 
• Редко когда есть актуальная и толковая 
документация, в том числе и по архитектуре проекта 
• У всех в проекте замылен глаз 
• Сложно вносить существенные изменения 
• Продакшн оброс legacy кодом, который некому 
поддерживать 
19
Мониторинг 
В первую очередь надо определится – что за 
сервис мы предоставляем, по какому показателю 
клиенты решат что всё работает хорошо. 
• Если сервис обрабатывает и показывает картинки, что 
является его показателем работоспособности? 
• А если сервис занимается составлением большого отчета? 
• Как видят «правильную» работу сервиса разработчики, 
админы, директор? 
20
Что такое SLA 
• Традиционный пункт в SLA – доступность сервиса: 
99% или 99.9999% 
• Время реакции системы – тайминги или время 
обработки задания 
• Скорость реакции на проблемы 
• Время восстановления после сбоя 
21
Мониторинг, основы 
Всегда нужно мониторить сам сервер 
• Доступность сервера 
• Загруженность ресурсов: сеть, диски, процессор, 
память 
• Ошибки в сети 
• Здоровье дисков, рейдов 
22
Мониторинг сервисов 
На каждый важный процесс должен быть 
мониторинг. 
• Если это http сервер, то должна быть проверка, делающая 
http запрос. 
• Если делается бекап, то нужно проверять сделался ли он 
или сразу проверять что он разворачивается на тестовом 
стенде (комплексная проверка). 
• Мониторинг должен давать ясный ответ на вопрос о том 
что сломалось. 
23
Мониторинг – основа здоровья 
24
Функциональный мониторинг 
• Мониторинг показателей SLA. 
• Асинхронный мониторинг – скрипт отправляет 
задание в очередь и ждёт результат на другом конце, т.о. 
Проверяет всю цепочку обработки задания. 
• Активный мониторинг, который может переводить 
нагрузку на заглушку, т.н. тыкву (например мониторинг 
ipvs) 
25
Графики 
• Собирайте все возможные метрики как можно чаще 
• Из основных метрик собирайте dashboard’ы и 
медитируйте над ними 
• Графики лучший способ увидеть поведение системы 
в динамике 
26
Минимальная отказоустойчивость 
Классическая схема с hot standby 
27
Как задачи предстоит решать 
• Синхронизация, что выбрать? 
• Репликация 
• Rsync 
• Drdb, gpfs, ceph etc. 
• Механизмы переключения, автоматика v.s. ручное 
• Как проверять синхронность, как её восстанавливать 
28
Пример 
29
Что проверять? 
• Проверка синхронизации данных 
• Синхронизация конфигурации 
• «Учения» по переключению на standby 
30
Живая копия 
31
Пример 
32
Всё тоже самое, но только быстрей 
• Синхронизация стала сложнее, должна работать в 
обе стороны. 
• Latency сети выходит на передний план 
• Split brain – третья «как бы нога» 
• Распределённые сервисы – кеш, очереди, 
блокировки 
• Транспорт (p2p, multicast, rsync, etc.) 
33
Больше дц 
34
Инфраструктура 
• Без удобного способа запускать новые сервера 
больше жить нельзя 
• Своя инфрастурктура сети, свой днс и firewall 
• Системы управления конфигурациями: salt, puppet, 
chef, etc. 
• Наливка и обновление серверов 
35
Инфраструктура 
• Время еще раз подумать про облачные решения 
• Не каждый дц одинаково полезен 
• Новые дц больше и железо в них более свежее 
• Апгрейд серверов или гетерогенная среда и умная 
балансировка нагрузки 
36
Кластерные решения 
• Дерево репликации 
• Синхронная копия без подтверждения записи или с 
частичным подтверждением 
• Полностью синхронная копия 
• Базы с поддержкой региональности 
37
Мониторинг не сервера, а сервиса 
Для кластерных решений с несколькими дц 
мониторинг выглядит по-другому, на первый план 
выходит мониторинг сервиса и агрегаты проверок. 
• Агрегированный мониторинг, понятия кворум и гистерезис. 
• В SLA включается понятие о степени деградации 
• Для графиков тоже теперь есть смысл смотреть только на 
агрегированные значения 
• Косвенный мониторинг – сломалось на одном хосте, а 
загорелось на другом 
38
Планетарная отказоустойчивость 
Задача не решается чисто техническим путём, 
использовать датацентры на разных континентах 
можно будет только если заложить это в архитектуру 
сервиса. 
• Локальность пользователя 
• Шардирование, редиректы, частичная 
синхронизация 
• CDN 
• Распределённый мониторинг 
39
Новые задачи 
• Традиционные решения для транспорта данных не 
работают (например реплика), нужно тюнить сеть и 
выбирать новые решения. 
• Синхронизация всего – пакетов, конфигов, доступов, 
ёмкостей кластеров. 
• Больше формализации и бюрократии 
40
Deploy в масштабах планеты 
• Выкладка новой версии – задача на целый день 
• Кровавая война за скорость выкладки 
• Как обновить ядро на 50 000 серверах по всему 
миру? 
• Автоматизировать выкладку или нанять команду 
админов? 
41
Как за всем уследить 
42
Как за всем уследить 
• Dashboard’ы с метриками из SLA 
• Тщательные разборы инцидентов по мониторигам 
параметров SLA 
• Системы управления кластерами и задачи 
синхронизации версий пакетов, скриптов, конфигов 
• Максимальное покрытие тестами и нагрузочным 
тестированием 
43
Capacity planning 
• Нагрузочное тестирование 
• Анализ продуктовых планов 
• Анализ естественного роста 
Всегда нужно учитывать рост скорости работы новых 
серверов, разные компоненты растут по разному. 
44
Пример 1 
Capacity planning в простом сервисе, когда достаточно 
учитывать только естественный рост. 
• Найти самый загруженный ресурс 
• Оценить тренд 
• Прикинуть, с линейкой, когда ресурс закончится 
45
Пример 1 
46
Пример 2 
Большой кластер с разными по размеру дц 
Разные по мощности сервера 
Высокие требования по доступности и качеству 
Кластера должны выдерживать пиковые нагрузки при 
подключении новых клиентов 
47
Пример 2 
48
Анализ планов 
Планы по продукту «Сервис 
2.0» 
• Запустить новый фронтэнд 
• Ускорить генерацию отчетов 
до 1с 
• Повысить 
отказоустойчивость 
• Новые среды для 
тестирования 
49 
Планы в железе 
• По 4 новых сервера в 3х дц 
• +50% серверов под новое 
решение = 600*50% = 300 
новых серверов 
• Добавить дополнительную 
копию данных = + 300 
серверов 
• + 30 новых серверов под 
виртуалки и тестовый стенд
Что почитать 
• Web Operations: Keeping the Data On Time 
https://clck.ru/9MbcW 
• The Art of Capacity Planning: Scaling Web Resources 
https://clck.ru/9MbdF 
• Guerrilla Capacity Planning https://clck.ru/9MbdZ 
50
Что почитать 
• Искусство программирования для Unix 
https://clck.ru/9Mbdy 
• Linux Kernel Development (3rd Edition) https:// 
clck.ru/9Mbe8 
• Data Analysis with Open Source Tools 
https://clck.ru/9MbeU 
• UNIX. Руководство системного администратора. Для 
профессионалов https://clck.ru/9MbfZ 
51

More Related Content

What's hot

3rd Moscow cassandra meetup (Fast In-memory Analytics Over Cassandra Data )
3rd Moscow cassandra meetup (Fast In-memory Analytics Over Cassandra Data )3rd Moscow cassandra meetup (Fast In-memory Analytics Over Cassandra Data )
3rd Moscow cassandra meetup (Fast In-memory Analytics Over Cassandra Data )Shamim bhuiyan
 
NoSQL - World IT Planet, Saint Petersburg 2015
NoSQL - World IT Planet, Saint Petersburg 2015NoSQL - World IT Planet, Saint Petersburg 2015
NoSQL - World IT Planet, Saint Petersburg 2015Shamim bhuiyan
 
Big data moscow meetup
Big data moscow meetup Big data moscow meetup
Big data moscow meetup Shamim bhuiyan
 
Производительность программных систем
Производительность программных системПроизводительность программных систем
Производительность программных системDima Dzuba
 
Проектирование программных систем. Занятие 6
Проектирование программных систем. Занятие 6Проектирование программных систем. Занятие 6
Проектирование программных систем. Занятие 6Dima Dzuba
 
HPE adaptive backup and recovery
HPE adaptive backup and recoveryHPE adaptive backup and recovery
HPE adaptive backup and recoveryAnatoliy Arkhipov
 
Кирилл Алешин, Ламбда Архитектура на практике
Кирилл Алешин, Ламбда Архитектура на практикеКирилл Алешин, Ламбда Архитектура на практике
Кирилл Алешин, Ламбда Архитектура на практикеTanya Denisyuk
 
Андрей Зайчиков "Архитектура распределенных кластеров NoSQL на AWS"
Андрей Зайчиков "Архитектура распределенных кластеров NoSQL на AWS"Андрей Зайчиков "Архитектура распределенных кластеров NoSQL на AWS"
Андрей Зайчиков "Архитектура распределенных кластеров NoSQL на AWS"IT Event
 
Операционные системы 2015, лекция № 6
Операционные системы 2015, лекция № 6Операционные системы 2015, лекция № 6
Операционные системы 2015, лекция № 6Aleksey Bragin
 
Что такое Postgresql (Максим Богук)
Что такое Postgresql (Максим Богук)Что такое Postgresql (Максим Богук)
Что такое Postgresql (Максим Богук)Ontico
 
Мастер-класс про организацию службы эксплуатации
Мастер-класс про организацию службы эксплуатацииМастер-класс про организацию службы эксплуатации
Мастер-класс про организацию службы эксплуатацииNikolay Sivko
 
Мониторинг всех слоев web проекта (hl2015)
Мониторинг всех слоев web проекта (hl2015)Мониторинг всех слоев web проекта (hl2015)
Мониторинг всех слоев web проекта (hl2015)Nikolay Sivko
 
Распределенная система тестирования машинного перевода
Распределенная система тестирования машинного переводаРаспределенная система тестирования машинного перевода
Распределенная система тестирования машинного переводаyaevents
 
"Тестирование распределенных систем" Сатарин Андрей, Яндекс
"Тестирование распределенных систем" Сатарин Андрей, Яндекс"Тестирование распределенных систем" Сатарин Андрей, Яндекс
"Тестирование распределенных систем" Сатарин Андрей, Яндексit-people
 
Tuning HighLoad J2EE web application
Tuning HighLoad J2EE web applicationTuning HighLoad J2EE web application
Tuning HighLoad J2EE web applicationShamim bhuiyan
 
Auditing HA/DR Сonfigurations
Auditing HA/DR СonfigurationsAuditing HA/DR Сonfigurations
Auditing HA/DR СonfigurationsAlexey Chekanov
 
Кирилл Алешин - Big Data и Lambda архитектура на практике
Кирилл Алешин - Big Data и Lambda архитектура на практикеКирилл Алешин - Big Data и Lambda архитектура на практике
Кирилл Алешин - Big Data и Lambda архитектура на практикеIT Share
 

What's hot (20)

3rd Moscow cassandra meetup (Fast In-memory Analytics Over Cassandra Data )
3rd Moscow cassandra meetup (Fast In-memory Analytics Over Cassandra Data )3rd Moscow cassandra meetup (Fast In-memory Analytics Over Cassandra Data )
3rd Moscow cassandra meetup (Fast In-memory Analytics Over Cassandra Data )
 
NoSQL - World IT Planet, Saint Petersburg 2015
NoSQL - World IT Planet, Saint Petersburg 2015NoSQL - World IT Planet, Saint Petersburg 2015
NoSQL - World IT Planet, Saint Petersburg 2015
 
Big data moscow meetup
Big data moscow meetup Big data moscow meetup
Big data moscow meetup
 
Highload++ 2015
Highload++ 2015Highload++ 2015
Highload++ 2015
 
Производительность программных систем
Производительность программных системПроизводительность программных систем
Производительность программных систем
 
Проектирование программных систем. Занятие 6
Проектирование программных систем. Занятие 6Проектирование программных систем. Занятие 6
Проектирование программных систем. Занятие 6
 
HPE adaptive backup and recovery
HPE adaptive backup and recoveryHPE adaptive backup and recovery
HPE adaptive backup and recovery
 
Кирилл Алешин, Ламбда Архитектура на практике
Кирилл Алешин, Ламбда Архитектура на практикеКирилл Алешин, Ламбда Архитектура на практике
Кирилл Алешин, Ламбда Архитектура на практике
 
Потенциал метода ББК
Потенциал метода ББКПотенциал метода ББК
Потенциал метода ББК
 
Андрей Зайчиков "Архитектура распределенных кластеров NoSQL на AWS"
Андрей Зайчиков "Архитектура распределенных кластеров NoSQL на AWS"Андрей Зайчиков "Архитектура распределенных кластеров NoSQL на AWS"
Андрей Зайчиков "Архитектура распределенных кластеров NoSQL на AWS"
 
Операционные системы 2015, лекция № 6
Операционные системы 2015, лекция № 6Операционные системы 2015, лекция № 6
Операционные системы 2015, лекция № 6
 
Что такое Postgresql (Максим Богук)
Что такое Postgresql (Максим Богук)Что такое Postgresql (Максим Богук)
Что такое Postgresql (Максим Богук)
 
Мастер-класс про организацию службы эксплуатации
Мастер-класс про организацию службы эксплуатацииМастер-класс про организацию службы эксплуатации
Мастер-класс про организацию службы эксплуатации
 
Мониторинг всех слоев web проекта (hl2015)
Мониторинг всех слоев web проекта (hl2015)Мониторинг всех слоев web проекта (hl2015)
Мониторинг всех слоев web проекта (hl2015)
 
Cassandra db
Cassandra dbCassandra db
Cassandra db
 
Распределенная система тестирования машинного перевода
Распределенная система тестирования машинного переводаРаспределенная система тестирования машинного перевода
Распределенная система тестирования машинного перевода
 
"Тестирование распределенных систем" Сатарин Андрей, Яндекс
"Тестирование распределенных систем" Сатарин Андрей, Яндекс"Тестирование распределенных систем" Сатарин Андрей, Яндекс
"Тестирование распределенных систем" Сатарин Андрей, Яндекс
 
Tuning HighLoad J2EE web application
Tuning HighLoad J2EE web applicationTuning HighLoad J2EE web application
Tuning HighLoad J2EE web application
 
Auditing HA/DR Сonfigurations
Auditing HA/DR СonfigurationsAuditing HA/DR Сonfigurations
Auditing HA/DR Сonfigurations
 
Кирилл Алешин - Big Data и Lambda архитектура на практике
Кирилл Алешин - Big Data и Lambda архитектура на практикеКирилл Алешин - Big Data и Lambda архитектура на практике
Кирилл Алешин - Big Data и Lambda архитектура на практике
 

Similar to Дмитрий Куликовский - Построение кластеров, нагрузочное тестирование, capacity planning

High load2007 scaling-web-applications-rus
High load2007 scaling-web-applications-rusHigh load2007 scaling-web-applications-rus
High load2007 scaling-web-applications-rusVladd Ev
 
PostgreSQL - Ups, DevOps..., Алексей Лесовский (PostgreSQL-Consulting)
PostgreSQL - Ups, DevOps..., Алексей Лесовский (PostgreSQL-Consulting)PostgreSQL - Ups, DevOps..., Алексей Лесовский (PostgreSQL-Consulting)
PostgreSQL - Ups, DevOps..., Алексей Лесовский (PostgreSQL-Consulting)Ontico
 
Daemons In Web on #devrus
Daemons In Web on #devrusDaemons In Web on #devrus
Daemons In Web on #devrusAlex Chistyakov
 
как из трех стоек сделать две.
как из трех стоек сделать две.как из трех стоек сделать две.
как из трех стоек сделать две.Serguei Gitinsky
 
20 апреля, DEV {highload}, "Демоны в большом проекте – проблемы и их решения ...
20 апреля, DEV {highload}, "Демоны в большом проекте – проблемы и их решения ...20 апреля, DEV {highload}, "Демоны в большом проекте – проблемы и их решения ...
20 апреля, DEV {highload}, "Демоны в большом проекте – проблемы и их решения ...IT-Portfolio
 
Monitoring driven эксплуатация / Николай Сивко (HeadHunter)
Monitoring driven эксплуатация / Николай Сивко (HeadHunter)Monitoring driven эксплуатация / Николай Сивко (HeadHunter)
Monitoring driven эксплуатация / Николай Сивко (HeadHunter)Ontico
 
Monitoring-driven эксплуатация (rootconf2015)
Monitoring-driven эксплуатация (rootconf2015)Monitoring-driven эксплуатация (rootconf2015)
Monitoring-driven эксплуатация (rootconf2015)Nikolay Sivko
 
Software craftsmanship 12 online highload systems
Software craftsmanship 12 online highload systemsSoftware craftsmanship 12 online highload systems
Software craftsmanship 12 online highload systemsPavel Veinik
 
Особенности тестирования сloud-приложений
Особенности тестирования сloud-приложенийОсобенности тестирования сloud-приложений
Особенности тестирования сloud-приложенийSQALab
 
Построение системы аналитики
Построение системы аналитикиПостроение системы аналитики
Построение системы аналитикиИлья Середа
 
Code'n'Coffee SPb., вводный доклад по оптимизации производительности
Code'n'Coffee SPb., вводный доклад по оптимизации производительностиCode'n'Coffee SPb., вводный доклад по оптимизации производительности
Code'n'Coffee SPb., вводный доклад по оптимизации производительностиAlex Chistyakov
 
Производительность и надежность Docsvision 5
Производительность и надежность Docsvision 5Производительность и надежность Docsvision 5
Производительность и надежность Docsvision 5Docsvision
 
владивосток форум производительность_ha
владивосток форум производительность_haвладивосток форум производительность_ha
владивосток форум производительность_haElena Ometova
 
50 команд как одна команда. Как в компании Петер-Сервис боролись за согласова...
50 команд как одна команда. Как в компании Петер-Сервис боролись за согласова...50 команд как одна команда. Как в компании Петер-Сервис боролись за согласова...
50 команд как одна команда. Как в компании Петер-Сервис боролись за согласова...Валерий Павлович Сысик
 
Highload 2014. PostgreSQL: ups, DevOps.
Highload 2014. PostgreSQL: ups, DevOps.Highload 2014. PostgreSQL: ups, DevOps.
Highload 2014. PostgreSQL: ups, DevOps.Alexey Lesovsky
 
Как превратить Openstack Swift в хранилище для высоких нагрузок разных типов,...
Как превратить Openstack Swift в хранилище для высоких нагрузок разных типов,...Как превратить Openstack Swift в хранилище для высоких нагрузок разных типов,...
Как превратить Openstack Swift в хранилище для высоких нагрузок разных типов,...Ontico
 
High load++2016.highlights (dropbox+clickhouse)
High load++2016.highlights (dropbox+clickhouse)High load++2016.highlights (dropbox+clickhouse)
High load++2016.highlights (dropbox+clickhouse)Pavel Alexeev
 
Обзор перспективных баз данных для highload / Юрий Насретдинов
Обзор перспективных баз данных для highload / Юрий НасретдиновОбзор перспективных баз данных для highload / Юрий Насретдинов
Обзор перспективных баз данных для highload / Юрий НасретдиновOntico
 
Net core and linux in production
Net core and linux in productionNet core and linux in production
Net core and linux in productionAnatoly Popov
 

Similar to Дмитрий Куликовский - Построение кластеров, нагрузочное тестирование, capacity planning (20)

High load2007 scaling-web-applications-rus
High load2007 scaling-web-applications-rusHigh load2007 scaling-web-applications-rus
High load2007 scaling-web-applications-rus
 
PostgreSQL - Ups, DevOps..., Алексей Лесовский (PostgreSQL-Consulting)
PostgreSQL - Ups, DevOps..., Алексей Лесовский (PostgreSQL-Consulting)PostgreSQL - Ups, DevOps..., Алексей Лесовский (PostgreSQL-Consulting)
PostgreSQL - Ups, DevOps..., Алексей Лесовский (PostgreSQL-Consulting)
 
Daemons In Web on #devrus
Daemons In Web on #devrusDaemons In Web on #devrus
Daemons In Web on #devrus
 
как из трех стоек сделать две.
как из трех стоек сделать две.как из трех стоек сделать две.
как из трех стоек сделать две.
 
20 апреля, DEV {highload}, "Демоны в большом проекте – проблемы и их решения ...
20 апреля, DEV {highload}, "Демоны в большом проекте – проблемы и их решения ...20 апреля, DEV {highload}, "Демоны в большом проекте – проблемы и их решения ...
20 апреля, DEV {highload}, "Демоны в большом проекте – проблемы и их решения ...
 
Monitoring driven эксплуатация / Николай Сивко (HeadHunter)
Monitoring driven эксплуатация / Николай Сивко (HeadHunter)Monitoring driven эксплуатация / Николай Сивко (HeadHunter)
Monitoring driven эксплуатация / Николай Сивко (HeadHunter)
 
Monitoring-driven эксплуатация (rootconf2015)
Monitoring-driven эксплуатация (rootconf2015)Monitoring-driven эксплуатация (rootconf2015)
Monitoring-driven эксплуатация (rootconf2015)
 
Software craftsmanship 12 online highload systems
Software craftsmanship 12 online highload systemsSoftware craftsmanship 12 online highload systems
Software craftsmanship 12 online highload systems
 
Особенности тестирования сloud-приложений
Особенности тестирования сloud-приложенийОсобенности тестирования сloud-приложений
Особенности тестирования сloud-приложений
 
Построение системы аналитики
Построение системы аналитикиПостроение системы аналитики
Построение системы аналитики
 
Code'n'Coffee SPb., вводный доклад по оптимизации производительности
Code'n'Coffee SPb., вводный доклад по оптимизации производительностиCode'n'Coffee SPb., вводный доклад по оптимизации производительности
Code'n'Coffee SPb., вводный доклад по оптимизации производительности
 
Производительность и надежность Docsvision 5
Производительность и надежность Docsvision 5Производительность и надежность Docsvision 5
Производительность и надежность Docsvision 5
 
владивосток форум производительность_ha
владивосток форум производительность_haвладивосток форум производительность_ha
владивосток форум производительность_ha
 
50 команд как одна команда. Как в компании Петер-Сервис боролись за согласова...
50 команд как одна команда. Как в компании Петер-Сервис боролись за согласова...50 команд как одна команда. Как в компании Петер-Сервис боролись за согласова...
50 команд как одна команда. Как в компании Петер-Сервис боролись за согласова...
 
Highload 2014. PostgreSQL: ups, DevOps.
Highload 2014. PostgreSQL: ups, DevOps.Highload 2014. PostgreSQL: ups, DevOps.
Highload 2014. PostgreSQL: ups, DevOps.
 
Как превратить Openstack Swift в хранилище для высоких нагрузок разных типов,...
Как превратить Openstack Swift в хранилище для высоких нагрузок разных типов,...Как превратить Openstack Swift в хранилище для высоких нагрузок разных типов,...
Как превратить Openstack Swift в хранилище для высоких нагрузок разных типов,...
 
Errors Tracker
Errors TrackerErrors Tracker
Errors Tracker
 
High load++2016.highlights (dropbox+clickhouse)
High load++2016.highlights (dropbox+clickhouse)High load++2016.highlights (dropbox+clickhouse)
High load++2016.highlights (dropbox+clickhouse)
 
Обзор перспективных баз данных для highload / Юрий Насретдинов
Обзор перспективных баз данных для highload / Юрий НасретдиновОбзор перспективных баз данных для highload / Юрий Насретдинов
Обзор перспективных баз данных для highload / Юрий Насретдинов
 
Net core and linux in production
Net core and linux in productionNet core and linux in production
Net core and linux in production
 

More from Yandex

Предсказание оттока игроков из World of Tanks
Предсказание оттока игроков из World of TanksПредсказание оттока игроков из World of Tanks
Предсказание оттока игроков из World of TanksYandex
 
Как принять/организовать работу по поисковой оптимизации сайта, Сергей Царик,...
Как принять/организовать работу по поисковой оптимизации сайта, Сергей Царик,...Как принять/организовать работу по поисковой оптимизации сайта, Сергей Царик,...
Как принять/организовать работу по поисковой оптимизации сайта, Сергей Царик,...Yandex
 
Структурированные данные, Юлия Тихоход, лекция в Школе вебмастеров Яндекса
Структурированные данные, Юлия Тихоход, лекция в Школе вебмастеров ЯндексаСтруктурированные данные, Юлия Тихоход, лекция в Школе вебмастеров Яндекса
Структурированные данные, Юлия Тихоход, лекция в Школе вебмастеров ЯндексаYandex
 
Представление сайта в поиске, Сергей Лысенко, лекция в Школе вебмастеров Яндекса
Представление сайта в поиске, Сергей Лысенко, лекция в Школе вебмастеров ЯндексаПредставление сайта в поиске, Сергей Лысенко, лекция в Школе вебмастеров Яндекса
Представление сайта в поиске, Сергей Лысенко, лекция в Школе вебмастеров ЯндексаYandex
 
Плохие методы продвижения сайта, Екатерины Гладких, лекция в Школе вебмастеро...
Плохие методы продвижения сайта, Екатерины Гладких, лекция в Школе вебмастеро...Плохие методы продвижения сайта, Екатерины Гладких, лекция в Школе вебмастеро...
Плохие методы продвижения сайта, Екатерины Гладких, лекция в Школе вебмастеро...Yandex
 
Основные принципы ранжирования, Сергей Царик и Антон Роменский, лекция в Школ...
Основные принципы ранжирования, Сергей Царик и Антон Роменский, лекция в Школ...Основные принципы ранжирования, Сергей Царик и Антон Роменский, лекция в Школ...
Основные принципы ранжирования, Сергей Царик и Антон Роменский, лекция в Школ...Yandex
 
Основные принципы индексирования сайта, Александр Смирнов, лекция в Школе веб...
Основные принципы индексирования сайта, Александр Смирнов, лекция в Школе веб...Основные принципы индексирования сайта, Александр Смирнов, лекция в Школе веб...
Основные принципы индексирования сайта, Александр Смирнов, лекция в Школе веб...Yandex
 
Мобильное приложение: как и зачем, Александр Лукин, лекция в Школе вебмастеро...
Мобильное приложение: как и зачем, Александр Лукин, лекция в Школе вебмастеро...Мобильное приложение: как и зачем, Александр Лукин, лекция в Школе вебмастеро...
Мобильное приложение: как и зачем, Александр Лукин, лекция в Школе вебмастеро...Yandex
 
Сайты на мобильных устройствах, Олег Ножичкин, лекция в Школе вебмастеров Янд...
Сайты на мобильных устройствах, Олег Ножичкин, лекция в Школе вебмастеров Янд...Сайты на мобильных устройствах, Олег Ножичкин, лекция в Школе вебмастеров Янд...
Сайты на мобильных устройствах, Олег Ножичкин, лекция в Школе вебмастеров Янд...Yandex
 
Качественная аналитика сайта, Юрий Батиевский, лекция в Школе вебмастеров Янд...
Качественная аналитика сайта, Юрий Батиевский, лекция в Школе вебмастеров Янд...Качественная аналитика сайта, Юрий Батиевский, лекция в Школе вебмастеров Янд...
Качественная аналитика сайта, Юрий Батиевский, лекция в Школе вебмастеров Янд...Yandex
 
Что можно и что нужно измерять на сайте, Петр Аброськин, лекция в Школе вебма...
Что можно и что нужно измерять на сайте, Петр Аброськин, лекция в Школе вебма...Что можно и что нужно измерять на сайте, Петр Аброськин, лекция в Школе вебма...
Что можно и что нужно измерять на сайте, Петр Аброськин, лекция в Школе вебма...Yandex
 
Как правильно поставить ТЗ на создание сайта, Алексей Бородкин, лекция в Школ...
Как правильно поставить ТЗ на создание сайта, Алексей Бородкин, лекция в Школ...Как правильно поставить ТЗ на создание сайта, Алексей Бородкин, лекция в Школ...
Как правильно поставить ТЗ на создание сайта, Алексей Бородкин, лекция в Школ...Yandex
 
Как защитить свой сайт, Пётр Волков, лекция в Школе вебмастеров
Как защитить свой сайт, Пётр Волков, лекция в Школе вебмастеровКак защитить свой сайт, Пётр Волков, лекция в Школе вебмастеров
Как защитить свой сайт, Пётр Волков, лекция в Школе вебмастеровYandex
 
Как правильно составить структуру сайта, Дмитрий Сатин, лекция в Школе вебмас...
Как правильно составить структуру сайта, Дмитрий Сатин, лекция в Школе вебмас...Как правильно составить структуру сайта, Дмитрий Сатин, лекция в Школе вебмас...
Как правильно составить структуру сайта, Дмитрий Сатин, лекция в Школе вебмас...Yandex
 
Технические особенности создания сайта, Дмитрий Васильева, лекция в Школе веб...
Технические особенности создания сайта, Дмитрий Васильева, лекция в Школе веб...Технические особенности создания сайта, Дмитрий Васильева, лекция в Школе веб...
Технические особенности создания сайта, Дмитрий Васильева, лекция в Школе веб...Yandex
 
Конструкторы для отдельных элементов сайта, Елена Першина, лекция в Школе веб...
Конструкторы для отдельных элементов сайта, Елена Першина, лекция в Школе веб...Конструкторы для отдельных элементов сайта, Елена Першина, лекция в Школе веб...
Конструкторы для отдельных элементов сайта, Елена Першина, лекция в Школе веб...Yandex
 
Контент для интернет-магазинов, Катерина Ерошина, лекция в Школе вебмастеров ...
Контент для интернет-магазинов, Катерина Ерошина, лекция в Школе вебмастеров ...Контент для интернет-магазинов, Катерина Ерошина, лекция в Школе вебмастеров ...
Контент для интернет-магазинов, Катерина Ерошина, лекция в Школе вебмастеров ...Yandex
 
Как написать хороший текст для сайта, Катерина Ерошина, лекция в Школе вебмас...
Как написать хороший текст для сайта, Катерина Ерошина, лекция в Школе вебмас...Как написать хороший текст для сайта, Катерина Ерошина, лекция в Школе вебмас...
Как написать хороший текст для сайта, Катерина Ерошина, лекция в Школе вебмас...Yandex
 
Usability и дизайн - как не помешать пользователю, Алексей Иванов, лекция в Ш...
Usability и дизайн - как не помешать пользователю, Алексей Иванов, лекция в Ш...Usability и дизайн - как не помешать пользователю, Алексей Иванов, лекция в Ш...
Usability и дизайн - как не помешать пользователю, Алексей Иванов, лекция в Ш...Yandex
 
Cайт. Зачем он и каким должен быть, Алексей Иванов, лекция в Школе вебмастеро...
Cайт. Зачем он и каким должен быть, Алексей Иванов, лекция в Школе вебмастеро...Cайт. Зачем он и каким должен быть, Алексей Иванов, лекция в Школе вебмастеро...
Cайт. Зачем он и каким должен быть, Алексей Иванов, лекция в Школе вебмастеро...Yandex
 

More from Yandex (20)

Предсказание оттока игроков из World of Tanks
Предсказание оттока игроков из World of TanksПредсказание оттока игроков из World of Tanks
Предсказание оттока игроков из World of Tanks
 
Как принять/организовать работу по поисковой оптимизации сайта, Сергей Царик,...
Как принять/организовать работу по поисковой оптимизации сайта, Сергей Царик,...Как принять/организовать работу по поисковой оптимизации сайта, Сергей Царик,...
Как принять/организовать работу по поисковой оптимизации сайта, Сергей Царик,...
 
Структурированные данные, Юлия Тихоход, лекция в Школе вебмастеров Яндекса
Структурированные данные, Юлия Тихоход, лекция в Школе вебмастеров ЯндексаСтруктурированные данные, Юлия Тихоход, лекция в Школе вебмастеров Яндекса
Структурированные данные, Юлия Тихоход, лекция в Школе вебмастеров Яндекса
 
Представление сайта в поиске, Сергей Лысенко, лекция в Школе вебмастеров Яндекса
Представление сайта в поиске, Сергей Лысенко, лекция в Школе вебмастеров ЯндексаПредставление сайта в поиске, Сергей Лысенко, лекция в Школе вебмастеров Яндекса
Представление сайта в поиске, Сергей Лысенко, лекция в Школе вебмастеров Яндекса
 
Плохие методы продвижения сайта, Екатерины Гладких, лекция в Школе вебмастеро...
Плохие методы продвижения сайта, Екатерины Гладких, лекция в Школе вебмастеро...Плохие методы продвижения сайта, Екатерины Гладких, лекция в Школе вебмастеро...
Плохие методы продвижения сайта, Екатерины Гладких, лекция в Школе вебмастеро...
 
Основные принципы ранжирования, Сергей Царик и Антон Роменский, лекция в Школ...
Основные принципы ранжирования, Сергей Царик и Антон Роменский, лекция в Школ...Основные принципы ранжирования, Сергей Царик и Антон Роменский, лекция в Школ...
Основные принципы ранжирования, Сергей Царик и Антон Роменский, лекция в Школ...
 
Основные принципы индексирования сайта, Александр Смирнов, лекция в Школе веб...
Основные принципы индексирования сайта, Александр Смирнов, лекция в Школе веб...Основные принципы индексирования сайта, Александр Смирнов, лекция в Школе веб...
Основные принципы индексирования сайта, Александр Смирнов, лекция в Школе веб...
 
Мобильное приложение: как и зачем, Александр Лукин, лекция в Школе вебмастеро...
Мобильное приложение: как и зачем, Александр Лукин, лекция в Школе вебмастеро...Мобильное приложение: как и зачем, Александр Лукин, лекция в Школе вебмастеро...
Мобильное приложение: как и зачем, Александр Лукин, лекция в Школе вебмастеро...
 
Сайты на мобильных устройствах, Олег Ножичкин, лекция в Школе вебмастеров Янд...
Сайты на мобильных устройствах, Олег Ножичкин, лекция в Школе вебмастеров Янд...Сайты на мобильных устройствах, Олег Ножичкин, лекция в Школе вебмастеров Янд...
Сайты на мобильных устройствах, Олег Ножичкин, лекция в Школе вебмастеров Янд...
 
Качественная аналитика сайта, Юрий Батиевский, лекция в Школе вебмастеров Янд...
Качественная аналитика сайта, Юрий Батиевский, лекция в Школе вебмастеров Янд...Качественная аналитика сайта, Юрий Батиевский, лекция в Школе вебмастеров Янд...
Качественная аналитика сайта, Юрий Батиевский, лекция в Школе вебмастеров Янд...
 
Что можно и что нужно измерять на сайте, Петр Аброськин, лекция в Школе вебма...
Что можно и что нужно измерять на сайте, Петр Аброськин, лекция в Школе вебма...Что можно и что нужно измерять на сайте, Петр Аброськин, лекция в Школе вебма...
Что можно и что нужно измерять на сайте, Петр Аброськин, лекция в Школе вебма...
 
Как правильно поставить ТЗ на создание сайта, Алексей Бородкин, лекция в Школ...
Как правильно поставить ТЗ на создание сайта, Алексей Бородкин, лекция в Школ...Как правильно поставить ТЗ на создание сайта, Алексей Бородкин, лекция в Школ...
Как правильно поставить ТЗ на создание сайта, Алексей Бородкин, лекция в Школ...
 
Как защитить свой сайт, Пётр Волков, лекция в Школе вебмастеров
Как защитить свой сайт, Пётр Волков, лекция в Школе вебмастеровКак защитить свой сайт, Пётр Волков, лекция в Школе вебмастеров
Как защитить свой сайт, Пётр Волков, лекция в Школе вебмастеров
 
Как правильно составить структуру сайта, Дмитрий Сатин, лекция в Школе вебмас...
Как правильно составить структуру сайта, Дмитрий Сатин, лекция в Школе вебмас...Как правильно составить структуру сайта, Дмитрий Сатин, лекция в Школе вебмас...
Как правильно составить структуру сайта, Дмитрий Сатин, лекция в Школе вебмас...
 
Технические особенности создания сайта, Дмитрий Васильева, лекция в Школе веб...
Технические особенности создания сайта, Дмитрий Васильева, лекция в Школе веб...Технические особенности создания сайта, Дмитрий Васильева, лекция в Школе веб...
Технические особенности создания сайта, Дмитрий Васильева, лекция в Школе веб...
 
Конструкторы для отдельных элементов сайта, Елена Першина, лекция в Школе веб...
Конструкторы для отдельных элементов сайта, Елена Першина, лекция в Школе веб...Конструкторы для отдельных элементов сайта, Елена Першина, лекция в Школе веб...
Конструкторы для отдельных элементов сайта, Елена Першина, лекция в Школе веб...
 
Контент для интернет-магазинов, Катерина Ерошина, лекция в Школе вебмастеров ...
Контент для интернет-магазинов, Катерина Ерошина, лекция в Школе вебмастеров ...Контент для интернет-магазинов, Катерина Ерошина, лекция в Школе вебмастеров ...
Контент для интернет-магазинов, Катерина Ерошина, лекция в Школе вебмастеров ...
 
Как написать хороший текст для сайта, Катерина Ерошина, лекция в Школе вебмас...
Как написать хороший текст для сайта, Катерина Ерошина, лекция в Школе вебмас...Как написать хороший текст для сайта, Катерина Ерошина, лекция в Школе вебмас...
Как написать хороший текст для сайта, Катерина Ерошина, лекция в Школе вебмас...
 
Usability и дизайн - как не помешать пользователю, Алексей Иванов, лекция в Ш...
Usability и дизайн - как не помешать пользователю, Алексей Иванов, лекция в Ш...Usability и дизайн - как не помешать пользователю, Алексей Иванов, лекция в Ш...
Usability и дизайн - как не помешать пользователю, Алексей Иванов, лекция в Ш...
 
Cайт. Зачем он и каким должен быть, Алексей Иванов, лекция в Школе вебмастеро...
Cайт. Зачем он и каким должен быть, Алексей Иванов, лекция в Школе вебмастеро...Cайт. Зачем он и каким должен быть, Алексей Иванов, лекция в Школе вебмастеро...
Cайт. Зачем он и каким должен быть, Алексей Иванов, лекция в Школе вебмастеро...
 

Дмитрий Куликовский - Построение кластеров, нагрузочное тестирование, capacity planning

  • 1.
  • 2. Построение кластеров, нагрузочное тестирование и capacity planning Куликовский Дмитрий dkulikovsky@yandex-team.ru
  • 3. С чего всё начинается Возможные варианты: 1) Стартап – сервис, который только начинает свою жизнь 2) BigData only – сервис по обработке данных, mapReduce, machine learning и прочий OLAP 3) Проект с историей и большим количеством legacy Нижний колонтитул
  • 4. Важность проектирования • Где разместить проект • Какой уровень резервирования необходим • Что должно войти в SLA • Как проект будет масштабироваться 4
  • 6. Масштабирование • Масштабирование может быть как вертикальным, так и горизонтальным. • Шардирование – основа для горизонтального масштабирования. • Правильная архитектура в целом – основа для вертикального масштабирования 6
  • 7. Deploy Перед тем как начать разрабатывать новый сервис или просто собирать кластер для майнинга данных, нужно ответить на крайне важные вопросы про то как обновлять или откатывать софт в продакшине. • Как выкладывать новый софт? • Как в продакшн выходит новый релиз пакета или ядра? • Релизный цикл, continous integration • Тесты, препродакшн стенд • Как выкладывать хотфиксы или откатываться назад? 7
  • 8. Всегда есть что то еще Всё предусмотреть невозможно, поэтому нужно пользоваться простыми правилами: • Сначала проектировать, потом делать • Unix way – каждый кусок делать должен делать свою работу и делать её хорошо • SLA • и самое главное.. 8
  • 9. 9
  • 10. Новый сервис: свои сложности • Серверов и мощностей всегда мало, их приходится экономить • Сервера живут у какого то хостера или в облаке и их обслуживание затрудненно • Приходится учитывать вероятность того что сервер или диск будут менять долго – день, два, неделю • Если все сервера в одном дц, он может полностью выйти из строя, даже сгореть
  • 11. Новый сервис: свои сложности • Нет большого выбора в решениях по резервированию • Зачастую нет хорошего выбора железа • В облаках есть свои проблемы – например нельзя, докупив новые мощности, решить проблему медленного IO • Множество других проблем из-за того что эксплуатация инфраструктуры отдана внешним людям
  • 12. Выбор софта Правильный выбор софта, который будет использоваться – один из самых важных моментов в жизни сервиса. Использовать ли Mysql или купить лицензию Oracle. Приобрести лицензию на gpfs или использовать cephfs (которое еще даже не production ready).. 12
  • 13. Выбор софта λ Oracle или mysql λ Gpfs или Ceph λ VmWare или OpenStack λ И т.д. 13
  • 14. Новый сервис: очевидные телодвижения • Нужно сразу выделить мощности под разработку и тестирование • Отследить очевидные точки отказа и подумать как их зарезервировать • Мониторинг – что и как мониторить • Графики – опять же, что и как показывать на графиках 14
  • 16. Новый сервис: очевидные телодвижения • Бекапы важных данных • Учесть административные риски: • Новости хостера • Даты контрактов • Ситуация в стране • и т.д. • Удалённые бекапы 16
  • 17. Кластер для big data • Какой софт использовать • Резервирование на уровне приложения или средствами ОС • Как проводить обновление, обслуживание кластеров • real time или работа с большими заданиями 17
  • 18. Проект с историей 18 How did this Happen?
  • 19. Проект с историей • Редко когда есть актуальная и толковая документация, в том числе и по архитектуре проекта • У всех в проекте замылен глаз • Сложно вносить существенные изменения • Продакшн оброс legacy кодом, который некому поддерживать 19
  • 20. Мониторинг В первую очередь надо определится – что за сервис мы предоставляем, по какому показателю клиенты решат что всё работает хорошо. • Если сервис обрабатывает и показывает картинки, что является его показателем работоспособности? • А если сервис занимается составлением большого отчета? • Как видят «правильную» работу сервиса разработчики, админы, директор? 20
  • 21. Что такое SLA • Традиционный пункт в SLA – доступность сервиса: 99% или 99.9999% • Время реакции системы – тайминги или время обработки задания • Скорость реакции на проблемы • Время восстановления после сбоя 21
  • 22. Мониторинг, основы Всегда нужно мониторить сам сервер • Доступность сервера • Загруженность ресурсов: сеть, диски, процессор, память • Ошибки в сети • Здоровье дисков, рейдов 22
  • 23. Мониторинг сервисов На каждый важный процесс должен быть мониторинг. • Если это http сервер, то должна быть проверка, делающая http запрос. • Если делается бекап, то нужно проверять сделался ли он или сразу проверять что он разворачивается на тестовом стенде (комплексная проверка). • Мониторинг должен давать ясный ответ на вопрос о том что сломалось. 23
  • 25. Функциональный мониторинг • Мониторинг показателей SLA. • Асинхронный мониторинг – скрипт отправляет задание в очередь и ждёт результат на другом конце, т.о. Проверяет всю цепочку обработки задания. • Активный мониторинг, который может переводить нагрузку на заглушку, т.н. тыкву (например мониторинг ipvs) 25
  • 26. Графики • Собирайте все возможные метрики как можно чаще • Из основных метрик собирайте dashboard’ы и медитируйте над ними • Графики лучший способ увидеть поведение системы в динамике 26
  • 28. Как задачи предстоит решать • Синхронизация, что выбрать? • Репликация • Rsync • Drdb, gpfs, ceph etc. • Механизмы переключения, автоматика v.s. ручное • Как проверять синхронность, как её восстанавливать 28
  • 30. Что проверять? • Проверка синхронизации данных • Синхронизация конфигурации • «Учения» по переключению на standby 30
  • 33. Всё тоже самое, но только быстрей • Синхронизация стала сложнее, должна работать в обе стороны. • Latency сети выходит на передний план • Split brain – третья «как бы нога» • Распределённые сервисы – кеш, очереди, блокировки • Транспорт (p2p, multicast, rsync, etc.) 33
  • 35. Инфраструктура • Без удобного способа запускать новые сервера больше жить нельзя • Своя инфрастурктура сети, свой днс и firewall • Системы управления конфигурациями: salt, puppet, chef, etc. • Наливка и обновление серверов 35
  • 36. Инфраструктура • Время еще раз подумать про облачные решения • Не каждый дц одинаково полезен • Новые дц больше и железо в них более свежее • Апгрейд серверов или гетерогенная среда и умная балансировка нагрузки 36
  • 37. Кластерные решения • Дерево репликации • Синхронная копия без подтверждения записи или с частичным подтверждением • Полностью синхронная копия • Базы с поддержкой региональности 37
  • 38. Мониторинг не сервера, а сервиса Для кластерных решений с несколькими дц мониторинг выглядит по-другому, на первый план выходит мониторинг сервиса и агрегаты проверок. • Агрегированный мониторинг, понятия кворум и гистерезис. • В SLA включается понятие о степени деградации • Для графиков тоже теперь есть смысл смотреть только на агрегированные значения • Косвенный мониторинг – сломалось на одном хосте, а загорелось на другом 38
  • 39. Планетарная отказоустойчивость Задача не решается чисто техническим путём, использовать датацентры на разных континентах можно будет только если заложить это в архитектуру сервиса. • Локальность пользователя • Шардирование, редиректы, частичная синхронизация • CDN • Распределённый мониторинг 39
  • 40. Новые задачи • Традиционные решения для транспорта данных не работают (например реплика), нужно тюнить сеть и выбирать новые решения. • Синхронизация всего – пакетов, конфигов, доступов, ёмкостей кластеров. • Больше формализации и бюрократии 40
  • 41. Deploy в масштабах планеты • Выкладка новой версии – задача на целый день • Кровавая война за скорость выкладки • Как обновить ядро на 50 000 серверах по всему миру? • Автоматизировать выкладку или нанять команду админов? 41
  • 42. Как за всем уследить 42
  • 43. Как за всем уследить • Dashboard’ы с метриками из SLA • Тщательные разборы инцидентов по мониторигам параметров SLA • Системы управления кластерами и задачи синхронизации версий пакетов, скриптов, конфигов • Максимальное покрытие тестами и нагрузочным тестированием 43
  • 44. Capacity planning • Нагрузочное тестирование • Анализ продуктовых планов • Анализ естественного роста Всегда нужно учитывать рост скорости работы новых серверов, разные компоненты растут по разному. 44
  • 45. Пример 1 Capacity planning в простом сервисе, когда достаточно учитывать только естественный рост. • Найти самый загруженный ресурс • Оценить тренд • Прикинуть, с линейкой, когда ресурс закончится 45
  • 47. Пример 2 Большой кластер с разными по размеру дц Разные по мощности сервера Высокие требования по доступности и качеству Кластера должны выдерживать пиковые нагрузки при подключении новых клиентов 47
  • 49. Анализ планов Планы по продукту «Сервис 2.0» • Запустить новый фронтэнд • Ускорить генерацию отчетов до 1с • Повысить отказоустойчивость • Новые среды для тестирования 49 Планы в железе • По 4 новых сервера в 3х дц • +50% серверов под новое решение = 600*50% = 300 новых серверов • Добавить дополнительную копию данных = + 300 серверов • + 30 новых серверов под виртуалки и тестовый стенд
  • 50. Что почитать • Web Operations: Keeping the Data On Time https://clck.ru/9MbcW • The Art of Capacity Planning: Scaling Web Resources https://clck.ru/9MbdF • Guerrilla Capacity Planning https://clck.ru/9MbdZ 50
  • 51. Что почитать • Искусство программирования для Unix https://clck.ru/9Mbdy • Linux Kernel Development (3rd Edition) https:// clck.ru/9Mbe8 • Data Analysis with Open Source Tools https://clck.ru/9MbeU • UNIX. Руководство системного администратора. Для профессионалов https://clck.ru/9MbfZ 51