SlideShare a Scribd company logo
1 of 66
Рост курса валют 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
Роман
Ивлиев
Директор по
информационным
технологиям
Банки.ру
Спасибо!
Вопросы?
roman.ivliev@mail.ru
• 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 - анализ и визуализация логов

More Related Content

Viewers also liked

Как мы помогаем тестировщикам делать их работу лучше
Как мы помогаем тестировщикам делать их работу лучшеКак мы помогаем тестировщикам делать их работу лучше
Как мы помогаем тестировщикам делать их работу лучшеRoman Ivliev
 
О фреймворках Backend conf 2016
О фреймворках Backend conf 2016О фреймворках Backend conf 2016
О фреймворках Backend conf 2016Roman Ivliev
 
Тренеры и тренинги.
Тренеры и тренинги.Тренеры и тренинги.
Тренеры и тренинги.Roman Ivliev
 
Всему своё время Highload Junior 2016
Всему своё время   Highload Junior  2016Всему своё время   Highload Junior  2016
Всему своё время Highload Junior 2016Roman Ivliev
 
Темная сторона метрик
Темная сторона метрикТемная сторона метрик
Темная сторона метрикRoman Ivliev
 
Murder of sarah payne
Murder of sarah payneMurder of sarah payne
Murder of sarah paynerawrmoney10
 
Sandra & noelia INFO 4º
Sandra & noelia INFO 4ºSandra & noelia INFO 4º
Sandra & noelia INFO 4ºsandra_y_noelia
 
презентация зоопарк
презентация зоопаркпрезентация зоопарк
презентация зоопаркjekah
 
Marketing upulsa mubu
Marketing upulsa mubuMarketing upulsa mubu
Marketing upulsa mubumegaanto
 
景美「交點閱讀」範例
景美「交點閱讀」範例景美「交點閱讀」範例
景美「交點閱讀」範例moontrip Lee
 
Programa SIART 2013
Programa SIART 2013Programa SIART 2013
Programa SIART 2013telArtes
 
Jackson Pollock (1)
Jackson Pollock (1)Jackson Pollock (1)
Jackson Pollock (1)ajstanley94
 

Viewers also liked (14)

Как мы помогаем тестировщикам делать их работу лучше
Как мы помогаем тестировщикам делать их работу лучшеКак мы помогаем тестировщикам делать их работу лучше
Как мы помогаем тестировщикам делать их работу лучше
 
О фреймворках Backend conf 2016
О фреймворках Backend conf 2016О фреймворках Backend conf 2016
О фреймворках Backend conf 2016
 
Тренеры и тренинги.
Тренеры и тренинги.Тренеры и тренинги.
Тренеры и тренинги.
 
Всему своё время Highload Junior 2016
Всему своё время   Highload Junior  2016Всему своё время   Highload Junior  2016
Всему своё время Highload Junior 2016
 
Темная сторона метрик
Темная сторона метрикТемная сторона метрик
Темная сторона метрик
 
Murder of sarah payne
Murder of sarah payneMurder of sarah payne
Murder of sarah payne
 
Sandra & noelia INFO 4º
Sandra & noelia INFO 4ºSandra & noelia INFO 4º
Sandra & noelia INFO 4º
 
ENSAMBLES EN SOLIDWORKS 6 TRENES
ENSAMBLES EN SOLIDWORKS 6 TRENES ENSAMBLES EN SOLIDWORKS 6 TRENES
ENSAMBLES EN SOLIDWORKS 6 TRENES
 
презентация зоопарк
презентация зоопаркпрезентация зоопарк
презентация зоопарк
 
Marketing upulsa mubu
Marketing upulsa mubuMarketing upulsa mubu
Marketing upulsa mubu
 
HBR ARTICLE
HBR ARTICLEHBR ARTICLE
HBR ARTICLE
 
景美「交點閱讀」範例
景美「交點閱讀」範例景美「交點閱讀」範例
景美「交點閱讀」範例
 
Programa SIART 2013
Programa SIART 2013Programa SIART 2013
Programa SIART 2013
 
Jackson Pollock (1)
Jackson Pollock (1)Jackson Pollock (1)
Jackson Pollock (1)
 

Similar to Мой рассказ на Codefest 2015 о том, как мы пережили рост нагрузки

