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

       EXPERT Labs
   Днепропетровск, 2011
Зачем?

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



      Надо ли?
А если надо, то когда?
Приборы, Петька!
Мониторинг
Мониторинг
Второй вопрос




Сколько денег?
Масштабирование
   Вертикальное




   Горизонтальное
Смета
Вид                      Стоимость          Абонплата
Cloud                                   0               320
Dedicated server                        0               250
Collocation                          5000               96


• Окупаемость collocation: ≈ 3 года
Неполная загрузка
Вид                          Стоимость          Абонплата
Cloud                                       0               120
Dedicated server                            0               250
Collocation                              5000               96


• Деньги дешевеют
• Оборудование тоже
Типичная архитектура
Балансировка веб-сервера

Распределяющий     Балансировка на
узел               стороне клиента
• SPoF             • Усложнение логики

                   • Меньшая гибкость
Приложение

• CORBA

• Gearman

• Erlang
Файлы

• rsync

• NFS

• NoSQL
База данных
• Репликация
• Разделение таблиц
• Разделение данных (шардинг)
  – горизонтально
  – вертикально
Репликация
•   Single
•   Master-Slave
•   Master-Slaven
•   Master-Master (Кластер БД)
Трафик
Внезапно!
Трафик SQL
SELECT * FROM table

SELECT fields FROM table WHERE …
Опять вопрос



И как всем этим
   управлять?
Инфраструктура

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

• Автоматическое развертывание

• Непрерывный мониторинг
Из желудей и спичек
          SQL-сервер:
          • lockd
          • Очередь сообщений
          • NoSQL хранилище
Спасибо!
Олег Алистратов
 ali@ali.org.ua

Web application scalability