Дизайн и эксплуатация систем в микросервисной архитектуре — различия между версиями
Irinaiv (обсуждение | вклад) |
Irinaiv (обсуждение | вклад) |
||
Строка 1: | Строка 1: | ||
Дизайн и эксплуатация систем в микросервисной архитектур - этот курс о том, как в современном мире создаются и эксплуатируются масштабные системы. | Дизайн и эксплуатация систем в микросервисной архитектур - этот курс о том, как в современном мире создаются и эксплуатируются масштабные системы. | ||
+ | Вопросы которые будут обсуждаться в курсе: | ||
+ | •Почему API нужно проектировать идемпотентным | ||
+ | •Как строить транзакции между микросервисами | ||
+ | •Как Kubernetes решает многие проблемы современной разработки | ||
+ | •Зачем во многих современных базах данных разделяют слои обработки и хранения и при чем тут S3 | ||
+ | •Как захостить вашего Telegram бота или другой небольшой проект бесплатно и где сервера в Serverless | ||
+ | •Как строятся системы хранения, когда можно пожертвовать консистентностью ради скорости, и как это применяется для распределенного мониторинга | ||
+ | •Через какие системы проходит запрос, когда вы ищете видео с котиками в Youtube | ||
+ | •Чем внутренний SLO отличается от внешнего и что произойдет если нарушить SLA | ||
+ | |||
+ | В качестве групповых домашних заданий вы будете проектировать системы, чинить сломанные сервера и делать доклады о современных системах на основе статей. | ||
=Основная цель курса= | =Основная цель курса= | ||
Строка 12: | Строка 23: | ||
= Общие сведения = | = Общие сведения = | ||
* Форма контроля: | * Форма контроля: | ||
− | * Начало занятий: | + | * Начало занятий: |
− | * [https://forms.gle/ | + | * [https://forms.gle/z6xnMysDuFmvArKd6 Форма регистрации] |
− | * [https://t.me/+ | + | * [https://t.me/+dc4uruFEqdkxMGUy Телеграм-чат курса] |
= Команда курса = | = Команда курса = | ||
− | * | + | * Арслан Хабутдинов, руководитель курса, лекции, семинарист |
− | + | ||
= План курса = | = План курса = | ||
− | + | Лекции: | |
− | + | •Введение | |
− | + | •Трехзвенная архитектура. Отличия монолитов от микросервисы | |
− | + | Проектирование API API-first дизайн. Критерии качества API. План дизайна API. | |
− | + | •Шаблоны проектирования микросервисной архитектуры | |
− | + | Межсервисная коммуникация. Распределенный транзакции. Контроль доступа. | |
− | + | •Хранение данных | |
− | + | Основные виды хранилищ данных и сценарии их использования на примере сервиса хранения сниппетов кода. | |
− | + | •Развертывание | |
− | + | История развития методов развертывания приложений. Архитектура Kubernetes. Основные шаблоны использования Kubernetes. | |
− | + | •Наблюдаемость | |
− | + | Три столпа наблюдаемости: метрики/логи/трейсинг. Архитектура системы сбора метрик. | |
− | + | •Облачные сервисы | |
− | + | История появления облачных сервисов. Базовые инфраструктурные сервисы. Платформенные сервисы. | |
− | + | •Serverless Эволюция среды исполнения кода. Основные сценарии использования Serverless. | |
− | + | •Дополнительные элементы проектирования систем | |
− | + | Балансировка нагрузки. Геопоиск. CDN. | |
− | + | •Основы Site Reliability Engineering | |
− | + | История появления Site Reliability Engineering. Error Budget. SLI/SLO/SLA. Инцидент-менеджмент. Дежурство. | |
+ | •Собеседования по дизайну систем | ||
+ | План прохождения собеседований. Разбор типичной задачи. Критерии оценивания собеседований. | ||
+ | Доклады студентов | ||
+ | По современным технологиям, используемым в дизайне систем. | ||
= Важные ссылки = | = Важные ссылки = | ||
− | * [https:// | + | * [https://forms.gle/z6xnMysDuFmvArKd6 Регистрация на курс] |
− | * [https://t.me/+ | + | * [https://t.me/+dc4uruFEqdkxMGUy Чат курса] |
− | |||
== Материалы == | == Материалы == | ||
− | * [https://www.youtube.com/ | + | * [https://www.youtube.com/playlist?list=PL3KJ6aFelSDL9kXYRlyGzzL-6ivTqxfF2 Записи лекций YouTube]. |
− | * [https:// | + | * [https://forms.gle/Q5zx9G519A7xR2eZ9 Фидбек] |
− | * | + | * [https://drive.google.com/drive/folders/1xsh5iRiW22_P1SwotXgAO76Wz6bAK_QP?usp=sharing Презентация курса] |
− | |||
= Критерии получения оценки = | = Критерии получения оценки = | ||
− | + | *3 балла - Дизайн док-системы; | |
− | + | *3 балла - Задания по драблшутингу; | |
− | *3 балла - | + | *3 баллов - Доклады; |
− | *3 балла - | + | *3 балла - Активность на парах и в чате. |
− | * | ||
− | *3 балла - | ||
− | |||
− | |||
− | |||
− | |||
− | + | =Домашние задания = | |
− | |||
− | |||
− | + | •Документ с дизайном системы | |
− | + | Проверяет навыки проектирования систем | |
− | + | •Задания по Troubleshooting | |
+ | Проверяет навыки эксплуатации систем | ||
+ | •Доклад | ||
+ | Проверяет навык разобраться в новой технологии и рассказать другим, для чего она может быть полезна | ||
− | + | =Литература= | |
− | + | https://twirl.github.io/The-API-Book/index.html | |
− | + | https://www.amazon.com/gp/product/1617294543 | |
− | + | https://www.amazon.co.uk/Kubernetes-Patterns-Reusable-Designing-Applications/dp/1492050288 | |
− | + | https://sre.google/sre-book/table-of-contents/ | |
− | + | https://www.amazon.com/System-Design-Interview-Insiders-Guide-ebook/dp/B0CR977BQH/ |
Версия 13:54, 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 Проверяет навыки эксплуатации систем •Доклад Проверяет навык разобраться в новой технологии и рассказать другим, для чего она может быть полезна
Литература
https://twirl.github.io/The-API-Book/index.html https://www.amazon.com/gp/product/1617294543 https://www.amazon.co.uk/Kubernetes-Patterns-Reusable-Designing-Applications/dp/1492050288 https://sre.google/sre-book/table-of-contents/ https://www.amazon.com/System-Design-Interview-Insiders-Guide-ebook/dp/B0CR977BQH/