День открытых дверей по курсу «CI/CD» 17.02.2020 в 20:00 | OTUS
Запланируйте обучение с выгодой в Otus!
-15% на все курсы до 20.11 Забрать скидку! →
Выбрать курс
Проходил 17 февраля 2020 года в 20:00

День открытых дверей
Всё о курсе «CI/CD на AWS, Azure и Gitlab»

День открытых дверей онлайн

День Открытых Дверей — отличная возможность узнать подробнее о программе курса, особенностях онлайн-формата, навыках, компетенциях и перспективах, которые ждут выпускников после обучения. Также преподаватель расскажет о своём профессиональном опыте и ответит на вопросы участников. Поэтому если есть вопрос, запишитесь на онлайн-трансляцию и задайте его в прямом эфире!
Преподаватель
Игорь Саблин

Запись

О курсе

CI/CD

Практический интенсивный курс по популярной методике непрерывной разработки и поставки программного обеспечения Continuous Integration и Continuous Delivery на GitLab
Партнером данного курса является Selectel. Вам выдадут промокоды на ресурсы Selectel, чтобы выполнять практические задания.

Цель курса:
- сформировать понимание архитектуры облачных провайдеров
- научить настройке процесса сборки и тестирования приложения
- изучить автоматизацию анализа кода и поиска уязвимостей
- настраивать процесс установки приложения

Программа курса
Модуль 1
Знакомство с процессами
Модуль 2
Continuous Delivery/Deployment
Модуль 3
Построение полноценного флоу CI/CD
Модуль 4
Итоговый модуль
Знакомство с процессами
Архитектура GitLab, знакомство с Gitlab CI
объяснить, что такое гитлаб сиай нужен для того, чтобы запускать какие-то действия с кодом после его получения.
Установка и настройка GitLab и агентов сборки
после занятия вы сможете:
ставить гитлаб, готовить его к работе, добавлять раннеры.
Домашние задания: 1
ДЗ
Регистрация Gitlab Runner и запуск простейшего пайплайна. 1) сделать репозиторий
2) запустить и привязать к проекту gitlab-runner
3) написать простейший .gitlab-ci.yml пайплайн по примеру с занятия
4) добиться успешного выполнения пайплайна на своём раннере
Continuous Integration и концепция CICD Workflow
объяснить, что такое CI, зачем он нужен;
показать какие могут быть триггеры на запуск задач;
рассказать про концепецию универсального воркфлоу для процессов.
Домашние задания: 1
ДЗ
Доработка пайплайна.
Жизненный цикл ПО и флоу работы с кодом
проанализировать различные виды моделей ветвления в git-е:
- Centralized Workflow
- Git flow
- Trunc-based
- Forking Workflow

