DevOps platform engineering - фейк и не работает. Начало: как я в это влез
Однажды я решил перестать быть "системным архитектором" (переименованным сисадмином, внедренцем, саппортом 3 или 4 линии) и стать девопс-инженером. Мотивация была простая: 1) деньги - моя зарплата админа на тот момент была очень высокой, но это был абсолютный потолок не только для РФ, но и для нормальных-то стран - а мои потребности в скором времени должны были сильно вырасти; 2) задачи - у меня не осталось больше задору на то, чтобы работать с энтерпрайз-инфраструктурой, никак не связанной ни с опенсорсом, ни с процессами разработки - мне попросту надоело админить.
Мне пришлось распрощаться с насиженным местом и полгода получать такую зарплату, от которой я уже сильно отвык. Зато уже следующее место работы стало приносить мне почти такую же сумму, как последнее админское - конечно, если учитывать различные доплаты, вроде дежурств и милипиздрического процента от прибыли.
За время работы девопсом я сменил 10 команд. Я советую вам также всегда менять проект или команду, если вам это предлагают. На первом же месте работы я посетил вводный семинар и узнал о таком течении, как Platform Engineering. На огромной стене, на которой докладчик рисовал схемы, выглядело это завлекательно. Мне представлялась большая, связная, автоматизированная система, куда на вход подавались управляющие импульсы, а на выходе был результат, порождённый детерменированным и бесперебойным процессом.
Мне "повезло" ещё и в том плане, что на первом же проекте мне попалась как раз такая девопс-платформа, которую я себе представлял. Она была целиком написана на typescript. Множество структурированных файлов в строгой иерархии описывало развёрнутую инфраструктуру большого продукта и все её настройки, при этом совершенно не содержало служебный код.
dcs:
moscow-1:
kubernetes:
k8s-moscow-1:
nodegroup-1:
max-nodes: 10
min-nodes: 2
cpu: 12
ram: 48
и тому подобное - так выглядели йамлы, которые подавались на вход.
Синхронизация описания и реальной инфры происходила по периодическому запуску платформенной утилиты. Расширяемость платформы была потрясающей - я за 5 минут разобрался, как сделать так, чтобы можно было описать совершенно новый инструмент в составе платформы, накидал модель и тесты и уже к вечеру развернул требуемое.
У этой платформы были недостатки в виде быстродействия. Но одно дело, когда ты сидишь и ждёшь, пока бинарь под капотом раскатывает конфиги terraform, ansible, helm и тому подобное, а другое дело когда у тебя всё постоянно отваливается и падает. Я всегда предпочитаю стабильность скорости.
Команда, управляющая этой платформой, была довольно дисциплинирована и замкнута, новых людей в команду брали с неохотой, а СТО продукта то и дело выпинывал с испыталки очередного незадачливого джуна или мидла.
Больше ничего лучше, чем эта платформа, я не видел. Когда я первый раз сменил девопс-работу, то офигел от того, насколько распиздяйская инфраструктура была на новом месте. Всё то, за что меня душили менторы и ревьюеры на первой работе, буйным цветом разрасталось на второй. Новые коллеги говорили, что всему учились сами, поэтому накопили техдолг - для того они и наняли в том числе и меня, чтоб его было кому разбирать.
И скажу сразу - чего-то подобного платформе с первого проекта я так потом и не видел ни разу.