Слёрм DevOps. День первый. Git, CI/CD, IaC и зелёный динозавр

4 сентября в Санкт-Петербурге начался Слёрм DevOps.

В одном месте и в одном времени собрались все необходимые факторы для увлекательного интенсива длительностью в три дня: удобный конференц-зал Selectel, семь десятков любопытных разработчиков в зале и 32 участника в онлайне, сервера Selectel для практики. И зелёный динозавр, притаившийся в углу.

niczuez-eqgdyvtmifi2gdkopb8.jpeg

В первый день Слёрма перед участниками выступили три спикера.

Павел Селиванов, архитектор решений в Southbridge, занимается администрированием более 10 лет, является Certified Kubernetes Administrator. Постоянный спикер Слёрма. Делал доклады на конференциях Moscow Kubernetes Meetup и UWDC. Обладает богатым опытом внедрения Kubernetes: 5 проектов — индивидуальная работа, 20+ проектов в составе команды.

Артём Галонский, СТО «БюроБюро», специально прибыл на Слёрм DevOps из Калининграда. Опыт в коммерческой разработке более 12 лет. Выступал в роли тимлида\руководителя отдела разработки с 2011 года. Техническим директором стал в 2016 году. Считает, что devops-инженер — это что-то вроде единорога. Не в том смысле, что поймать его может только девственница. А в том, что никто не знает, что это такое на самом деле.

Алексей Степаненко, инженер отдела облачной платформы Selectel, занимается инфраструктурными задачами по обслуживанию облака OpenStack: мониторинг, CI/CD и управление конфигурациями.

66zvmkdqv3e-yefzay6lnvsxkvo.jpeg
»…, а потом я поймал во-о-от такой вот баг.»

Первым обрушился знаниями на участников Павел Селиванов — причём с неожиданной стороны. Казалось бы, что такого особенного в Git — вроде бы самое простое и обыденное, азбучные истины. Но на самом деле мало кто умеет правильно работать с Git. Прошлись по базовым командам git init, commit, add, diff, log, status, pull, push. Вспомнили git flow, ветки и теги, стратегии merge.

0gwqn2kgm3xyhgujhmhg3u9_6ug.jpeg

Потом Павел Селиванов уделил время командной работе с Git. Прошлись по fork, remote, pull request. А затем обсудили конфликты, релизы, и еще раз вернулись к Gitflow и другим flow применительно к командам.

xt2ewtvoar9ebdldz8qod7sxs0y.jpeg

5vp-ypflwlvboxymkk819czbzrw.jpeg
«Ах, какой админ!»

После обеда, когда участники немного набрались сил и приготовились внимать дальше, настала очередь CI/CD.

Артём Галонский начал с темы «CI/CD: введение в автоматизацию». Детально рассмотрел инструменты bash, make, gradle, а также использование git-hooks для автоматизации процессов. Рассказал о фабричных конвеерных линиях сборки и их применение в IT. Поделился примером построения «общего» пайплайна. Обсудил современное ПО для CI/CD: Drone CI, BitBucket Pipelines, Travis.

hjveq_bvx6wv7jk58dwcf5dahvo.jpeg

8p1aylzrkr-rv2o1talke7_rqhi.jpeg

Ближе к шести часам вечера участники начали потихоньку выматываться. Поступали предложения делать перерывы почаще. От активно работающих неокортексов в конференц-зале ощутимо потеплело. В рабочем чате даже появилась выстраданная просьба: «Коллеги, давайте не будем упарываться и делать больше перерывов #support»

5wn4u6p-7n2kbkm1wth46bumunu.jpeg
» — МарьИванна, можно выйти? — Нет, сиди!»

Артём Галонский беспощадно продолжал загружать знания в участников. После кофебрейка открыл следующую тему «CI/CD: Работа с Gitlab».

rmmmjamnw2f9mibtqruw7tx74ey.jpeg
«А теперь крепко держитесь за ноутбуки. И-и-и, поехали!»

Рассказал о Gitlab CI, особенности настройки, лучшие практики, затем о Gitlab Runner, их типы и применение. Рассмотрел этапы Gitlab CI и переменные Gitlab CI. Вслед за контролем и ограничениями выполнения (only, when) рассказал о работа с артефактами. Показал шаблоны внутри .gitlab-ci.yml, переиспользование действий на разных участках пайплайна Include — секции. Завершил централизованным управлением gitlab-ci.yml: один файл и автоматические push в остальные репозитории.

После очередных печенек и кофе перед участниками выступил Алексей Степаненко с темой «Infrastructure as Code: подход к инфраструктуре как к коду». В зале публика живо интересовалась темой следующего дня «IaC на примере Terraform», требовали душещипательных историй.

Никита Суворов, [4 сент. 2019 г., 20:27:35]:
@f3exx а по терраформу будут душещипательные истории или все закончится лабами?

Aleksey Stepanenko, [4 сент. 2019 г., 20:28:32]:
Будет одна точно)

Dmitriy Miroshnichenko, [4 сент. 2019 г., 20:28:38]:
эээ, например какие?
джун взял стейт и все убил?

На пятом Слёрме мы попробовали схему «лесенки», когда материал даётся от простого к сложному — со стартом от Git и финишем на SRE. Получилось не очень: крутые участники заскучали на лёгких темах. Посмотрим, как в пятницу пойдёт сложная часть интенсива.

nfvnqskdwzp4hnmdypfueobgvgw.jpeg

В чате Слёрма пишут:

Николай Кононенко, [4 сент. 2019 г., 16:17:28]:
Все вроде получается, но темп такой что ты просто успеваешь это сделать не осмыслив. очень похоже на то как находя рандомную инструкцию на одном из сайтов ты просто копируешь по шагам  и вставляешь, только у тебя нет возможности остановиться а нужно бежать от шага к шагу. ну или ты это уже знаешь и тебе норм

Alexander B, [4 сент. 2019 г., 16:18:06]:
да, успеваешь что-то одно - либо слушать, либо выполнять

Fedor, [4 сент. 2019 г., 16:18:21]:
+1
Еще из минусов, пока ты занимаешься копи пастом инструкций пропускаешь 80% слов Артема

Кирилл, [4 сент. 2019 г., 16:19:01]:
нужно два runners запускать
один раннер слушает 
а второй копипастит )

Если замедлить ход Слёрма, в него влезет меньше информации. Чем-то надо жертвовать — мы пожертвовали комфортным темпом. Специально для того, чтобы уместить и утрамбовать всё в голове, есть записи интенсива.

bjzpl3vmujem2af5pw71f_xxn4o.jpeg

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

Ответственно заявляем, за первый день Слёрма от DevOps-инженеров ни один динозавр не пострадал. Впереди ещё два дня интенсива. Самое интересное, сложное и вкусное: IaC и SRE.

© Habrahabr.ru