Архитектор программного обеспечения. Часть 1/4 [OTUS]

90

Сегодня разработка архитектуры программного обеспечения является одним из главных навыков специалиста для создания масштабируемых и отказоустойчивых приложений.

Для кого этот курс:
Программа создана специально для разработчиков, Team Lead и администраторов, которые хотят научиться разрабатывать архитектуру программного обеспечения и
сложных распределенных и отказоустойчивых систем.

Фишки курса

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

После курса вы научитесь:

1. планировать архитектуру и создавать масштабируемые, fault-tolerant приложения
2. решать нетривиальные задачи, в рамках распределенных и децентрализованных систем
3. поймете, как решать проблемы в текущей, заложенной архитектуре
4. изучите классические паттерны проектирования (шардирование, репликация, и т.д.)

Программа обучения
1 Introduction

  • Проблемы проектирования масштабируемых приложений.Типы решаемых задач
  • Когда нужен монолит, а когда микросервисы и компоненты

2 Centralized Systems. Single node patterns

  • Sidecar паттерн. Принцип работы. Реализация паттерна на основе обвязки legacy сервиса (расширение поведения)
  • Ambassador паттерн. Принцип работы.Реализация паттерна на примере маршрутизатора (или proxy)
  • Adapter паттерн. Принцип работы. Реализация паттерна на примере создания универсального логгера

3 Centralized Systems. Multi node patterns (microservices)

  • Stateless services.Принцип работы. Реализация паттерна на примере обычного REST сервиса и балансировщика
  • State services. Принцип работы. Реализация паттерна на примере REST сервиса с сессиями
  • Sharding. Принцип работы. Реализация паттерна на примере распределенного поиска
  • Caching and sidecar. Принцип работы. Реализация паттерна на примере механизма кеширования запросов до сервиса
  • Вопросы отказоустойчивости информационной системы. Отложенные сообщения (очереди). Реализация системы уведомлений пользователей, состоящей из нескольких сервисов

4 Decentralized Systems

  • Общий концепт. Решаемые задачи. Примеры
  • CAP теорема. Общие принципы и описание. BASE и ACID
  • CP системы. RAFT, PAXOS
  • CP системы в базах данных (арбитры,блокировки)
  • PA системы. GOSSIP, CasPAXOS. CRDT структуры
  • Основы работы блокчейн и DAG

5 Costs and efforts

  • Оценка стоимости спроектированной системы. Определение рисков на разных стадиях жизненного цикла: проектирование, разработка, внедрение, поддержка и эксплуатация,утилизация