Описание Этот курс – стартовая точка в изучении проектирования облачных систем. Главная цель – познакомить слушателя с особенностями и вызовами «облак», а также показать, как применять основной облачный инструментарий. Это всё – и в теории, и подкрепленное практикой проектирования приложения в командах. После вводной лекции о том, «где найти облако» и какие виды их бывают, и краткого обзора главных технологий в основе облачных вычислений, мы перейдем к проектированию систем. Планирование точек присутствия, организация входящего и исходящего трафика, доставка контента – эти темы модуля про построение виртуальных облачных сетей и обслуживание пользователей. Далее – изучим как разворачиваются функциональные элементы: варианты серверные и беcсерверные. Рассмотрим, варианты работы с постоянными данными, и какие СУБД применимы в каком случае. Завершим знакомство со строительными блоками решением задач интеграции. Масштабируемость, производительность, безопасность и отказоустойчивость – изучим и применим основные тактики достижения этих системных качеств. Автоматизация важна для эффективной эксплуатации облачных систем. IaaS/PaaS-поставщики позволяют нам автоматически выделять и обслуживать ресурсы, организовать мониторинг и реакции на изменения в приложении и сбои. Мы рассмотрим самые важные сценарии. Цели После успешного прохождения обучения участники: Поймут, что такое облачные вычисления, их экономику и технические особенности. Научатся планировать общую структуру облачных приложений (сеть, вычислительные мощности и хранилища), балансируя стоимость и скорость внедрения. Смогут строить надежные, эластичные, масштабируемые системы. Идентифицировать потенциальные узкие места и точки сбоев. Подготовятся к специализированным и смежным темам (высоконагруженные системы, big data, распределенные БД). Целевая аудитория Основная: Архитекторы, системные проектировщики Технические лидеры / ведущие разработчики Менеджеры проектов, реализуемых «в облаках» Дополнительная: Бизнес-аналитики Аналитики Предварительная подготовка Основы архитектуры приложений. Базовые знания организации сетей 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.