newsmode MarketNews
arrow_back К списку
rss_feedvas3k.blog ·30.10.2023 open_in_newОригинал

Pets vs. Cattle

Друзья-девопсы рассказали мне про их концепцию, которая называется «Pets vs. Cattle». Что в кривом, но более-менее литературном переводе — «Питомцы vs. Скот».

Перескажу и вам. Короче.

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

Скот — это ваши коровки и овечки. Я понимаю, меня вряд ли читают ковбои, но айтишники тоже часто мечтают о своей ферме, так что просто представьте себя лет через тридцать.

Коровы дают вам молоко, мясо, и вообще, если они у вас есть — скорее всего вы живете в деревне и они критически важны для вашего пропитания и выживания.

Однако, если одна из коровок серьезно заболела — вы отправляете её на убой, чтобы спасти остальное стадо от заражения. И тут же заменяете новой.

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

То есть как бы и питомцы важны, и скот важен, но по-разному.

Возвращаясь к девопсам. До появления облаков, когда «девопсов» еще называли «админами» и шутили про них шутки на башорге, каждый сервер был уникален. Вы точно знали, что ваш сайт крутится на конкретной машине с 1Gb RAM и 2GHz CPU в таком-то датацентре.

Когда сайт падал — вы шли на эту машину и чинили его. У машины для этого даже был выделенный IP адрес и собственное имя. Это и был ваш питомец.

С появлением облаков, докеров и кубернетесов, ситуация изменилась.

Все поняли, что управлять даже десятком серверов намного удобнее, когда они все одинаковые и идут куда-то хором по вашей команде.

Если сервер сломался или требует обновления, вы просто убиваете его и создаёте рядом точно такой же, но новый. Одной командой. Современные системы оркестрации уже делают это автоматически. Когда сервер упал несколько раз — тогда да, это повод задуматься и посмотреть логи. Но всю систему это не сломает.

Потому что современные сервера — это скот.

Думаю и ежу понятно, почему именно последнее стало пропагандироваться Гуглом, а потом и всеми остальными компаниями, как рекомендованный подход к управлению своей инфраструктурой. Если всё еще непонятно, почитайте плюсы-минусы тут или тут.

Теперь, наконец, к сути поста.

Разработчикам ТОЖЕ наконец-то надо сменить эту парадигму

Сейчас подавляющее большинство разработчиков относится к своему коду и проекту как к любимому няшному домашнему питомцу.

Они устраивают ему бесконечные рефакторинги, чтобы шерстка была помягче, яростно спорят какую версию корма купить в этом месяце, и всегда знают где почесать за ушком, если он начинает капризничать и крешиться с OutOfMemory.

А дальше они сталкиваются с реальностью.

В которой код — это лишь инструмент решения определённой задачи определенного бизнеса, который их нанял. И эта задача через месяц изменится. А значит и 99% написанного разработчиками кода будет просто выброшено на свалку.

И с точки зрения бизнеса с этим нет проблем: он нанял вас на помесячную ставку, исправно её платил (надеюсь), вы писали свой код (тоже надеюсь), а потом та старая хуйня больше не актуальна и надо срочно делать вот эту новую хуйню. Как же хорошо, что у нас уже есть разработчики и они напишут! Не так ли?

А вот со стороны разработчика всё выглядит по-другому: он старался, выглаживал, вынашивал своего питомца, а его потом взяли и выбросили злые дядьки-начальники. У программиста начинается очевидное 👇

ВЫ-ГО-РА-НИ-Е.

Да, одна из основных причин выгораний — это отсутствие смысла в жизни, либо в переводе на инженерный «мне чото говорят, я чото делаю, но вообще не понимаю нахуя это всё».

Я уже 999 этих овец загнал, а они всё равно с утра выходят и гуляют. Может быть дело во мне? Может я плохо делаю свою работу?

Так вот, если все-таки принять тот факт, что 99% написанного вами кода будет выброшено, то почему бы не начать относиться к этому как к норме, а не как к чему-то из ряда вон выходящему.

Лично мне помогает в этом как раз аналогия с «Питомцами против Скота» или «Pets vs Cattle».

Скот не «хуже» питомцев. Скот нужен, чтобы вам и всей деревне было что кушоть.

Не потому что вы «раб системы» и «начальник говорит что делать». А потому что вы выбрали путь фермера, пусть пока и не осознав этого. ? Хотя фермеры исторически очень консервативны и тоже верили в «начальника», который из Библии, который всем типа заведует — погодой, урожаем, дождем, и говорит им что делать, кек

Ну, я! (и рядом QA охуевает)

Вы заботитесь, чтобы ваши коровки были счастливыми, они вкусно кушали, подстилка была мягкой и водичка чистой. Вы постоянно следите за сводками эпидемий и вирусов, чтобы быть начеку перед новым сезоном. Но при этом вы понимаете цель его существования — прокормить вас и вашу деревню следующей зимой.

Вы можете дать самым красивым коровкам имена, но вы абсолютно четко отдаёте себе отчет в том, что когда придет время — «Алёнушка» превратится в сочный стейк.

Но вы не будете её хоронить и горевать, как о домашнем питомце. Ваши кошечки и собачки всё так же живут в тепле вместе с вами и сытые мяском. Но чьим?

Так вот каждый модуль вашей системы — это коровка, каждый микросервис — овечка, а каждый юнит-тест — ваша курочка.

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

Всем насрать как зовут ваших коров, если ваша деревня голодает

Когда начинаешь относиться к программированию именно как к фермерству, многое становится проще.

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

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

На остальное тоже можно посмотреть через эту призму:

Есть базовые вещи — умение построить сарай, знание отличия сена от соломы или, там, скилл управления трактором. Они не менялись десятилетиями и это база. Как алгоритмы и структуры данных.

Есть, наоборот, чрезмерно хайповые вещи. Всякие там супер-пупер-присадки, от которых коровки растут в 10 раз быстрее, но через пару лет выясняется, что мясо от них вызывает рак, и все начинают их хейтить. Это как новые фреймворки на джаваскрипте :)

Хотя иногда попадаются весьма забавные изобретения, типа автоматических чесалок спинок для коров. Так что становиться луддитом и отрицать прогресс тоже не стоит.

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

Ладно, окей, это комбайн, а не культиватор, но тут только 1% знает разницу, так что засчитано!

Чем более универсален ваш подход — тем лучший вы фермер. Если с вами завтра что-то случится, то другой фермер просто возьмет ваших коровок и продолжит их разволить. Ему не надо будет полгода запоминать их имена и заучивать вашу УнИкАлЬнУю планировку амбара.

Даже при найме на новую работу, с вас будут спрашивать про тот самый «опыт», а не за количество коровок, которые вам удалось сохранить перед уходом с прошлой фермы.

Потому просто примите как факт, что 99% вашего кода (коровок) будет уничтожено и съедено, но вы, как программист (фермер), станете от этого только лучше.

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

А если вам этого не надо — качайте в себе скилл самого лучшего фермера в регионе и забейте на всё остальное.

Но никогда. Никогда больше не путайте питомцев и скот.

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

Иначе пизда и выгорание.

Держитесь.