Чтиво на weekend.
Представьте, что вы написали калькулятор, calc.exe. Почему бы не добавить к нему темную тему? Хотя нет, почему тему, пусть будет любое количество тем. Мы их будем хранить в файлах.thm. Важно не запутаться, потому что еще мы хотим настраивать расположение клавиш. Просто переключать вид — простой/научный — это слишком просто. Надо ввести понятие layout. Который хранится в файлах *.lyt.
Так, теперь логично написать редактор layouts, который, разумеется, будет больше первоначального калькулятора. И делать bundles.thm+lyt, и... о да, конечно! Marketplace! Создаем сайт, поиск, free/paid, система обновлений... На чем бы все это писать? Что в этом месяце популярно среди front end?
К этому моменту первоначальная идея о том, что калькулятор нужен для того, чтобы считать, давно забыта. Нас утащила в облака идея ползучего улучшательства.
Конечно, по молодости каждый делал такие ошибки. Но DevOps — это то, что описано выше — только масштабировано на уровень фирмы.
Git, Nexus, Jenkins, Ansible, Octopus, Jira... Я как то писал jobs для Jenkins. Они вызывали скрипты на PowerShell. Но DevOps говорят — нет, это слишком просто! Пусть в самом начале каждой Jenkins job curl вытягивает с Nexus последнюю версию скриптов, и только потом уже ее выполняет. Мы получаем версионирование скриптов! Круто же! Никого не интересует, удобно ли это, важно, что это круто и хитро... Ну вы поняли.
Правда, все это крутилось на Linux, а отлаживать это можно было только вживую, поэтому при отладке (изменив одну строчку в скрипте) мне приходилось делать git add ., git commit и push, делать merge, потом запускать Jenkins job, которая паблишила это в Nexus, и где-то спустя пять минут ручной работы я мог проверить новую версию скрипта. Но мне не привыкать - я работал и на перфокартах c одним прогоном в день.
Но вы никогда не задумывались, что DevOps существуют для того, чтобы облегчать жизнь, а не усложнять? Что если появились инструкции на 40 пунктов и 50 yaml файлов - то значит, что что-то пошло не так? У знакомой три девелопера и три человека в отделе DevOps. Ребята, а вы точно экономите деньги?
Вы никогда не задумывались, что net effect от всех действий DevOps — это перенос файлов из одного места в другое (иногда в несколько мест). То есть команда copy (cp) с рядом условий?
Извините, я забыл про облака. Там Terraform, Chef, файлы их конфигураций, а раз файлы, то снова версионность, Git, Nexus, Jenkins... А вы думали, сколько новому человеку во всю эту кухню вникать? Сорри, я забыл, что это не плохо, а наоборот, хорошо, и называется job security.
Во всем этом обилии технологий забыт главный принцип... KISS... Мне кажетcя, современный DevOps превратился в вещь для себя, самосбывающееся пророчество, которое потребляет все больше и больше ресурсов, раскручиваясь как спираль...
P.S. Наверное, Jenkins надо поместить в Docker а сверху шлифануть Kubernetes...