Дизайн и эксплуатация систем в микросервисной архитектуре — различия между версиями

Материал из Public ATP Wiki
Перейти к: навигация, поиск
 
(не показана 1 промежуточная версия этого же участника)
Строка 14: Строка 14:
  
 
=Основная цель курса=
 
=Основная цель курса=
Овладение студентами навыками дизайна и эксплуатации систем в микросервисной архитектуре
+
Основная цель курса-овладение студентами навыками дизайна и эксплуатации систем в микросервисной архитектуре.
*В процессе курса студент должен научиться:
+
 
*•Проектировать системы с учетом заданных требований и ограничений
+
'''В процессе курса студент должен научиться:'''
*•Выбирать подходящие базы данных для системы и другие облачные сервисы
+
*Проектировать системы с учетом заданных требований и ограничений
*•Применять при необходимости шаблоны проектирования в микросервисной архитектуре
+
*Выбирать подходящие базы данных для системы и другие облачные сервисы
*•Проектировать API для взаимодействия с внешними системами
+
*Применять при необходимости шаблоны проектирования в микросервисной архитектуре
*•Эксплуатировать системы согласно принципам Site Reliability Engineering
+
*Проектировать API для взаимодействия с внешними системами
 +
*Эксплуатировать системы согласно принципам Site Reliability Engineering
 
   
 
   
 
= Общие сведения =
 
= Общие сведения =
Строка 33: Строка 34:
  
 
= План курса =
 
= План курса =
*Лекции:
+
 
*•Введение
+
'''Лекции:'''
*•Трехзвенная архитектура. Отличия монолитов от микросервисы
+
*Введение
 +
*Трехзвенная архитектура. Отличия монолитов от микросервисы
 
Проектирование API API-first дизайн. Критерии качества API. План дизайна API.
 
Проектирование API API-first дизайн. Критерии качества API. План дизайна API.
*•Шаблоны проектирования микросервисной архитектуры
+
*Шаблоны проектирования микросервисной архитектуры
 
Межсервисная коммуникация. Распределенный транзакции. Контроль доступа.
 
Межсервисная коммуникация. Распределенный транзакции. Контроль доступа.
*•Хранение данных
+
*Хранение данных
 
Основные виды хранилищ данных и сценарии их использования на примере сервиса хранения сниппетов кода.
 
Основные виды хранилищ данных и сценарии их использования на примере сервиса хранения сниппетов кода.
*•Развертывание
+
*Развертывание
 
История развития методов развертывания приложений. Архитектура Kubernetes. Основные шаблоны использования Kubernetes.
 
История развития методов развертывания приложений. Архитектура Kubernetes. Основные шаблоны использования Kubernetes.
*•Наблюдаемость
+
*Наблюдаемость
 
Три столпа наблюдаемости: метрики/логи/трейсинг. Архитектура системы сбора метрик.
 
Три столпа наблюдаемости: метрики/логи/трейсинг. Архитектура системы сбора метрик.
*•Облачные сервисы
+
*Облачные сервисы
 
История появления облачных сервисов. Базовые инфраструктурные сервисы. Платформенные сервисы.  
 
История появления облачных сервисов. Базовые инфраструктурные сервисы. Платформенные сервисы.  
*•Serverless Эволюция среды исполнения кода.  Основные сценарии использования Serverless.  
+
*Serverless Эволюция среды исполнения кода.  Основные сценарии использования Serverless.  
*•Дополнительные элементы проектирования систем
+
*Дополнительные элементы проектирования систем
 
Балансировка нагрузки. Геопоиск. CDN.
 
Балансировка нагрузки. Геопоиск. CDN.
*•Основы Site Reliability Engineering
+
*Основы Site Reliability Engineering
 
История появления Site Reliability Engineering.  Error Budget. SLI/SLO/SLA. Инцидент-менеджмент. Дежурство.
 
История появления Site Reliability Engineering.  Error Budget. SLI/SLO/SLA. Инцидент-менеджмент. Дежурство.
*•Собеседования по дизайну систем
+
*Собеседования по дизайну систем
 
