Make. Build. Break. Reflect.
#kubernetes #devops #sre
TLDR: это не пост с решением.
Скорее пост-размышление с очередным внутренним вопросом, на который я сам себе так и не ответил.
Прилетает алерт.
Смотрю чо там.
У него метрика простая:
kube_node_status_condition{condition="DiskPressure",status="true"} == 1
Полез смотреть - да, реально диска не хватает.
Дальше вопрос на минуту:
а чем именно забито? Логами? Эфемерными томами подов? Или это имаджи?
Смотрим ещё одну метрику:
kubelet_image_garbage_collected_total{reason="space"}
Счётчик прыгнул вверх ровно в момент алерта.
Всё, картина ясна: раздел на 200 гигов забился старыми образами (очень частые релизы, по гигалион раз в день), кублет сам это увидел, сам почистил, алерт потух.
Красота же?
Сработало как задумано: от NodeHasDiskPressure до NodeHasNoDiskPressure прошло 8 минут, ни одной ручной команды.
Но вот дальше я сижу и не понимаю, что с этим делать дальше.
В голову приходит несколько вариантов:
- увеличить диск
Поможет? Да, отодвинет проблему во времени. Но это буквально плата за то, чтобы не думать. И мы вроде не резинового бюджета контора, чтобы просто лупать гигабайты, потому что "так спокойнее".
- подвинуть трешхолды гарбаджколлектора *
стояло:
image-gc-high-threshold-percent = 85
image-gc-low-threshold-percent = 80
Много это или мало - а хуй знает.
Может, надо 60/65, чтобы чистка начиналась заранее и мы вообще не долетали до disk pressure. Может вообще поставить 40%, лол.
А может это сделает только хуже - кублет начнёт чиститься чаще, будет чаще передёргивать пул подов, которые сейчас пуллят образ.
Кстати да, у меня был страх - а не удалит ли гарбаджколлектор образ, который прямо сейчас используется живым контейнером?
По идее нет, не удалит, вроде кублетовский image GC чистит только то, что не занято ни одним запущенным контейнером. Но осадочек "а что если" всё равно остался, потому что документация - это одно, а современный вайбкод, даже в кубере, это другое.
- моё любимое - забить болт 😎
Формально всё ок: алерт мигнул
6 · 1.3K · Make. Build. Break. Reflect.
Фотография
нажмите — покажем
нажмите — покажем
#пятница
2020 Все воюют с Helm. В пайплайны судорожно вкручиваются юнит-тесты плагином, dry-run из экземпляров, helm template, строгий контроль релизов и тегов.
Опечатка в отступах, и всё падает, инцидент за инцидентом.
Забыл quote вокруг {{ .Values.name }} - ямл внезапно решил, что no это булево значение, а не имя сервиса, и всё легло.
Забыл один -}} лишний перенос строки сдвинул отступ на один пробел, ямл невалиден, привет инцидент.
Даже несовершенный MS Word гиеной визжит над сдвигами и ошибками форматирования и рендеринга хелма.😁
Чтобы докрутить одну функцию в го темплейты, нужно провести пятнадцать ритуалов, вызвать дух Линуса Торвальдса и перепроверить код сто раз.
В банках все изменения чартов проходят через отдельную инквизицию боли до получения разрешения.
Го-шаблоны официально признаны средством пыток.
2025 Нейросети есть у каждого джуна и синьора.
В девопс чатах гробовая тишина, никто не спрашивает, как прокинуть range в конфиг.
Каждый второй накрутил хуков, rules, дай-ранов и полного диффа темплейтов сразу на 1000+ Applications/ApplicationSets, и всё это валидируется за миллисекунды на каждый коммит. Ноль инцидентов.
Всем плевать, что внутри чарта - форменное ктулху говна
{{- range $k, $v := .Values.env }}{{- if $v.enabled }}{{- if $v.override }}{{ $k }}: {{ $v.value | default (include "chart.fallback" (dict "v" $v)) }}{{- else if not (empty $v.value) }}{{ $k }}: {{ $v.value }}{{- else }}{{ fail "ну удачи, лол, увидимся скоро" }}{{- end }}{{- end }}{{- end }}
Мы теперь вайбкодеры. Работает - и ладно.
2030 Четыре земные корпорации, которым принадлежат все токены мира, взвинчивают цены на мощности.
Простой прогон проверок через LLM превращается из клика за 1 наноцент в половину ВВП Эстонии.
В чатах телеги и на реддите снова толпы с горящими жопами: "всмыысле не могу выйти выше контекста?", "хочу поправить этот key value, только код писал не я и даже не человек, и, кстати, что такое dict?", "а что тут забыл этот рейндж?".
Пулл реквесты чартов
22 · 1.5K · Make. Build. Break. Reflect.
#мысли #ai #devops
Если честно, то за последние пару лет, как я начал использовать нейронки повсеместно - никакой Большой Революции у меня не произошло.
Давайте сразу договоримся - я не отрицаю Полезность, Невероятность, Революционность и Крутость работы с ллм и агентами. Многие иные эпитеты и прилагательные тоже. Да, назвать нейронки просто куском кода я не решился бы. Ниже текст лишь про то, как я сумел или нет это всё применить лично для себя.
Работа
Код. Стал ли я писать код лучше?
Нет, но стал писать быстрее. И мнооооого.
И все резко перестали его читать.😢
Сам ли я его пишу или просто даю задачки? Посади меня писать код (да хоть терраформ манифест) без автокомплита, смогу? М?
Пахнет плесневелым ароматом деградации.
Траблшутинг. Стал разбираться с проблемами быстрее (привет скиллы, кли и мсп). О да, это реально работает.❤️
Агенты. Агенты, агенты везде. Стало ли с ними проще? В моей конкретной работе мне пришлось даже сократить их количество, так как я не успеваю за контекстом.
Сперва радовался куче утилит и подходов с агентами, а спустя время осознал, что больше 2-3 сессий/агентов/задач я не способен вести. Спустя ещё время я сам для себя вынужден признать, что даже "одновременно" тут лишнее слово. Я не талантливый инженер и не уникум, обычный простой работяга. Формулировка "я могу держать не больше 2-3 задач одновременно и уметь ПЕРЕКЛЮЧАТЬСЯ между ними" - будет точнее. Никакой одновременности, камон. Если взять 10 задач, то даже переключение страдает, чего уж говорить об эффективности.
Автономные агенты, да, решают. Но эээ все ли задачи я могу им поручить?
Коммуникация. На работе каждый МР с описанием как абзац Войны и Мира. Никто не читает эту простыню. Весь слак забит Очень Полезными Подробными Ответами Отчётами. Ну я честно их не читаю. Просто, блять, напиши кратко по-человечески, нахуй мне эта простыня.😈
Я и сам так могу нагенерить второй том мертвых душ. Хоть на японском.
Семья, друзья и близкие
Мои приятели не-айтишники откровенно называют меня п
19 · 1.2K · Make. Build. Break. Reflect.
#AWScommunity #aws #longread #rds #aurora #mysql #airflow #devops #troubleshooting
Часть 1 из 2.
Короче, понадобилось нам обновлять Aurora MySQL с одной мажорной версии на другую.
Дело обычное, но перед любым мажорным апгрейдом продовой базы я по гайду иду смотреть, что у нас там висит в RDS Recommendations. И тут внезапно выясняется: на этом проекте мы туда вообще не смотрели. Ни разу. Никто и никогда. Стоит себе панель рекомендаций в консоли, что-то там подсвечено жёлтым и красным, и всем как-то норм.
Полез разбираться.
Первым делом сделал то, что должен был сделать ещё полгода назад: завёл алерт.
На память связка EventBridge + SNS + питон лямбда + слак вебхук.
Раз в неделю по понедельникам в Slack прилетает дайджест активных рекомендаций по нашим RDS.
Не срочный инцидент, просто напоминалка, чтобы это больше никогда тихо не копилось год.
И буквально в первом же прогоне вижу:
"The InnoDB history list length increased significantly".
Активна с августа. Полгода висела.
Смотрю, что это вообще такое. History list length это, как я понимаю, количество ещё не почищенных undo-записей в InnoDB.
Растёт когда purge не успевает убирать за транзакциями. Амазон в описании рекомендации прямо пишет: чинить это нужно ДО мажорного апгрейда, потому что при апгрейде движок долго разбирает этот список, и чем он больше, тем дольше и опаснее апгрейд.
Всё, приехали, это блокер апгрейда. 😢
Ладно, начали копать.
Первая гипотеза была самая очевидная и, как оказалось, неверная.
У нас есть ETL-пайплайн на сраном Эйрфлоу, который раз в сутки синкает MySQL в Snowflake. Смотрю на архитектурную схему пайплайна в не менее сраном Confluence, вижу коробочку "Aurora MySQL prod", стрелочка от Airflow прямо в неё. Ну всё, думаю, вот он, виновник, тащит данные прямо с мастера, долгая транзакция на райтере, отсюда и history list.
Написал коллегам из дата-команды: "у нас, похоже, Airflow бьёт напрямую в master, из-за этого и растёт список".
Ответ был короткий и справедливый: "у нас Data
3 · 988 · Фотография
нажмите — покажем
нажмите — покажем
#AWScommunity #aws #longread #rds #aurora #mysql #airflow #devops #troubleshooting
Часть 2 из 2.
Внимательный читатель задаст вопрос
"Алекс, кого ты лечишь? РДС не даёт рекомендации, если всего полчаса в день отставание, ты что-то упускаешь, кривой ETL не дал бы такой эффект".
Да, всё так.
Починив ELT/DAG, мы поняли, что рекомендация остаётся даже после этого.
Сняли всю информацию, все метрики клоудвоча, аудит логи - не смогли найти причину. Написали в саппорт. Дали все метрики, в том числе аномальные транзакции.
Буквально в 5-6 итераций общения с саппортом и мы поняли, что все были правы - рекомендация по делу триггерится - по метрике, но сама метрика обманывает.
...
Update: root cause of the TransactionAgeMaximum anomaly is confirmed cosmetic
Our Aurora MySQL engineering team completed an end-to-end root-cause analysis of the ~1.77–1.78 billion-second (~56-year) TransactionAgeMaximum readings — the same class of anomaly you identified. The finding is definitive:
1. The anomaly is caused by a race condition in the engine's transaction start-time path on Graviton (ARM) instance classes, specific to the 3.0x.x engine family. In brief, a transaction's start-time is briefly visible to the metric-gathering poller before it is fully initialized, so the poller computes an age against a near-zero epoch — yielding the nonsensical ~56-year value.
2. Engineering traced the code path end-to-end (from the internal gauge, through information_schema, to CloudWatch) and concluded: "Cosmetic metric anomaly only. No actual long-running transaction, no performance or availability impact." They explicitly found no code path that produces a real transaction behind these readings.
...
Yes — it is safe to proceed the upgrade.
Тот дикий "возраст транзакции в 56 лет" оказался реальным, подтверждённым багом Aurora MySQL 3.*.x на Гравитонах. Race condition в коде движка: поллер метрики иногда читает время старта транзакции чуть раньше, чем оно успело проинициализироваться, и счи
1 · 1.4K · Make. Build. Break. Reflect.
Фотография
нажмите — покажем
нажмите — покажем
POV:
сейчас 2026 год и твой босс думает как назвать новый продукт, который нужно зарелизить ещё вчера, хоть и было придуман 5 минут назад на встрече с потенциальным клиентом
10 · 1.4K · Make. Build. Break. Reflect.
#пятница
С появлением нейронок все стали слишком умными.
Авторитет практикующего инженера внезапно перестал существовать - есть же более авторитетное "мне клод сказал".
Спорю про костыль в проде - а в ответ скрин из чата с нейронкой, которая со всем согласилась, потому что её так спросили.
Даже базовые вещи приходится объяснять заново, и обидно не столько объяснять, сколько ещё и доказывать.
Я же не клодкод или джипити.
Какой-то человек.
Чтобы был аргумент для коллег и приятелей (а так же их нейронок) "почему curl | bash - это плохо", я запилил домен и хреново навайбкодил страничку с аргументами.
- https://nocurlbash.com/
Теперь в спорах ссылаюсь на неё как на источник истины:
- "вон, смотри, даже сайт специальный есть, люди против курлбаша, вот аргументы, это бэд-практис ващета!"
Пока прокатывает 😀
23 · 1.4K · Make. Build. Break. Reflect.
#devops #tools
Просто набор интересных ссылок, которые у меня накопились для шаринга.
По каждой отдельно писать немного странно, так что всё вместе будет.
- https://blog.cloudflare.com/dns-cache-memory-optimization-1111/
Как клаудфлер сэкономил миллионы оперативной памяти за счёт оптимизации кода. Шикарно, по-инженерному. Меня такое прям вдохновляет, очень круто.
- https://www.youtube.com/watch?v=LX4YZeqXWck
Какие подводные камни были у ребят из airbnb при переезде на циллиум.
Молодцы, шарят такое.
Если нет знаний английского - в ютубе есть автоматический перевод аудиодорожки на русский. Слабенький, но его достаточно для усвоения материала.
Спойлер: а зачем тебе спойлер? Смотри и слушай видео, не ленись, ну.
- https://github.blog/news-insights/company-news/the-august-17-outage-and-the-work-ahead/
- https://www.githubstatus.com/incidents/zkxwbgr0cnmx
Постмортем гитхаба на один из крупных инцидентов.
Просто интересно посмотреть почитать изнутри.
Мне очень жалко инженеров гитхаба, на них свалилось много всего последние пару лет из-за увеличения нагрузки от вайбкодинга и всегда интересно читать, что же они делают, чтобы справиться со своей несовершенной архитектурой (на данный момент в век llm), чтобы совсем не пасть духом и статуспейджем.
- https://github.com/vorssaintapp/vorssaint-utils
Один из лучших утилит для MacOs.
❤️
Опенсорс бесплатный супер комбайн, который может отчасти заменить многие привычные всем утилиты. AltTab, Rectange etc.
Очень жалею, что купил лицензию AlbTab (для дополнительного функционала), лучше бы я раньше узнал об этой утилите.
Считаю, что моя лучшая находка в 2026 для мака.
На маке я работаю лишь с марта этого года.
- https://trendshift.io/monthly
Трендовые git репозитории по месяцам/неделям/дням.
Если вы прям любите быть на bleeding edge - это вам.
Всё самое модное и свежее - всякие скилл репо, агентик репо, фреймворки, харнессы и всё то, о чём будут писать лишь через несколько недель или месяцев, а вы это уже освоите сегодня
66 · 1.6K · Make. Build. Break. Reflect.
Фотография
нажмите — покажем
нажмите — покажем
#всратость
Ну-да, ну-да.
Это так и работает, ага.
Больше ничего не надо вводить.🥴
Похоже и правда пора в отпуск.🤡
9 · 1.3K · Make. Build. Break. Reflect.
Ссылка
нажмите — покажем
нажмите — покажем
Классный вышел тред и официальный платиновый ответ.😁
Чувствую много болей в ближайшие дни.
https://github.com/orgs/community/discussions/206581#discussioncomment-18269083
С некоторых комментов можно гиеной прокричать
So, just to make sure I understand this correctly: unauthenticated access to public repositories suddenly became unreliable, CI pipelines all over Europe started breaking, GitHub Status stayed green, and the official solution is basically “authenticate your public repository downloads and deal with it yourselves”?
Само решение:
git config --global http.version HTTP/1.1
18 · 1.5K · Make. Build. Break. Reflect.
GIF
v2.mp4 · 1.8 МБ · нажмите — покажем
v2.mp4 · 1.8 МБ · нажмите — покажем
#aws и немного #всратость
Честно говоря я немного разочарован последними UI изменениями, произошедшими в AWS docs.
Возможно молодому, стильному и умному поколению инженеров интерфейс нравится, но мне с ним работать стало неудобно.
Возьмём к примеру случайную страницу.
https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/CHAP_Limits.html
Листаем до первой таблицы.
Визуально кажется - вот всё, что есть в таблице - это вся информация.
Ведь видно только этот элемент.
Однако при наведении мышки/тачпада на саму таблицу - появляется scrollbar и уже видно элементы таблицы вниз и вверх. (гифка)
Открывается новая инфа, ранее визуально недоступная.
Как я мог догадаться, что теперь там скрыт скроллбар?
Ну, наверное, должен был как-то.
Пойдем к другой случайной странице
https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-global-database.configuration.requirements.html
А вот тут, сколько ни елозь мышкой по первой таблице - ничего не открывается.
Вероятно я должен понять, что этих параметров достаточно и больше там ничего нет.
Чего я, как дурак картонный, тыкаю тачем по таблице - непонятно что-ли, что нет там больше ничего.
Идём дальше, например
https://docs.aws.amazon.com/service-authorization/latest/reference/list_securityhub.html
Тут же, наоборот, вниз таблицу сделали полностью, она, о-чудо!, уместилась, а вправо информации уже нет.
На этой странице у этой таблицы надо тачем елозить уже только вправо-влево по таблице.
Как я должен понять - на какой из таблиц мне елозить тачпадом во все стороны, а на какой нет - ну, вероятно, догадываться, проверяя каждый подобный элемент документации.☔️
Это произошло не вчера, а постепенно происходит с многими страницами документации. Может это даже современный тренд в дизайне.
Понятно, что лишь ворчу, но это немного печалит, ведь документация и интерфейс должны быть понятны и очевидны.
Сейчас же это стало затруднительнее.
Надо буквально "подрочить пальцами по тачпаду на каждой табличке" чтобы понять есть ли т
2 · 1.4K · Make. Build. Break. Reflect.
#мысли #devops #aws
Куча людей перешли на искусственный интеллект, так и не освоив собственный.
Мне нравится, даже при наличии ЛЛМ, думать самостоятельно.
Не из принципа "ебаать, я не такой, как все", а потому что это чуть ли не единственный тренажёр для мозга, оставшийся при нынешней пониженной нагрузке на инженера.
И у этого тренажёра есть техника: не искать готовый ответ, а раскладывать вопрос на слои, пока каждый слой не станет проверяемым.
Вот как это у меня выглядит на практике.
Пример.
Есть AD-сервис, допустим MS Entra. Есть AWS и сервисы внутри него. У какого-то сервиса - пусть OpenSearch, не важно, хоть Redis - по дефолту ебанутое имя типа:
- dkjfh-hui-izda-dgigkhurda-aws.account.region.amazonaws.com
Через Entra-приложение настроили SSO.
Всё работает: люди ходят на некрасивый урл, логинятся через проклятый майкрософтовский аккаунт, все счастливы.
Усложняем.
Разработчики захотели красивые адреса - для UI и CLI-агентов.
Задача: добавить в Route53 (или другой DNS сервис)
- logs-prod.domain.com
- redis-stage.domain.com
Почему - да без разницы, просто захотели.
И вот тут вместо того, чтобы спросить ЛЛМ "как правильно", я по очереди раскладываю задачу на слои - каждый следующий вопрос вытекает из ответа на предыдущий, а не из общей интуиции "SSO - это сложно".
- DNS. Просто добавить запись - заработает? По идее нет: нового адреса нет в списке разрешённых redirect URI в Entra, он отвалится с ошибкой мисматча. И это не хардкод где-то в коде, а обычный allowlist.
- Коллбек vs UI. Это одно и то же? Нет, вроде разные слои. UI-адрес - то, что видит браузер. Коллбек - то, куда Entra шлёт ответ после логина. Можно спокойно жить на новом UI-адресе, а коллбек временно оставить на старом.
- Что я поломаю нахуй самим добавлением. Само добавление DNS-записи - ничего. Ломает либо снос старой записи/старого redirect URI сразу, либо TLS: у AWS managed сервиса сертификат зашит под их дефолтный домен, левый CNAME туда просто не пройдёт проверку сертификата без прокл
8 · 1.2K · Make. Build. Break. Reflect.
Фотография
нажмите — покажем
нажмите — покажем
Apple наконец слила beta и release в один продукт и избавились от лишнего шага в релизном цикле. 🎉🎉🎉
https://www.reddit.com/r/MacOS/comments/1wgek2q/macos_27_golden_gate_bugs_and_issues_megathread/
8 · 1.1K · Make. Build. Break. Reflect.
Фотография
нажмите — покажем
нажмите — покажем
Вся эта неделя была очень странной.
Опус отупел до уровня 3 модели.
Фейбл сжигает токены быстрее, чем Усейн Болт пробегает 10 метров.
Лимиты токенов на клодкоде 100% урезали, не хватало для простейших задач, на прошлых неделях на тех же промптах хватало всегда.
Модели начинают сами с собой спорить, входить в циклы, снова галлюцинировать.
На картинке типичная ситуация этой недели
"Когда дал клоду задачку с опусом и пришел спросить его как дела через 2 часа".
12 · 1.2K · Make. Build. Break. Reflect.
#aws #elasticache #redis #kubernetes #troubleshooting #devops #sre #longread
Ничего не предвещало беды. Сижу, работаю, обычный день.
Прилетает алерт: CPU на редисе.
Открываю графики - ну офигеть, действительно много. CPUUtilization уже почти в потолке. Смотрю на историю подольше, не за последний час, а за пару недель - а она там не спонтанно скакнула, она туда шла целенаправленно, полз-полз-полз последние недели вверх, и вот сегодня наконец доехала до трешхолда, который у нас на алерт стоит. Красивая, спокойная, методичная деградация. Как будто специально ждала, чтобы я это заметил именно во вторник.
Стою на развилке, как обычно в таких случаях.
Вариантов, по сути, три сходу:
- поднять инстанс тип побольше - и вопрос закрыт. Минут на пятнадцать работы.
- копать почему нагрузка растёт - раз уж она растёт неделями, значит где-то есть тренд (мемори лик?), и если его не найти, он вернётся через месяц уже на инстансе побольше.
- полезть в релизы/код - может, кто-то тихо принёс что-то, что жрёт редис сильнее, чем раньше.
Времени в этот день было, под рукой прямых пожаров нет, так что решил нырнуть.
Начал копать. Смотрю на количество соединений к редису - и это тоже растёт. Причём растёт не гладко, а скачками.
Спустя время понял, что ровно в моменты редеплоев и скейлинга подов.
У меня в голове сразу щёлкает классика жанра: коннекшн лик.
Кто-то не закрывает соединения при рестарте пода, они копятся, some magic, редис в итоге не столько данные обрабатывает, сколько бегает между тысячами открытых, но по факту мёртвых клиентов.
Полез руками смотреть список клиентов - и что вы думаете, реально нахожу один клиент, зависший в цикле на одной и той же команде. Судя по времени коннекта - висит там натурально сутки, сука, с прошлого деплоя.
Убиваю его руками, CPU чуть проседает. Ага, думаю, вот он, зверь, поймал.
Порадовался я недолго. Потому что счётчик коннектов и без этого одного зомби-клиента всё равно был в районе четырёх тысяч, а нагрузка не сильно шевельнулась.
Се
8 · 815 · Make. Build. Break. Reflect.
В удивительнейшее время живём.
- https://typesafe.ai/blog/introducing-system-one-models-and-jev
TypeSafe анонсировали Jev, свою первую "System One" модель - быстрые типизированные решения вместо генерации текста.
- https://github.com/mizorewww/laya-mlx (на минуточку это уже опенсорс!)
а это похожая по духу модель, но от другой компании (Convai Innovations), уже в опенсорсе и с портом под Apple Silicon (eto ya со своим макбуком).
И она меньше гигабайта!
То есть Jev сам по себе проприетарный и закрытый, но концепция уже доступна в опенсорсе - я погонял именно Laya.
Поигрался - весьма интересно.
Пример использования (первым пришло в голову для тестов):
- установить этот опенсорс decision-модель
pip install laya-mlx
- залогиниться в hugging face
- запилить скрипт laya_triage.py
"""Local Laya (MLX) triage of a SQL query; escalate to a Hugging Face LLM only if needed.
Usage:
HF_TOKEN=hf_xxx python ~/laya_triage.py # uses the built-in sample query
HF_TOKEN=hf_xxx python ~/laya_triage.py query.sql # or a query from a file
Optional env: HF_MODEL (default below), LAYA_THRESHOLD (default 0.5).
"""
import os
import sys
import laya_mlx
from huggingface_hub import InferenceClient
HF_MODEL = os.environ.get("HF_MODEL", "Qwen/Qwen2.5-Coder-32B-Instruct")
THRESHOLD = float(os.environ.get("LAYA_THRESHOLD", "0.5"))
SAMPLE_SQL = """
SELECT u.id, u.name, COUNT(o.id)
FROM users u
LEFT JOIN orders o ON u.id = o.user_id
WHERE u.created_at >= '2026-01-01'
GROUP BY u.id, u.name;
"""
QUESTIONS = {
"needs_optimization": {
"type": "noul",
"instructions": "Does this SQL query contain potential performance bottlenecks "
"(full table scans, inefficient joins, missing filters on large tables)?",
},
"issue": {
"type": "choice",
"instructions": "What is the most likely performance problem in this SQL query?",
"criteria": {
"missing_index": "The query filters or joins on columns that likely need
26 · 954 · Make. Build. Break. Reflect.
Фотография
нажмите — покажем
нажмите — покажем
Но стоит взять задачу из смежной области, где общее понимание есть, а глубокой экспертизы нет, – и всё меняется до неузнаваемости, с ИИ из помощника превращается в пожирателя времени.
Действительно, а почему так выходит.😕
Непонятно, ведь ИИ всех заменит, а образование и экспертиза через время и опыт больше не нужны, да.
https://lnkd.in/p/d7JDGDdQ
17 · 1.1K · Make. Build. Break. Reflect.
Фотография
нажмите — покажем
нажмите — покажем
#kubernetes
- https://laravel-news.com/laravel-health-kubernetes-prometheus
Жаль, что такого пакета не было, когда я работал с Laravel.
Раньше приходилось городить костыли: самописные эндпоинты, несколько разрозненных пакетов, ручная настройка liveness/readiness-проб и прометиус-метрик.
Был spatie/laravel-health с хорошим набором проверок, но отдельных эндпоинтов под кубер и прометиус из коробки в нём (раньше) не было.
Теперь есть новый пакет (по ссылке от cboxdk):
- много проверок: БД, кэш, очереди, редис, storage, диск, расписание (через heartbeat шедулера), окружение, CPU и память
- отдельные эндпоинты под кубер: /health (liveness), /health/ready (readiness), /health/startup (startup)
- встроенные прометиус-метрики на /health/metrics: статус и длительность каждой проверки плюс системные метрики
- container-aware метрики из cgroups v1/v2: лимиты и потребление памяти, CPU quota, CPU throttling и OOM kills
Пакет совсем молодой, звёзд с неба не хватает на гитхабе пока мало, так что в прод я бы тащил его после внимательного взгляда на код. И сначала стоит проверить, что именно попадает в liveness: если туда входит проверка БД, то при падении базы кублет начнёт перезапускать все поды разом😁.
Однако авторы, если не ошибаюсь, это https://cbox.dk/, у них точно есть опыт с PHP/Laravel и я уверен, что пакет будет весьма успешным.
В целом хорошая новость для владельцев Laravel стека, кто в кубере живёт.
Требования:
- PHP 8.3+
- Laravel 11-13
12 · 1.1K · Фотография
нажмите — покажем
нажмите — покажем
#пятница
Ждём, чо.
А вообще да, заебали эти охринительно полезные новости с невероятными достижениями.
5 · 997 · Make. Build. Break. Reflect.
Фотография
нажмите — покажем
нажмите — покажем
#aws #AWScommunity #eks #kubernetes
Что выбрать при создании нового AWS EKS кластера в 2026 году: стандартный режим или Auto Mode?
Выбирайте стандартный режим (без Auto Mode), если вы:
- хотите разобраться в облачном кубере Амазона и изучить десяток компонентов (Karpenter, VPC CNI, CoreDNS, kube-proxy, EBS CSI, Load Balancer Controller…), которые вам теперь придётся обслуживать примерно всегда
- любите тюнить кубер или компоненты минимум раз в квартал
- боитесь, что вас заменят ИИ, и хотите оставить себе крепкий якорь, который помешает вас уволить
- любите читать матрицы совместимости и GitHub issues по каждому компоненту
- гоняете большой флот на спотах или сейвинг план и умеете считать деньги
- без своего AMI, софта прямо на ноде или собственного CNI жить не можете
- любите зайти на ноду по SSM и посмотреть чо там
- живёте на Windows- или Ubuntu нодах 😬
Выбирайте Auto Mode, если:
- у вас нет DevOps/Platform команды, которая бы поддерживала кубер, потому что вы стартап
- вы руководитель, всех уволили, заменив на ИИ, и теперь, как Дункан Маклауд, остались один и не знаете, что делать с вашим кубером ⚔️
- хотите тратить время на код и манифесты, а не на поддержку инфраструктуры
- готовы потерять последние крохи экспертизы по эксплуатации нод и аддонов для куба, ведь уже через год на автомод вы не сможете объяснить на собесе, как у вас апгрейдится CNI и что это такое
- у вас нормальная зрелая компания, которая ценит время инженеров дороже 12% к счёту за EC2 и не страдает ИИстерией
Лично я бы всегда по умолчанию брал автомод.
6 · 730 · Make. Build. Break. Reflect.
Фотография
нажмите — покажем
нажмите — покажем
Интересно, а что там внутри?
Типа полетели алёрты в слак из датадог/ньюрелик/алертменеджер.
Потом включается Claude on-call.
Caramelizing...
Flibbertigibbeting...
...
Cogitating
...
Contemplating...
Coalescing...
И потом типа он такой выдаёт
Found root cause...
It was ... Release!...
Opening a revert PR...
С вас 500k токенов, лол.
Так?
Ну я к тому, что когда агент работает от моего ПК, у меня есть скиллы, инструкции где что брать, настроен конфиг, есть MCP, есть VPN, ежедневно прохожу авторизацию для SSO, раз в пару недель для google аккаунта - и от меня всё работает так, как я хочу при траблшутинге по алертам.
Не очень хорошо, но терпимо работает агент в автономном режиме с моего пк, лишь ровно до тех пор, пока не слетят авторизации и VPN или пока он не начнёт нести херню в слаке коллегам, раздражая их (ему пофиг на запреты не писать в слак свои простыни текста моим коллегам, сука).
Только проблема далеко не всегда в релизе, а в куче других факторов.
Для анализа нужны метрики, логи, ивенты и так далее.
Всё это под SSO авторизацией, в закрытом контуре.
А если всё-таки проблема в релизе - простите, роллбек кривого релиза сделает любой инженер, который умеет считать дважды два и у него есть хотя бы один глаз.
Зачем тут агент?
А как это работает с клод онколлл?
Как он сможет траблшутить чего-либо, если у него физического доступа нет?
Предоставить доступ? Задеплоить сабагента в кубер и дать ему IRSA/pod identity на нужные ресурсы? Сделать мир прекраснее и открытее для всех агентов?
Короче маркетинговая коричневая магия какая-то.
Решил посмотреть документацию.
Оказалось, что живёт он не в наших кластерах, а в песочнице Антропика, так что IRSA мимо.
Креды берёт из сервисных учёток, которые мне надо завести и отдать им, и ходит только по HTTPS.
VPN, SSH, SMM и прямой доступ к базам ему недоступны, тоже мимо.😁
Если весь обсервабилити в SaaS (Datadog, New Relic) - ок, выдал read-only апи ключ и поехали.
А если Prometheus/VictoriaMetrics, логи и кубер живут за VP
11 · 617 · Make. Build. Break. Reflect.
Фотография
нажмите — покажем
нажмите — покажем
Последние пару лет, и на этой работе, и на прошлой, каждая встреча у меня начинается одинаково: я либо игнорирую, либо радостно жамкаю "отклонить" всем ноттейкерам в лобби.
Позиция простая: либо приходите сами, либо сами нажимайте "разрешить" своим ботам и идите по своим делам.
Всю жизнь мечтал работать швейцаром у ботов в Zoom/Teams/Google Meet 🙂
На самом деле бесит пздц.
7 · 572 ·