CodeFest 2012. Ивлиев Р. — Аккуратно переезжаем, или тестирование в проектах ...
CodeFest 2012. Ивлиев Р. — Аккуратно переезжаем, или тестирование в проектах ...CodeFest 2012. Ивлиев Р. — Аккуратно переезжаем, или тестирование в проектах ...
CodeFest 2012. Ивлиев Р. — Аккуратно переезжаем, или тестирование в проектах ...CodeFest
 
Всему своё время / Роман Ивлиев (Банки.ру)
Всему своё время / Роман Ивлиев (Банки.ру)Всему своё время / Роман Ивлиев (Банки.ру)
Всему своё время / Роман Ивлиев (Банки.ру)Ontico
 
Архитектура поиска в Booking.com / Иван Круглов (Booking.com)
Архитектура поиска в Booking.com / Иван Круглов (Booking.com)Архитектура поиска в Booking.com / Иван Круглов (Booking.com)
Архитектура поиска в Booking.com / Иван Круглов (Booking.com)Ontico
 
Цикл разработки и внедрения функционала в Мамбе (Михаил Буйлов)
Цикл разработки и внедрения функционала в Мамбе (Михаил Буйлов)Цикл разработки и внедрения функционала в Мамбе (Михаил Буйлов)
Цикл разработки и внедрения функционала в Мамбе (Михаил Буйлов)Ontico
 
Архитектура поиска в Booking.com
Архитектура поиска в Booking.comАрхитектура поиска в Booking.com
Архитектура поиска в Booking.comIvan Kruglov
 
Переход с Objective-C на Swift — все ли так просто? / Олег Алексеенко (SuperJob)
Переход с Objective-C на Swift — все ли так просто? / Олег Алексеенко (SuperJob)Переход с Objective-C на Swift — все ли так просто? / Олег Алексеенко (SuperJob)
Переход с Objective-C на Swift — все ли так просто? / Олег Алексеенко (SuperJob)Ontico
 
Про тестирование миграций
Про тестирование миграцийПро тестирование миграций
Про тестирование миграцийRoman Ivliev
 
13 октября, DEV {web} - конференция о Highload веб-разработке. "Грабли при ма...
13 октября, DEV {web} - конференция о Highload веб-разработке. "Грабли при ма...13 октября, DEV {web} - конференция о Highload веб-разработке. "Грабли при ма...
13 октября, DEV {web} - конференция о Highload веб-разработке. "Грабли при ма...IT-Portfolio
 
Внедрение измениений. Рефакторинг Vs реинжиниринг
Внедрение измениений. Рефакторинг Vs реинжинирингВнедрение измениений. Рефакторинг Vs реинжиниринг
Внедрение измениений. Рефакторинг Vs реинжинирингRina Uzhevko
 
Как мы готовим MySQL
Как мы готовим MySQLКак мы готовим MySQL
Как мы готовим MySQLBadoo Development
 
Lean Lego Game for Agileee 2012
Lean Lego Game for Agileee 2012Lean Lego Game for Agileee 2012
Lean Lego Game for Agileee 2012Dmytro Mindra
 
Где живут Ваши объявления / Тюрин Михаил (Avito)
Где живут Ваши объявления / Тюрин Михаил (Avito)Где живут Ваши объявления / Тюрин Михаил (Avito)
Где живут Ваши объявления / Тюрин Михаил (Avito)Ontico
 
Типичные ошибки внедрения Lean и Agile
Типичные ошибки внедрения Lean и AgileТипичные ошибки внедрения Lean и Agile
Типичные ошибки внедрения Lean и AgileMagneta AI
 
Платформа Delphix. Все гениальное - просто!
Платформа Delphix. Все гениальное - просто!Платформа Delphix. Все гениальное - просто!
Платформа Delphix. Все гениальное - просто!Sergii Stukan
 
Как мы готовим MySQL
 Как мы готовим MySQL  Как мы готовим MySQL
Как мы готовим MySQL Badoo Development
 
Как мы готовим MySQL / Николай Королёв (Badoo)
Как мы готовим MySQL / Николай Королёв (Badoo)Как мы готовим MySQL / Николай Королёв (Badoo)
Как мы готовим MySQL / Николай Королёв (Badoo)Ontico
 
