Маштабирование веб-приложений

Post on 16-Jun-2015

325 views 4 download

description

Все сервисы Яндекса, даже инфраструктурные, испытывают огромную нагрузку и должны быть доступны постоянно. Доклад посвящен вопросам масштабирования систем для обеспечения их повышенной производительности и доступности. Будет рассказано также о мониторинге и планировании нагрузки, выравнивании производительности веб-сервиса, методах балансировки нагрузки и разделения данных.

Transcript of Маштабирование веб-приложений

1

2

Масштабирование

веб-приложений

Олег Алистратов Руководитель офиса разработки в Киеве

Я.Студент, Киев, 2014

3

Зачем?

Высокая производительность

Высокая доступность

4

Мониторинг

o Системы мониторинга o Nagios, Zabbix, Cacti, Ganglia

o Объекты мониторинга o ОС и аппаратура

o Стороннее ПО (БД, веб-сервер)

o Собственное ПО

5

— Приборы? — Семнадцать!

6

Метрики

o SLA o Время ответа, p95: 300 мс

o Доля ошибок: 0,1%

7

Масштабирование

Вертикальное

Горизонтальное

8

Облака

o PaaS o Amazon WS

o GAE

o Частное облако o Cocaine api.yandex.ru/cocaine/

9

Архитектура

10

Хранение файлов

o rsync

o NFS

o NoSQL как хранилище файлов o Elliptics api.yandex.ru/elliptics/

11

Базы данных

o Репликация o master-slave

o multi-master

o Разделение таблиц

o Разделение данных (шардирование) o горизонтальное

o вертикальное

12

Трафик

13

Трафик

14

Прочее

o Сервис распределенных блокировок o Zookeeper

o Распределенная очередь задач o Celery

o Kafka

15

Тестирование

o Нагрузочное o JMeter

o Siege

o Яндекс.Танк github.com/yandex-load

o Интеграционное o Jenkins

o TeamCity

o Travis CI

16

Эксплуатация

o Служба конфигурирования

o Служба развертывания o Горячая замена кода

o Непрерывный мониторинг

17

Спасибо!

Олег Алистратов

wmute@yandex-team.ru