обсудить какую модель в каком случае имеет смысл применить.
Автоматическая сборка и тестирование
написать первый пайплайн для автоматической сборки проекта и модульного тестирования через несколько утилит, линтеры и анализаторы.
Домашние задания: 1
ДЗ
Написание пайплайна для модульного тестирования и сборки. 1. определить стадии движения продукта для выбранного проекта
2. описать в файле gitlab-ci пайплайн для поочередного выполнения
3. добавить модульные тесты, линтеры
4. добавить сборку
5. вынести сборку и тестирование в отдельные ci-файлы (в другом репозитории)
6. включить вынесенные файлы в исходный пайплайн как зависимости
5. (необязательно) добавить шаг деплоя
Gitlab CI и Docker: Services, Artifacts, Rules
разобраться с применением services, сохранением артефактов между этапами
Домашние задания: 1
ДЗ
Условия. Добавить условия для сборки докер-образа - если менялся код приложения или докерфайл
Интеграция с Kubernetes
Continuous Delivery/Deployment
Введение в CD
проанализировать, чем отличается Continuous Delivery от Continuous Deploymen;
написать простейшую доставку на баше.
Домашние задания: 1
ДЗ
Развертывание приложения. 1. описываем этап доставки и развертывания
2. добавляем его в наш пайплайн
3. используем баш-шелл для доставки и запуска приложения на целевом сервере
Инструменты управления конфигурациями
написать первый плейбук;
установить nginx.
Домашние задания: 1
ДЗ
Необязательно: Первый плейбук. 1. создаем структуру каталога для ансибл-плейбука
2. описываем простейший плейбук для запуска на целевой машине нашего docker-контейнера
Ansible 1/2: разработка плейбуков и шаблонизация
Домашние задания: 1
ДЗ
Дорабатываем наш плейбук. 1. добавляем в наш плейбук новые задачи и условия
2. выносим переменные
3. пишем шаблон конфигурации
Ansible 2/2: разработка ролей и работа с переменными
Домашние задания: 1
ДЗ
Написание ansible-роли . 1. Переделываем наш плейбук в роль
2. Делаем роль конфигурируемой
3. Переписываем плейбук чтобы он работал с ролью
Инфраструктура как код
рассказать про концепцию инфраструктуры как код.
объяснить, что из этого мы уже успели реализовать;
проанализировать, что можно улучшить и чего не хватает;
построить инфраструктурный пайплайн.
Kafka
настраивать kafka как буфер между logstash и elsaticsearch.
Тестируем и версионируем инфраструктурный код
поработать с ansible galaxy;
версионировать инфраструктуру по гит флоу и протестировать через Molecule.
Домашние задания: 1
ДЗ
Добавляем к роли тесты и выносим её в galaxy. 1. поставить gitlab runner docker executor
2. запускать сборку в одном из питоновских образов
3. в pre степе устанавливать молекулу, ansible, docker.py
4. Добавить molecule сборку ролей

5* Написать тест запуска(verifier) на ansible
6* Подготовить Vagrantfile c docker, docke compose и gitlab runner
CI Pipeline + стратегии развертывания
рассказать о стратегиях Fail fast, Canary deployment, Feature flags, A/B;
добавить в наш прошлый пайплайн функции доставки и развертывания кода.
Домашние задания: 1
ДЗ
Добавляем CD в наш пайплайн. 1. Определяем где в пайплайне должны быть функции доставки и развертывания
2. Добавляем их в пайплайн
Построение полноценного флоу CI/CD
Воркшоп по Docker
Работа с секретами
объяснить, как деплоить на прод, сохраняя в секрете логины/пароли, ключи и другие sensitive data;
проанализировать возможности облачных провайдеров и внешние инструменты;
прописать для пайплайна демо-приложения, данные для доступа на промышленные среды.
Домашние задания: 1
ДЗ
Перенести секреты из пайплайна вашего проекта в безопасное хранилище..
Мониторинг работы приложения
настроить мониторинг приложения средствами облачных провайдеров:
- Amazon CloudWatch
- Azure Monitor
- Мониторинг в Gitlab

