Съдържание и теми, включени в курса
Въведение в разпределените системи
- Какво е разпределена система?
- Често срещани предизвикателства: латентност, консистентност, наличност
- Преглед на компонентите на системата и комуникационните модели
Принципи на мащабируемостта
- Вертикално срещу хоризонтално мащабиране
- Балансиране на натоварването и еластичност
- Мащабиране на съхранение, изчисления и вход/изход
Архитектурни модели
- Архитектури клиент-сървър и многопластови
- Сървисно-ориентирани и микросървисни архитектури
- Архитектура, управлявана от събития, и опашки от съобщения
CAP теорема и модели на консистентност
- Разяснение на CAP теоремата
- Силна срещу евентуална консистентност
- Избор между консистентност и наличност
Стратегии за разпределение и съхранение на данни
- Партициониране и шардиране
- Стратегии за репликация и четене/запис с кворум
- Разпределени бази данни и хранилища тип ключ-стойност
Комуникация и координация в разпределени системи
- REST, gRPC, брокери на съобщения (напр. Kafka, RabbitMQ)
- Избор на водач и разпределен консенсус
- Използване на Zookeeper или etcd за координация
Устойчивост на грешки и надеждност
- Проектиране за отказ и грациозна деградация
- Механизми за повторен опит, таймаути и предпазители (circuit breakers)
- Мониторинг, наблюдаемост и хаос инженеринг
Нативни за облака и модерни практики за внедряване
- Контейнери, оркестрация и Kubernetes
- Безсъстоятелност и неизменяемост
- Най-добри практики за сигурност на разпределени системи
Обобщение и следващи стъпки
Изисквания
- Разбиране на основни концепции за мрежи и системно проектиране
- Опит с общи практики за софтуерна разработка
- Запознаването с облачните изчисления и дизайна на API е предимство
Целева аудитория
- Софтуерни архитекти и технически ръководители
- Инженери по бекенд и DevOps специалисти
- Системни дизайнери, изграждащи мащабируеми облачни приложения
Отзиви от участници (3)
Подготвен проект, върху който да работим от самото начало, без да губим време за настройване на файлове, които не са необходими за упражненията. Готовност да отговаряме на всички въпроси, възникнали от участниците.
Robert Walczak - Hitachi Energy
Курс - Systems Modeling with SysML and Enterprise Architect (EA)
Машинен превод
Инструкторът актуализира курса според очакванията на обученците
Alexandru
Курс - Software Architecture in Cloud
Машинен превод
Практикувайте упражнения в EA.
Pawel - Krajowa Szkola Skarbowosci
Курс - UML in Enterprise Architect (workshops)
Машинен превод