Начало занятий 14 ноября

DevOps практики и инструменты

Общая стоимость: 60000 ₽
В месяц: 15000 ₽
4 часа в неделю
5 месяцев
О курсе

DevOps решает задачу взаимодействия инженеров между собой с целью помочь им быстрее создавать и обновлять сервисы и приложения. На курсе будут разобраны инструменты для реализации практик инфраструктура как код, непрерывная поставка ПО и непрерывный сбор метрик (мониторинг и логирование).

Курс составлен на основе опыта, накопленного компанией Экспресс 42, которая на протяжении уже более 5 лет, помогает внедрять DevOps практики в крупным российских и зарубежных компаниях. Все занятия проводятся действующими инженерами компании.

Необходимое время: 2 лекции в неделю по 2 академических часа и 4 часа на домашнее задание.

Практические задания будут выполняться с использованием Google Cloud Platform (GCP). Для того чтобы сделать использование ресурсов GCP бесплатным для участников курса, от вас потребуется наличие Google аккаунта, у которого не активирован бесплатный пробный период (free trial) в GCP. Free trial дает $300 на использование GCP в течение года. Для активации free trial будет нужна банковская карта для подтверждения личности. Вдобавок к $300, которые участники получают при использовании free trial, компания Softline предоставит дополнительно каждому участнику $200 на использование GCP. Этих средств хватит для выполнения всех практических заданий в рамках курса.

Программа курса
1
DevOps.
Необходимость
меняться.
2
Инфраструктура
и
конфигурация
3
Continuous
Delivery
4
Fast
Feedback
Loop
5
Оркестрация
DevOps. Необходимость меняться.


1.Что такое DevOps и история его развития. Культура, инструменты и практики. Как DevOps меняет жизнь и работу компаний. DevOps профессия. Обзор курса.
ДЗ: Рекомендации литературы для прочтения.


2. Основные компоненты локального окружения для инженеров. Чаты как средство оперативного обмена знаниями и актуальной информации: Slack, HipChat, Rocketchat. Системы контроля версий как инструмент, налаживающий взаимодействие во время разработки и сопровождения кода проекта на примере Git. Системы управления задачами и визуализации рабочего процесса.
ДЗ: настройка рабочего окружения: командный чат, Git, текстовый редактор. Создание локального репозитория. Создания репозитория на GitHub, работа с удаленным репозиторием по SSH. Практические задания по Git.


3. Облачная инфраструктура и как с ней работать. Знакомство с Google Cloud Platform (GCP). Способы управления облачными ресурсами. Практики безопасного удаленного подключения (SSH, Bastion host, VPN).
ДЗ: Создание виртуальной машины в облаке. Настройка firewall и безопасного удаленного подключения к серверу по SSH. Ручной деплой тестового приложения и управление его конфигурацией. Версионирование конфигурации.


4. Base-Service-App модель: разбор уровня Base. Работа с образами ОС в облаке. Знакомство с Packer. Создание и организация репозитория с описанием инфраструктуры.
ДЗ: Создание Infra репозитория. Создание собственного образа ОС в облаке при помощи Packer.
DevOps практики управления инфраструктурой и конфигурацией


1.Принципы эффективного управление инфраструктурой. DevOps инструменты для управления инфраструктурой. Управление инфраструктурой и работа с облачными ресурсами в виде кода. Знакомство с Terraform.
ДЗ: Развитие Infra репозитория. Создание, изменение и версионирование инфраструктурных компонент с использованием Terraform. Интеграция Terraform и Packer.


2. Работа над инфраструктурой в команде, работа с remote backends. Использование модулей.
ДЗ: Написание модулей для различных инфраструктурных компонент. Работа с remote backend.


3. Продолжение обсуждения Base-Service-App модели: разбор всех уровней. Принципы эффективного управление конфигурацией. DevOps инструменты для управления конфигурацией: Chef, Ansible, Puppet, SaltStack. Знакомство и работа с Ansible.
ДЗ: Создание, изменение и версионирование конфигурации с использованием Ansible. Создание Ansible плейбука для установки тестового приложения. Создание Ansible ролей для деплоя проекта. Интеграция Terraform и Ansible.
Continuous Integration & Continuous Delivery с использованием Docker


