Описание
Тренинг является прекрасным введением в методологию автоматизации технологических процессов сборки, настройки и развёртывания программного обеспечения – DevOps. Эта методология чрезвычайно популярна, поскольку способствует быстрому выпуску сложных проектов с высоким качеством.
В первой части обсуждаются общие моменты по проведению тренинга, сбор вопросов и ожиданий.
Во второй части участники получат общее сведения о DevOps, узнают какие лучшие практики имеются и какие инструменты используются, что такое культура DevOps – почему она важна и что позволяет достичь. Важным моментом является обзор трудностей, которые возникают при внедрении и использовании DevOps.
Третья часть посвящена автоматизации и программированию. Здесь мы узнаем, чего позволяет достичь автоматизация, какие языки программирования используются и почему. Что такое декларативный и императивный подход к описанию действий и инфраструктуры, достоинства и недостатки каждого из них.
В четвёртой части рассматривается версионный контроль – для чего нужно отслеживать изменения, как происходила эволюция этих систем и какие знаковые системы есть и были. Слушатели познакомятся с Git, как его можно использовать для ведения контроля версий, а также что такое инспекция кода и что такое pull/merge request.
Пятая часть показывает, что такое инфраструктура и подход инфраструктура-как-код, какие популярные инструменты используются. Вы разберётесь с такими устрашающими терминами как PaaS, IaaS, SaaS. Узнаете, что такое облака и чем они полезны, увидите в действии Terraform.
Шестая часть посвящена управлению конфигурацией. Узнаете, что такое mutable и immutable инфраструктура, когда и какую лучше использовать, что такое frying и backing при подготовке инфраструктуры, какие есть достоинства и недостатки у моделей pull и push при подготовке. Получите обзор популярных инструментов и увидите в действии Ansible.
Седьмая часть раскрывает возможности контейнеризации – почему Docker популярен, какие ограничения накладывают контейнеры и какие преимущества предоставляют, чем они лучше виртуальных машин. Посмотрите на запуск приложений и служб в контейнерах и поймёте, как строятся образы.
В восьмой части вы узнаете про контейнерную оркестрацию, какие проблемы часто встречаются на практике и пути их решения. Познакомитесь в Kubernetes и увидите его в действии.
В девятой части рассматривается непрерывная интеграция. Вы познакомитесь с конвейером сборки, его основными этапами, получите советы и рекомендации по его построению. Рассмотрим, какие типовые проблемы возникают при совместной разработке и чем хорош Jenkins, как пример инструмента непрерывной интеграции.
В десятой части сфокусируемся на непрерывной поставке и развёртыванию, какие новые шаги появляются в конвейеры сборки поставки. Какие трудности могут встретиться и что с ними делать. Какие требования накладываются на архитектуру приложений, чтобы организовать непрерывную поставку, в каких форматах делать поставку и почему, как версионировать артефакты и какую пользу это приносит. Рассмотрим разные типы окружений и узнаем зачем они нужны, как избежать изменений и сделать процессы более стабильными. Посмотрим на подходы к выкатке обновлений приложений на примере Kubernetes.
В последней части тренинга вы познакомитесь в логированием и мониторингом приложений. Узнаем, какие практики используются и какие преимущества они дают.
удостоверение о повышении квалификации государственного образца
Цели
Целевая аудитория
Предварительная подготовка
Разбираемые темы
-
1. Информация по тренингу (теория – 0,4 ч., практика – 0,5 ч.)
- Знакомство
- Описание разделов
- Общие моменты по проведению
-
2. Что такое DevOps (теория – 1,7 ч.)
- Типовые проблемы при разработке ПО
- Что такое DevOps
- Лучшие практики DevOps
- Инструменты DevOps
- Культура DevOps
- Трудности при DevOps
-
3. Автоматизация (теория – 0,6 ч., практика – 0,3 ч.)
- Автоматизация: цели, задачи
- Декларативный и императивный подходы
- Типовые задачи
- Описание популярных языков программирования в DevOps
-
4. Версионный контроль (теория – 1 ч., практика – 1 ч.)
- Отслеживание изменений
- Эволюция и знаковые систем контроля версий
- Обзор и введение Git
- Инспекция кода (code review)
- Рабочие процессы при версионировании (workflow)
-
5. Инфраструктура (теория – 1 ч., практика – 0,7 ч.)
- Инфраструктура как не-код
- Инфраструктура как код
- Популярные инструменты
- Декларативное и императивное описание
- IaaS, PaaS, SaaS
- Облака
- Введение в Terraform
-
6. Управление конфигурацией (теория – 1 ч., практика – 0,7 ч.)
- Определение, цели и задачи
- Модели управления
- Изменяемая (mutable) и неизменяемая (immutable) инфраструктура
- Подходы Frying и Baking
- Настройка Push и Pull
- Обзор популярных инструментов
- Введение в Ansible
-
7. Контейнеризация (теория – 1 ч., практика – 1 ч.)
- Определение, цели и задачи
- Сравнение контейнеризации и виртуализации
- Введение в Docker
- Запуск приложений в контейнерах
- Запуск служб в контейнерах
- Построение образов
-
8. Оркестрация (теория – 1 ч., практика – 0,7 ч.)
- Трудности при работе с контейнерами
- Контейнерная оркестрация
- Введение в Kubernetes
- Запуск приложений в Kubernetes
- Сетевой доступ к приложениям в Kubernetes
- Рассмотрение альтернатив Kubernetes
-
9. Непрерывная интеграция (теория – 1 ч., практика – 1 ч.)
- Типовые проблемы при совместной разработке
- Конвейер (pipeline) и основные этапы
- Лучшие практики
- Популярные инструменты
- Введение в Jenkins
-
10. Непрерывная поставка и развёртывание (теория 1 ч, практика 1 ч)
- Определение, цели и задачи
- Конвейер поставки
- Основные трудности
- Требования к приложениям
- Форматы артефактов
- Версионирование артефактов
- Множество окружений
- Решение проблем с изменением окружений
- Обновление и откат приложений
- Развёртывание приложений в Kubernetes
-
11. Мониторинг и логирование (теория – 0,4 ч., практика – 0,7 ч.)
- Определение, цели и задачи
- Лучшие практики
-
12. Заключение (теория – 0,3 ч.)
- Подведение итогов
- Обсуждение других практик
- Что может быть дальше
-
Всего: теория – 10,4 ч. (58%), практика – 7,6 ч. (42%)
Последние 6 лет занимается поддержкой и развитием высоконагруженных систем. Из них 4 года посвящены Kafka и интеграции с ней. На данный момент занимает должность ведущего инженера в крупной российской телекоммуникационной компании. Основной фронт работы — это Kafka в k8s и интеграция ИС с месседжингом. Ведущий инженер в МТС Диджитал. Основной профиль — поддержка k8s-инфраструктуры и Managed сервисов.
Сертификаты:
-
Java Programming: Arrays, Lists and Structured Data
-
Solving Problems with Software
-
DevOps практики и инструменты