Всем уже надоели эти аббревиатуры. Сначала они называли это DevOps, потом стали везде писать SRE. Зачем и я об этом пишу?
Часто меня спрашивают о том, зачем нужен этот девопс, что он дает и как его использовать. Многие пишут что все эти модные штучки нужны только тем, кто продает свой софт и “обычному” админу вовсе не нужны (под “обычным” мы имеем в виду админа организации с Windows, AD, GPO, WSUS, почтарем, 1С и всем, что крутится рядом с этим). Давайте попробуем в этом разобраться и, возможно, поменять ваше мнение.
Я начал интересоваться девопсом около года назад — в конце 2018. И у меня возникали такие вопросы:
- Зачем это мне — обычному сетевику?
- С чего начать изучение?
- Как не ошибиться в выборе инструментов? Вдруг применяемая мной технология умерла пару лет назад
- Как применить полученные знания на собственной инфраструктуре? Особенно, если везде винда
- Достаточно ли просто изучить инструменты типа Docker, Ansible, Git чтобы жизнь изменилась?
Я несколько раз бросал изучение нового из-за того, что не знал ответы на эти вопросы. Даже когда мне явно давали ответы, я не мог этого понять — слишком узкий был кругозор заплесневевшего корпоративного админа.
Моё видение изменилось благодаря нашему сообществу сисадминов — Sysadminka. После очередной порции типичных вопросов начинающего чатик разразился ответами. Постараюсь передать их смысл.
Что такое девопс? Это методология, позволяющая быстро и достаточно стабильно релизить софт. Написал программист новый модуль, отдал девопс(простите) инженеру, а тот интегрировал модуль с рабочей системой, протестировал всю схему в разных условиях и обновил её в проде, не нарушив работу пользователей.
Кажется, что это далеко от работы “обычного” админа. Но разве “обычный” админ не обновляет софт на серверах и рабочих стациях? Разве ему не нужно тестировать новый софт? Или взаимодействие одного модуля с другим? Разве ему не нужно поддерживать бесперебойную работу систем даже во время обновления? Понимаете к чему клоню? Методы и инструменты девопс применимы для всех!
Ещё пример: Разворачивание .cf файла на тестовой базе 1С. Запуск 1С тестов, потом раскатка этих cf через УРБД с обновлением конфигурации. Пиши powershell или python скрипты которые через CLI распаковывают тестовую базу из 1С репозитория потом прогоняют тесты. Потом конфигурация снимается в cf и дальше через УРБД раскатывается на “остальные филиалы” (С) Slach@Sysadminka
Около полугода я без понимания тыкал палочкой инструменты: Docker, Ansible, Git. Но это были простые эксперменты без понимания надобности этих технологий. Всё изменилось, когда появились реальные задачи. Их просто нужно было придумать. Я решил перестать настраивать оборудование вручную и всегда иметь под рукой историю изменений. В этом помогли Git, Ansible, Python, Docker и Molecule.
Если в инфраструктуре только винда, то начинаешь ошибочно предполагать, что это всё не для тебя. Но ведь многие служебные сервисы работают на линуксе — с них и можно начать: мониторинг, git, IPAM, лог-сервер. Я начал с конфигурации маршрутизаторов и постепенно дошел до автоматического развертывания мониторинга с хранением данных в NetBox. Так, чтобы добавить хост на мониторинг, техникам нужно просто добавить его в NetBox, а скрипты автоматически пропишут его в конфигах Prometheus’a.
Инфраструктура, описанная в коде легко документируется. Её изменения удобно отслеживаются, а бэкапы не нужны. Ведь при падении сервера за минуту прогоняется плэйбук, разворачивающий точно такой же сервер. Разве это не стоит того, чтобы изучить новые инструменты?
Около года я изучаю и использую DevOps инструменты и начал понимать, что я многого не знаю, в том числе из фундаментальных вещей. На своей практике я давно понял, что иногда понимание элементарного может отнять слишком много времени и выгоднее пройти платные курсы за несколько дней, чем пытаться месяцами понять непонятное. Так я решил пройти курсы от Slurm: DevOps и SRE.
Давайте разберем зачем мне это надо. Я вообще люблю успокаивать себя надобностью дорогих покупок.
- Возможно, я что-то делаю не так как принято. Ведь я всему учился сам, без старших товарищей
- Нужно сравнить разные инструменты, послушать отзывы от тех, кто ими пользовался и понять какие лучше подходят для моих задач
- На курсах важна не только информация от выступающего, но и комментарии из зала и общение в курилках
- Расширение горизонта. Курсы позволят взглянуть на технологии, до которых я сам доберусь нескоро
Сначала я хотел поучаствовать только в курсе SRE. Но так как львиная доля моих затрат уходит на логистику, то решил захватить ещё и курс DevOps, который пройдет за несколько дней перед SRE. Попробуем разобраться зачем мне оба курса.
DevOps:
- ChatOps. Всегда интересовался управлением инфраструктурой с помощью мессенджеров
- Увидеть микросервисы изнутри
- Надеюсь поглубже разобраться с Git и увидеть как им пользуются большие дядьки
- Сравнить CI/CD системы
- Узнать правильно ли я готовлю Infrastructure as Code
SRE:
- Дизайн распределенных систем. Кажется, это самая бомбическая часть всего курса
- Проектирование и запуск распределенной системы
- Тестирование и Chaos Engineering. Давно об этом почитываю, но вживую ни разу не видел
- Балансировка и защита от DDoS
Оба курса рассматривают мониторинг и логирование. Про мониторинг я часто пишу у себя в канале. Думаю, после курсов появятся новые мысли и посты.
Курсы закончатся 5 февраля. После я постараюсь написать отчет о каждом из них, а вы сделаете выводы. Так же надеюсь, что получится своими словами описать хотя бы часть затронутого материала.
Напишите в комментариях что вы думаете по поводу применимости DevOps/SRE практик и инструментов в мире “обычного” системного администрирования. Какие инструменты и как применяете у себя? С чего посоветуете начать тем, кто давно хочет, но ещё не начал?