1. Immutable Delivery. Введение в Docker: Docker daemon, container, image, Dockerfile, Docker registry. Сетевое взаимодействие Docker контейнеров.
ДЗ. Настройка рабочего окружения для работы с Docker. Сборка image приложения с использование Dockerfile. Запуск контейнеров и создание сети для их взаимодействия. Работа с Docker Hub.


2. Микросервисная архитектура. Работа с данными и stateful приложениями в Docker. Декларативное описание проекта при помощи Docker Compose.
ДЗ: Работа со stateful приложением на примере PostgreSQL. Разработка и запуск проекта с использованием Docker Compose.


3. Технология непрерывной поставки ПО. Основные стадии автоматизированного конвейера поставки. Обзор популярных CI систем: Jenkins, Bamboo, Gitlab CI, TeamCity, Travis CI. Автоматизация сборок и тестирования Docker контейнеров.
ДЗ: Построение CI/CD процесса на GCP, разработка, тестирование и выкатка новой версии контейнеризованного приложения.
Fast Feedback Loop (мониторинг и логирование)


1. Как получать информацию о состоянии проекта для быстрого решения проблем? Что и как мониторить в проекте? Сбор метрик инфраструктуры и бизнес логики приложений, end-user experience мониторинг. Обзор популярных систем мониторинга: Zabbix, Nagios, Prometheus, Sensu. Инструменты визуализации и анализа данных мониторинга.
ДЗ: Установка Prometheus, сбор системных метрик докер хостов. Построение дашбордов с использованием Grafana.


2. Практики внедрения мониторинга. Системы алертинга. Эскалация инцидентов и практика blameless postmortems.
ДЗ: Сбор метрик приложений. Настройка триггеров и алертов в системе мониторинга, интеграция системы мониторинга с командным чатом.


3.Системы логирования и какие проблемы они помогают решить. Централизованная система логирования как сервис внутри компании. Знакомство с популярными системами логирования: Elastic Stack, Graylog.
ДЗ: Установка Elastic Stack, настройка централизованного сбора логов контейнеризованных приложений, визуализация и анализ данных.
Оркестрация


1. Что такое оркестрация? Преимущества и недостатки популярных оркестраторов. Принципы работы Docker Swarm. Service Discovery. Сетевое взаимодействие в Docker кластере: overlay network, Docker ipvs load balancer.
ДЗ. Развертывание оркестратора Docker Swarm на GCP. Запуск проекта с помощью Docker Swarm и Docker Compose.


2. Введение в Kubernetes, основные компоненты, область применимости.
ДЗ: Создание и настройка Kubernetes кластера. Деплой тестового приложения.


3. Непрерывная поставка с Kubernetes. Интеграция с CI инструментами.
ДЗ: Интеграция Kubernetes с Gitlab CI, настройка сборки, тестирования и деплоя при помощи Gitlab CI


4. Стратегии деплоя, rollback, fail-over, масштабирование.
ДЗ: Применение практик деплоя и rollback в Kubernetes.


5. Подведение итогов обучения
Преподаватели
Александр Титов
Александр Титов Развивает тему DevOps в России, внедряет системы управления конфигурацией, занимался эксплуатацией интернет-проектов в компаниях Скалакси, Skype, Qik, Microsoft.
Артем Старостенко
Специализуруется на управлении облачной инфраструктурой, конфигурацией и использовании систем оркестрации. Влюблен в Docker с первого дня своего знакомства и считает, что технология контейнеризации основа не только будущего, но уже настоящего современного процесса разработки и поставки цифрового продукта.
Сергей Богатырец
Помогает внедрять практики непрерывной поставки, улучшать процессы управления инфраструктурой и ее мониторинга. За время работы в Экспресс42 работал над проектами Рокетбанк, Paymantix, Cloudlock и Первый ОФД.
Работодатели