Как мигрировать в любое облако и сократить расходы на поддержку приложения Фундаментальный курс по облачным технологиям для разработчиков. Best practices по архитектурной миграции и эксплуатации приложения на примере реального проекта В рамках курса пошагово затащим видеоплатформу в облако архитектурно мигрируем готовое приложение по всем best practices обеспечим отказоустойчивость и безопасность внутри облака разберем, когда нужно разбивать монолит, и масштабируем платформу с помощью Kubernetes настроим централизованные мониторинг и логирование внутри облака оптимизируем расходы и посмотрим, где теряются деньги, чтобы облако по-прежнему оставалось выгодным и научимся эксплуатировать приложение без инцидентов Примеры на Python, но язык простой и много программировать не придется Мы не будем писать платформу с нуля. Курс о том, как правильно настраивать облака, затаскивать в них приложения, а потом эксплуатировать. Неважно, написан код на Go или C++ — принципы миграции везде одинаковы Подойдет разработчикам уровня middle/senior Программа: За 1 месяц пройдем весь продуктовый цикл — от миграции до production-решения Будем разбираться на примере Cloud.ru, но принципы едины везде — после курса получится затащить приложение в любое облако Урок №1. Основы облачных технологий Превращаем ВМ, зоны доступности, PaaS из набора непонятных слов в целостную картину. Разбираемся, зачем вообще компания идет в облако и чем это отличается от обычных серверов. Начинаем пошагово поднимать видеоплатформу в облаке Теория: устройство облачной инфраструктуры и какие задачи бизнеса она решает почему компании выбирают облака вместо «железа» регионы и зоны доступности: как они влияют на отказоустойчивость IaaS / PaaS — минусы и плюсы, что и под какие задачи выбрать модели облачных вычислений: что придется настраивать самому, что может сломаться по твоей вине и за что придется отвечать перед руководителем стоимость владения приложением в облаке, и как твои архитектурные решения на нее влияют подходы и best practices по развертыванию приложения в облаке Практика: пошагово поднимаем ВМ в облаке и разворачиваем на ней приложение Результат: понимаешь внутреннее устройство облаков и умеешь самостоятельно развернуть BM в любом облаке Урок №2. Сети и объектное хранилище BM запустили… А как теперь настроить взаимодействие между разными сущностями и передавать данные между ними? Ведь одна строчка в конфиге — и трафик поехал не туда. Когда приложение уже работает, самые болезненные инциденты происходят из-за сети, доступа и хранения данных. Этот модуль про то, как перестать действовать наугад Теория: VPC (Virtual Private Cloud): разворачиваем сеть для приложения, чтобы извне можно было достучаться только до разрешенных портов балансировщик нагрузки или почему не стоит давать доступ к приложению напрямую публичные IP: что можно и нельзя выставлять «наружу» группы безопасности: как управлять доступом на уровне сети S3: почему данные не должны жить рядом с приложением и как хранилище помогает масштабировать систему и сократить расходы на хранение классы хранения объектного хранилища: что и когда выбирать, чтобы экономить бюджет и не переплачивать жизненный цикл хранения объекта: как сокращать издержки через автоматизированное удаление, архивирование и перемещение данных WORM (Write Once, Read Many): как защитить данные от случайного удаления или изменения CORS (Cross-Origin Resource Sharing): как безопасно отдавать данные фронтенду и исключить риск занесения вредоносных файлов Multipart Upload: как ускорять загрузку тяжелых файлов Все темы разберем не как отдельные сервисы, а как единую систему, из-за неправильной настройки которой чаще всего происходят инциденты в production Практика: настраиваем сеть между несколькими ВМ выносим данные приложения в объектное хранилище настраиваем доступ и изоляцию компонентов Результат: понимаешь, как реально ходит трафик и данные, почему изменения в сети часто приводят к инцидентам и где данные должны храниться и почему умеешь безопасно настраивать доступ между компонентами, разделять вычисления и хранение и принимать решения, которые не приводят к инцидентам и перерасходу бюджета Урок №3. БД, логи и мониторинг В этом уроке создаем базу данных в облаке и настраиваем централизованное логирование и мониторинг, чтобы превентивно устранять проблемы. Но если инцидент все-таки случился, научимся быстро искать root cause и устранять его Теория: Stateful vs Stateless БД как PaaS БД на базе ВМ масштабирование и отказоустойчивость в облаке резервное копирование Managed PostgreSQL мониторинг: как видеть проблему до пользователей логи: как быстро найти причину инцидента Практика: создаем кластер Managed PostgreSQL переводим приложение на managed БД настраиваем сбор логов и мониторинг, собираем дашборд на нативных инструментах облаков Результат: умеешь наблюдать систему и понимать, где проблема, почему она возникла и как ее не допустить в будущем можешь развернуть управляемую БД в облаке Урок №4. Микросервисы в облаке Масштабируем приложение — чем отличается ВМ от контейнера, когда лучше использовать микросервисы, как их развернуть и как разбить монолит Теория: BM vs Контейнер Монолит vs Микросервисы — когда реально нужно идти в MSA как запускать контейнеры как запустить контейнер в облаке репозиторий артефактов типы репозиториев интеграция с репозиториями артефактов основы Kubernetes Практика: разбиваем монолит на микросервисы (на примере готового кода без погружения в тонкости и практики backend’а) запускаем микросервис локально на ВМ cоздаем репозиторий и загружаем в него образы контейнеров запускаем приложение на базе Container Apps разворачиваем Managed Kubernetes и приложение в нем Результат: понимаешь, когда лучше остаться на монолите, принципы дробления монолита и чем полезен кубер в облаке умеешь контейнеризировать приложение, деплоить его в managed Kubernetes, читать и понимать существующую Kubernetes-инфраструктуру В результате начнешь уверенно работать с любым облаком в production Перестанешь настраивать инфраструктуру «наугад» и научишься понимать последствия своих действий Сможешь мигрировать и эксплуатировать приложение в любом облаке без риска и постоянных инцидентов Поймешь, где облачные технологии реально экономят, а где архитектурные решения сжигают бюджет Получишь практический опыт, который ожидают в небольших и BigTech-компаниях Преподает Илья Смирнов, архитектор решений Cloud.ru >6 лет приземляет мобильные и веб-приложения в облака. Автор курса Cloud.ru Evolution Fundamentals