DevOps, SRE. Опять?

bubnov
4 min readJan 14, 2020

--

Всем уже надоели эти аббревиатуры. Сначала они называли это 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.

А базу тоже в Docker?

Если в инфраструктуре только винда, то начинаешь ошибочно предполагать, что это всё не для тебя. Но ведь многие служебные сервисы работают на линуксе — с них и можно начать: мониторинг, 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 практик и инструментов в мире “обычного” системного администрирования. Какие инструменты и как применяете у себя? С чего посоветуете начать тем, кто давно хочет, но ещё не начал?

--

--

bubnov

Network Automation Engineer. MikroTik expert. Hiking guy