Обичам проекти, които продължават седмица, а ме плаши идеята за проекти, които траят година. В Agile ми харесва концепцията за MVP и инкременти — точно такова е моето: да направя работеща част, да я внедря и да продължа напред.
Въпреки това, DevOps трансформацията в такъв вид, в който я обсъждат в книги и на конференции, е точно проект, който трае година или години.
Създавахме курса си по DevOps в парадигмата “MVP DevOps за един спринт” и “готовност за инкременти”. А ако го кажем нормално, означава “участникът да може веднага след завръщането си да внедри нещо и да извлече ползи от него”.
MVP DevOps: курсът предлага инструменти за основните DevOps процеси. Не си поставяхме за задача да разглеждаме и сравняваме всички CI/CD системи или да разкрием дълбочините на подхода Infrastructure as Code. Предоставяме един ясен стек: Gitlab CI/CD, Ansible, Terraform, Packer, Molecule, Prometheus, EFK. Може да се завърши курса и да се изгради инфраструктура за пилотен проект от учебните материали и да се работи в него.

Готовност за инкременти: всеки елемент предоставяме с много практика и примери. Може да се вземе един инструмент и по учебни чертежи да се работи по внедряването му. Например, да напишете Ansible плейбук за разгръщане на dev среди или да свържете бот и да администрирате сървър от телефона. Тоест, за седмица да получите конкретен практически резултат. Нека да е безкрайно далеч от DevOps трансформацията на цялата компания, но той съществува, тук е, работи и носи полза.
Темите на Slurm DevOps
Тема №1: Най-добри практики с Git — говори сама за себе си.
Тема №2: Работа с приложението от гледна точка на разработката — инженерът се нуждае от компетенции както на администратора, така и на разработчика, затова разказваме на администраторите за разработката.
Тема №3: Основи на CI/CD
- Въведение в автоматизацията на CI/CD
- Основи на работата с Gitlab CI
- Най-добри практики с gitlab runner
- Инструменти като bash, make, gradle като част от CI/CD и не само
- Docker като начин за решаване на проблеми с CI
Тема №4: Gitlab CI/CD в продукция
- Конкурентност при стартиране на job
- Контрол и ограничения при изпълнението: only, when
- Работа с артефакти
- Темплейти, включвания и микросервизи: опростяване на разгръщането
Запознаваме студентите с основните понятия и концепции на CI/CD и инструментите за реализация на CI/CD. В резултат студентът ще може самостоятелно да избере шаблон за проектиране на CI/CD и подходящ инструмент за реализация.
След това показваме реализацията на CI/CD в GitLab и разглеждаме настройките, като обсъждаме напреднали начини за използване на GitLab CI. В резултат на това студентът ще може самостоятелно да настрои GitLab CI за собствените си проекти.
В сравнение с първия Slurm DevOps, намалихме теорията наполовина (по час на тема), изоставихме прегледа на всички системи и оставихме само GitLab CI. Съсредоточихме се върху практиката, добавихме много добри практики.
Тема №5: Инфраструктура като код
- IaC: подход за управление на инфраструктурата като код
- Облачни доставчици като доставчици на инфраструктура
- Инструменти за инициализация на системи, изграждане на образи (packer)
- IaC на примера на Terraform
- Съхранение на конфигурации, съвместна работа, автоматизация на приложения
- Практика на създаване на Ansible плейбуци
- Идемпотентност, декларативност
- IaC на примера на Ansible
Съкратихме теоретичната част относно UI и OpenStack CLI и се съсредоточихме върху практиката.
Ще разгледаме два подхода към IaC, използвайки едно и също приложение, като показваме плюсовете и минусите на всеки подход. В резултат на това студентът ще разбере кой подход да прилага и ще може да работи с Terraform и Ansible.
В темата за Terraform ще разгледаме практическия екипен труд и съхранението на състоянието в база данни. В работата с модули студентът сам ще напише и настрои модул, ще се научи да работи с него: да го преизползва, да го версия. Ще добавим работа с Consul, като покажем в кои случаи е необходим и как да се използва правилно.
Тема №6: Тестиране на инфраструктура
- Разбира се, защо не пишат тестове?
- Какви тестове съществуват в IaC?
- Статични анализатори, наистина ли са безполезни?
- Юнит тестиране на IaC на примера на Ansible + Molecule
- Тестиране като част от CI
- Тестове на стероиди или как да не чакаме 5 часа за приключване на тестовете за IaC
Съкратихме теоретичната част, по-малко разкази за Vagrant/Molecule, повече практика и конкретно тестиране, с фокус върху линтерите и работата с тях. Гледаме от гледна точка на CI
как да направим тестирането по-бързо. В практиката ще имаме:
- собствен линтер, който проверява наличието на задължителни променливи за хост в зависимост от ролята;
- добавяме в CI тестване само на онези роли, които са се променили, което позволява значително да се съкрати времето за изпълнение на тестовете;
- добавяме тестване на сценарии. Разгръщаме приложението напълно, като интеграционен тест.
Тема №7: Мониторинг на инфраструктурата с Prometheus
- Как да изградим здрава система за мониторинг
- Мониторингът, като инструмент за анализ, ефективност на разработката и стабилност на кода, още преди продукция
- Настройка на prometheus + alertmanager + grafana
- Преминаваме от мониторинг на ресурси към мониторинг на приложения
Ще говорим много за мониторинг на микросервиси: идентификатори на заявки, инструменти за мониторинг на API. Ще има много най-добри практики и много самостоятелна работа.
Ще напишем собствен експортер. Ще настроим мониторинг не само на продукционната инфраструктура и приложенията, но и на сборките в Gitlab. Ще прегледаме статистиката за провалените тестове. Ще видим на практика как ще изглежда мониторингът без healthCheck и с него.
Тема №8. Логиране на приложения с ELK
- Обзор на Elastic и инструментите му
- ELK/Elastic Stack/x-pack — какво е какво и каква е разликата?
- Какви задачи могат да се решават с помощта на ElasticSearch (търсене, хранилище, особености на мащабирането, гъвкавост на настройките)
- Мониторинг на инфраструктурата (x-pack)
- Логове от контейнери и приложения (x-pack)
- Логиране на примера на нашето приложение
- Практики за работа с Kibana
- Open Distro for Elasticsearch от Amazon
Темата е напълно преработена, води я Едуард Медведев, много от вас го видяха на уебинар за DevOps и SRE. Той ще разкаже и покаже най-добрите практики за работа с EFK на примера на учебно приложение. Ще има практика с Kibana.
Тема №9: Автоматизация на инфраструктурата с ChatOps
- DevOps и ChatOps
- ChatOps: силни страни
- Slack и алтернативи
- Ботове за ChatOps
- Hubot и алтернативи
- Сигурност
- Тестване
- Най-добри и най-лоши практики
В ChatOps добавихме практика за аутентификация с разделяне на правата, потвърждение на действията от друг потребител, теория и практика на алтернативата на Slack в лицето на Mattermost, теория на единични и интеграционни тестове за бота.
Слёрм DevOps стартира на 30 януари. Цена — 30 000.
За тези, които изчетоха, отстъпка от 15% на курса по DevOps с промокод habrapost.
Регистрация
Бих се радвал да ви видя на Слёрмите!
Източник: habr.com
