Как мы делаем banki.ru
Роман ИВЛИЕВ
2002-....
• Тестировщик
• Разработчик
• Руководитель
разработчиков
• Руководитель
тестировщиков
• Руководитель проектов
• CTO
• CIO
О СЕБЕ
• 11 лет в Интернете
• в среднем 400К уников в сутки
• 40 сотрудников-технарей
• 70Тб трафика в месяц
• На самом деле мы группа компаний
О BANKI.RU
Banki.ru
Bankir.ru
Finparty.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

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

  • 1.
    Как мы делаемbanki.ru Роман ИВЛИЕВ
  • 2.
    2002-.... • Тестировщик • Разработчик •Руководитель разработчиков • Руководитель тестировщиков • Руководитель проектов • CTO • CIO О СЕБЕ
  • 3.
    • 11 летв Интернете • в среднем 400К уников в сутки • 40 сотрудников-технарей • 70Тб трафика в месяц • На самом деле мы группа компаний О BANKI.RU
  • 4.
  • 5.
  • 6.
  • 8.
    • Про общуюструктуру • Про технологии • Про процессы • Про всякое разное ПРО ЧТО Я БУДУ РАССКАЗЫВАТЬ
  • 9.
  • 10.
    • 40 человек •Back-End • Front-End • QA • DevOps • Тех. поддержка Общая струкрура
  • 11.
    ОДНА КОМАНДА =ОДИН ПРОЕКТ
  • 12.
    ОДНА КОМАНДА =ОДИН ПРОЕКТ
  • 13.
    МАТРИЦА КОМПЕТЕНЦИЙ • Мызнаем, что мы знаем • Мы знаем, что мы умеем
  • 14.
    • Всё, чтоне по профилю личного состава, мы стараемся не делать…. МЫСЛЬ №1/1
  • 15.
  • 16.
    • Всё, чтоне по профилю личного состава, мы стараемся не делать…. • Не делать своими руками, естественно МЫСЛЬ №1/2
  • 17.
  • 18.
    • Функциональное разделениене подошло, потому что…. МЫСЛЬ №1/3
  • 19.
    • Функциональное разделениене подошло, потому что…. • Agile МЫСЛЬ №1/3
  • 20.
    • Функциональное разделениене подошло, потому что…. • Agile • Нет зафиксированных требований • Много изменений • Хочется иметь полноту картины в каждой команде МЫСЛЬ №1/3
  • 21.
  • 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: • Переписать кусками • Плюсы: • Проще делать параллельно. • Минимальные риски ошибиться с технологией. • Старое всё ещё работает • Минусы: • Всё ещё долго и дорого • Двойная работа • Связность разработки с старым кодом • Всегда придётся дописывать то, что уже изменили • Реверс-инжиниринг
  • 36.
  • 37.
  • 38.
  • 39.
    СЕРВИСЫ: плюсы • Быстро(как оказалось не очень) • Удобно масштабировать (если напишите хорошо) • Можно повторно использовать (не всегда) • Данные становятся доступными везде
  • 40.
    СЕРВИСЫ: минусы • Синхронизацияразработки • Нельзя сделать универсальное API • Рабы API • Жажда методов-крохотунов
  • 41.
  • 42.
    • Методологии (скрам,канбан) • Code Style • Git flow • Task Flow ПРОЦЕССЫ
  • 43.
    ПРОЦЕССЫ: плюсы • Дисциплина •Повторяемость • Измеримость • Спокойствие менеджеров
  • 44.
    ПРОЦЕССЫ: минусы • Иногдаим сложно следовать • Анархия – мать порядка • Всегда приходится что-то менять и договариваться
  • 45.
  • 46.
    АВТОМАТИЗАЦИЯ • Много автоматизации- это хорошо? • Это, безусловно, удобно • Это ускоряет • Это стандартизирует • Это даёт надежду
  • 47.
    АВТОМАТИЗАЦИЯ • Много автоматизации- это хорошо? • Это, безусловно, удобно • Это ускоряет • Это стандартизирует • Много автоматизации – это плохо? • Надо поддерживать, чем дальше, тем дороже • Инструменты не всегда решают твои задачи • За счёт автоматизации усложняется процесс • Больше возможностей • Выше скорость операций
  • 48.
  • 49.
    КАЖДОМУ СВОЕ «Слова выуслышали, поиск пути за вами» Уильям Деминг
  • 50.
    СПАСИБО С удовольствием отвечуна Ваши вопросы @dumtest roman.ivliev@mail.ru roman.ivliyev