Рост курса валют vs рост числа пользователей. Как banki.ru пережил утроение нагрузки за неделю
1. Рост курса валют vs рост
числа пользователей
Как banki.ru пережил утроение нагрузки за неделю
Роман
Ивлиев
Директор по
информацинным
технологиям
Банки.ру
4. Мы ходим по земле
• PHP 5.х + Symfony 2 + Yii
• Postgres(9.х)+MariaDB
• Memcache+Redis
• Rabbit
• Nginx + Apache
• Битрикс
• Зоопарк осей на 10 серверах (FreeBSD, CentOS и ещё)
Нам 10 лет, в департаменте ИТ 40 человек, мы принимаем 500К
уников в сутки, и мы выручили в 2014 почти 600КК рублей.
7. О чем расскажу?
• Как мы пережили скачок?
• Почему мы не сделали всё это раньше?
8. О чем расскажу?
• Как мы пережили скачок?
• Почему мы не сделали всё это раньше?
• А что мы делаем теперь?
9. О чем расскажу?
• Как мы пережили скачок?
• Почему мы не сделали всё это раньше?
• А что мы делаем теперь?
• А что будет, если ЦБ повторит?
10. О чем расскажу?
• Как мы пережили скачок?
• Почему мы не сделали всё это раньше?
• А что мы делаем теперь?
• А что будет, если ЦБ повторит?
• Немного выводов и мудрости
35. Глазами администратора
• Балансировка сервисов по серверам в
реальном времени
• Виртуализация под задачи
• Бонус-трек: Экстренный порт на линукс,
чтобы размножаться пачкованием.
51. Глазами менеджера
• «Ручное» управление
• Главный враг - паника
• Управляет процессом всегда кто-то один
• Быстрый откат
52. Глазами менеджера
• «Ручное» управление
• Главный враг - паника
• Управляет процессом всегда кто-то один
• Быстрый откат
• Все изменения в Вики.
53. Почему мы не сделали этого раньше?
Крутые отмазки:
• На самом деле планы были, но не такие
масштабные
• Бизнес не хочет тратиться на такой запас по
мощности
• Сильно-связный код
54. Почему мы не сделали этого раньше?
Менее крутые:
• Бизнесовые задачи кушают время лучших
умов
• Нет полноценной нагрузочной среды
• А надо ли это делать на два дня?
56. А что мы делаем теперь?
• Постепенно выпиливаем то, что осталось с
учётом опыта тех дней
57. А что мы делаем теперь?
• Постепенно выпиливаем то, что осталось с
учётом опыта тех дней
• Немного поменяли приоритеты в вопросах
замены сервисов
58. А что мы делаем теперь?
• Постепенно выпиливаем то, что осталось с
учётом опыта тех дней
• Немного поменяли приоритеты в вопросах
замены сервисов
• Прикупили пару новых мощных железяк
59. А что мы делаем теперь?
• Постепенно выпиливаем то, что осталось с
учётом опыта тех дней
• Немного поменяли приоритеты в вопросах
замены сервисов
• Прикупили пару новых мощных железяк
• Вкладываемся в SOA
60. А что мы сделаем, если повторится декабрь?
• Мы точно продержимся гораздо дольше
61. А что мы сделаем, если повторится декабрь?
• Мы точно продержимся гораздо дольше
• Найдем новые узкие места
62. А что мы сделаем, если повторится декабрь?
• Мы точно продержимся гораздо дольше
• Найдем новые узкие места
• Придумаем, как их убрать и
63. А что мы сделаем, если повторится декабрь?
• Мы точно продержимся гораздо дольше
• Найдем новые узкие места
• Придумаем, как их убрать и
• Наверняка уберём
66. • 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 - анализ и визуализация логов