Tk conf daniel-podolsky-sqlvsnosql
Tk conf daniel-podolsky-sqlvsnosqlTk conf daniel-podolsky-sqlvsnosql
Tk conf daniel-podolsky-sqlvsnosqlDaniel Podolsky
 
SQL vs NoSQL: 
проблема выбора
SQL vs NoSQL: 
проблема выбораSQL vs NoSQL: 
проблема выбора
SQL vs NoSQL: 
проблема выбораTKConf
 
CodeFest 2012. Аксёнов А. — Как мы разрабатываем Sphinx
CodeFest 2012. Аксёнов А. — Как мы разрабатываем SphinxCodeFest 2012. Аксёнов А. — Как мы разрабатываем Sphinx
CodeFest 2012. Аксёнов А. — Как мы разрабатываем SphinxCodeFest
 
Распространенные ошибки применения баз данных (Сергей Аверин)
Распространенные ошибки применения баз данных (Сергей Аверин)Распространенные ошибки применения баз данных (Сергей Аверин)
Распространенные ошибки применения баз данных (Сергей Аверин)Ontico
 

Similar to Мой рассказ на Codefest 2015 о том, как мы пережили рост нагрузки (20)

CodeFest 2012. Ивлиев Р. — Аккуратно переезжаем, или тестирование в проектах ...
CodeFest 2012. Ивлиев Р. — Аккуратно переезжаем, или тестирование в проектах ...CodeFest 2012. Ивлиев Р. — Аккуратно переезжаем, или тестирование в проектах ...
CodeFest 2012. Ивлиев Р. — Аккуратно переезжаем, или тестирование в проектах ...
 
Всему своё время / Роман Ивлиев (Банки.ру)
Всему своё время / Роман Ивлиев (Банки.ру)Всему своё время / Роман Ивлиев (Банки.ру)
Всему своё время / Роман Ивлиев (Банки.ру)
 
Архитектура поиска в Booking.com / Иван Круглов (Booking.com)
Архитектура поиска в Booking.com / Иван Круглов (Booking.com)Архитектура поиска в Booking.com / Иван Круглов (Booking.com)
Архитектура поиска в Booking.com / Иван Круглов (Booking.com)
 
Цикл разработки и внедрения функционала в Мамбе (Михаил Буйлов)
Цикл разработки и внедрения функционала в Мамбе (Михаил Буйлов)Цикл разработки и внедрения функционала в Мамбе (Михаил Буйлов)
Цикл разработки и внедрения функционала в Мамбе (Михаил Буйлов)
 
Архитектура поиска в Booking.com
Архитектура поиска в Booking.comАрхитектура поиска в Booking.com
Архитектура поиска в Booking.com
 
Переход с Objective-C на Swift — все ли так просто? / Олег Алексеенко (SuperJob)
Переход с Objective-C на Swift — все ли так просто? / Олег Алексеенко (SuperJob)Переход с Objective-C на Swift — все ли так просто? / Олег Алексеенко (SuperJob)
Переход с Objective-C на Swift — все ли так просто? / Олег Алексеенко (SuperJob)
 
Про тестирование миграций
Про тестирование миграцийПро тестирование миграций
Про тестирование миграций
 
13 октября, DEV {web} - конференция о Highload веб-разработке. "Грабли при ма...
13 октября, DEV {web} - конференция о Highload веб-разработке. "Грабли при ма...13 октября, DEV {web} - конференция о Highload веб-разработке. "Грабли при ма...
13 октября, DEV {web} - конференция о Highload веб-разработке. "Грабли при ма...
 
Внедрение измениений. Рефакторинг Vs реинжиниринг
Внедрение измениений. Рефакторинг Vs реинжинирингВнедрение измениений. Рефакторинг Vs реинжиниринг
Внедрение измениений. Рефакторинг Vs реинжиниринг
 
Как мы готовим MySQL
Как мы готовим MySQLКак мы готовим MySQL
Как мы готовим MySQL
 
Lean Lego Game for Agileee 2012
Lean Lego Game for Agileee 2012Lean Lego Game for Agileee 2012
Lean Lego Game for Agileee 2012
 
Где живут Ваши объявления / Тюрин Михаил (Avito)
Где живут Ваши объявления / Тюрин Михаил (Avito)Где живут Ваши объявления / Тюрин Михаил (Avito)
Где живут Ваши объявления / Тюрин Михаил (Avito)
 
