ЛентаСтатьиЗаметкиКурсы
Рецепты
← Все курсы

Go Service Architect

GoArchitectureDistributed SystemsReliabilityObservabilitySecurityCI/CDHighload

Курс 3: Go Service Architect

Добро пожаловать в мир архитектурного проектирования!

Вы умеете строить сервисы. Теперь научитесь их проектировать. Этот курс для тех, кто хочет вырасти из разработчика в архитектора. Здесь нет места магии — только проверенные паттерны, инженерные компромиссы и системное мышление.


О курсе

Цель: научить проектировать, масштабировать и эксплуатировать продакшен-системы уровня крупных компаний.

Подход: каждый модуль погружает в конкретный аспект архитектуры. Вы не просто изучаете паттерны — вы учитесь принимать решения и защищать их перед командой.

Результат: после курса вы сможете самостоятельно спроектировать распределённую систему, выбрать платформу деплоя, обеспечить надёжность и задокументировать решения.


Для кого этот курс

АудиторияЧто получит
Middle-разработчикиПуть к уровню Senior
Сильные backend-инженерыАрхитектурное мышление
ТимлидыНавыки системного проектирования

Предварительные требования

Обязательные

  • ✅ Завершённый Курс 2: Go Backend Developer
  • ✅ Опыт построения и поддержки продакшен-сервисов
  • ✅ Понимание Clean Architecture
  • ✅ Практика работы с PostgreSQL и тестированием

Желательные

  • Базовое понимание распределённых систем
  • Опыт работы с Docker и CI/CD
  • Понимание наблюдаемости (логи, метрики, трейсы)

Программа курса

Модуль 1: Архитектура уровня Senior

Файл: 01-senior-go-architecture.md

  • Границы сервисов
  • Модульный монолит vs микросервисы
  • Домен-ориентированное проектирование
  • Инверсия зависимостей в Go
  • Поддерживаемость и расширяемость

Практика: спроектировать границы сервисов для домена


Модуль 2: Продвинутый дизайн API

Файл: 02-advanced-api-design.md

  • Contract-first подход
  • Версионирование и обратная совместимость
  • Пагинация, фильтрация, сортировка
  • Управление жизненным циклом API

Практика: спроектировать API с версионированием


Модуль 3: Паттерны распределённых систем

Файл: 03-distributed-systems-patterns.md

  • Eventual consistency
  • Паттерны Saga и Outbox
  • Идемпотентность
  • Компенсационные транзакции
  • Обработка ошибок в распределённых системах

Практика: реализовать Saga оркестрацию


Модуль 4: Платформенное мышление и деплой

Файл: 04-platform-deployment-thinking.md

  • Serverless vs VDS vs Kubernetes
  • Единый бинарник
  • Канареечные деплои
  • Инфраструктура как код
  • Терраформ и Ансибл

Практика: подготовить инфраструктуру для деплоя


Модуль 5: Наблюдаемость в масштабе

Файл: 05-observability-at-scale.md

  • Метрики, логи, трейсы
  • Корреляция запросов
  • Дашборды и алерты
  • Профилирование в продакшене

Практика: настроить наблюдаемость для сервиса


Модуль 6: Безопасность и секреты

Файл: 06-security-and-secrets.md

  • Управление секретами
  • Ротация ключей
  • Шифрование данных
  • Аудит безопасности

Практика: реализовать ротацию секретов


Модуль 7: Хранение данных и стратегия

Файл: 07-storage-data-strategy.md

  • Выбор хранилища данных
  • Репликация и шардирование
  • Миграции без даунтайма
  • Стратегии бэкапов

Практика: спроектировать стратегию хранения данных


Модуль 8: Надёжность и эксплуатация

Файл: 08-reliability-operations.md

  • Graceful degradation
  • Таймауты и отмена
  • Инцидент-менеджмент
  • Планирование восстановления (DR)
  • Хаос-инжиниринг

Практика: написать runbook для инцидента


Модуль 9: Производительность и нагрузочное тестирование

Файл: 09-performance-load-testing.md

  • Профилирование (pprof, trace)
  • Нагрузочное тестирование
  • Оптимизация производительности
  • Планирование мощности

Практика: провести нагрузочное тестирование сервиса


Модуль 10: CI/CD и доставка

Файл: 10-ci-cd-delivery.md

  • Пайплайны сборки и тестирования
  • Безопасное сканирование
  • Стратегии деплоя
  • GitOps

Практика: настроить CI/CD пайплайн


Модуль 11: Архитектурная документация

Файл: 11-architecture-documentation.md

  • ADR (Architecture Decision Records)
  • Диаграммы (C4, sequence)
  • Операционные процедуры
  • Защита технических решений

Практика: написать ADR для архитектурного решения


Практический проект курса

На протяжении курса вы работаете над архитектурой продакшен-сервиса:

Неделя 1-2: Проектирование

  • Определение границ сервисов
  • Выбор архитектурных паттернов
  • Проектирование API

Неделя 3-4: Распределённые системы

  • Реализация Saga и Outbox
  • Обработка ошибок
  • Идемпотентность

Неделя 5-6: Платформа и деплой

  • Выбор платформы
  • Подготовка инфраструктуры
  • Стратегии деплоя

