Паттерны
отказоустойчивости
в микросервисах на Go

Глубокий курс по построению отказоустойчивой архитектуры — как быстро найти инцидент, на что смотреть и какие паттерны использовать. Все от А до Я на смоделированном ecom-проекте. Применимо в любой сфере
Преподает senior из Ozon Tech
интенсивность
2 урока в неделю
когда
27 октября
необходимый грейд
junior/middle
длительность
1.5 месяца

Ты — новый Golang разработчик в ecom компании

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

Глядя на архитектуру приложения, возникают вопросы:

/1
Упал один микросервис, а за ним вся система. Как разорвать цепочку
/2
БД легла от всплеска запросов. Как правильно использовать кэш, чтобы оптимизировать хранение данных
/3
В момент дежурства упала система. Как найти быстро найти причину, и какие действия предпринять для ее устранения без помощи старших коллег
/4
Как правильно кэшировать данные, чтобы не получить тонны устаревшей информации при инвалидации кеша или падении Redis
/5
Как написать повторную обработку сообщений, которая гарантированно не сломает систему
/6
Как правильно использовать retry, чтобы он за минуты при нагрузке не положил прод
чтобы решить задачу:
Вместе c Senior из Ozon Tech поочередно рассмотришь все проблемы в коде, к каждой разберешь теорию и сразу напишешь best practice решение, как в BigTech
Внедришь идемпотентность и Dead Letter Queue, чтобы при ошибках пользователя не откатывало на повторное создание заказа с нуля и система не останавливала обработку остальных заказов
Научишься писать outbox-паттерн и управлять offset’ами в Kafka, чтобы гарантировать списание средств за заказ
Напишешь повторную обработку сообщений, которая гарантированно не сломает систему и сохранит в кеше весь заказ без необходимости оформления с нуля
Научишься контролировать перегруз БД через Rate Limiter, «склейку» дублирующихся запросов через Single Flight и балансировку Nginx
Изолируешь упавший сервис с помощью Circuit Breaker, и напишешь Graceful Degradation с Fallback, чтобы отказ одного микросервиса не ронял всю систему
В итоге получишь «рецепты» по решению типичных инцидентов в prod’e, которые применимы к любой сфере и размеру компании — от маленькой до BigTech

программа

1.5 месяца систематизированно изучаем применение паттернов отказоустойчивости

Попадешь в смоделированную ecom-компанию: микросервисная архитектура с десятками типичных проблем в коде. Поочередно разберешь каждую, получишь необходимую теорию и уже со второго занятия начнешь писать код
{
ффф"ratio": {
ффффф"practice": 80%,
ффффф"theory": 20%
ффф}
}
Начинаем с инженерного расследования: почему пользователь видит ошибку, где искать источник деградации и как по метрикам отличить частичный отказ от каскадного

Теория:
  • архитектура учебного Go-стенда в Kubernetes: gateway, несколько микросервисов, БД, брокер или кэш;
  • надежность vs отказоустойчивость, graceful degradation, blast radius, MTBF и MTTR;
  • partial failure, cascading failure, transient, permanent и intermittent failures;
  • почему сеть ненадежна: timeout, потерянный ответ, частичный успех и отсутствие глобального времени;
  • SLI / SLO / SLA: availability, error rate, latency p95/p99, saturation и request rate;
  • почему средняя latency обманывает и как читать пользовательскую деградацию по p95/p99.

Практика:
  • в k8s-стенде включаем fault-сценарии: сломанный pod, медленный downstream, временно недоступную БД и lag в асинхронной обработке
  • работаем с Grafana / Prometheus, kubectl, логами и incident card.

----------------------

Результат:
  • умеешь начать расследование: найти симптом, определить пострадавший SLI, оценить радиус поражения и выбрать первую безопасную реакцию

В результате освоишь hard’ы, без которых сложно вырасти до Senior’а

/1
Научишься изолировать упавший сервис с помощью Circuit Breaker, а также писать Graceful Degradation и Fallback, чтобы один баг не ронял всю систему
/2
Сможешь контролировать перегруз БД через Rate Limiter, «склейку» дублирующихся запросов через Single Flight и балансировку Nginx
/3
Научишь систему заранее оповещать о предстоящих инцидентах, а если он уже случился — сможешь быстро их находить и решать
/4
Реализуешь многоуровневое кеширование с LRU/LFU-вытеснением и настроишь Redis так, чтобы данные в кеше были всегда актуальны
/5
Научишься внедрять идемпотентность и писать повторную обработку сообщений с outbox-паттерном и ручным управлением offset’ами в Kafka
/6
Сможешь писать Retry, который не создает «шторм» запросов, и делает систему стабильной под нагрузкой
{
ффф"differences": {
ффффф"practice": true,
ффффф"theory": false
ффф}
}

