0b10 лет спустя: нырок в девопс

cdc0c96537c6c7e777f10a951d91b2f7.jpg

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

Рефлексия, как и любая обратная связь, на мой взгляд — мега-полезная штука, если уметь ею пользоваться и не доводить себя в процессе до тревожных состояний.

Практически сразу после выхода той статьи со мной связался целый технический директор небольшой IT-компании и во время интервью заявил, что разделяет взгляд на описанное, сходу предложив мне трудоустройство. Было анонсировано желание, чтобы я провёл аудит инфраструктуры, сделал заключение о её состоянии и предложил роадмап по приведению в порядок. Говоря проще, «у нас всё очень плохо, с этим надо что-то делать».

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

Надёжно зафиксировав бровь в положении «сдержанный скепсис», я в лайтовом режиме натравил nmap на адреса компании — и попал в чудесный мир древних версий OpenSSH, баз данных, доступных для брутфорса всем китайским хакерам в мире, Kubernetes API, админок продукционных сервисов и так далее, и так далее…

Внутри серверов обнаружился пахнущий йодом, солью Карибского бассейна и торрентами атлассиановский стек, в частности замшелых годов Битбакет, не работавший без HostKeyAlgorithms=+ssh-dss. Продукционные сервисы крутились, слава тебе господи, в k8s -, но поскольку внешние адреса были приколочены к конкретным физическим серверам и не могли мигрировать между ними, «отказоустойчивость» сайтов обеспечивалась следующим образом — DNS A-записи доменов указывали на все k8s-узлы. В случае выхода из строя одного из серверов процент успешных запросов просто уменьшался до \frac{n-1}{n}. Приемлемо ©.

Приемлемо (c) KotiaForge

Приемлемо © KotiaForge

На продукционных Постгресах не была настроена репликация (на этом этапе я начал ощущать неподдельный ужас и желание немедленно всё забэкапить). Никакого единого управления пользователями — права в сервисах точечно насовывались руками. Пароли от всего (в том числе ЛК хостинга, регистратора доменов, рутовые на серверах) передавались, как знамя, одним куском в виде Keepass-контейнера.

Всё это звучит постапокалиптично, но тогда я не то что не приуныл, напротив — был полон энтузиазма взять всё это безобразие в свои мозолистые (на самом деле нет) руки и превратить в нечто приятное глазу. Продолжалась эта лёгкая эйфория ровно до первого приезда в офис.

Договорившись о встрече с CTO и системным архитектором, я подготовил роадмап, включающий в себя постепенное выпрямление инфраструктуры, начиная с самых нижних этажей — локальной сети, фаерволла, отказоустойчивых линков между устройствами. Выше располагался виртуалочный кластер с единым пулом адресов и shared-хранилищем, реплики СУБД, LDAP-каталог, SSSD, Vault… где-то в конце скромно стояло предложение «прекратить пиратить» (обречённое на провал хотя бы потому, что к тому моменту Атлассиан уже перестали продавать self-hosted лицензии, настойчиво маня всех в облако).

В самом начале презентации мои соловьиные трели были самым бесцеремонным образом прерваны политическим кредо товарища архитектора — «сеть по определению ненадёжна, поэтому ничего из этого не нужно». Отряхнув упавшую на пол нижнюю челюсть, я попытался всё-таки донести, что «так, как сейчас — не ок», но что противопоставишь такому железному аргументу?

Известная цитата Гегеля гласит, что история повторяется дважды — сначала в виде трагедии, а затем — фарса. Мне повезло лицезреть эволюцию этого процесса, когда трагедия и фарс слились воедино.

В предыдущей части повествования я рассказывал, что думал «ищут девопсов, но на самом деле ищут админов», а реальность, в свою очередь, доказывала мне, что «ищут именно девопсов, причём сферических». Ирония судьбы заключается в том, что при максимально неотложной потребности в приведении низкоуровневой инфраструктуры в порядок, мне, проводя аналогию, предлагали заняться покраской забора вокруг горящего здания. Было совершенно очевидно, что хлипкая конструкция, поверх которой был тонким слоем размазан k8s и кривенький CI, долго не протянет — я отчётливо понимал это, но не мог ничего с этим поделать.

Как вы можете догадаться, долгого и конструктивного сотрудничества у нас не произошло. Я делал несколько заходов, предлагая всё менее инвазивные способы навести хоть какой-то порядок -, но всё тщетно. Архитектор, зачем-то глубоко сующий свой нос вникающий в вопросы, на первый взгляд к нему совершенно не относящиеся, ветировал направо и налево. Техдир, который меня нанял, особенной активности не проявлял, и очень скоро стало понятно, почему (дело, напомню, было весной 2022 года) — он готовился к эмиграции из РФ. После этого, наиболее, кстати говоря, адекватного товарища, я успел застать ещё двух с половиной техдиров (одного «и.о.») разной степени вовлечённости, прежде чем окончательно всех задолбал и был любезно попрошен на выход.

