Цель курса:
предоставить слушателям знания и навыки разработки стратегии DevOps. Курс охватывает планирование и реализацию процессов разработки DevOps, непрерывной интеграции (Continuous Integration, CI), непрерывной поставки (Continuous Delivery, CD), непрерывной обратной связи (Continuous Feedback, СА); внедрение управления зависимостями (Dependency Management, DM). В курсе рассмотрены использование контроля версий, масштабирование Git для корпоративной среды, проектирование стратегии управления зависимостями, управление ключами, внедрение непрерывной интеграции, внедрение стратегии контейнеризации, проектирование стратегии релизов, настройка рабочих потоков управления релизами, внедрение шаблонов развертывания и оптимизация механизма обратной связи.
Целевая аудитория:
Этот курс предназначен для специалистов, обладающих фундаментальными знаниями об Azure, управлении версиями, гибкой разработке программного обеспечения (Agile) и основных принципах разработки программного обеспечения.
Опыт работы в организации, поставляющей программное обеспечение, будет преимуществом.
Курс будет интересен DevOps-специалистам и студентам, планирующим сдавать экзамен AZ-400.
После окончания курса Вы будете уметь:
- Планировать преобразование в соответствии с общими целями и сроками;
- Выбирать проект и определять метрики и KPI проекта;
- Создавать команду и организационную структуру по Agile;
- Описать преимущества использования контроля версий (Source Control);
- Переносить данные из TFVC в Git;
- Использовать Git для корпоративных DevOps;
- Рекомендовать инструменты и методы управления артефактами;
- Обобщать основные пакеты для совместного и повторного использования;
- Мигрировать и обобщать артефакты;
- Мигрировать и интегрировать меры управления исходным кодом;
- Управлять конфигурацией приложений и ключами;
- Разрабатывать стратегию обеспечения качества в проекте;
- Планировать практики безопасной разработки и правила соответствия;
- Внедрять и управлять инфраструктурой сборки;
- Объяснить важность непрерывной интеграции(Continuous Integration);
- Реализовать непрерывную интеграцию с помощью Azure DevOps;
-
- Управлять качеством кода;
- Управлять политиками безопасности с открытым исходным кодом, OWASP и WhiteSource Bolt;
- Реализовать контейнерную стратегию, знать чем контейнеры отличаются от виртуальных машин и как используют контейнеры микросервисы;
- Реализовать контейнеры, используя Docker;
- Проверять пакеты программного обеспечения с открытым исходным кодом на соответствие требованиям безопасности и лицензий в соответствии с корпоративными стандартами;
- Настраивать конвейер сборки для доступа к настройкам безопасности пакета и рейтингу лицензии. Настраивать безопасный доступ к фидам пакетов;
- Различать релиз и развертывание;
- Определять компоненты конвейера релиза (Release pipeline);
- Понимать, что нужно учитывать при разработке стратегии релиза;
- Объяснить терминологию, используемую в Azure DevOps и других средствах управления выпуском Описать, что такое задача Build and Release;
- Классифицировать Agent, Agent Queue и Agent Pool;
- Внедрить тестирование в конвейер;
- Перечислить различные способы проверки работоспособности конвейера и релиза с помощью предупреждений, сервисных хуков и отчетов;
- Создавать Release Gate;
- Описать шаблоны развертывания;
- Реализовать сине-зеленое развертывание (Blue Green Deployment);
- Внедрить канарный релиз (Canary Release);
- Рекомендовать инструменты и методы управления артефактами;
- Производить рефакторинг существующих конвейеров сборки;
- Управлять безопасностью и соответствием;
- Развертывать и управлять инфраструктурой с использованием технологий автоматизации Microsoft, таких как шаблоны ARM, PowerShell и Azure CLI;
- Описать модели и службы развертывания, доступные в Azure;
- Развернуть и настроить управляемый кластер Kubernetes;
- Развернуть и настроить инфраструктуру с помощью сторонних инструментов и сервисов Azure, таких как Chef, Puppet, Ansible, SaltStack и Terraform;
- Использовать методы измерения удовлетворенности конечных пользователей;
- Использовать процессы сбора и анализа отзывов пользователей из внешних источников;
- Настраивать интеграцию отчетов о сбоях для клиентских приложений;
- Разработать панель мониторинга и состояния;
- Анализировать оповещения и телеметрию;
- Проводить мониторинг сайтов в режиме реального времени и фиксировать отзывы о сбоях системы;
- Выполнять текущую настройку, чтобы уменьшить количество предупреждений;
- Выбирать проект и определять показатели проекта и ключевые показатели эффективности;
- Разработать стратегию качества проекта;
- Создать команду и гибкую организационную структуру;
- Планировать безопасные методы разработки и правила соответствия.
Предварительная подготовка:
Для эффективного обучения на курсе, слушатели должны обладать следующими знаниями и навыками:
- Практический опыт работы с операционными системами, виртуализацией, облачной инфраструктурой, структурами хранения и сетями.
Модуль 1: Планирование DevOps
- Планирование преобразований
- Выбор проекта
- Структуры команд
- Миграция в Azure DevOps
Лабораторная работа: Планирование по Agile и управление портфолио в Azure Boards
Модуль 2: Начало работы с Source Control
- Введение в контроль версий (Source Control);
- Преимущества Source Control;
- Типы систем Source Control;
- Введение в Azure Repos;
- Введение в GitHub;
- Миграция из TFVC в Git в Azure Repos;
Лабораторная работа: Управление версиями с Git в Azure Repos
Модуль 3: Управление «техническим долгом» (Technical Debt)
- Определение «технического долга»;
- Обмен знаниями в Teams;
- Модернизация среды развертывания с Codespaces
Лабораторная работа: Обмен знаниями в команде с помощью Azure Project Wikis
Модуль 4: Расширение Git для корпоративных DevOps
- Структура репозитория Git Repo;
- Рабочие потоки Git Branching;
- Работа с запросами на вытягивание в Azure Repos;
- Зачем нужны GitHooks?
- Поощрение внутреннего открытого источника;
- Управление репозиториями Git
Лабораторная работа: Контроль версий с Git в Azure Repos
Модуль 5: Настройка Azure Pipelines
- Концепция конвейеров в DevOps
- Azure Pipelines
- Сравнение использования Hosted Agent vs Private Agent
- Пулы агента
- Конвейеры и конкурентный доступ
- Azure DevOps и проекты Open Source (Public Projects)
- Azure Pipelines YAML и Visual Designer
Лабораторная работа: Настройка пулов агентов и понимание стиля конвейера
Модуль 6: Внедрение непрерывной интеграции с помощью Azure Pipelines
- Обзор непрерывной интеграции
- Внедрение стратегии билдов
- Интеграция с Azure Pipelines
- Интеграция внешнего Source Control с Azure Pipelines
- Настройка самостоятельно размещающегося агента
Лабораторная работа: Включение непрерывной интеграции с Azure Pipelines
Лабораторная работа: Интеграция внешнего Source Control с Azure Pipelines
Модуль 7: Управление конфигурацией приложений и ключами
- Введение в безопасность
- Внедрение требований безопасности и соответствий в процесс разработки
- Переосмысление данных конфигурации приложения
- Управление ключами, токенами и сертификатами
- Внедрение систем управления учетными данными
- Внедрение конфигураций приложений
Лабораторная работа: Интеграция Azure Key Vault с Azure DevOps
Модуль 8: Внедрение непрерывной интеграции с GitHub Actions
- GitHub Actions
- Непрерывная интеграция с GitHub Actions
- Безопасность паролей для GitHub Actions
Лабораторная работа: Непрерывная интеграция с GitHub Actions
Модуль 9: Проектирование и внедрение стратегии управления зависимостями
- Зависимости пакетов
- Управление пакетами
- Миграция и консолидация артефактов
- Безопасность пакетов
- Внедрение стратегии версионности
Лабораторная работа: Управление пакетами с Azure Artifacts
Модуль 10: Проектирование стратегии релизов
- Введение в непрерывную поставку;
- Рекомендации по стратегии релиза;
- Разработка высококачественного конвейера релиза;
- Выбор правильного инструмента управления релизами.
Лабораторная работа: Управление развертываниями с помощью Release Gates
Лабораторная работа: Создание информационной панели релизов (Release Dashboard)
Модуль 11: Введение непрерывного развертывания с помощью Azure Pipelines
- Создание Release Pipeline;
- Предоставление и настройка сред;
- Управление и разбиение задач и шаблонов;
- Настройка автоматической интеграции и автоматизации функционального тестирования;
- Автоматизация проверки работоспособности.
Лабораторная работа: Настройка конвейера как кода с YAML
Лабораторная работа: Настройка и запуск функциональных тестов
Модуль 12: Реализация подходящего шаблона развертывания
- Введение в шаблоны развертывания (Deployment Patterns);
- Реализация сине-зеленого развёртывания (Blue Green Deployment);
- Функция Toggles;
- Канарные релизы (Canary Releases);
- Dark Launching;
- AB тестирование;
- Progressive Exposure Deployment.
Лабораторная работа: Управление флагами компонента с помощью LaunchDarkly и Azure DevOps
Модуль 13: Настройка и управление инфраструктурой с помощью Azure Tools
- Инфраструктура как код и управление конфигурацией
- Создание ресурсов Azure с помощью шаблонов ARM
- Создание ресурсов Azure с помощью Azure CLI
- Автоматизация Azure с помощью DevOps
- Конфигурация желаемого состояния (DSC).
Лабораторная работа: Развертывание в Azure с помощью шаблонов Resource Manager
Модуль 14: Сторонние средства инфраструктуры как кода в Azure
- Chef
- Puppet
- Ansible
- Terraform.
Лабораторная работа: Автоматизация развертывания инфраструктуры в облаке с помощью Terraform и Azure Pipelines
Лабораторная работа: Развертывания приложений с помощью Chef в Azure
Лабораторная работа: Развертывания приложений с помощью Puppet в Azure
Лабораторная работа: Ansible в Azure
Модуль 15: Управление контейнерами с помощью Docker
- Внедрение стратегии контейнернего билда;
- Внедрение многоступенчатой сборки Docker.
Лабораторная работа: Модернизация существующих ASP.NET приложений в Azure
Модуль 16: Создание и управление сервисной инфраструктурой Kubernetes
- Azure Kubernetes Service (AKS).
- Инструменты Kubernetes
- Интеграция AKS с конвейером
Лабораторная работа: Развертывание многоконтейнерного приложения с AKS
Модуль 17: Внедрение обратной связи для команды разработки
- Внедрение инструментов по отслеживанию использования системы, функций и потоков;
- Внедрение маршрутизации для данных отчета о сбоях мобильных приложений;
- Разработка информационных панелей состояния и мониторинга;
- Интеграция и настройка системы обработки тикетов.
Лабораторная работа: Мониторинг производительности приложений с помощью Application Insights
Модуль 18: Разработка механизмов обратной связи
- Проектирование надежности сайтов;
- Процессы измерения удовлетворенности конечных пользователей;
- Процессы сбора и анализа отзывов пользователей;
- Процесс проектирования для автоматизации аналитики приложений;
- Управление оповещениями;
- Подходы «Blameless Retrospectives» и «Just Culture».
Лабораторная работа: Интеграция DevOps Azure и Teams
Модуль 19: Реализация безопасности в проектах DevOps
- Безопасность в конвейере;
- Azure Security Center
Лабораторная работа: Внедрение безопасности и соответствия в AZ DevOps Pipeline
Модуль 20: Проверка кода на соответствие
- Программное обеспечение с открытым исходным кодом;
- Управление политиками безопасности и соответствия;
- Использование лицензий и сканеров уязвимостей.
Лабораторная работа: Управление техническим долгом с SonarQube и Azure DevOps