ݺߣ

ݺߣShare a Scribd company logo
Как мы делаем banki.ru
Роман ИВЛИЕВ
2002-....
• Тестировщик
• Разработчик
• Руководитель
разработчиков
• Руководитель
тестировщиков
• Руководитель проектов
• CTO
• CIO
О СЕБЕ
• 11 лет в Интернете
• в среднем 400К уников в сутки
• 40 сотрудников-технарей
• 70Тб трафика в месяц
• На самом деле мы группа компаний
О BANKI.RU
Banki.ru
Bankir.ru
Finparty.ru
Как мы делаем Banki.ru
• Про общую структуру
• Про технологии
• Про процессы
• Про всякое разное
ПРО ЧТО Я БУДУ РАССКАЗЫВАТЬ
БУДЬТЕ БДИТЕЛЬНЫ
• 40 человек
• Back-End
• Front-End
• QA
• DevOps
• Тех. поддержка
Общая струкрура
ОДНА КОМАНДА = ОДИН ПРОЕКТ
ОДНА КОМАНДА = ОДИН ПРОЕКТ
МАТРИЦА КОМПЕТЕНЦИЙ
• Мы знаем, что мы знаем
• Мы знаем, что мы умеем
• Всё, что не по профилю личного состава,
мы стараемся не делать….
МЫСЛЬ №1/1
МЫСЛЬ №1/1
• Всё, что не по профилю личного состава,
мы стараемся не делать….
• Не делать своими руками, естественно
МЫСЛЬ №1/2
МЫСЛЬ №1/2
• Функциональное разделение не подошло,
потому что….
МЫСЛЬ №1/3
• Функциональное разделение не подошло,
потому что….
• Agile
МЫСЛЬ №1/3
• Функциональное разделение не подошло,
потому что….
• Agile
• Нет зафиксированных требований
• Много изменений
• Хочется иметь полноту картины в каждой
команде
МЫСЛЬ №1/3
ТЕХНОЛОГИИ И ИНСТРУМЕНТЫ
• PHP 5.х (7) + Symfony 2 (3) + Yii (1)
• Postgres(9.х)+MariaDB
• Memcache+Redis
• Rabbit
• Nginx + Apache (RIP)
• ELK (logstash+elasticsearch+kibana)
• Битрикс (это не он, на самом деле)
• Зоопарк осей (FreeBSD, CentOS, Ubuntu и ещё)
ТЕХНОЛОГИИ
• Composer
• Bower
• Webpack
• Gulp
• Capistrano
• Puppet
• Ansible
• Vagrant
• Много страшных менее известных слов
ИНСТРУМЕНТЫ
• Почему PHP?
• Потому что не питон
Мысль №2/0
• Почему PHP?
• Потому что не питон
• Отлично решает свои задачи.
• Обширный рынок инженеров
• В целом работает стабильно
• Большое комьюнити
• Много кода уже написано
• Много минных полей пройдено
Мысль №2/0
• Почему всё ещё «Битрикс»?
Мысль №2/1
• Почему всё ещё «Битрикс»?
• Потому что за 10 лет много кода написали
• Отлично решает свои задачи
• В целом работает стабильно
Мысль №2/1
• Почему столько инструментов?
• Мы разрешаем себе пробовать
• Все они отлично решает свои задачи
• Круг задач расширяется
• Мы их меняем и выводим. Сейчас середина цикла.
• И….
Мысль №2/2
• Почему столько инструментов?
• Мы разрешаем себе пробовать
• Все они отлично решает свои задачи
• Круг задач расширяется
• Мы их меняем и выводим. Сейчас середина цикла.
• И….
• Мы стали их рабами
Мысль №2/2
• Почему разные фреймворки?
• Потому что была экспертиза и аутсорсинг
• Они решают свои задачи
• В целом работают стабильно
• Переписывать очень дорого и долго
Мысль № 2/3
• На самом деле дела обстоят так:
• На рынке мало людей с Symfony и много с Yii
• Порог входа в Yii достаточно низкий
• Потренировались на двух сервисах, теперь всё
пишем на Symfony
Мысль №3/1
ТЕХНОЛОГИИ
• Причины переделки:
• Нагрузка
• Скорость работы
• Масштабируемость данных (у нас есть внешние
пользователи)
• Лапша в коде
• Сложность поддержки
ТЕХНОЛОГИИ
Вариант переделки №1:
• Поправить то, что есть
• Плюсы: Малые затраты
• Минусы: Ничего не меняется
ТЕХНОЛОГИИ
• Вариант переделки 2:
• Переписать целиком рядом
• Плюсы:
• Всё новое, свежее
• Никакой связи с старым кодом
• Минусы:
• Долго
• Дорого
• Двойная работа
• Связность разработки с старым кодом
• Всегда придётся дописывать то, что уже изменили
• Реверс-инжиниринг
ТЕХНОЛОГИИ
• Вариант переделки 3:
• Переписать кусками
• Плюсы:
• Проще делать параллельно.
• Минимальные риски ошибиться с технологией.
• Старое всё ещё работает
• Минусы:
• Всё ещё долго и дорого
• Двойная работа
• Связность разработки с старым кодом
• Всегда придётся дописывать то, что уже изменили
• Реверс-инжиниринг
ТЕХНОЛОГИИ
ЧТО СДЕЛАЛИ?
СЕРВИСЫ
СЕРВИСЫ: плюсы
• Быстро (как оказалось не очень)
• Удобно масштабировать (если напишите хорошо)
• Можно повторно использовать (не всегда)
• Данные становятся доступными везде
СЕРВИСЫ: минусы
• Синхронизация разработки
• Нельзя сделать универсальное API
• Рабы API
• Жажда методов-крохотунов
ПРОЦЕССЫ
• Методологии (скрам, канбан)
• Code Style
• Git flow
• Task Flow
ПРОЦЕССЫ
ПРОЦЕССЫ: плюсы
• Дисциплина
• Повторяемость
• Измеримость
• Спокойствие менеджеров
ПРОЦЕССЫ: минусы
• Иногда им сложно следовать
• Анархия – мать порядка
• Всегда приходится что-то менять и договариваться
АВТОМАТИЗАЦИЯ
АВТОМАТИЗАЦИЯ
• Много автоматизации - это хорошо?
• Это, безусловно, удобно
• Это ускоряет
• Это стандартизирует
• Это даёт надежду
АВТОМАТИЗАЦИЯ
• Много автоматизации - это хорошо?
• Это, безусловно, удобно
• Это ускоряет
• Это стандартизирует
• Много автоматизации – это плохо?
• Надо поддерживать, чем дальше, тем дороже
• Инструменты не всегда решают твои задачи
• За счёт автоматизации усложняется процесс
• Больше возможностей
• Выше скорость операций
ВЫВОДЫ И МУДРОСТЬ
КАЖДОМУ СВОЕ
«Слова вы услышали, поиск пути
за вами»
Уильям Деминг
СПАСИБО
С удовольствием отвечу на
Ваши вопросы
@dumtest
roman.ivliev@mail.ru
roman.ivliyev