План прохождения собеседований. Разбор типичной задачи. Критерии оценивания собеседований.
 
План прохождения собеседований. Разбор типичной задачи. Критерии оценивания собеседований.
 
Доклады студентов
 
Доклады студентов
Строка 75: Строка 77:
 
=Домашние задания =
 
=Домашние задания =
  
*•Документ с дизайном системы
+
*Документ с дизайном системы
 
Проверяет навыки проектирования систем
 
Проверяет навыки проектирования систем
*•Задания по Troubleshooting
+
*Задания по Troubleshooting
 
Проверяет навыки эксплуатации систем
 
Проверяет навыки эксплуатации систем
*•Доклад
+
*Доклад
 
Проверяет навык разобраться в новой технологии и рассказать другим, для чего она может быть полезна
 
Проверяет навык разобраться в новой технологии и рассказать другим, для чего она может быть полезна
  

Текущая версия на 14:06, 17 сентября 2024

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

Вопросы которые будут обсуждаться в курсе:

  • Почему API нужно проектировать идемпотентным
  • Как строить транзакции между микросервисами
  • Как Kubernetes решает многие проблемы современной разработки
  • Зачем во многих современных базах данных разделяют слои обработки и хранения и при чем тут S3
  • Как захостить вашего Telegram бота или другой небольшой проект бесплатно и где сервера в Serverless
  • Как строятся системы хранения, когда можно пожертвовать консистентностью ради скорости, и как это применяется для распределенного мониторинга
  • Через какие системы проходит запрос, когда вы ищете видео с котиками в Youtube
  • Чем внутренний SLO отличается от внешнего и что произойдет если нарушить SLA
  • В качестве групповых домашних заданий вы будете проектировать системы, чинить сломанные сервера и делать доклады о современных системах на основе статей.

Основная цель курса

Основная цель курса-овладение студентами навыками дизайна и эксплуатации систем в микросервисной архитектуре.

В процессе курса студент должен научиться:
  • Проектировать системы с учетом заданных требований и ограничений
  • Выбирать подходящие базы данных для системы и другие облачные сервисы
  • Применять при необходимости шаблоны проектирования в микросервисной архитектуре
  • Проектировать API для взаимодействия с внешними системами
  • Эксплуатировать системы согласно принципам Site Reliability Engineering

Общие сведения

Команда курса

  • Арслан Хабутдинов, руководитель курса, лекции, семинарист


План курса

Лекции:

  • Введение
  • Трехзвенная архитектура. Отличия монолитов от микросервисы

Проектирование API API-first дизайн. Критерии качества API. План дизайна API.

  • Шаблоны проектирования микросервисной архитектуры

Межсервисная коммуникация. Распределенный транзакции. Контроль доступа.

  • Хранение данных

Основные виды хранилищ данных и сценарии их использования на примере сервиса хранения сниппетов кода.

  • Развертывание

История развития методов развертывания приложений. Архитектура Kubernetes. Основные шаблоны использования Kubernetes.

  • Наблюдаемость

Три столпа наблюдаемости: метрики/логи/трейсинг. Архитектура системы сбора метрик.

  • Облачные сервисы

История появления облачных сервисов. Базовые инфраструктурные сервисы. Платформенные сервисы.

  • Serverless Эволюция среды исполнения кода. Основные сценарии использования Serverless.
  • Дополнительные элементы проектирования систем

Балансировка нагрузки. Геопоиск. CDN.

  • Основы Site Reliability Engineering

История появления Site Reliability Engineering. Error Budget. SLI/SLO/SLA. Инцидент-менеджмент. Дежурство.

  • Собеседования по дизайну систем

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

Важные ссылки

Материалы

Критерии получения оценки

  • 3 балла - Дизайн док-системы;
  • 3 балла - Задания по драблшутингу;
  • 3 баллов - Доклады;
  • 3 балла - Активность на парах и в чате.

Домашние задания

  • Документ с дизайном системы

Проверяет навыки проектирования систем

  • Задания по Troubleshooting

Проверяет навыки эксплуатации систем

  • Доклад

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

Литература