Обичам проекти с продължителност една седмица, а проектите с продължителност една година ме плашат. В 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 за собствените си проекти.
В сравнение с първия Слёрм 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
- Преминаваме от мониторинг на ресурсите към мониторинг на приложенията.
Ще говорим много за мониторинга на микросервисите: id на запитите, инструмент за мониторинг на 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
