Transcript

Рост курса валют vs рост

числа пользователей

Как banki.ru пережил утроение нагрузки за неделю

Роман

Ивлиев

Директор по

информацинным

технологиям

Банки.ру

2002-....

• Тестировщик

• Разработчик

• Руководитель разработчиков

• Руководитель тестировщиков

• Руководитель проектов

• CTO

• CIO

Кто я?

Мы ходим по земле

• PHP 5.х + Symfony 2 + Yii

• Postgres(9.х)+MariaDB

• Memcache+Redis

• Rabbit

• Nginx + Apache

• Битрикс

• Зоопарк осей на 10 серверах (FreeBSD, CentOS и ещё)

Нам 10 лет, в департаменте ИТ 40 человек, мы принимаем 500К

уников в сутки, и мы выручили в 2014 почти 600КК рублей.

Это очень важно!

О чем расскажу?

• Как мы пережили скачок?

О чем расскажу?

• Как мы пережили скачок?

• Почему мы не сделали всё это раньше?

О чем расскажу?

• Как мы пережили скачок?

• Почему мы не сделали всё это раньше?

• А что мы делаем теперь?

О чем расскажу?

• Как мы пережили скачок?

• Почему мы не сделали всё это раньше?

• А что мы делаем теперь?

• А что будет, если ЦБ повторит?

О чем расскажу?

• Как мы пережили скачок?

• Почему мы не сделали всё это раньше?

• А что мы делаем теперь?

• А что будет, если ЦБ повторит?

• Немного выводов и мудрости

Знали ли мы про маневры ЦБ?

Знали ли мы про маневры ЦБ?

Глазами администратора

Глазами администратора

• Анализ логов и перенастройка серверов

Глазами администратора

• Анализ логов и перенастройка серверов

• Включение/отключение логирования

Глазами администратора

• Анализ логов и перенастройка серверов

• Включение/отключение логирования

• Включение/отключение статистик

Глазами администратора

• Анализ логов и перенастройка серверов

• Включение/отключение логирования

• Включение/отключение статистик

• Ок, Гугл, выручай!

Окей, Гугл, выручай!

Глазами администратора

• Анализ логов и перенастройка серверов

• Включение/отключение логирования

• Включение/отключение статистик

• Ок, Гугл, выручай!

• Управляемая деградация

Управляемая деградация

Управляемая деградация

• «Ручное» регулирование числа

пользователей

Управляемая деградация

• «Ручное» регулирование числа

пользователей

• Отключение части функционала

Управляемая деградация

• «Ручное» регулирование числа

пользователей

• Отключение части функционала

• Напрягается саппорт, а не сервера

Прихвостни ЦБ!!!!

Пустите посмотреть курсы доллара!!!!

Прихвостни ЦБ!!!!

Пустите посмотреть курсы доллара!!!!

Вы это специально??!!!!

Прихвостни ЦБ!!!!

Пустите посмотреть курсы доллара!!!!

Вы это специально??!!!!

Прихвостни ЦБ!!!!

Да @БВАШ@Ь!!!!

Пустите посмотреть курсы доллара!!!!

Вы это специально??!!!!

Прихвостни ЦБ!!!!

Да стопудов это же вы так специально!!!!

Да @БВАШ@Ь!!!!

Глазами администратора

• Балансировка сервисов по серверам в

реальном времени

Глазами администратора

• Балансировка сервисов по серверам в

реальном времени

• Виртуализация под задачи

Глазами администратора

• Балансировка сервисов по серверам в

реальном времени

• Виртуализация под задачи

• Бонус-трек: Экстренный порт на линукс,

чтобы размножаться пачкованием.

Глазами разработчика

Глазами разработчика

• Слоулоги (php, СУБД, web, zabbix)

Глазами разработчика

• Слоулоги (php, СУБД, web, zabbix)

• Память предков и личного состава

Глазами разработчика

• Слоулоги (php, СУБД, web, zabbix)

• Память предков и личного состава

• Летопись технического долга

Глазами разработчика

• Битва с джойнами, индексами и

сортировками

Глазами разработчика

• Битва с джойнами и сортировками

• Отложенные вычисления и предварительная

подготовка данных

Глазами менеджера

Глазами менеджера

• «Ручное» управление

Глазами менеджера

• «Ручное» управление

• Главный враг - паника

Глазами менеджера

• «Ручное» управление

• Главный враг - паника

• Управляет процессом всегда кто-то один

Глазами менеджера

• «Ручное» управление

• Главный враг - паника

• Управляет процессом всегда кто-то один

• Быстрый откат

Глазами менеджера

• «Ручное» управление

• Главный враг - паника

• Управляет процессом всегда кто-то один

• Быстрый откат

• Все изменения в Вики.

Почему мы не сделали этого раньше?

Крутые отмазки:

• На самом деле планы были, но не такие

масштабные

• Бизнес не хочет тратиться на такой запас по

мощности

• Сильно-связный код

Почему мы не сделали этого раньше?

Менее крутые:

• Бизнесовые задачи кушают время лучших

умов

• Нет полноценной нагрузочной среды

• А надо ли это делать на два дня?

Вот пример последнего тезиса

А что мы делаем теперь?

• Постепенно выпиливаем то, что осталось с

учётом опыта тех дней

А что мы делаем теперь?

• Постепенно выпиливаем то, что осталось с

учётом опыта тех дней

• Немного поменяли приоритеты в вопросах

замены сервисов

А что мы делаем теперь?

• Постепенно выпиливаем то, что осталось с

учётом опыта тех дней

• Немного поменяли приоритеты в вопросах

замены сервисов

• Прикупили пару новых мощных железяк

А что мы делаем теперь?

• Постепенно выпиливаем то, что осталось с

учётом опыта тех дней

• Немного поменяли приоритеты в вопросах

замены сервисов

• Прикупили пару новых мощных железяк

• Вкладываемся в SOA

А что мы сделаем, если повторится декабрь?

• Мы точно продержимся гораздо дольше

А что мы сделаем, если повторится декабрь?

• Мы точно продержимся гораздо дольше

• Найдем новые узкие места

А что мы сделаем, если повторится декабрь?

• Мы точно продержимся гораздо дольше

• Найдем новые узкие места

• Придумаем, как их убрать и

А что мы сделаем, если повторится декабрь?

• Мы точно продержимся гораздо дольше

• Найдем новые узкие места

• Придумаем, как их убрать и

• Наверняка уберём

Выводы и мудрость

@dumtest

Роман

Ивлиев

Директор по

информационным

технологиям

Банки.ру

Спасибо!

Вопросы?

[email protected]

• http://www.percona.com/doc/percona-toolkit/2.2/pt-query-digest.html -

анализ логов MySQL

• https://github.com/dalibo/pgbadger - анализ логов PostgreSQL

• http://pinba.org – сбор данных о работе приложения

• https://github.com/intaro/pinboard - визуализатор для данных Pinba

• https://github.com/phacility/xhprof - PHP-профайлер

• http://www.zabbix.com/ru/ - мониторинг системы (физические и

логические характеристики)

• http://www.slideshare.net/dumtest/ss-32903174 - мой рассказ про

построение высоконагруженных систем с примерами

• https://github.com/elastic/kibana - анализ и визуализация логов