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

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


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


= План курса =
= План курса =
Лекции:
*Лекции:
•Введение
*•Введение
•Трехзвенная архитектура. Отличия монолитов от микросервисы
*•Трехзвенная архитектура. Отличия монолитов от микросервисы
Проектирование 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. Инцидент-менеджмент. Дежурство.
•Собеседования по дизайну систем
*•Собеседования по дизайну систем
План прохождения собеседований. Разбор типичной задачи. Критерии оценивания собеседований.
План прохождения собеседований. Разбор типичной задачи. Критерии оценивания собеседований.
Доклады студентов
Доклады студентов
Строка 67: Строка 67:
= Критерии получения оценки =
= Критерии получения оценки =


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


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


•Документ с дизайном системы
*•Документ с дизайном системы
Проверяет навыки проектирования систем
Проверяет навыки проектирования систем
•Задания по Troubleshooting
*•Задания по Troubleshooting
Проверяет навыки эксплуатации систем
Проверяет навыки эксплуатации систем
•Доклад
*•Доклад
Проверяет навык разобраться в новой технологии и рассказать другим, для чего она может быть полезна
Проверяет навык разобраться в новой технологии и рассказать другим, для чего она может быть полезна


=Литература=
=Литература=
https://twirl.github.io/The-API-Book/index.html
* https://twirl.github.io/The-API-Book/index.html
https://www.amazon.com/gp/product/1617294543
* https://www.amazon.com/gp/product/1617294543
https://www.amazon.co.uk/Kubernetes-Patterns-Reusable-Designing-Applications/dp/1492050288
* https://www.amazon.co.uk/Kubernetes-Patterns-Reusable-Designing-Applications/dp/1492050288
https://sre.google/sre-book/table-of-contents/
* https://sre.google/sre-book/table-of-contents/
https://www.amazon.com/System-Design-Interview-Insiders-Guide-ebook/dp/B0CR977BQH/
* https://www.amazon.com/System-Design-Interview-Insiders-Guide-ebook/dp/B0CR977BQH/

Версия от 10:58, 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

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

  • •Доклад

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

Литература