
У нас под постом про ЦОДы развернулась дискуссия: какой должна быть ракета, чтобы устроить дата-центру пробитие. Я почувствовал себя среди оружейных баронов и экспертов по уничтожению дата-центров.
Знаете, у нас есть некоторая экспертиза в этом. Потому что сгоревших ЦОДов мало, а вот попадавших из-за кривых рук — очень много. Поэтому мы тут решили на Хэллоуин сравнить разные технологии с тем, как бы выглядело оружие на их базе.
Кроме MongoDB без чеки из заголовка у нас есть ещё 20 не менее убойных штук.
Формат подрезал у Бьорна Типлинга — на Хабре ещё в 2014 году перевели его пост о том, каким оружием могли бы быть языки программирования. Тут такое же, только про облачные сервисы.
1. Виртуалки — автомат Калашникова
Простой и надёжный, придуман в прошлом веке и по-прежнему востребован. Разбирается и собирается с закрытыми глазами — в том числе теми, у кого его разбирать даже не просили. 100500 фич у него нет, зато есть одна и самая важная — он стреляет.
2. Serverless Functions — узи
Выглядит стильно, как из кино: компактный, скорострельный, можно закосить под Тринити из «Матрицы». Но первый выстрел — после паузы (холодный старт). Магазин кончается на самом интересном месте (таймаут). И счёт за патроны такой, словно вы заплатили за учения округа.
3. Kubernetes — авианосец
Очень впечатляет. Сам по себе не стреляет, зато возит тех, кто да. Решает проблемы, которых у вас не было, в масштабе, который вам не нужен. Экипаж — 5 000 человек, из них 4 990 пишут YAML. Повсюду ходит с группой сопровождения: ingress, CNI, CSI, cert-manager и буксиром с мониторингом. Если вы стартап из трёх разработчиков и подняли Kubernetes — вы непостижимым образом очутились на авианосце в сельском пруду.
4. Managed Kubernetes — F-35
Умеет всё: бомбить, разведывать, глушить радары и строить графики, наверное, и массаж ног тоже сделает. Запредельно высокотехнологичный, поэтому в поле починить его нереально, придётся ждать инженера с ноутбуком. Час полёта стоит как ваш предыдущий самолёт целиком. Зато ангар, техники, полоса и прочие неприятности — вообще не ваша забота. Да, мы такие тоже продаём. Да, инженер с ноутбуком — это мы.
5. Docker — швейцарский армейский нож
Такой есть у всех, и штука вроде полезная, а потом в бою у вас вместо ножа выпрыгивает штопор. Изначально его ради ножа и брали, но внутри оказалось ещё 40 предметов — слои, тома, сети, многоэтапная сборка. Образ для «Hello, world» весит 1,2 ГБ, потому что кто-то положил внутрь Ubuntu целиком. А на входе в прод его всё равно отберут, как в аэропорту, и выдадут containerd.
6. Terraform — сапёрная лопатка
Ею можно выкопать окоп, открыть консервы и отбиться от злодея. Но одно неверное движение — и лопатка воткнётся вам в ногу: terraform destroy на проде она выполняет с тем же усердием, что и apply. State повреждён? Ну что ж, дальше копаете руками.
7. CloudFormation — ржавая лопатка в бетоне
Тоже копает, только медленнее и по накладной на 800 строк YAML. Если яма не получилась, закапывает обратно сама — на это уйдёт минут сорок. Всё это время вы смотрите на UPDATE_ROLLBACK_IN_PROGRESS и покрываетесь холодным потом. Иногда закопать тоже не выходит, и статус сообщает, что откат отката провалился.
8. Ansible — дубина
Не требует ни агента, ни подготовки, ни образования: нужен только SSH и намерение. Замахнулись — можно сходить за чаем, пока долетит. Зато когда долетает, результат виден сразу на всех 200 серверах. Инструкция обещает, что вторым ударом по тому же месту ничего не сломать. Инструкцию писали люди, которые не видели ваш плейбук с shell: rm -rf.
9. Auto Scaling Groups — пулемёт Максима
Тот самый, из чугуния, на колёсиках, с водяным охлаждением и расчётом из трёх человек. Изобретён в XIX веке и с тех пор принципиально не менялся. Пока расчёт выкатит его на позицию и зальёт воду, атака уже закончится. После боя лишнее убирают: scale-in выбирает ноду наугад и неизменно попадает в ту, на которой всё держалось.
10. S3 — склад боеприпасов
Работает круглосуточно, принимает вообще всё без вопросов. Прапорщик-заведующий там немного хордер — не выбрасывает ничего и никогда. Нюанс один: внести — бесплатно, а вынести — через КПП, по накладной за каждый гигабайт. Зато когда нужен патрон — он на месте и выдаётся за миллисекунды. Сохранность охреневшая: даже ваши правнуки смогут открыть тот самый cat.jpg.
11. Managed PostgreSQL — снайперская винтовка Драгунова
Точная и надёжная: каждый выстрел даёт конкретный результат. Подствольный гранатомёт на неё не нацепишь, хотя 47 расширений в каталоге так и манят. А если вы скормили ей SELECT * без индекса по таблице на 2 млрд строк — это не винтовка промазала. Это вы стреляли зажмурившись.
12. MongoDB — граната без чеки
Вы держите пальцем спусковую скобу и немного удивлены, что окружающие разбегаются кто куда. Со временем вы даже научитесь здороваться свободной рукой. Она принимает любые данные в любой форме и ни о чём не спрашивает — именно это и должно было насторожить. «Зато schema-less, удобно!» Через два года в коллекции 14 разновидностей одного документа, и поле price в четырёх из них — строка.
13. Redis — пистолет Макарова
Он маленький и удобный, поэтому всегда под рукой. Стреляет строго по одному патрону — зато очень быстро. Но стоит назначить его основной базой — и вы палите из ПМ по вертолёту. Экипаж вертолёта смотрит на вас с умилением. А потом кто-то набирает KEYS * на проде, и пистолет начинает перечислять все патроны, которые когда-либо видел, пока очередь из остальных желающих выстрелить уходит за горизонт.
14. Kafka — «Град»
Заказывали доставку письма — привезли реактивную артиллерию, просто чтобы было. Залп накрывает всё, события долетают. Но если одна ракета застряла — offset не закоммитился, — встаёт вся установка. К ней приписан отдельный расчёт: он перезаряжает, следит за лагом и раз в квартал объясняет руководству, почему «просто добавить ещё один топик» — это неделя работ и ребалансировка.
15. ELK Stack — полевая кухня
По документам кормит армию, а по факту съедает больше дров, чем выдаёт каши. Elasticsearch ест память, как медведь перед спячкой. Logstash полдня переваривает и что-то роняет по дороге. Kibana красиво сервирует всё это на дашборды, к которым никто не подходит, потому что личный состав по-прежнему жрёт из tail -f.
16. Prometheus + Grafana — прибор ночного видения
Видно всё: каждую метрику, каждый тик процессора, даже то, как течёт время. В три ночи прибор орёт: p95 превысил порог на 2 миллисекунды. Вы открываете дашборд, убеждаетесь, что всё работает, выключаете алёрт и ложитесь спать. Прибор запоминает, что ему можно кошмарить пользователя, и готовит какой-нибудь сюрприз на четыре.
17. Istio / Service Mesh — экзоскелет
Сияющий киберпанк, обещающий суперсилу. С нюансами: весит 80 кг, питается от отдельного реактора, при этом нагружают его задачами типа «перенести коробку в другой конец комнаты». mTLS между двумя подами в одном неймспейсе — это именно такой экзоскелет. Коробка, кстати, осталась на месте, потому что 503, upstream connect error.
18. Cloudflare — противоракетная оборона
Её вы ставите перед сервером и забываете про DDoS. Перехватывает всё, заодно кэширует пол-интернета. Иногда достаётся и своим — на всякий случай, пусть сначала докажут, что не верблюд. Решаете ребус с пятью светофорами, тремя гидрантами и одним мотоциклом — и добро пожаловать на сайт, может быть.
19. API Gateway — КПП
Предъявили ключ, вас сверили со списком, пропустили. Всё идёт своим чередом ровно до тех пор, пока сержант Троттлинг не решил, что вы сюда как-то зачастили. Теперь вы стоите у шлагбаума с 429 Too Many Requests и смотрите, как мимо спокойно проезжают те, у кого тариф повыше.
20. AWS IAM — канцелярия Министерства обороны
Чтобы получить патроны, вам нужно заполнить форму А-38. Через два часа приходит ответ: у вас нет прав на просмотр формы А-38. Чтобы их получить, заполните форму А-38. Формально всё делается ради безопасности, но фактически это квест, который все проходят одинаково: выписывают себе на «временно, до пятницы». Пятница была пять лет назад.
21. Heroku — шпага
Невероятно изящная и лёгкая, ещё и с фамильным гербом на рукояти. git push — и вы уже фехтуете, ничего красивее в отрасли с тех пор не придумали. В 2022-м выяснилось, что бесплатно её больше не выдают, и тысячи пет-проектов остались не у дел. Теперь шпага висит на стене. Гости спрашивают: «Настоящая?» Вы отвечаете: «Когда-то я на ней деплоил» — и задумчиво смотрите в окно.
22. GitHub Actions — конвейер по сборке патронов
Работает безупречно до тех пор, пока не кончаются бесплатные минуты. Тогда в подвале появляется self-hosted runner на старом Mac mini, и это теперь объект критической инфраструктуры, который изо всех сил обороняют от уборщицы. Главная кнопка на конвейере — «Re-run jobs». Её нажимают в надежде, что на этот раз патрон соберётся сам.
23. DNS — военный устав
Его никто не читает, но без него воцаряется хаос. Одна опечатка в CNAME — и полк чётко и слаженно марширует не туда. TTL 86 400 — это когда вы скомандовали «налево», а строй повернёт завтра, может быть. Вы уже и думать об этом забыли, но строй помнит, и строй повернёт.
24. Nginx — мосинка!
Надёжный, быстрый и простой как пять копеек. Остановить его убойную мощь способна только одна вещь: точка с запятой, пропущенная в nginx.conf.
25. VPN / WireGuard — закрытый канал связи
Никаких тебе коммутаторов — просто два аппарата и провод. Настраивается за две минуты и потом работает годами. Правда, через год никто в части не помнит, где лежит конфиг, чей это ключ и кто такой peer3. Но связь есть. Связь всегда есть. Это даже немного пугает.
26. Terraform State File — ядерный чемоданчик
Что с ним ни делай, получается угроза конца света. Потеряли? Всё, конец, ручной import всей инфраструктуры. Положили не в тот бэкенд? До свидания. Открыли вдвоём одновременно? Это вы зря, конец света будет у каждого свой. Храните в S3, с блокировкой, с версионированием, и никому не показывайте, что внутри. Там страшное.
27. Bash-скрипт на 400 строк — трофейный пулемёт Дегтярёва
Весь в масле, приклад на изоленте, но поразительным образом работает. Что с ним делать — неясно, потому что автор уволился три года назад, а вся документация — один комментарий в середине: # не трогать. Никто и не трогает. Его обходят, ему уважительно кивают, джунам показывают издалека. Когда-нибудь он заклинит, и это обязательно будет в пятницу вечером. Но, возможно, не в эту.
Почётные упоминания
SaaS за 200 тысяч долларов в год — золотой пистолет
Красивый охренеть какой, стоит миллионы, вручается в обитой бархатом коробке на ужине с вендором. Патроны идут по подписке, кобура — в тарифе Enterprise, инструктаж — отдельным договором. В реальном бою им удобнее всего стукнуть по голове. Желательно того, кто подписал.
Микросервисы в стартапе из пяти человек — двадцать пистолетов
Это когда вы приходите на поле боя не с автоматом, а с двадцатью пистолетами. Каждый, в принципе, хорош. Но калибры разные, перезаряжать всё сразу некому, и чтобы выстрелить из седьмого, надо дождаться ответа от третьего. Вопрос «почему не один автомат?» считается неприличным. В компании, откуда пришёл техдир, было 2 000 инженеров, и там так работали все.
Serverless на проде — арбалет
Выстрелили — теперь просим противника подождать, пока перезарядимся. Причём противник обязан стоять ровно на той дистанции, под которую настроен прицел, и подходить врагам нужно строго по одному. Подойдут сто сразу — будет сто арбалетов, и счёт придёт за каждый.
Монолит — Т-34
Старый, некрасивый, внутри тесно и пахнет соляркой, его вообще каждый год собираются сдать в музей. По паспорту средний, по ощущениям весит как всё легаси мира. Деплоится раз в неделю, всем экипажем. Зато едет — и доезжает. Ваш стартап выжил именно на нём, пока конкуренты распиливали свой на микросервисы и выясняли, чья транзакция потерялась между седьмым и третьим.
RostislavDugin
Меня прям вынесло, потому что в жизни действительно обычно так ситуация и выглядит
km1337 Автор
Всё кровью писано и по мотивам )