SlideShare ist ein Scribd-Unternehmen logo
1 von 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 - анализ и визуализация логов

Weitere ähnliche Inhalte

Andere mochten auch

CodeFest 2014. Christopher Bennage — CQRS Journey: scalable, available, and m...
CodeFest 2014. Christopher Bennage — CQRS Journey: scalable, available, and m...CodeFest 2014. Christopher Bennage — CQRS Journey: scalable, available, and m...
CodeFest 2014. Christopher Bennage — CQRS Journey: scalable, available, and m...
CodeFest
 
CodeFest 2014. Лысковский А. — Семь тезисов о карьере менеджера
CodeFest 2014. Лысковский А. — Семь тезисов о карьере менеджераCodeFest 2014. Лысковский А. — Семь тезисов о карьере менеджера
CodeFest 2014. Лысковский А. — Семь тезисов о карьере менеджера
CodeFest
 
CodeFest 2011. Галако О. — О Scala и Lift для тех, кому мало Java, и не только
CodeFest 2011. Галако О. — О Scala и Lift для тех, кому мало Java, и не толькоCodeFest 2011. Галако О. — О Scala и Lift для тех, кому мало Java, и не только
CodeFest 2011. Галако О. — О Scala и Lift для тех, кому мало Java, и не только
CodeFest
 
CodeFest 2014. Коновалов А., Шкурко Д. — Разработка и оптимизация приложений ...
CodeFest 2014. Коновалов А., Шкурко Д. — Разработка и оптимизация приложений ...CodeFest 2014. Коновалов А., Шкурко Д. — Разработка и оптимизация приложений ...
CodeFest 2014. Коновалов А., Шкурко Д. — Разработка и оптимизация приложений ...
CodeFest
 

Andere mochten auch (20)

CQRS: A More Effective Way of Writing the Same Applications
CQRS: A More Effective Way of Writing the Same ApplicationsCQRS: A More Effective Way of Writing the Same Applications
CQRS: A More Effective Way of Writing the Same Applications
 
Развитие управления проектами и критериев качества в ИТ
Развитие управления проектами и критериев качества в ИТРазвитие управления проектами и критериев качества в ИТ
Развитие управления проектами и критериев качества в ИТ
 
Антон Турецкий
Антон ТурецкийАнтон Турецкий
Антон Турецкий
 
Thomas Lobinger
Thomas LobingerThomas Lobinger
Thomas Lobinger
 
Aspect-Oriented Programming in PHP
Aspect-Oriented Programming in PHPAspect-Oriented Programming in PHP
Aspect-Oriented Programming in PHP
 
Здравый смысл, брендинг, веб и как всё это связано
Здравый смысл, брендинг, веб и как всё это связаноЗдравый смысл, брендинг, веб и как всё это связано
Здравый смысл, брендинг, веб и как всё это связано
 
Grail: шаги для ваших Python-тестов
Grail: шаги для ваших Python-тестовGrail: шаги для ваших Python-тестов
Grail: шаги для ваших Python-тестов
 
CodeFest 2014. Christopher Bennage — CQRS Journey: scalable, available, and m...
CodeFest 2014. Christopher Bennage — CQRS Journey: scalable, available, and m...CodeFest 2014. Christopher Bennage — CQRS Journey: scalable, available, and m...
CodeFest 2014. Christopher Bennage — CQRS Journey: scalable, available, and m...
 
Эффективная, вовлеченная команда энтузиастов. А ты готов к этому?
Эффективная, вовлеченная команда энтузиастов. А ты готов к этому?Эффективная, вовлеченная команда энтузиастов. А ты готов к этому?
Эффективная, вовлеченная команда энтузиастов. А ты готов к этому?
 
Мониторинг приложений ASP.NET на основе сервиса Application Insights
Мониторинг приложений ASP.NET на основе сервиса Application InsightsМониторинг приложений ASP.NET на основе сервиса Application Insights
Мониторинг приложений ASP.NET на основе сервиса Application Insights
 