More Related Content

Как мы делаем Banki.ru

  • 1. Как мы делаем banki.ru Роман ИВЛИЕВ
  • 2. 2002-.... • Тестировщик • Разработчик • Руководитель разработчиков • Руководитель тестировщиков • Руководитель проектов • CTO • CIO О СЕБЕ
  • 3. • 11 лет в Интернете • в среднем 400К уников в сутки • 40 сотрудников-технарей • 70Тб трафика в месяц • На самом деле мы группа компаний О BANKI.RU
  • 8. • Про общую структуру • Про технологии • Про процессы • Про всякое разное ПРО ЧТО Я БУДУ РАССКАЗЫВАТЬ
  • 10. • 40 человек • Back-End • Front-End • QA • DevOps • Тех. поддержка Общая струкрура
  • 11. ОДНА КОМАНДА = ОДИН ПРОЕКТ
  • 12. ОДНА КОМАНДА = ОДИН ПРОЕКТ
  • 13. МАТРИЦА КОМПЕТЕНЦИЙ • Мы знаем, что мы знаем • Мы знаем, что мы умеем
  • 14. • Всё, что не по профилю личного состава, мы стараемся не делать…. МЫСЛЬ №1/1
  • 16. • Всё, что не по профилю личного состава, мы стараемся не делать…. • Не делать своими руками, естественно МЫСЛЬ №1/2
  • 18. • Функциональное разделение не подошло, потому что…. МЫСЛЬ №1/3
  • 19. • Функциональное разделение не подошло, потому что…. • Agile МЫСЛЬ №1/3
  • 20. • Функциональное разделение не подошло, потому что…. • Agile • Нет зафиксированных требований • Много изменений • Хочется иметь полноту картины в каждой команде МЫСЛЬ №1/3
  • 22. • PHP 5.х (7) + Symfony 2 (3) + Yii (1) • Postgres(9.х)+MariaDB • Memcache+Redis • Rabbit • Nginx + Apache (RIP) • ELK (logstash+elasticsearch+kibana) • Битрикс (это не он, на самом деле) • Зоопарк осей (FreeBSD, CentOS, Ubuntu и ещё) ТЕХНОЛОГИИ
  • 23. • Composer • Bower • Webpack • Gulp • Capistrano • Puppet • Ansible • Vagrant • Много страшных менее известных слов ИНСТРУМЕНТЫ
  • 24. • Почему PHP? • Потому что не питон Мысль №2/0
  • 25. • Почему PHP? • Потому что не питон • Отлично решает свои задачи. • Обширный рынок инженеров • В целом работает стабильно • Большое комьюнити • Много кода уже написано • Много минных полей пройдено Мысль №2/0
  • 26. • Почему всё ещё «Битрикс»? Мысль №2/1
  • 27. • Почему всё ещё «Битрикс»? • Потому что за 10 лет много кода написали • Отлично решает свои задачи • В целом работает стабильно Мысль №2/1
  • 28. • Почему столько инструментов? • Мы разрешаем себе пробовать • Все они отлично решает свои задачи • Круг задач расширяется • Мы их меняем и выводим. Сейчас середина цикла. • И…. Мысль №2/2
  • 29. • Почему столько инструментов? • Мы разрешаем себе пробовать • Все они отлично решает свои задачи • Круг задач расширяется • Мы их меняем и выводим. Сейчас середина цикла. • И…. • Мы стали их рабами Мысль №2/2
  • 30. • Почему разные фреймворки? • Потому что была экспертиза и аутсорсинг • Они решают свои задачи • В целом работают стабильно • Переписывать очень дорого и долго Мысль № 2/3
  • 31. • На самом деле дела обстоят так: • На рынке мало людей с Symfony и много с Yii • Порог входа в Yii достаточно низкий • Потренировались на двух сервисах, теперь всё пишем на Symfony Мысль №3/1
  • 32. ТЕХНОЛОГИИ • Причины переделки: • Нагрузка • Скорость работы • Масштабируемость данных (у нас есть внешние пользователи) • Лапша в коде • Сложность поддержки
  • 33. ТЕХНОЛОГИИ Вариант переделки №1: • Поправить то, что есть • Плюсы: Малые затраты • Минусы: Ничего не меняется
  • 34. ТЕХНОЛОГИИ • Вариант переделки 2: • Переписать целиком рядом • Плюсы: • Всё новое, свежее • Никакой связи с старым кодом • Минусы: • Долго • Дорого • Двойная работа • Связность разработки с старым кодом • Всегда придётся дописывать то, что уже изменили • Реверс-инжиниринг
  • 35. ТЕХНОЛОГИИ • Вариант переделки 3: • Переписать кусками • Плюсы: • Проще делать параллельно. • Минимальные риски ошибиться с технологией. • Старое всё ещё работает • Минусы: • Всё ещё долго и дорого • Двойная работа • Связность разработки с старым кодом • Всегда придётся дописывать то, что уже изменили • Реверс-инжиниринг
  • 39. СЕРВИСЫ: плюсы • Быстро (как оказалось не очень) • Удобно масштабировать (если напишите хорошо) • Можно повторно использовать (не всегда) • Данные становятся доступными везде
  • 40. СЕРВИСЫ: минусы • Синхронизация разработки • Нельзя сделать универсальное API • Рабы API • Жажда методов-крохотунов
  • 42. • Методологии (скрам, канбан) • Code Style • Git flow • Task Flow ПРОЦЕССЫ
  • 43. ПРОЦЕССЫ: плюсы • Дисциплина • Повторяемость • Измеримость • Спокойствие менеджеров
  • 44. ПРОЦЕССЫ: минусы • Иногда им сложно следовать • Анархия – мать порядка • Всегда приходится что-то менять и договариваться
  • 46. АВТОМАТИЗАЦИЯ • Много автоматизации - это хорошо? • Это, безусловно, удобно • Это ускоряет • Это стандартизирует • Это даёт надежду
  • 47. АВТОМАТИЗАЦИЯ • Много автоматизации - это хорошо? • Это, безусловно, удобно • Это ускоряет • Это стандартизирует • Много автоматизации – это плохо? • Надо поддерживать, чем дальше, тем дороже • Инструменты не всегда решают твои задачи • За счёт автоматизации усложняется процесс • Больше возможностей • Выше скорость операций
  • 49. КАЖДОМУ СВОЕ «Слова вы услышали, поиск пути за вами» Уильям Деминг
  • 50. СПАСИБО С удовольствием отвечу на Ваши вопросы @dumtest roman.ivliev@mail.ru roman.ivliyev