К основному содержимому
Конференция SDE · 16 марта 2024

Эволюция подходов к разработке софта

От разработки в лоб до DevOps, Cloud Native и Data Lake

/ Эволюция разработки · SDE Conference 2024

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

  1. 1. Эволюция подходов к разработке софта

    От разработки в лоб до DevOps, Cloud Native и Data Lake

  2. 2. Александр Поломодов

    Technical Director & Fellow, Т-Технологии

    Архитектура и инженерные практики в fintech

    Монолит → микросервисы → cloud native

    Подкаст «Code of Leadership», канал @book_cube

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

    8 блоков об эволюции разработки

    Design: в лоб → System Design

    Data: ФС → Data Lake

    Architecture: monolith → serverless

    Delivery, DevOps, future

  4. 4. 01. Разработка в лоб

    Idea → Requirements → Development → Deploy

  5. 5. Разработка без проектирования

    Когда «работает — и ладно»

    Идея → требования → код

    Деплой файлами, без CI/CD

    Нет архитектуры, тестов, документации

    Быстро на старте, больно при росте

  6. 6. Spaghetti code — временно ок

    Где подход «в лоб» уместен

    RnD-прототипы: переписать

    Хакатоны/MVP на 2–4 недели

    Разовые миграционные скрипты

    Важно честно назвать временным

  7. 7. 02. Разработка с проектированием

    Добавляем фазу Design между требованиями и кодом

  8. 8. Что входит в фазу проектирования

    Функциональные + нефункциональные требования

    Functional: что система делает

    Non-functional: RPS, latency, security

    Выбор паттернов и фреймворков под задачу

    Декомпозиция на компоненты, описание контрактов

  9. 9. System Design Interview как структура проектирования

    Пошаговый алгоритм формализации задачи

    Задача: название, контекст, смысл

    Требования: functional + non-functional

    Sizing: нагрузка, данные, трафик

    Границы, потоки, stack

  10. 10. 03. Данные

    ФС → RDBMS → Object Storage → OLAP → Big Data → NoSQL

  11. 11. Эволюция хранилищ данных

    От файловой системы до распределённых NoSQL

    ФС → RDBMS: persistence + ACID

    Object Storage: дешёвые blob-ы

    OLAP / DWH: аналитика

    Big Data + NoSQL: scale + BASE

  12. 12. 04. Архитектура

    Monolith → SOA → Microservices → Cloud Native → Serverless

  13. 13. Эволюция архитектур

    От процесса до serverless

    Монолит: приложение, БД, простой deploy

    SOA: ESB и тяжёлые контракты

    Microservices — независимый deploy

    DDD + Cloud Native → Serverless

  14. 14. Пример: web-часть крупного финтеха

    Эволюция от монолита к микросервисам на масштабе

    Старт: web-монолит на одной БД

    Декомпозиция: auth, payments, cards

    Внедрение API Gateway и service mesh

    Kubernetes и независимые releases

  15. 15. 05. Доставка кода

    FTP → git clone → Fabric/Capistrano → CI/CD

  16. 16. Эволюция доставки кода

    От ручного деплоя до полноценного CI/CD

    FTP: ручное копирование

    git clone + restart

    Deploy scripts: Fabric / Capistrano

    CI/CD: Jenkins → GitLab/GitHub

  17. 17. 06. DevOps

    Hardware → Infrastructure → Platforms → Application

  18. 18. Слои системы

    Distributed systems layering

    Hardware — сервера, сеть, storage

    Infrastructure — виртуализация, IaaS, containers

    Platforms — Kubernetes, БД, queues-as-service

    Application — бизнес-логика над платформами

  19. 19. Ссылки и материалы

    Опорные источники по архитектуре, DevOps, cloud native и data platforms

    Clean Architecture

    Designing Data-Intensive Applications

    The DevOps Handbook

    Kubernetes, CNCF, Data Mesh

  20. 20. Спасибо!

    polomodov.tech

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

    Александр Поломодов, Technical Director & Fellow, крупный финтех

    @book_cube