CodeFest 2014. Лысковский А. — Семь тезисов о карьере менеджера
CodeFest 2014. Лысковский А. — Семь тезисов о карьере менеджераCodeFest 2014. Лысковский А. — Семь тезисов о карьере менеджера
CodeFest 2014. Лысковский А. — Семь тезисов о карьере менеджера
 
Дмитрий Стогов
Дмитрий СтоговДмитрий Стогов
Дмитрий Стогов
 
CodeFest 2011. Галако О. — О Scala и Lift для тех, кому мало Java, и не только
CodeFest 2011. Галако О. — О Scala и Lift для тех, кому мало Java, и не толькоCodeFest 2011. Галако О. — О Scala и Lift для тех, кому мало Java, и не только
CodeFest 2011. Галако О. — О Scala и Lift для тех, кому мало Java, и не только
 
Денис Иванов
Денис ИвановДенис Иванов
Денис Иванов
 
CodeFest 2014. Коновалов А., Шкурко Д. — Разработка и оптимизация приложений ...
CodeFest 2014. Коновалов А., Шкурко Д. — Разработка и оптимизация приложений ...CodeFest 2014. Коновалов А., Шкурко Д. — Разработка и оптимизация приложений ...
CodeFest 2014. Коновалов А., Шкурко Д. — Разработка и оптимизация приложений ...
 
Дмитрий Евдокимов
Дмитрий ЕвдокимовДмитрий Евдокимов
Дмитрий Евдокимов
 
Frontend: Путешествие в мир модульных загрузчиков
Frontend: Путешествие в мир модульных загрузчиковFrontend: Путешествие в мир модульных загрузчиков
Frontend: Путешествие в мир модульных загрузчиков
 
Лучший frontend-фреймворк, и почему вы его не хотите
Лучший frontend-фреймворк, и почему вы его не хотитеЛучший frontend-фреймворк, и почему вы его не хотите
Лучший frontend-фреймворк, и почему вы его не хотите
 
Qubell — Component Model
Qubell — Component ModelQubell — Component Model
Qubell — Component Model
 
Функциональное программирование в браузере
Функциональное программирование в браузереФункциональное программирование в браузере
Функциональное программирование в браузере
 

Ähnlich wie Рост курса валют vs рост числа пользователей. Как banki.ru пережил утроение нагрузки за неделю

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.com
Ivan Kruglov
 
13 октября, DEV {web} - конференция о Highload веб-разработке. "Грабли при ма...
13 октября, DEV {web} - конференция о Highload веб-разработке. "Грабли при ма...13 октября, DEV {web} - конференция о Highload веб-разработке. "Грабли при ма...
13 октября, DEV {web} - конференция о Highload веб-разработке. "Грабли при ма...
IT-Portfolio
 
Lean Lego Game for Agileee 2012
Lean Lego Game for Agileee 2012Lean Lego Game for Agileee 2012
Lean Lego Game for Agileee 2012
Dmytro Mindra
 
Где живут Ваши объявления / Тюрин Михаил (Avito)
Где живут Ваши объявления / Тюрин Михаил (Avito)Где живут Ваши объявления / Тюрин Михаил (Avito)
Где живут Ваши объявления / Тюрин Михаил (Avito)
Ontico
 
Типичные ошибки внедрения Lean и Agile
Типичные ошибки внедрения Lean и AgileТипичные ошибки внедрения Lean и Agile
Типичные ошибки внедрения Lean и Agile
Magneta AI
 
Как мы готовим MySQL
 Как мы готовим MySQL  Как мы готовим MySQL
Как мы готовим MySQL
Badoo Development
 
Как мы готовим MySQL / Николай Королёв (Badoo)
Как мы готовим MySQL / Николай Королёв (Badoo)Как мы готовим MySQL / Николай Королёв (Badoo)
Как мы готовим MySQL / Николай Королёв (Badoo)
Ontico
 