главное отличие этого курса от остальных

Практика с «рецептами» по решению типичных инцидентов в prod’e

Курс

Глубина изучения паттернов отказоустойчивости

«Микросервисы, как в BigTech» и курсы других школ

Основные паттерны с примерами кода. Изучается в середине курса и не так глубоко, как здесь. Упор на построение микросервисов с нуля

«System Design»

Изучается на уровне проектирования архитектуры без написания кода

Курс подойдет для junior/middle Golang-разработчиков, которые хотят вырасти в грейде

{
ффф"grade": {
ффффф"junior": true,
ффффф"middle": true,
ффффф"senior": false

ффф}
}
Программа состоит на 80% из практики, поэтому нужно знать язык и иметь базовые навыки работы с Kafka и Redis

из чего состоит курс

Последовательно смотрим каждую проблему в коде, разбираем ее в теории и сразу пишем решение
Уроки длятся по 1.5−2 часа и проходят два раза в неделю в свободное от работы время

Онлайн-уроки в ZOOM

Над ecom-проектом работаешь на лекциях с преподавателем, а в домашке пишешь код самостоятельно для закрепления материала

Реальные инциденты в домашней работе

Фидбек дает только преподаватель — никаких кураторов и помощников. Уточняющие вопросы можно задавать на еженедельных online-встречах

Q&A-сеccии и проверка ДЗ

Посмеяться, обсудить проблему или задать вопрос по паттернам отказоустойчивости архитектуры — на связи преподаватель и другие ученики курса

Общий чат

Книги, статьи, видео — отдадим все, что можно почитать на досуге и прокачаться еще сильнее

Дополнительные материалы

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

Сертификат

преподает даниил булыкин, senior в ozon tech

распил монолита и построение многокомпонентного отказоустойчивого сервиса «Ozon Job»
Ozon Tech
разработка платформы DBass
ВКонтакте
max. нагрузка спроектированных систем
10 000 RPS
коммерческого опыта в BigTech
3000+ часов
в разработке высоконагруженных систем
4 года

Отвечаем репутацией за качество обучения

{
ффф"it_companies": {
ффффф"trust": 100%
ффф}
}
BigTech-компании регулярно покупают наши курсы для сотрудников. Вот некоторые из них:
начинаем 27 октября
Можно оплатить в рассрочку и иностранной валютой. Вернем 100% средств в первую неделю обучения, если не понравится
Стандарт
Только 45 мест
43 800 Р
53 900 Р
Стоимость увеличится через
дней
часов
минут
секунд
Премиум
12 online-занятий
Домашние задания
Q&A-сессии с ответами на вопросы по ДЗ и лекциям
Общий чат и допматериалы
Доступ к курсу на 1 год
Проверка ДЗ от преподавателя
Осталось 8 мест
56 200 Р
66 400 Р
Стоимость увеличится через
дней
часов
минут
секунд
12 online-занятий
Домашние задания
Q&A-сессии с ответами на вопросы по ДЗ и лекциям
Общий чат и допматериалы
Доступ к курсу на 2 года
Проверка ДЗ от преподавателя
В тарифе нет персональной проверки, но есть доступ к фидбеку других учеников. Можно учиться на чужих ошибках, а вопросы по своим ДЗ задавать на Q&A-сессиях
Частые вопросы
В индивидуальной проверке домашних работ. Но важно понимать: тариф без проверки не значит отсутствие фидбека или менее внимательное отношение к тебе

Все ученики в равных условиях и находятся в одном чате. Никаких разделений. Просто ученики премиум-тарифа получают персональный фидбек от преподавателя — и в этом вся разница

Студенты без проверки не остаются без обратной связи — если появляется вопрос по ДЗ, можно разобрать его на еженедельных Q&A-сессиях с преподавателем. А еще есть доступ к проверенным домашкам учеников с опцией персонального фидбека — можно изучать их работы, смотреть комментарии преподавателя и учиться на чужих ошибках

Тариф «Стандарт» — это не «урезанный» вариант, а нормальный рабочий формат. И в нем тоже есть обратная связь, просто точечная — в моменты, когда она действительно тебе нужна

задать вопрос

Пиши, если есть вопрос по курсу или не знаешь, с чего начать — поможем советом

Паттерны отказоустойчивости архитектуры в микросервисах