
«Мы делили апельсин» или эволюция за 3 года
Как развивалась архитектура публичного веба крупного финтеха с 2016 по 2019
Содержание слайдов
1. «Мы делили апельсин» или эволюция за 3 года
Как развивалась архитектура публичного веба крупного финтеха с 2016 по 2019
2. О чём поговорим
Acquisition Department и процесс
Frontend: монолит → микрофронтенды
CMS: шаблоны → редактор блоков
Персонализация: A/B → ML, и уроки
3. 01. Acquisition Department
Что у нас под капотом
4. Что входит в привлечение
Публичный веб и системы вокруг него · ~60 разработчиков
Неавторизованный веб флагманов
Безрелизная CMS для веба и мобильных
Персонализация и A/B-тесты
Автоматизация каналов привлечения
5. 02. Процесс рендеринга
Что происходит между запросом пользователя и показом страницы
6. End-to-end pipeline
User → LB → Frontend → CMS → Personalization → DataStore
7. Три системы менялись сильнее всего
На них и сфокусируемся
8. 03. Frontend Story
Story #1 — от монолита к микрофронтендам
9. Frontend в 2016
Стартовая точка истории
10. Step #0 — войти в тему
Прежде чем что-то менять — понять
Познакомиться с командой
Погрузиться в процесс разработки
Понять боли команды и стейкхолдеров
Сформулировать тактический план
11. Step #1 — выделить компоненты
Из монолита — к компонентной модели
Разделить ответственности
Ослабить связанность
Закрепить зоны за командами
Согласовать контракты
12. Step #2 — сделать платформу
Чтобы компоненты катились независимо
13. Step #3 — масштабировать команды
Когда платформа есть — растим продуктовые команды
Свой фреймворк — tramvai
Компоненты — внутрь фреймворка
Первое микрофронтенд-приложение в одной команде
Проверили A/B-тестом
14. 04. CMS Story
Story #2 — от монолита к микросервисам и cloud native
15. Два релиза в год
16. Микросервисы без платформы не поехали
Стабилизировали legacy и собрали архитектурную команду
Стабилизировать legacy
Архитектурная команда и общий стек
Десятки сервисов от продуктовых команд
Деплоить оказалось некуда
17. Cloud native вместо архитектурной команды
Платформа вместо центрального органа согласований
Команду расформировали
12 factor и примитивы k8s
Фреймворки для бэка и фронта
Почти весь прод — в k8s
18. 05. Personalization Story
Story #3 — от A/B-тестов к ML-предикторам
19. Один заказчик и коробка
Стартовая точка третьей истории
Один основной заказчик
Коробочный продукт в проде
Свой C++ в альфе
Один разработчик на проект
20. Свой MVP вытеснил коробку
Команда выросла, MVP довели до релиза
Расширили команду
Довели MVP до релиза
Заменили коробочный продукт
Бизнес доволен и хочет больше
21. MVP не дорастает до платформы
22. 06. Уроки за 3 года
Что мы поняли про эволюцию архитектуры
23. Стратегия зависит от размера системы
Три системы — три пути
MVP и маленькая база — замена целиком
Средняя база — параллельная разработка и болезненная замена
Большая база и команда — долгая эволюция
эволюция важнее революции — миграция шагами
24. Ссылки и материалы
Building Microservices — Sam Newman (2015)
Building Evolutionary Architectures — Ford, Parsons, Kua (2017)
The Twelve-Factor App — 12factor.net
Frontend Architecture for Design Systems — Micah Godbolt (2016)
25. Спасибо!
polomodov.tech
Все слайды и ссылки — в Telegram-канале
Александр Поломодов, Руководитель разработки, привлечение Tinkoff.ru
@book_cube