Ähnlich wie Рост курса валют vs рост числа пользователей. Как banki.ru пережил утроение нагрузки за неделю (20)

CodeFest 2012. Ивлиев Р. — Аккуратно переезжаем, или тестирование в проектах ...
CodeFest 2012. Ивлиев Р. — Аккуратно переезжаем, или тестирование в проектах ...CodeFest 2012. Ивлиев Р. — Аккуратно переезжаем, или тестирование в проектах ...
CodeFest 2012. Ивлиев Р. — Аккуратно переезжаем, или тестирование в проектах ...
 
Всему своё время / Роман Ивлиев (Банки.ру)
Всему своё время / Роман Ивлиев (Банки.ру)Всему своё время / Роман Ивлиев (Банки.ру)
Всему своё время / Роман Ивлиев (Банки.ру)
 
Всему своё время Highload Junior 2016
Всему своё время   Highload Junior  2016Всему своё время   Highload Junior  2016
Всему своё время Highload Junior 2016
 
Архитектура поиска в Booking.com / Иван Круглов (Booking.com)
Архитектура поиска в Booking.com / Иван Круглов (Booking.com)Архитектура поиска в Booking.com / Иван Круглов (Booking.com)
Архитектура поиска в Booking.com / Иван Круглов (Booking.com)
 
Цикл разработки и внедрения функционала в Мамбе (Михаил Буйлов)
Цикл разработки и внедрения функционала в Мамбе (Михаил Буйлов)Цикл разработки и внедрения функционала в Мамбе (Михаил Буйлов)
Цикл разработки и внедрения функционала в Мамбе (Михаил Буйлов)
 
Как мы делаем Banki.ru
Как мы делаем Banki.ruКак мы делаем Banki.ru
Как мы делаем Banki.ru
 
Архитектура поиска в 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 реинжиниринг
 
Внедрение изменений: рефакторинг 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
 

Mehr von CodeFest

Mehr von CodeFest (20)

Alexander Graebe
Alexander GraebeAlexander Graebe
Alexander Graebe
 
Никита Прокопов
Никита ПрокоповНикита Прокопов
Никита Прокопов
 
Денис Баталов
Денис БаталовДенис Баталов
Денис Баталов
 
Елена Гальцина
Елена ГальцинаЕлена Гальцина
Елена Гальцина
 
Александр Калашников
Александр КалашниковАлександр Калашников
Александр Калашников
 
Ирина Иванова
Ирина ИвановаИрина Иванова
Ирина Иванова
 
Marko Berković
Marko BerkovićMarko Berković
Marko Berković
 
Денис Кортунов
Денис КортуновДенис Кортунов
Денис Кортунов
 
Александр Зимин
Александр ЗиминАлександр Зимин
Александр Зимин
 
Сергей Крапивенский
Сергей КрапивенскийСергей Крапивенский
Сергей Крапивенский
 
Сергей Игнатов
Сергей ИгнатовСергей Игнатов
Сергей Игнатов
 
Николай Крапивный
Николай КрапивныйНиколай Крапивный
Николай Крапивный
 
Alexander Graebe
Alexander GraebeAlexander Graebe
Alexander Graebe
 
Вадим Смирнов
Вадим СмирновВадим Смирнов
Вадим Смирнов
 
Константин Осипов
Константин ОсиповКонстантин Осипов
Константин Осипов
 
Raffaele Rialdi
Raffaele RialdiRaffaele Rialdi
Raffaele Rialdi
 
Максим Пугачев
Максим ПугачевМаксим Пугачев
Максим Пугачев
 
Rene Groeschke
Rene GroeschkeRene Groeschke
Rene Groeschke
 
Иван Бондаренко
Иван БондаренкоИван Бондаренко
Иван Бондаренко
 
Mete Atamel
Mete AtamelMete Atamel
Mete Atamel
 

Рост курса валют vs рост числа пользователей. Как banki.ru пережил утроение нагрузки за неделю