Это курс нашего партнера
Начало занятий 17 сентября

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

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

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

DevOps решает задачу взаимодействия инженеров между собой с целью помочь им быстрее создавать и обновлять сервисы и приложения.

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

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

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

Программа курса
Модуль 1
DevOps. Необходимость меняться
Модуль 2
Управление инфраструктурой и конфигурацией
Модуль 3
Continuous Integration & Continuous Delivery с использованием Docker
Модуль 4
Fast Feedback Loop (мониторинг и логирование)
Модуль 5
Контейнерная Оркестрация
Модуль 6
Проектная работа
DevOps. Необходимость меняться
Что такое DevOps и история его развития.
Как DevOps меняет жизнь и работу компаний. DevOps как профессия. Обзор курса.
17 сентября, 20:00 — 21:30
DevOps как система.
Практики и методики. DevOps компетенции.
20 сентября, 20:00 — 21:30
Система контроля версий как основа разработки и поставки ПО. Знакомство с Git.
24 сентября, 20:00 — 21:30
Домашние задания: 1
ДЗ
Работа с локальным и удаленным репозиториями, исправление комитов, решение конфликтов, работа с ветками и практика Code Review..
Локальное окружение инженера. ChatOps и визуализация рабочих процессов. Командная работа с Git. Работа в GitHub.
27 сентября, 20:00 — 21:30
Домашние задания: 1
ДЗ
Настройка локального окружения и практика ChatOps..
Знакомство с облачной инфраструктурой и облачными сервисами.
Практики безопасного доступа к ресурсам (SSH, Bastion Host, VPN).
1 октября, 20:00 — 21:30
Домашние задания: 1
ДЗ
Запуск VM в GCP, управление правилами фаервола, настройка SSH подключения, настройка SSH подключения через Bastion Host, настройка VPN сервера и VPN-подключения..
Основные сервисы Google Cloud Platform (GCP).
Способы управления ресурсами в GCP.
4 октября, 20:00 — 21:30
Домашние задания: 1
ДЗ
Практика управления ресурсами GCP через gcloud.. Ручной деплой тестового приложения. Написание bash скриптов для автоматизации задач настройки VM и деплоя приложения.
Управление инфраструктурой и конфигурацией
Модели управления инфраструктурой.
Работа с образами VM в облаке. Знакомство с Packer и экосистемой компании HashiCorp.
8 октября, 20:00 — 21:30
Домашние задания: 1
ДЗ
Подготовка базового образа VM при помощи Packer.. Деплой приложения с использованием подготовленного базового образа.
Практика Infrastructure as a Code (IaC).
Знакомство с Terraform.
11 октября, 20:00 — 21:30
Домашние задания: 1
ДЗ
Декларативное описание в виде кода инфраструктуры GCP, требуемой для запуска тестового приложения, при помощи Terraform..
Принципы организации инфраструктурного кода и работа над инфраструктурой в команде на примере Terraform.
15 октября, 20:00 — 21:30
Домашние задания: 1
ДЗ
Создание Terraform модулей для управления компонентами инфраструктуры.. Описание и настройка инфраструктуры нескольких окружений. Работа с Terraform remote backend.
Управление конфигурацией.
Основные DevOps инструменты: Chef, Ansible, Puppet, Salt. Знакомство с Ansible.
18 октября, 20:00 — 21:30
Домашние задания: 1
ДЗ
Написание Ansible плейбуков на основе имеющихся bash скриптов.. Сборка базовых образов при помощи Packer и Ansible.
Продолжение знакомства с Ansible: templates, handlers, dynamic inventory, vault, tags.
22 октября, 20:00 — 21:30
Домашние задания: 1
ДЗ
Управление настройками хостов и деплой приложения при помощи Ansible..
Принципы организации кода для управления конфигурацией.
Ansible роли, управление настройками нескольких окружений и best practices.
25 октября, 20:00 — 21:30
Домашние задания: 1
ДЗ
Написание Ansible ролей для управления конфигурацией сервисов и настройками хостов.. Организация репозитория для работы с несколькими окружениями. Работа с Ansible Galaxy и комьюнити ролями.
Локальная разработка Ansible ролей с Vagrant. Тестирование конфигурации.
29 октября, 20:00 — 21:30
Домашние задания: 1
ДЗ
Доработка имеющихся ролей локально с использование Vagrant.. Тестирование конфигурации при помощи Molecule и TestInfra.
Continuous Integration & Continuous Delivery с использованием Docker
Технология контейнеризации. Введение в Docker.
1 ноября, 20:00 — 21:30
Домашние задания: 1
ДЗ
Установка Docker, запуск контейнера на локальной машине, выполнение команд внутри контейнера, создание образа контейнера на основе запущенного..
Docker контейнеры. Docker под капотом
5 ноября, 20:00 — 21:30
Домашние задания: 1
ДЗ
Запуск VM с установленным Docker Engine при помощи Docker Machine. Написание Dockerfile и сборка образа с тестовым приложением. Сохранение образа на DockerHub..
Docker образы. Микросервисы
8 ноября, 20:00 — 21:30
Домашние задания: 1
ДЗ
Разбиение приложения на несколько микросервисов. Выбор базового образа. Подключение volume к контейнеру..
Сетевое взаимодействие Docker контейнеров. Docker Compose. Тестирование образов
12 ноября, 20:00 — 21:30
Домашние задания: 1
ДЗ
Практика работы с основными типами Docker сетей. Декларативное описание Docker инфраструктуры при помощи Docker Compose..
Технология непрерывной поставки ПО
15 ноября, 20:00 — 21:30
Домашние задания: 1
ДЗ
Чтение литературы.
Устройство Gitlab CI. Построение процесса непрерывной интеграции
19 ноября, 20:00 — 21:30
Домашние задания: 1
ДЗ
Gitlab CI. Построение процесса непрерывной интеграции.
Непрерывная поставка с Gitlab CI
22 ноября, 20:00 — 21:30
Домашние задания: 1
ДЗ
Расширяем существующий CI пайплайн. Работа с окружениями в Gitlab CI для построения непрерывной поставки функционала приложений..
Fast Feedback Loop (мониторинг и логирование)
Введение в мониторинг. Модели и принципы работы систем мониторинга
26 ноября, 20:00 — 21:30
Домашние задания: 1
ДЗ
Создание и запуск системы мониторинга Prometheus.. Мониторинг состояния микросервисов, сбор метрик при помощи prometheus exporters.
Мониторинг приложения и инфраструктуры
29 ноября, 20:00 — 21:30
Визуализация и анализ результатов мониторинга. Знакомство с системами рассылки оповещений, Алертинг
3 декабря, 20:00 — 21:30
Домашние задания: 1
ДЗ
Сбор и анализ метрик приложений, а также бизнес метрик. Создание уведомлений на основе собранных данных..
Применение инструментов для обработки лог данных
Что такое логи и зачем они нужны? Системы централизованного хранения лог данных, требования к ним и примеры. Форматы и варианты логирования приложений
6 декабря, 20:00 — 21:30
Домашние задания: 1
ДЗ
Логирование приложений.. Структурированные и неструктурированные логи. Организация централизованной системы логирования.
Применение системы логирования в инфраструктуре на основе Docker.
Рассмотрение систем распределенной отладки данных (Distributed tracing)
10 декабря, 20:00 — 21:30
Домашние задания: 1
ДЗ
Логирование приложений.. Структурированные и неструктурированные логи. Продолжение создания и работы централизованной системой логирования.
Контейнерная Оркестрация
Контейнерная оркестрация.
Примеры известных и актуальных систем оркестрации (DC/OS, Aurora, Nomad, Docker Swarm)
13 декабря, 20:00 — 21:30
Введение в Kubernetes.
Основные концепции и архитектура системы.
17 декабря, 20:00 — 21:30
Домашние задания: 1
ДЗ
Установка и настройка Kubernetes.. Работа над автоматизацией процесса развертывания системы.
Основные модели безопасности и контроллеры в Kubernetes
20 декабря, 20:00 — 21:30
Домашние задания: 1
ДЗ
Установка и настройка Google Kubernetes Engine, настройка локального профиля администратора для GKE. Работа с с контроллерами: StatefulSet, Deployment, DaemonSet.
Ingress-контроллеры и сервисы в Kubernetes.
Работа с удаленными хранилищами данных.
24 декабря, 20:00 — 21:30
Домашние задания: 1
ДЗ
Настройка балансировщиков нагрузки в Kubernetes и SSL­Terminating.. Подключение удаленных хранилищ GCP данных к POD’ам.
Интеграция Kubernetes в GitlabCI.
Использование формата упаковки приложений Charts в Kubernetes Helm.
27 декабря, 20:00 — 21:30
Домашние задания: 1
ДЗ
Создание Helm Chart’ов для компонент приложения, управление зависимостями Helm.. Построение CI/CD pipeline в Gitlab в интеграции с Kubernetes.
Kubernetes. Мониторинг и логирование
Развертывание Prometheus в Kubernetes. Настройка Prometheus и Grafana для сбора метрик кластера и приложений. Развертывание и настройка EFK для сбора логов.
31 декабря, 20:00 — 21:30
Проектная работа
Проектная работа заключается в полноценном production grade развертывании приложения с учетом изученных практик и инструментов.