Неделя 7-8: Надёжность и эксплуатация

  • Наблюдаемость
  • Безопасность
  • Планирование восстановления

Неделя 9-10: Финализация

  • Производительность
  • Документация
  • Подготовка к защите

Итог: полная архитектурная документация сервиса, готовая к реализации и защите


Структура проекта курса

course-3-go-service-architect/
├── README.md                          # Этот файл
├── 01-senior-go-architecture.md
├── 02-advanced-api-design.md
├── 03-distributed-systems-patterns.md
├── 04-platform-deployment-thinking.md
├── 05-observability-at-scale.md
├── 06-security-and-secrets.md
├── 07-storage-data-strategy.md
├── 08-reliability-operations.md
├── 09-performance-load-testing.md
├── 10-ci-cd-delivery.md
└── 11-architecture-documentation.md

Как проходить курс

Шаг 1: Изучите теорию

Прочитайте материал модуля. Обратите внимание на компромиссы.

Шаг 2: Проанализируйте примеры

Изучите примеры из реальных проектов. Поймите, почему выбраны именно такие решения.

Шаг 3: Спроектируйте решение

Примените знания к вашему проекту. Нарисуйте диаграммы.

Шаг 4: Задокументируйте решение

Напишите ADR или другой документ, фиксирующий решение.

Шаг 5: Обсудите с командой

Защитите решение перед коллегами. Получите обратную связь.


Рекомендации по обучению

Делайте

✅ Проектируйте перед реализацией ✅ Рисуйте диаграммы для каждого решения ✅ Ведите журнал архитектурных решений (ADR) ✅ Обсуждайте решения с коллегами ✅ Читайте постмортемы крупных компаний

Не делайте

❌ Не принимайте решения без анализа альтернатив ❌ Не игнорируйте компромиссы ❌ Не пропускайте документирование ❌ Не бойтесь ошибаться — это часть обучения


Инструменты

Обязательные

  • Go — последняя стабильная версия
  • Docker — для контейнеризации
  • Терраформ — для инфраструктуры как код

Рекомендуемые

  • Ансибл — для конфигурации (если VDS)
  • Прометеус + Графана — для наблюдаемости
  • k6 — для нагрузочного тестирования
  • Jaeger — для трейсинга

Оценка прогресса

Критерии успеха

МодульКритерий
1Определены границы сервисов
2Спроектирован API с версионированием
3Реализована Saga или Outbox
4Выбрана платформа и подготовлена инфраструктура
5Настроена наблюдаемость
6Реализована ротация секретов
7Спроектирована стратегия хранения
8Написан runbook для инцидента
9Проведено нагрузочное тестирование
10Настроен CI/CD пайплайн
11Написаны ADR для ключевых решений

Финальная проверка

После завершения всех модулей вы должны:

  • Уметь проектировать распределённые системы
  • Понимать компромиссы архитектурных решений
  • Уметь выбирать платформу деплоя
  • Обеспечивать надёжность и наблюдаемость
  • Документировать архитектурные решения
  • Защищать решения перед командой

Что дальше?

После успешного завершения курса вы будете готовы к:

Capstone Project

Финальный проект, объединяющий все знания трека.

Два варианта реализации:

  • Serverless — облачные функции, автоскейлинг
  • VDS — виртуальный сервер, полный контроль

Что включено:

  • Полный цикл разработки
  • Обязательные компоненты (API, БД, наблюдаемость, безопасность)
  • Документация (ADR, runbooks)
  • Защита проекта

FAQ

Сколько времени занимает курс? ~70 часов теории и практики. При темпе 7 часов в неделю — 10 недель.

Нужен ли опыт работы с облачными платформами? Желателен, но не обязателен. В курсе рассматриваются оба варианта: Serverless и VDS.

Что делать, если не понимаю распределённые системы?

  1. Перечитайте теорию
  2. Начните с простых паттернов (Outbox)
  3. Постепенно усложняйте (Saga, идемпотентность)
  4. Обсуждайте с коллегами

Нужна ли облачная платформа для курса? Для модулей 1-8 достаточно локальной разработки. Для модулей 9-11 и Capstone понадобится доступ к облачной платформе.

Как проверить, что я готов к Capstone? Вы должны уверенно:

  • Проектировать распределённые системы
  • Выбирать платформу деплоя
  • Обеспечивать надёжность и наблюдаемость
  • Документировать решения

Готовы стать архитектором? Приступим! 🏗️

Программа курса

1

Модуль 1. Senior Go Architecture

→
2

Модуль 2. Advanced API Design

→
3

Модуль 3. Distributed Systems Patterns

→
4

Модуль 4. Platform and Deployment Thinking

→
5

Модуль 5. Observability at Scale

→
6

Модуль 6. Security and Secrets (продвинутый уровень)

→
7

Модуль 7. Storage and Data Strategy

→
8

Модуль 8. Reliability and Operations

→
9

Модуль 9. Performance and Load Testing

→
10

Модуль 10. CI/CD and Delivery

→
11

Модуль 11. Architecture Documentation

→
12

Capstone Project: Production-Ready Git Service

→
Начать обучение