Курс: Проектирование облачных приложений
Продолжительность курса: 24 ак. ч.
Описание курса:
Этот курс – стартовая точка в изучении проектирования облачных систем. Главная цель – познакомить слушателя с особенностями и вызовами «облак», а также показать, как применять основной облачный инструментарий. Это всё – и в теории, и подкрепленное практикой проектирования приложения в командах.
После вводной лекции о том, «где найти облако» и какие виды их бывают, и краткого обзора главных технологий в основе облачных вычислений, мы перейдем к проектированию систем.
Планирование точек присутствия, организация входящего и исходящего трафика, доставка контента – эти темы модуля про построение виртуальных облачных сетей и обслуживание пользователей. Далее – изучим как разворачиваются функциональные элементы: варианты серверные и беcсерверные. Рассмотрим, варианты работы с постоянными данными, и какие СУБД применимы в каком случае. Завершим знакомство со строительными блоками решением задач интеграции.
Масштабируемость, производительность, безопасность и отказоустойчивость – изучим и применим основные тактики достижения этих системных качеств.
Автоматизация важна для эффективной эксплуатации облачных систем. IaaS/PaaS-поставщики позволяют нам автоматически выделять и обслуживать ресурсы, организовать мониторинг и реакции на изменения в приложении и сбои. Мы рассмотрим самые важные сценарии.
Аудитория:
• Архитекторы, системные проектировщики
• Технические лидеры / ведущие разработчики
• Менеджеры проектов, реализуемых «в облаках»
• Бизнес-аналитики
• Аналитики
Необходимая подготовка:
Основы архитектуры приложений. Базовые знания организации сетей TCP/IP, принципы работы виртуализации.
Программа курса:
Модуль 1. Основы облачных вычислений
• Что такое «облако» и где оно?
• Виды «облаков».
• Технологии в основе облачных вычислений.
• Новые модели услуг: IaaS, PaaS, SaaS.
• Облачная экономика.
Модуль 2. Принципы проектирования облачных приложений
• Минимальное облачное приложение.
• Строительные блоки облачных приложений.
• Виды «кирпичиков»: вычисления, хранилище, сетевая инфраструктура, управляемые сервисы.
• Cloud-native приложения.
• Multitenancy.
• Вызовы при проектировании: коммуникации, масштабирование, работа с состоянием.
Модуль 3. Проектирование границ приложения
• Типы трафика, виртуальные сети.
• Маршрутизация с виртуальными приватными сетями и без них.
• Регионы и зоны присутствия.
• Обработка внешних запросов: динамический и статический контент.
• Обработка запросов внутренних клиентов.
• Модели оплаты трафика. Структура биллинга.
Модуль 4. Проектирование вычислений
• «Классические» сервера, «эластичные» сервера, среды исполнения приложений, контейнеризация, serverless вычисления.
• Основные шаблоны: масштабируемый монолит, композитное приложение.
Модуль 5. Проектирование постоянных данных
• Базовые возможности хранения: блоковое, объектное и файловое хранилища.
• Ключевые факторы оценки способов хранения данных: модель представления, согласованность, отказоустойчивость и доступность, нагрузка.
• Доступные опции БД: реляционные, ключ-значение, документные, семейства колонок, другие.
• Опции хранилищ.
Модуль 6. Решение задач координации и интеграции
• Вызовы удаленного взаимодействия.
• Синхронная и асинхронная коммуникация.
• Брокеры, очереди, Kafka, API-шлюзы и Service Mesh.
Модуль 7. Автоматизация
• Кратко о возможностях для автоматизации при разработке и эксплуатации.
• Выбор метрик.
Модуль 8. Адресуем системные качества
• Производительность сетей, локализация трафика.
• Безопасность, отказоустойчивость.
• Предотвращение каскадных сбоев.
Модуль 9. Некоторые архитектурные методы проектирования облачных приложений
• The Twelve-Factors App, Well-Architected Framework.
Окончательная цена указывается в договоре на обучение.