Мы предоставляем приложение, которое нужно развернуть, но лучше будет если вы возьмете свое с работы или pet project. В проектной работе нет однозначно хорошего пути, это исследовательский проект, где преподаватель будет оценивать целесообразность использования тех или иных решений и давать советы по улучшению проекта.
Расписание
DevOps-2018-09 (cтарт 17 сентября)
17 сентября, понедельник 20:00 — 21:30
20 сентября, четверг 20:00 — 21:30
DevOps-2018-05 (набор закрыт c 18 мая)
19 июля, четверг 20:00 — 21:30
Преподаватель Матвей Михайлов
24 июля, вторник 20:00 — 21:30
Преподаватель Андрей Александров
DevOps-2018-02 (набор закрыт c 15 февраля)
30 августа, четверг 20:00 — 21:30
Преподаватели
Александр Титов
Александр Титов Развивает тему DevOps в России, внедряет системы управления конфигурацией, занимался эксплуатацией интернет-проектов в компаниях Скалакси, Skype, Qik, Microsoft.
Сергей Богатырец
Помогает внедрять практики непрерывной поставки, улучшать процессы управления инфраструктурой и ее мониторинга. За время работы в Экспресс42 работал над проектами Рокетбанк, Paymantix, Cloudlock и Первый ОФД.
Юрий Игнатов
В должности старшего инженера в компании Express42 Юрий разрабатывает и внедряет решения для непрерывной поставки продуктов enterprise-организаций, помогает с адаптацией DevOps-практик, а так же проводит обучения и мастер-классы по дисциплинам автоматизации и управлению конфигурацией.
Виталий Хабаров
Работая системным администратором, пришёл к выводу, что полезные задачи надо автоматизировать, а от деятельности, не приносящей пользу, следует избавляться. Устроившись в компанию Экспресс 42, открыл для себя практики DevOps, которые сейчас и помогает распространять внутри компаний-разработчиков.
Андрей Александров
Внедряет DevOps практики в команды, адаптируя их под специфику компаний. Обучает новым подходам и процессам ведения разработки и управления инфраструктурой. Работал с такими компаниями как: Первый ОФД, Рокетбанк, Cloudlock, WildApricot, МТС.
Отзыв
Петр Мязин
Наткнулся на описание курса по DevOps совершенно случайно, но по стечению обстоятельств в нужный момент - я тогда активно внедрял Ansible в своих рабочих проектах, немного использовал Docker для окружения в разработке, имел обрывочную информацию о Hashicorp Stack (Packer, Terraform, …), что-то слышал про Kubernetes - в первую очередь благодаря подкастам DevOps Deflope и Hangops.ru. Одновременно с этим я понимал, что мои знания не систематизированы и хаотичны, хотелось всё разложить по полочкам. Я в первую очередь разработчик, а не системный администратор, у меня не было желания и времени углубляться в темы администрирования Linux, но хотелось владеть базовыми инструментами на стыке Dev и Ops.