Пикантная подробность — перед публикацией статьи я порылся в закромах и нашёл тамошний свой kubeconfig с админскими правами. Попробовал подключиться — всё ещё работает.

Так выглядит высокотехнологичный вариант мема

Так выглядит высокотехнологичный вариант мема «this is fine» по мнению Stable Diffusion. Что-то в этом есть.

Этот случай утвердил меня в мысли о том, что желание нанять девопс-инженера и реальная потребность в оном — штуки ортогональные и не всегда совпадающие. Хорошо, когда инфраструктура чётко налажена и поверх неё легко и удобно взгромождать и развивать разные прикольные девопсячьи штуки. Но, как видите, бывает и наоборот.

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

Для начала, это оказался финтех -, а значит, по идее, совсем лютой дичи, как в прошлом месте, там не должно было быть — так и оказалось. Компания была крупнее, с внушительным отделом эксплуатации, к инфраструктурной части которого я и присоединился.

Увидев, как выглядит инфраструктура, я прослезился — настолько этот оплот чёткости и порядка отличался от той продуваемой всеми ветрами постапокалиптической пустыни. IaaC во все поля, Терраформ, идемпотентный Ансибл, бдительные айтисеки, обязательное ревью всех PRов, груминги… в общем всё то, чего в моей олдскульной админской жизни доселе не хватало.

С низкого старта я поломился овладевать новыми горизонтами. Было сложно, но дико интересно. Но сложно. Давно позабытое, казалось бы, чувство глубочайшего удовлетворения, охватывавшее меня лет 20 назад в момент решения особенно сложных математических задачек — вернулось. Это был чистой воды выход из зоны комфорта с постоянными качелями, носящимися между унынием и ликованием — и оно того стоило. В какой-то момент я обнаружил себя где-то в районе миддла — тогда же открылась вакансия в одной из продуктовых команд, меня туда затянуло — и всё начало повторяться по-новому. Собственно, в этой точке я и нахожусь в данный момент, а что будет дальше — ещё не понятно. Но, тем не менее, какие-то выводы можно сделать уже сейчас.

За два года я, кажется, успел понаблюдать абсолютно за всеми персонажами, описанными мной в прошлой статье. Сферические девопс-инженеры, не желающие знать ничего за пределами YAML-конструкций. Вросшие корнями в бетон немолодые дядьки-админы с внушительными карьерами за плечами, знающие «как надо» -, но не готовые подтвердить своё мнение цитатами из документации, виртуозно накликивающие нужное в веб-интерфейсе, но плюющиеся ядом при предложении повторить то же самое в Терраформе. Видел менеджеров, для которых ответ на любой вызов — засовывание в облако. Менеджеров, готовых задолбать все смежные отделы — только бы изобразить бурную деятельность. Но, справедливости ради, видел и сверхчеловеков, объявших, кажется, весь диапазон админского знания сверху донизу; мне повезло, что один из таких, недрогнувшей рукой и душными, но справедливыми замечаниями тимлидит нашу разношёрстную компанию.

Шуточный опрос, которым заканчивалась прошлая статья, о том, кто круче — админы или девопсы, спустя два года только подтвердил свою несерьёзность.

Есть админы, которые круче многих девопсов. Есть девопсы, на голову выше любого админа. Хорошо, когда каждый занимается тем, что ему интересно, что приносит пользу компании — и любые ярлыки в этом случае совершенно бессмысленны. Спустя два года я решил отказаться от дихотомии «админ — девопс» хотя бы потому, что не могу сейчас с уверенностью сказать, админ ли я, девопс, или то и другое сразу — и если да, то в каких пропорциях.

Монохромный мир волшебным образом обзавёлся кучей оттенков. Неизменным осталось одно — моё уважение к квалифицированным инженерам, как бы кто их не называл.

P.S. — насчёт именований

За прошедшее время я посетил пару девопсячьих конференций — и обнаружил, что даже спикеры, которые, по идее, должны нести свет истины широкой публике, сами испытывают высокую волатильность в вопросе того, «девопс — это методология, отдел, должность или диагноз?», используя в процессе выступлений терминологически неоднородные иллюстрации и выражения. Поэтому я решил забить на точность и писать, как придётся к слову.

© Habrahabr.ru