подключить мониторинг к демо-проекту, анализируем доступность приложения при установки новой версии.
Установка в базы данных
Знакомство с terraform
экстраполировать всё, что узнали про ansible - на terraform.
Домашние задания: 1
ДЗ
Пишем терраформ-план. 1. определяем состояния которые нам нужны в кластере
2. описываем всё в терраформ плане
3. делаем инфраструктурный пайплайн развертывания
Воркшоп по Ansible
Безопасность контейнеров, интеграция проверок безопасности и пайплайны
разобраться могут ли контейнеры быть безопасными.
Проверка на лицензионную чистоту
рассмотреть виды лицензирования - их отличия и возможности использования;
объяснить в чем смысл проверок на соответствие продукта, используемым лицензиям и к чему может привести нарушение "лицензионной чистоты" продукта;
добавить в пайплайн демо-приложения шаг проверки на "чистоту лицензирования".
Домашние задания: 1
ДЗ
Добавляем в пайплайн демо-приложения шаг проверки на ""чистоту лицензирования""..
GitOps
Jenkins
настроить и запустить сервис. интегрировать с git и Docker; рассмотреть pipeline-подход.
Итоговый модуль
тест
Консультация по проекту и домашним заданиям
получить ответы на вопросы по проекту, ДЗ и по курсу.
Домашние задания: 1
ДЗ
Проектная работа. 0. Создайте подгруппу для ваших будущих репозиториев
1. Возьмите несколько (2-3) репозитория с кодом приложений. Можно использовать те, которые встречались за время обучения.
2. Разработайте подходящий для всех репозиториев флоу cicd
3. Реализуйте шаг тестирования
4. Реализуйте шаг сборки
5. Выберите механизм деплоя этих проектов
6. Реализуйте механизм деплоя
7. При необходимости, добавьте инфраструктурные репозитории (роли, манифесты, шаблоны)
Проверка кода на кибербезопасность
объяснить разницу между статической проверкой кода (SAST) на уязвимости и динамической проверкой (DAST);
проанализировать функциональные возможности опен-соурсных и коммерческих утилит;
подключить к нашему пайплайну обе проверки.
Домашние задания: 1
ДЗ
подключить к пайплайну вашего проекта проекту с помощью любого SAST или DAST. Приложить отчет (даже если он пустой) в ДЗ. .
Работа с динамическими окружениями
проанализировать различные подходы к процессу ревью изменений до их принятия в основую ветку разработки;
настроить деплой изменений на статическое и динамическое окружение;
добавить шаг Review в пайпалайн демо-проекта.
Домашние задания: 1
ДЗ
Для выбранных вами проектов, реализовать динамическое формирование окружения для развертывания feature-веток..
Подведение итогов курса
обсуждение проектных работ.
узнать, как получить сертификат об окончании курса, как взаимодействовать после окончания курса с OTUS и преподавателями, какие вакансии и позиции есть для выпускников (опционально - в России и за рубежом) и на какие компании стоит обратить внимание.
«Воркшоп по Ansible» часть 2
Дополнительная защита и подведение итогов курса
обсуждение проектных работ. узнать, как получить сертификат об окончании курса, как взаимодействовать после окончания курса с OTUS и преподавателями, какие вакансии и позиции есть для выпускников (опционально - в России и за рубежом) и на какие компании стоит обратить внимание.

Преподаватель

Игорь Саблин
Lead Ops Architect в американском стартапе
Ex-руководитель направления IT ПАО "Сбербанк". Опыт работы в банковской отрасли более 20 лет. Занимается внедрением DevOps-практик и инструментов в производственные процессы Банка.

Помогает командам настраивать процессы Continuous integration и continuous delivery. Основной технологический стек - GitLab, Jenkins, SonarQube, Nexus, Checkmarx и много чего еще.

Во внерабочее время исследует применение CI и CD у облачных провайдеров (AWS, Azure).

В 2003 году окончил МИФИ по специальности «Вычислительные машины, комплексы, системы и сети», получив квалификацию «инженер-системотехник».

F.A.Q.: Наиболее часто задаваемые вопросы:

Нужно ли оплачивать обучение до Дня открытых дверей, если я хочу гарантированно попасть в группу?
Да, мы рекомендуем заранее оплатить обучение, чтобы гарантированно попасть в группу. В период проведения Дня открытых дверей резко возрастает количество желающих обучаться, поэтому может случиться так, что к окончанию Дня открытых дверей мест в группе не останется
Кто будет проводить День открытых дверей?
Проводить День открытых дверей будет преподаватель курса.
Как принять участие в Дне открытых дверей?
Для того, чтобы принять участие в Дне открытых дверей, оставьте свой e-mail в поле регистрации на мероприятие. Перед началом Дня открытых дверей мы пришлем вам ссылку, пройдя по которой, вы сможете присоединиться к вебинару.
Какие вопросы будем обсуждать на Дне открытых дверей?
На дне открытых дверей мы поговорим о проекте OTUS (о программе курса, почему мы не принимаем в группы новичков, почему учиться у нас интересно, но сложно), карьерных перспективах выпускников (почему вероятность карьерного роста у лучших студентов стремится к 100%), учебном процессе (оплатах, оценке знаний, сертификатах и прочих аспектах). Также ведущий мероприятия с радостью ответит на все ваши вопросы.
Черная пятница в Otus! ⚡️
Скидка 15% на все курсы до 20.11 →