Прочитав программу курса, я выделил для себя темы которые были однозначно актуальны (Ansible, Docker), и прочие для расширения кругозора. Финальным аргументом "ЗА" стало то, что среди преподавателей увидел знакомые имена из подкастов про DevOps - к этим ребятам уже было какое-то доверие.

Я проходил курс с первым потоком (первым набором) и иногда это было заметно, материал курса проходил проверку боем впервые. Иногда в материалах были ошибки или опечатки, но они быстро разрешались либо смекалкой, либо обсуждением в Slack чате, чувствовалось что ведущие курса реально переживали за своё дело, старались помочь, разъяснить, исследовать возникшие проблемы - честно говоря, я такого не ожидал!

Сквозной нитью через весь курс проходит некое приложение, аналог Reddit, инфраструктуру для которого мы постепенно описывали и разворачивали различными инструментами. Практические занятия на мой взгляд составляют 80% всей ценности в этом курсе и составлены они весьма хорошо. Представляю какой титанический труд был проделан для проектирования и описания всей этой учебной инфраструктуры в методических материалах.

Самой большой трудностью для меня было то, что часть учебного приложения написана на Ruby и puma, с которыми я никогда не работал и не имею никакого опыта. Править код приложения не требовалось, но были сложности с установкой и настройкой system сервиса puma с использованием rvm - эта часть была задана как ДЗ. Через час слепых попыток по мотивам ответов на stackoverflow я понял, что просто теряю время. Разбираться с нюансами запуска Ruby мне было совершенно не интересно и не практично, я посмотрел как выполнили это задание мои коллеги по курсу (другие студенты) и просто использовал их решение. Таких моментов было несколько - не стеснялся брать чужие решения, если считал тему не интересной для собственного глубокого погружения.

