К основному содержимому
Логотип ArchDays 2019
ArchDays · 22 ноября 2019

«Мы делили апельсин» или эволюция за 3 года

Как развивалась архитектура публичного веба крупного финтеха с 2016 по 2019

/ Эволюция веба · ArchDays 2019

Содержание слайдов

  1. 1. «Мы делили апельсин» или эволюция за 3 года

    Как развивалась архитектура публичного веба крупного финтеха с 2016 по 2019

  2. 2. О чём поговорим

    Acquisition Department и процесс

    Frontend: монолит → микрофронтенды

    CMS: шаблоны → редактор блоков

    Персонализация: A/B → ML, и уроки

  3. 3. 01. Acquisition Department

    Что у нас под капотом

  4. 4. Что входит в привлечение

    Публичный веб и системы вокруг него · ~60 разработчиков

    Неавторизованный веб флагманов

    Безрелизная CMS для веба и мобильных

    Персонализация и A/B-тесты

    Автоматизация каналов привлечения

  5. 5. 02. Процесс рендеринга

    Что происходит между запросом пользователя и показом страницы

  6. 6. End-to-end pipeline

    User → LB → Frontend → CMS → Personalization → DataStore

  7. 7. Три системы менялись сильнее всего

    На них и сфокусируемся

  8. 8. 03. Frontend Story

    Story #1 — от монолита к микрофронтендам

  9. 9. Frontend в 2016

    Стартовая точка истории

  10. 10. Step #0 — войти в тему

    Прежде чем что-то менять — понять

    Познакомиться с командой

    Погрузиться в процесс разработки

    Понять боли команды и стейкхолдеров

    Сформулировать тактический план

  11. 11. Step #1 — выделить компоненты

    Из монолита — к компонентной модели

    Разделить ответственности

    Ослабить связанность

    Закрепить зоны за командами

    Согласовать контракты

  12. 12. Step #2 — сделать платформу

    Чтобы компоненты катились независимо

  13. 13. Step #3 — масштабировать команды

    Когда платформа есть — растим продуктовые команды

    Свой фреймворк — tramvai

    Компоненты — внутрь фреймворка

    Первое микрофронтенд-приложение в одной команде

    Проверили A/B-тестом

  14. 14. 04. CMS Story

    Story #2 — от монолита к микросервисам и cloud native

  15. 15. Два релиза в год

  16. 16. Микросервисы без платформы не поехали

    Стабилизировали legacy и собрали архитектурную команду

    Стабилизировать legacy

    Архитектурная команда и общий стек

    Десятки сервисов от продуктовых команд

    Деплоить оказалось некуда

  17. 17. Cloud native вместо архитектурной команды

    Платформа вместо центрального органа согласований

    Команду расформировали

    12 factor и примитивы k8s

    Фреймворки для бэка и фронта

    Почти весь прод — в k8s

  18. 18. 05. Personalization Story

    Story #3 — от A/B-тестов к ML-предикторам

  19. 19. Один заказчик и коробка

    Стартовая точка третьей истории

    Один основной заказчик

    Коробочный продукт в проде

    Свой C++ в альфе

    Один разработчик на проект

  20. 20. Свой MVP вытеснил коробку

    Команда выросла, MVP довели до релиза

    Расширили команду

    Довели MVP до релиза

    Заменили коробочный продукт

    Бизнес доволен и хочет больше

  21. 21. MVP не дорастает до платформы

  22. 22. 06. Уроки за 3 года

    Что мы поняли про эволюцию архитектуры

  23. 23. Стратегия зависит от размера системы

    Три системы — три пути

    MVP и маленькая база — замена целиком

    Средняя база — параллельная разработка и болезненная замена

    Большая база и команда — долгая эволюция

    эволюция важнее революции — миграция шагами

  24. 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. 25. Спасибо!

    polomodov.tech

    Все слайды и ссылки — в Telegram-канале

    Александр Поломодов, Руководитель разработки, привлечение Tinkoff.ru

    @book_cube