Типичные ошибки внедрения Lean и Agile
Типичные ошибки внедрения Lean и AgileТипичные ошибки внедрения Lean и Agile
Типичные ошибки внедрения Lean и Agile
 
Платформа Delphix. Все гениальное - просто!
Платформа Delphix. Все гениальное - просто!Платформа Delphix. Все гениальное - просто!
Платформа Delphix. Все гениальное - просто!
 
Как мы готовим MySQL
 Как мы готовим MySQL  Как мы готовим MySQL
Как мы готовим MySQL
 
Как мы готовим MySQL / Николай Королёв (Badoo)
Как мы готовим MySQL / Николай Королёв (Badoo)Как мы готовим MySQL / Николай Королёв (Badoo)
Как мы готовим MySQL / Николай Королёв (Badoo)
 
Tk conf daniel-podolsky-sqlvsnosql
Tk conf daniel-podolsky-sqlvsnosqlTk conf daniel-podolsky-sqlvsnosql
Tk conf daniel-podolsky-sqlvsnosql
 
SQL vs NoSQL: 
проблема выбора
SQL vs NoSQL: 
проблема выбораSQL vs NoSQL: 
проблема выбора
SQL vs NoSQL: 
проблема выбора
 
CodeFest 2012. Аксёнов А. — Как мы разрабатываем Sphinx
CodeFest 2012. Аксёнов А. — Как мы разрабатываем SphinxCodeFest 2012. Аксёнов А. — Как мы разрабатываем Sphinx
CodeFest 2012. Аксёнов А. — Как мы разрабатываем Sphinx
 
Распространенные ошибки применения баз данных (Сергей Аверин)
Распространенные ошибки применения баз данных (Сергей Аверин)Распространенные ошибки применения баз данных (Сергей Аверин)
Распространенные ошибки применения баз данных (Сергей Аверин)
 

More from Roman Ivliev

Точка кипения: проектирование крупных веб-систем
Точка кипения:  проектирование крупных веб-системТочка кипения:  проектирование крупных веб-систем
Точка кипения: проектирование крупных веб-системRoman Ivliev
 
Про построение нагруженных систем
Про построение нагруженных системПро построение нагруженных систем
Про построение нагруженных системRoman Ivliev
 
Аквариум своими руками
Аквариум своими рукамиАквариум своими руками
Аквариум своими рукамиRoman Ivliev
 
Тестирование для программистов
Тестирование для программистовТестирование для программистов
Тестирование для программистовRoman Ivliev
 
Qualitative battle for the quantity final
Qualitative battle for the quantity finalQualitative battle for the quantity final
Qualitative battle for the quantity finalRoman Ivliev
 
Heavy metal testing Part 3
Heavy metal testing Part 3Heavy metal testing Part 3
Heavy metal testing Part 3Roman Ivliev
 
Heavy metal testing Part 1 and 2
Heavy metal testing Part 1 and 2Heavy metal testing Part 1 and 2
Heavy metal testing Part 1 and 2Roman Ivliev
 

More from Roman Ivliev (8)

Точка кипения: проектирование крупных веб-систем
Точка кипения:  проектирование крупных веб-системТочка кипения:  проектирование крупных веб-систем
Точка кипения: проектирование крупных веб-систем
 
Soa tester view
Soa tester viewSoa tester view
Soa tester view
 
Про построение нагруженных систем
Про построение нагруженных системПро построение нагруженных систем
Про построение нагруженных систем
 
Аквариум своими руками
Аквариум своими рукамиАквариум своими руками
Аквариум своими руками
 
Тестирование для программистов
Тестирование для программистовТестирование для программистов
Тестирование для программистов
 
Qualitative battle for the quantity final
Qualitative battle for the quantity finalQualitative battle for the quantity final
Qualitative battle for the quantity final
 
Heavy metal testing Part 3
Heavy metal testing Part 3Heavy metal testing Part 3
Heavy metal testing Part 3
 
Heavy metal testing Part 1 and 2
Heavy metal testing Part 1 and 2Heavy metal testing Part 1 and 2
Heavy metal testing Part 1 and 2
 

Мой рассказ на Codefest 2015 о том, как мы пережили рост нагрузки