Домашние задания обычно содержали основную задачу и дополнительную задачу "со звёздочкой", которую можно выполнять по желанию. И тут опять же - некоторые мне были реально интересны и я погружался в тему, а некоторые задания "со звёздочкой" пропускал, чтобы не тратить время и идти дальше.

Большую часть лекций я смотрел в записи, т.к. время online вещания лично для меня было не удобно. Кажется, всего 3 лекции я посмотрел в режиме реального времени. И так оказалось даже лучше. Во-первых, записи я смотрел с ускорением 1.25-1.5 - очень экономит время без ущерба восприятию материала. Во-вторых, мог ставить на паузу, некоторые лекции смотрел в метро по дороге.

По ходу курса я сильно отстал, пропустил около 1,5 месяцев, но не чувствовал себя "за бортом" и получал помощь и полезные советы от преподавателей на ровне со всеми. Судя по чату, больше меня отстал всего один человек и это даже как-то подбадривало, что я не самый последний.

В конце курса был дипломный проект, по желанию, но для тех кто сдал домашние работы по 23 лекцию включительно (всего лекций было около 30). Я поставил себе цель наверстать всё вплоть 23 лекции и переходить к проекту, чтобы успеть до окончания. Таким образом я пропустил последнюю часть курса про Kubernetes, зато успешно поработал над дипломным проектом.

В качестве дипломного проекта предлагалось готовое приложение, которое нужно было развернуть в Google Cloud Platform с использование лучших практик и полученных знаний, Выбор конкретных инструментов оставался за студентом. Как вариант, можно было использовать своё собственное приложение.

Я взял своё приложение, над которым трудился по работе. Сначала описал предполагаемую архитектуру и обосновал выбор инструментов в отдельном документе в Google Docs, расшарил в Slack чате, получил пару рекомендаций, начал работать.

Как я быстро обнаружил, дипломный проект является важной частью обучения - это закрепления материала. Пересматривая слайды старых презентаций и выполненное мной когда-то ДЗ, некоторые темы открывал для себя в новом свете. И, хотя эти темы были давно пройдены, я не стеснялся задавать свои свежие вопросы в чате и получал помощь от коллег-студентов и преподавателей.

По ходу дипломной работы пришлось уменьшить амбиции касательно архитектуры, иначе я бы просто не успел к сроку показа первой версии. Успел! Дмитрий Мищенко, один из преподавателей, сделал очень подробное ревью первой версии, показал слабые места в архитектуре, за что ему огромное спасибо!

В итоге я успешно сдал более-менее работающий проект, получив зачёт. А ещё через пару недель, доведя всё до ума, вывел этот проект в production, ведь это с самого начала была реальная живая задача по работе, которая к тому же прошла тщательное ревью специалистом из Express 42. Думаю, если бы я нанимал компанию Express 42 в качестве внешних консультантов на проект, их работа могла бы оказаться дороже, чем я заплатил за курс обучения на Otus. Такой лайфхак, берите на заметку ;)

Пропущенные лекции и ДЗ по Kubernetes так и лежат на моём компьютере, возможно, я к ним вернусь, но уже без возможности получить проверку домашней работы. Зато чат остаётся активным, думаю, всегда смогу задать вопрос и получить совет от бывших студентов или даже от преподавателей.

В конце курса выдаётся сертификат. Наверное, он доступен где-то в личном кабинете, но, честно говоря, не знаю зачем он мне мог бы пригодиться.

Также по было предложение пройти собеседование в одной из компаний-партнёров или даже во всех (этот момент не очень понял - действительно можно было напроситься на собеседования ко всем компаниям партнёрам?). Я отказался, т.к. вакансия DevOps инженера меня не интересовала, я лишь хотел подтянуть свои знания современных инструментов, чтобы стать более эффективным и полезным как разработчик.

В общем, материалом курса и самим процессом остался очень доволен. А результат, в частности реально запущенный проект, превзошли все ожидания!

Рекомендую, чтобы не тратить время на самостоятельный сбор информации по современным DevOps практикам, запишитесь лучше на курс, очень эффективно всё разложат по полочкам. Плюс сейчас уже материал обкатан и отшлифован с учётом прошедших потоков.

И слушайте подкасты - интересно, не напряжно и расширяет кругозор!
Все отзывы
Работодатели