#пятница
2020 Все воюют с Helm. В пайплайны судорожно вкручиваются юнит-тесты плагином, dry-run из экземпляров, helm template, строгий контроль релизов и тегов.
Опечатка в отступах, и всё падает, инцидент за инцидентом.
Забыл
Забыл один
Даже несовершенный MS Word гиеной визжит над сдвигами и ошибками форматирования и рендеринга хелма.😁
Чтобы докрутить одну функцию в го темплейты, нужно провести пятнадцать ритуалов, вызвать дух Линуса Торвальдса и перепроверить код сто раз.
В банках все изменения чартов проходят через отдельную инквизицию боли до получения разрешения.
Го-шаблоны официально признаны средством пыток.
2025 Нейросети есть у каждого джуна и синьора.
В девопс чатах гробовая тишина, никто не спрашивает, как прокинуть range в конфиг.
Каждый второй накрутил хуков, rules, дай-ранов и полного диффа темплейтов сразу на 1000+ Applications/ApplicationSets, и всё это валидируется за миллисекунды на каждый коммит. Ноль инцидентов.
Всем плевать, что внутри чарта - форменное ктулху говна
Мы теперь вайбкодеры. Работает - и ладно.
2030 Четыре земные корпорации, которым принадлежат все токены мира, взвинчивают цены на мощности.
Простой прогон проверок через LLM превращается из клика за 1 наноцент в половину ВВП Эстонии.
В чатах телеги и на реддите снова толпы с горящими жопами: "всмыысле не могу выйти выше контекста?", "хочу поправить этот key value, только код писал не я и даже не человек, и, кстати, что такое dict?", "а что тут забыл этот рейндж?".
Пулл реквесты чартов снова приходится ревьюить глазами, слышен волчий вой отчаянья по всем коворкингам и офисам.🐺
Лишь глобальная катастрофа в IT индустрии и поднятие цен на мощности смогли очередной раз доказать, что го-темплейты в хелме так никто и не смог понять - потому что их изначально не задумывали понятными😀
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?", "а что тут забыл этот рейндж?".
Пулл реквесты чартов снова приходится ревьюить глазами, слышен волчий вой отчаянья по всем коворкингам и офисам.
Лишь глобальная катастрофа в IT индустрии и поднятие цен на мощности смогли очередной раз доказать, что го-темплейты в хелме так никто и не смог понять - потому что их изначально не задумывали понятными
Please open Telegram to view this post
VIEW IN TELEGRAM
1😁40❤6💯4
#мысли #ai #devops
Если честно, то за последние пару лет, как я начал использовать нейронки повсеместно - никакой Большой Революции у меня не произошло.
Работа
Код. Стал ли я писать код лучше?
Нет, но стал писать быстрее. И мнооооого.
И все резко перестали его читать.😢
Сам ли я его пишу или просто даю задачки? Посади меня писать код (да хоть терраформ манифест) без автокомплита, смогу? М?
Пахнет плесневелым ароматом деградации.
Траблшутинг. Стал разбираться с проблемами быстрее (привет скиллы, кли и мсп). О да, это реально работает.❤️
Агенты. Агенты, агенты везде. Стало ли с ними проще? В моей конкретной работе мне пришлось даже сократить их количество, так как я не успеваю за контекстом.
Сперва радовался куче утилит и подходов с агентами, а спустя время осознал, что больше 2-3 сессий/агентов/задач я не способен вести. Спустя ещё время я сам для себя вынужден признать, что даже "одновременно" тут лишнее слово. Я не талантливый инженер и не уникум, обычный простой работяга. Формулировка "я могу держать не больше 2-3 задач одновременно и уметь ПЕРЕКЛЮЧАТЬСЯ между ними" - будет точнее. Никакой одновременности, камон. Если взять 10 задач, то даже переключение страдает, чего уж говорить об эффективности.
Автономные агенты, да, решают. Но эээ все ли задачи я могу им поручить?
Коммуникация. На работе каждый МР с описанием как абзац Войны и Мира. Никто не читает эту простыню. Весь слак забит Очень Полезными Подробными Ответами Отчётами. Ну я честно их не читаю. Просто, блять, напиши кратко по-человечески, нахуй мне эта простыня.😈
Я и сам так могу нагенерить второй том мертвых душ. Хоть на японском.
Семья, друзья и близкие
Мои приятели не-айтишники откровенно называют меня поехавшим, когда я случайно что-то говорю про нейронки или агентов. Сразу шутки проговно и Агента Смита из "Матрицы". Они даже не понимают, что это, а я даже не могу объяснить, что это. А может и никто не может, у каждого, блядь, сейчас своё объяснение, что такое агент и что Это На Самом Деле.
Подростки, дети приятелей, кто хоть немного умеют в знания, вообще могут в лоб спросить "а это вы просто ллм и скрипт питона в цикле называете агентом?"
Супруга иногда может перевести текст на хорватский или английский, чтобы написать в какую-то бюрократическую организацию бытовой вопрос. Могу иногда для хихиканья в телеграм-чате нагенерить мем-шутку-минутку картинку в джемини.
Сервисы
Сейчас в каждом сервисе ИИ! Уууух! Заживём!
Правда так ничем и не стал пользоваться, лол.
Каждый блядский сервис: джира, ms word, twilio, notion, confluence, spotify/яндекс музыка, скипаю нахер. Я пробовал было их фичи, всё абсолютно тотальное говно, не помогает и не решает ничего. Херня ради херни.
Мечтал, может, спотифай и яндекс музыка дадут новые ИИ-рекомендации, хер там плавал, как гоняют по кругу одно и то же, так и гоняют, что с ИИ, что без.
Чаты-саппорт, все, что мне попадались, они не мне помогали, а лишь злили и заставляли нервничать.
Личная жизнь
Ну я теперь крутая крутышка. Могу делать домашки с нейронкой, ещё больше деградируя. Зачем, спрашивается, я тогда плачу и хожу на занятия, если домашку мне лень сделать самому.
Для игр тоже не помогает, даже билд варвара в д4 на последний сезон не собрать, галлюцинация за галлюцинацией даже на последних супердорогих моделях.
Хз в общем.
Наверное я так долго могу перечислять примеры, но после двух лет я пришёл к тому, что нейронки для меня не сделали Большой Революции.
Но что дало это мне?
Что дало моим близким?
Что дало человечеству?
Что РЕАЛЬНО дало это моей работе и, главное, платящим клиентам?
Я вот чот ни одной реальной стори от приятелей-айтишников не слышал, что "внедрили ИИ, клиенты довольны, много платят".
Пока только всратые истории, увольнения, миллионы не нужных платящим клиентами фич, ии-сокращения и автоматизация слопа.
На встрече All hands сидят 25 человек и 40 ботов-стенографистов.
Кто-то вообще потом читает эти саммари?
Но есть и позитивные новости
Мне нравится читать о необычных для меня использованиях нейронок:
- помощь в нахождении лекарства от рака (Insilico Medicine, ISM3091/ISM6331, от IND до Fast Track FDA)
Прикиньте, совсем скоро мы, быть сможет, победим рак! Охрененно!
- помощь в нахождении лекарства от ВИЧа (дизайн иммуногенов и антител)
Я так понял коли вакцину пару раз в год, это оберегает от ВИЧ и, соотвественно, не будет впоследствии СПИДа. Круто!
- аэродинамика для самолётов (ML как surrogate для CFD)
Ну у меня страх полётов, а если сделают ещё безопаснее - вообще красота.
- люди могут писать драйвер для принтера HP чтобы оно работало с macOS
Ну прекрасно же, долой убогий вендорлок. Штатно только винда.
- предсказание структуры белка (AlphaFold, Нобелевка по химии 2024)
Ну тут без лишних слов - достойно.
- поиск новых материалов для батареек (GNoME, 2.2 млн кристаллов за 17 дней).
Вы только представьте - система за 17 дней предсказала 2.2 млн потенциально стабильных неорганических кристаллов - в 10 раз больше, чем всё, что человечество нашло до этого!!! Из них 700+ уже подтверждены экспериментально. Охуеть.
Да масса разных примеров!
К чему я всё это.
Да, я умею работать с ИИ, нейронками, ЛЛМ, агентами и другими умными словами, что сейчас из каждого утюга.
Как-никак два года это активнейшим образом использую каждый день.
Часто даже автономно по ночам и выходным, пока SSO не отвалится или токены не закончатся.
Да, работа с ними есть/будет обязательным навыком для следующих поколений инженеров, хотим ли мы этого или нет, нравится или нет.
И да, я уверен, что модели и дальше будут умнеть.
Да, мне помогает ускорять написание кода (инфра/бизнес апп).
Да, могу катить даже 20 фичей в неделю.
Классно помогает траблшутить.
Идеально подходит для ресерча, диалогов лучших решений, разбора документации.
И... и всё.
Великая Невероятная ИИ-Революция прошла мимо меня.
Если честно, то за последние пару лет, как я начал использовать нейронки повсеместно - никакой Большой Революции у меня не произошло.
Давайте сразу договоримся - я не отрицаю Полезность, Невероятность, Революционность и Крутость работы с ллм и агентами. Многие иные эпитеты и прилагательные тоже. Да, назвать нейронки просто куском кода я не решился бы. Ниже текст лишь про то, как я сумел или нет это всё применить лично для себя.
Работа
Код. Стал ли я писать код лучше?
Нет, но стал писать быстрее. И мнооооого.
И все резко перестали его читать.
Сам ли я его пишу или просто даю задачки? Посади меня писать код (да хоть терраформ манифест) без автокомплита, смогу? М?
Пахнет плесневелым ароматом деградации.
Траблшутинг. Стал разбираться с проблемами быстрее (привет скиллы, кли и мсп). О да, это реально работает.
Агенты. Агенты, агенты везде. Стало ли с ними проще? В моей конкретной работе мне пришлось даже сократить их количество, так как я не успеваю за контекстом.
Сперва радовался куче утилит и подходов с агентами, а спустя время осознал, что больше 2-3 сессий/агентов/задач я не способен вести. Спустя ещё время я сам для себя вынужден признать, что даже "одновременно" тут лишнее слово. Я не талантливый инженер и не уникум, обычный простой работяга. Формулировка "я могу держать не больше 2-3 задач одновременно и уметь ПЕРЕКЛЮЧАТЬСЯ между ними" - будет точнее. Никакой одновременности, камон. Если взять 10 задач, то даже переключение страдает, чего уж говорить об эффективности.
Автономные агенты, да, решают. Но эээ все ли задачи я могу им поручить?
Коммуникация. На работе каждый МР с описанием как абзац Войны и Мира. Никто не читает эту простыню. Весь слак забит Очень Полезными Подробными Ответами Отчётами. Ну я честно их не читаю. Просто, блять, напиши кратко по-человечески, нахуй мне эта простыня.
Я и сам так могу нагенерить второй том мертвых душ. Хоть на японском.
Семья, друзья и близкие
Мои приятели не-айтишники откровенно называют меня поехавшим, когда я случайно что-то говорю про нейронки или агентов. Сразу шутки про
Подростки, дети приятелей, кто хоть немного умеют в знания, вообще могут в лоб спросить "а это вы просто ллм и скрипт питона в цикле называете агентом?"
Супруга иногда может перевести текст на хорватский или английский, чтобы написать в какую-то бюрократическую организацию бытовой вопрос. Могу иногда для хихиканья в телеграм-чате нагенерить мем-шутку-минутку картинку в джемини.
Сервисы
Сейчас в каждом сервисе ИИ! Уууух! Заживём!
Правда так ничем и не стал пользоваться, лол.
Каждый блядский сервис: джира, ms word, twilio, notion, confluence, spotify/яндекс музыка, скипаю нахер. Я пробовал было их фичи, всё абсолютно тотальное говно, не помогает и не решает ничего. Херня ради херни.
Подсказка: если есть опция отключения ИИ-фичей (word, telegram, docker desktop) и вам это не надо, то отключайте нахуй. Сразу нет жорева ЦПУ/памяти. Ненужные фичи, ещё и тратящие ресурсы. Тупость.
Мечтал, может, спотифай и яндекс музыка дадут новые ИИ-рекомендации, хер там плавал, как гоняют по кругу одно и то же, так и гоняют, что с ИИ, что без.
Чаты-саппорт, все, что мне попадались, они не мне помогали, а лишь злили и заставляли нервничать.
Личная жизнь
Ну я теперь крутая крутышка. Могу делать домашки с нейронкой, ещё больше деградируя. Зачем, спрашивается, я тогда плачу и хожу на занятия, если домашку мне лень сделать самому.
Для игр тоже не помогает, даже билд варвара в д4 на последний сезон не собрать, галлюцинация за галлюцинацией даже на последних супердорогих моделях.
Хз в общем.
Наверное я так долго могу перечислять примеры, но после двух лет я пришёл к тому, что нейронки для меня не сделали Большой Революции.
Оспаривать революционность моделей, агентов, харнеса я не буду, это нечего и оспаривать.
Но что дало это мне?
Что дало моим близким?
Что дало человечеству?
Что РЕАЛЬНО дало это моей работе и, главное, платящим клиентам?
Я вот чот ни одной реальной стори от приятелей-айтишников не слышал, что "внедрили ИИ, клиенты довольны, много платят".
Пока только всратые истории, увольнения, миллионы не нужных платящим клиентами фич, ии-сокращения и автоматизация слопа.
На встрече All hands сидят 25 человек и 40 ботов-стенографистов.
Кто-то вообще потом читает эти саммари?
Но есть и позитивные новости
Мне нравится читать о необычных для меня использованиях нейронок:
- помощь в нахождении лекарства от рака (Insilico Medicine, ISM3091/ISM6331, от IND до Fast Track FDA)
Прикиньте, совсем скоро мы, быть сможет, победим рак! Охрененно!
- помощь в нахождении лекарства от ВИЧа (дизайн иммуногенов и антител)
Я так понял коли вакцину пару раз в год, это оберегает от ВИЧ и, соотвественно, не будет впоследствии СПИДа. Круто!
- аэродинамика для самолётов (ML как surrogate для CFD)
Ну у меня страх полётов, а если сделают ещё безопаснее - вообще красота.
- люди могут писать драйвер для принтера HP чтобы оно работало с macOS
Ну прекрасно же, долой убогий вендорлок. Штатно только винда.
- предсказание структуры белка (AlphaFold, Нобелевка по химии 2024)
Ну тут без лишних слов - достойно.
- поиск новых материалов для батареек (GNoME, 2.2 млн кристаллов за 17 дней).
Вы только представьте - система за 17 дней предсказала 2.2 млн потенциально стабильных неорганических кристаллов - в 10 раз больше, чем всё, что человечество нашло до этого!!! Из них 700+ уже подтверждены экспериментально. Охуеть.
Да масса разных примеров!
К чему я всё это.
Да, я умею работать с ИИ, нейронками, ЛЛМ, агентами и другими умными словами, что сейчас из каждого утюга.
Как-никак два года это активнейшим образом использую каждый день.
Часто даже автономно по ночам и выходным, пока SSO не отвалится или токены не закончатся.
Да, работа с ними есть/будет обязательным навыком для следующих поколений инженеров, хотим ли мы этого или нет, нравится или нет.
И да, я уверен, что модели и дальше будут умнеть.
Да, мне помогает ускорять написание кода (инфра/бизнес апп).
Да, могу катить даже 20 фичей в неделю.
Классно помогает траблшутить.
Идеально подходит для ресерча, диалогов лучших решений, разбора документации.
И... и всё.
Великая Невероятная ИИ-Революция прошла мимо меня.
Please open Telegram to view this post
VIEW IN TELEGRAM
👏24👍13❤1
#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, из-за этого и растёт список".
Ответ был короткий и справедливый: "у нас Database Insights показывает Airflow на ридере, как обычно. Дайте данные, а не предположение".
Справедливо. Полез проверять руками, а не по картинке из confluence.
Достал security groups у MWAA-окружения, нашёл ENI airflow-воркера, сравнил security groups с тем, что у MWAA в конфиге. Совпало. Дальше через Performance Insights посмотрел топ хостов по нагрузке на ридере и на райтере за то же окно времени. IP воркера Airflow, топ-1 по нагрузке на ридере. На райтере в топ-25 вообще не встречается.
Гипотеза номер один, красиво описанная на диаграмме, была мимо.
Дело было не в мастере.
Ладно, обделался я со своей гипотезой, ну да ладно, бывает.🤡
Думаю, может тогда это просто какая-то одна зависшая транзакция сидит прямо на райтере, не важно кто её открыл. Полез сам* в
Смотрю на текущий момент: пусто, всё свежее, самой старой транзакции пара секунд. Может, просто не попал в момент.
Написал кронджобу в кластере, которая раз в две минуты в течение трёх часов дампила
Три часа честного сбора данных на самом продовом окне, когда метрика скачет. Результат: максимальный возраст любой транзакции на райтере за все 90 замеров - три секунды. Лаг у ридера тоже никакой, пара миллисекунд.
Второй заход, снова в пустоту. На этом моменте я, если честно, уже начал придумывать какую-то дичь про баг в самой Aurora. Типа напилить тикет в саппорт.
Тут вспомнил про slow query log.
У нас он давно экспортится в CloudWatch Logs, просто никто туда не смотрел в контексте этой задачи. Полез в лог именно ридера, за тот же временной диапазон, что и в первой гипотезе.
И вот тут наконец что-то нашлось:
Запрос от airflow, 1738 секунд, это почти 29 минут. Причём это не единичный случай, за одно окно таких штук пять, самая длинная под полчаса, самая прожорливая разбирает 235 миллионов строк за один присест (!!!). И всё это на ридере, не на райтере!!!.
То есть гипотеза номер один была не совсем мимо, просто немного не в ту сторону: эйрфлоу правда виноват, просто сидит не там, где я думал.
Дальше уже дособрал картину той же кронджобой, которую сделал для проверки транзакций. Стал смотреть не только на
Полез читать документацию Амазона по этой самой рекомендации (ссылка ниже, она буквально прямо в описании рекомендации в консоли лежит, просто никто не читал):
- https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/proactive-insights.history-list.html
- https://aws.amazon.com/blogs/database/achieve-a-high-speed-innodb-purge-on-amazon-rds-for-mysql-and-amazon-aurora-mysql/
Цитата оттуда: если у вас райт-интенсивная нагрузка на праймари и одновременно долгие запросы на репликах, вы получите backlog по purge, потому что гарбадж коллектор блокируется этими долгими запросами.
У Aurora storage общий на весь кластер. Покурить на ридере полчаса можно, но платит за это весь кластер, включая райтер, потому что purge физически не может продвинуться дальше самого старого read view во всей этой семье инстансов. Не важно, читает мастер или реплика, движок про это ничего не знает, ему важен только самый старый снепшот.
Вот и весь секрет полугодовой рекомендации: раз в сутки прилетает ETL-синк, читает половину базы одним долгим SELECT-ом на ридере, и весь кластер полчаса не может почистить за собой.
Отдельно нашёл забавную деталь.
Кто-то** из коллег ещё в начале месяца руками (не через терраформ, просто в консоли😁 ) поднял
Фикс, если коротко: чинить надо не базу, а сам DAG в этом случае.
Резать один гигантский full-table sync на куски поменьше, переводить больше таблиц с полного sync на инкрементальный там, где можно, и отдельно разобраться,каковаху почему один запрос вообще читает 235 миллионов строк, может там просто индекса не хватает. Завёл тикет команде, которая владеет этим пайплайном, там всё разложено по фактам с командами и логами, а решение, как чинить, оставил за ними, это их трейдофф. Да и я слишком тупой в БД, чтобы умничать и чинить.
Часть 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, из-за этого и растёт список".
Ответ был короткий и справедливый: "у нас Database Insights показывает Airflow на ридере, как обычно. Дайте данные, а не предположение".
Справедливо. Полез проверять руками, а не по картинке из confluence.
Достал security groups у MWAA-окружения, нашёл ENI airflow-воркера, сравнил security groups с тем, что у MWAA в конфиге. Совпало. Дальше через Performance Insights посмотрел топ хостов по нагрузке на ридере и на райтере за то же окно времени. IP воркера Airflow, топ-1 по нагрузке на ридере. На райтере в топ-25 вообще не встречается.
Гипотеза номер один, красиво описанная на диаграмме, была мимо.
Дело было не в мастере.
Ладно, обделался я со своей гипотезой, ну да ладно, бывает.
Думаю, может тогда это просто какая-то одна зависшая транзакция сидит прямо на райтере, не важно кто её открыл. Полез сам* в
information_schema.innodb_trx. Смотрю на текущий момент: пусто, всё свежее, самой старой транзакции пара секунд. Может, просто не попал в момент.
Написал кронджобу в кластере, которая раз в две минуты в течение трёх часов дампила
innodb_trx и заодно information_schema.replica_host_status (там лаг репликации и LSN между узлами кластера). Три часа честного сбора данных на самом продовом окне, когда метрика скачет. Результат: максимальный возраст любой транзакции на райтере за все 90 замеров - три секунды. Лаг у ридера тоже никакой, пара миллисекунд.
Второй заход, снова в пустоту. На этом моменте я, если честно, уже начал придумывать какую-то дичь про баг в самой Aurora. Типа напилить тикет в саппорт.
Тут вспомнил про slow query log.
У нас он давно экспортится в CloudWatch Logs, просто никто туда не смотрел в контексте этой задачи. Полез в лог именно ридера, за тот же временной диапазон, что и в первой гипотезе.
И вот тут наконец что-то нашлось:
# User@Host: airflow[airflow] @ [10.0.x.x]
# Query_time: 1738.868051 Lock_time: 0.000002 Rows_sent: 6232112 Rows_examined: 19477050
Запрос от airflow, 1738 секунд, это почти 29 минут. Причём это не единичный случай, за одно окно таких штук пять, самая длинная под полчаса, самая прожорливая разбирает 235 миллионов строк за один присест (!!!). И всё это на ридере, не на райтере!!!.
То есть гипотеза номер один была не совсем мимо, просто немного не в ту сторону: эйрфлоу правда виноват, просто сидит не там, где я думал.
Дальше уже дособрал картину той же кронджобой, которую сделал для проверки транзакций. Стал смотреть не только на
innodb_trx, а на oldest_read_view_trx_id у ридера. И увидел: этот trx_id замер на 15 замеров подряд, это примерно 28 минут, пока LSN* у ридера спокойно рос дальше. То есть репликация не отставала, но снепшот данных для конкретного долгого запроса не двигался почти полчаса.Полез читать документацию Амазона по этой самой рекомендации (ссылка ниже, она буквально прямо в описании рекомендации в консоли лежит, просто никто не читал):
- https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/proactive-insights.history-list.html
- https://aws.amazon.com/blogs/database/achieve-a-high-speed-innodb-purge-on-amazon-rds-for-mysql-and-amazon-aurora-mysql/
Цитата оттуда: если у вас райт-интенсивная нагрузка на праймари и одновременно долгие запросы на репликах, вы получите backlog по purge, потому что гарбадж коллектор блокируется этими долгими запросами.
У Aurora storage общий на весь кластер. Покурить на ридере полчаса можно, но платит за это весь кластер, включая райтер, потому что purge физически не может продвинуться дальше самого старого read view во всей этой семье инстансов. Не важно, читает мастер или реплика, движок про это ничего не знает, ему важен только самый старый снепшот.
Вот и весь секрет полугодовой рекомендации: раз в сутки прилетает ETL-синк, читает половину базы одним долгим SELECT-ом на ридере, и весь кластер полчаса не может почистить за собой.
Отдельно нашёл забавную деталь.
Кто-то** из коллег ещё в начале месяца руками (не через терраформ, просто в консоли
max_execution_time на параметр-группе ридера до 30 минут. Видимо, до этого запрос просто убивался по таймауту и синк не долетал. То есть кто-то уже наступил на эти грабли раньше меня, просто не докопался до причины, а тупо дал запросу больше времени. Запрос стал долетать, но теперь честно душит purge все эти полчаса.Фикс, если коротко: чинить надо не базу, а сам DAG в этом случае.
Резать один гигантский full-table sync на куски поменьше, переводить больше таблиц с полного sync на инкрементальный там, где можно, и отдельно разобраться,
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥18❤1👍1
#AWScommunity #aws #longread #rds #aurora #mysql #airflow #devops #troubleshooting
Часть 2 из 2.
Внимательный читатель задаст вопрос
"Алекс, кого ты лечишь? РДС не даёт рекомендации, если всего полчаса в день отставание, ты что-то упускаешь, кривой ETL не дал бы такой эффект".
Да, всё так.
Починив ELT/DAG, мы поняли, что рекомендация остаётся даже после этого.
Сняли всю информацию, все метрики клоудвоча, аудит логи - не смогли найти причину. Написали в саппорт. Дали все метрики, в том числе аномальные транзакции.
Буквально в 5-6 итераций общения с саппортом и мы поняли, что все были правы - рекомендация по делу триггерится - по метрике, но сама метрика обманывает.
Тот дикий "возраст транзакции в 56 лет" оказался реальным, подтверждённым багом Aurora MySQL 3.*.x на Гравитонах. Race condition в коде движка: поллер метрики иногда читает время старта транзакции чуть раньше, чем оно успело проинициализироваться, и считает возраст от почти нулевой эпохи😬 . Никакой реальной транзакции за этим не стоит, чистая косметика в метрике.
А вот прямую связь с тем, что база полгода не возвращается к норме, доказать так и не смогли. Слишком много времени прошло. Так и закрыли: корреляция по времени подтверждена, причинность нет, а вердикт практический: purge здоров, текущий уровень не риск, апгрейду быть.
Апгрейд прошёл отлично.
После апгрейда баг с метрикой ушёл.
Так что же в итоге?
Иногда в процессе подготовки агрейда находишь множество не явных вещей:
- не настроен мониторинг/алёртинг RDS рекомендаций и никто на это не смотрит, а в скоуп уведомлений от Amazon Notification Center это не входит
- схемы/диаграммы надо поддерживать
- нет мониторинга/алёртинга RDS/Airflow на долгие транзакции
- баги. Иногда копаешь неделями, а там ты ваще не виноват, это лишь баги
- - -
* Все умные слова для БД, точные запросы, интерпретация ответов была сделана при помощи значительно более умных коллег, у кого больше опыта с БД.
Сам я как был слабый по БД, так и остался.
** Конечно все знают кто это, аудит показывает, но при блеймлесс калча нельзя кого-либо обвинять.😬
Часть 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 в коде движка: поллер метрики иногда читает время старта транзакции чуть раньше, чем оно успело проинициализироваться, и считает возраст от почти нулевой эпохи
А вот прямую связь с тем, что база полгода не возвращается к норме, доказать так и не смогли. Слишком много времени прошло. Так и закрыли: корреляция по времени подтверждена, причинность нет, а вердикт практический: purge здоров, текущий уровень не риск, апгрейду быть.
Апгрейд прошёл отлично.
После апгрейда баг с метрикой ушёл.
Так что же в итоге?
Иногда в процессе подготовки агрейда находишь множество не явных вещей:
- не настроен мониторинг/алёртинг RDS рекомендаций и никто на это не смотрит, а в скоуп уведомлений от Amazon Notification Center это не входит
- схемы/диаграммы надо поддерживать
- нет мониторинга/алёртинга RDS/Airflow на долгие транзакции
- баги. Иногда копаешь неделями, а там ты ваще не виноват, это лишь баги
- - -
* Все умные слова для БД, точные запросы, интерпретация ответов была сделана при помощи значительно более умных коллег, у кого больше опыта с БД.
Сам я как был слабый по БД, так и остался.
** Конечно все знают кто это, аудит показывает, но при блеймлесс калча нельзя кого-либо обвинять.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥10👍3❤1
#пятница
С появлением нейронок все стали слишком умными.
Авторитет практикующего инженера внезапно перестал существовать - есть же более авторитетное "мне клод сказал".
Спорю про костыль в проде - а в ответ скрин из чата с нейронкой, которая со всем согласилась, потому что её так спросили.
Даже базовые вещи приходится объяснять заново, и обидно не столько объяснять, сколько ещё и доказывать.
Я же не клодкод или джипити.
Какой-то человек.
Чтобы был аргумент для коллег и приятелей (а так же их нейронок) "почему
- https://nocurlbash.com/
Теперь в спорах ссылаюсь на неё как на источник истины:
- "вон, смотри, даже сайт специальный есть, люди против курлбаша, вот аргументы, это бэд-практис ващета!"
Пока прокатывает😀
С появлением нейронок все стали слишком умными.
Авторитет практикующего инженера внезапно перестал существовать - есть же более авторитетное "мне клод сказал".
Спорю про костыль в проде - а в ответ скрин из чата с нейронкой, которая со всем согласилась, потому что её так спросили.
Даже базовые вещи приходится объяснять заново, и обидно не столько объяснять, сколько ещё и доказывать.
Я же не клодкод или джипити.
Какой-то человек.
Чтобы был аргумент для коллег и приятелей (а так же их нейронок) "почему
curl | bash - это плохо", я запилил домен и хреново навайбкодил страничку с аргументами.- https://nocurlbash.com/
Теперь в спорах ссылаюсь на неё как на источник истины:
- "вон, смотри, даже сайт специальный есть, люди против курлбаша, вот аргументы, это бэд-практис ващета!"
Пока прокатывает
Please open Telegram to view this post
VIEW IN TELEGRAM
16👍49😁22🔥7💯3😈1😭1
#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 - это вам.
Всё самое модное и свежее - всякие скилл репо, агентик репо, фреймворки, харнессы и всё то, о чём будут писать лишь через несколько недель или месяцев, а вы это уже освоите сегодня.
- https://www.goncharov.xyz/it/devops-roadmap.html
Очень старая схема-роадмап девопса от Гончарова
К сожалению, я добрался до неё буквально недавно, упустил его публикацию.
Не буду говорить согласен ли я с этим планом на 100% или нет (сейчас век "ИИ" и всё сказанное мной будет не актуально через неделю), но почитать точно стоит.
Для общего развития, не брать основным планом развития.
- https://www.redhat.com/en/resources/oreilly-generative-ai-kubernetes-analyst-material
Бесплатная книга от redhat+oreilly, которую я определённо дочитаю по дороге в отпуск.
Сейчас начал читать - по мне так ок, закрою пробелы по базе.
Уверен на 90%, что это будущие вопросы на будущие собеседования 2027-2028, так что точно дочитаю.
Просто набор интересных ссылок, которые у меня накопились для шаринга.
По каждой отдельно писать немного странно, так что всё вместе будет.
- 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 - это вам.
Всё самое модное и свежее - всякие скилл репо, агентик репо, фреймворки, харнессы и всё то, о чём будут писать лишь через несколько недель или месяцев, а вы это уже освоите сегодня.
- https://www.goncharov.xyz/it/devops-roadmap.html
Очень старая схема-роадмап девопса от Гончарова
К сожалению, я добрался до неё буквально недавно, упустил его публикацию.
Не буду говорить согласен ли я с этим планом на 100% или нет (сейчас век "ИИ" и всё сказанное мной будет не актуально через неделю), но почитать точно стоит.
Для общего развития, не брать основным планом развития.
- https://www.redhat.com/en/resources/oreilly-generative-ai-kubernetes-analyst-material
Бесплатная книга от redhat+oreilly, которую я определённо дочитаю по дороге в отпуск.
Сейчас начал читать - по мне так ок, закрою пробелы по базе.
Уверен на 90%, что это будущие вопросы на будущие собеседования 2027-2028, так что точно дочитаю.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥21❤1
#всратость
Ну-да, ну-да.
Это так и работает, ага.
Больше ничего не надо вводить.🥴
Похоже и правда пора в отпуск.🤡
Ну-да, ну-да.
Это так и работает, ага.
Больше ничего не надо вводить.
Похоже и правда пора в отпуск.
Please open Telegram to view this post
VIEW IN TELEGRAM
😁37👍2🥴2
Классный вышел тред и официальный платиновый ответ.😁
Чувствую много болей в ближайшие дни.
https://github.com/orgs/community/discussions/206581#discussioncomment-18269083
С некоторых комментов можно гиеной прокричать
Само решение:
Чувствую много болей в ближайшие дни.
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.1Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
Unauthenticated clone of a public repo intermittently returns 401 (prompts for Username) from CI workers · community · Discussion…
🏷️ Discussion Type Bug Body Our CI workers (Docker containers) clone the public repo MariaDB/server over HTTPS with no credentials configured. The clone fails at the negotiation step, not at the re...
1😁9🤯1
This media is not supported in your browser
VIEW IN TELEGRAM
#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
Тут же, наоборот, вниз таблицу сделали полностью, она, о-чудо!, уместилась, а вправо информации уже нет.
На этой странице у этой таблицы надо тачем елозить уже только вправо-влево по таблице.
Как я должен понять - на какой из таблиц мне елозить тачпадом во все стороны, а на какой нет - ну, вероятно, догадываться, проверяя каждый подобный элемент документации.☔️
Это произошло не вчера, а постепенно происходит с многими страницами документации. Может это даже современный тренд в дизайне.
Понятно, что лишь ворчу, но это немного печалит, ведь документация и интерфейс должны быть понятны и очевидны.
Сейчас же это стало затруднительнее.
Надо буквально "подрочить пальцами по тачпаду на каждой табличке" чтобы понять есть ли там ещё чего или нет.
Чем мешал ранее всегда видимый скроллбар - не понимаю.
Честно говоря я немного разочарован последними 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
Тут же, наоборот, вниз таблицу сделали полностью, она, о-чудо!, уместилась, а вправо информации уже нет.
На этой странице у этой таблицы надо тачем елозить уже только вправо-влево по таблице.
Как я должен понять - на какой из таблиц мне елозить тачпадом во все стороны, а на какой нет - ну, вероятно, догадываться, проверяя каждый подобный элемент документации.
Это произошло не вчера, а постепенно происходит с многими страницами документации. Может это даже современный тренд в дизайне.
Понятно, что лишь ворчу, но это немного печалит, ведь документация и интерфейс должны быть понятны и очевидны.
Сейчас же это стало затруднительнее.
Чем мешал ранее всегда видимый скроллбар - не понимаю.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9💯5❤1