DevOps Brain 🧠
1.21K subscribers
127 photos
16 videos
119 links
Пишу про kubernetes, terraform, linux, сети, автоматизации и полезные тулзы. Без спама и щитпостинга.

Хотите пообщаться? @devopsbrain_chat

Автор: @itcaat
Download Telegram
📍 Карта канала

Ламповый чатик для своих людей: @devopsbrain_chat

Собрал в одном месте все самые полезные посты - изучайте, применяйте!
---
🔵Вредные советы начинающим специалистам в IT
🔵Говорим с TeamCity на одном языке с помощью MCP
🔵Делаем свой бесплатный сайт - закроем тему
🔵Динамические матрицы в github actions - Часть 1 | Часть 2
🔵Про магию for в prometheus
🔵Как запустить публичный сайт на телефоне или экономим на спичках
🔵Как прокачать сетку между разными ЦОД за пару команд
🔵Как умерла OS/2 в неравной схватке с Windows - Часть 1 | Часть 2
🔵Кольцо хеширования: теория и симулятор
🔵Лучшие практики конфигурирования Kubernetes в 2025 — Часть 1: Это база! | Часть 2: Сервисы, метки, конфиги и лимиты | Часть 3: безопасность, логи, наблюдаемость и graceful shutdown [продолжение следует...]
🔵Наводим красоту в htop
🔵Настройка самоподписных валидных ssl-сертификатов в локальном k8s. Часть 1 и Часть 2.
🔵Отправка уведомлений на телефон через API запрос
🔵Поиск эксплойтов в вашем кубе с помощью kubescape и metasploit
🔵Почему вам надо вводить практику написания посмортемов?
🔵Про git fixup и чистую историю
🔵Размышления об opensource. Оно катится в ад?
🔵Симулируем сети в GNS3. Часть 1 - настройка под MacOS | Часть 2 - делаем свою первую сеть
🔵Топ полезных утилит для работы с кучей серверов на примерах
🔵Тулзы для детекта утечки секретов
🔵Чеклист на Новый 2026 год для инженеров эксплуатации
🔵Эмуляция сетевых проблем в Linux через tc netem

🔵Dive in performance tools. Часть 1 - Sysdig
🔵Dive in performance tools. Часть 2 - top / htop. Про память в Linux | Про CPU | Таблица процессов в top | Основные выводы в практике | Что еще можно посмотреть в top
🔵Dive in performance tools. Часть 3 - Сеть. bmon | bandwhich [продолжение следует...]
🔵Excalidraw - как рисовать схемы без боли и страданий
🔵DocMost - аналог notion
🔵grafana k6 - знакомство с нагрузочным тестированием
🔵keephq - мониторинг на стеройдах
🔵kubetools - сборник тулов для k8s
🔵neohtop - htop под macos
🔵macpine - запускаем вмки под MacOS терминала
🔵oh-my-zsh - красиво оформляем командную строку
🔵postman - TUI аналог postman для любителей консоли
🔵siyuan - обзор решения для личного управления знаниями
🔵SLA, SLO и SLI простыми словами - Часть 1 | Часть 2
🔵tabby.sh - еще один кросплатформенный терминал
🔵Zerolog - удобные логи в golang

🔖 Полезные теги на канале
---
#ai #cicd #career #clickhouse #docker #dotnet #external_links #facts #fun #golang #github_actions #haproxy #kafka #linux #kubernetes #macos #management #networking #opentelemetry #proxmox #simulators #study #tools

------

🌐Мои репки opensource: https://github.com/itcaat/
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
https://betterstack.com/community/guides/logging/zerolog/ - отличная статья о том как красиво организовать логи в go lang. На скрине только часть красоты. Основная фишка - полный контроль как логи будут выглядеть, а также куча встроенных фич. Ну и если в json хотите - не проблема. Ну и сюда же неплохая статья как быстро заменить стандартный вывод в консоль на структурированный лог json. https://programmingpercy.tech/blog/how-to-use-structured-json-logging-in-golang-applications/


#golang #tools
👍2
https://github.com/docmost/docmost - бесплатный opensource аналог notion.so. Возможно кому то пригодится. Как мне кажется, классный вариант для внутренней вики. Сам не тестил, но выглядит круто

#tools
https://habr.com/ru/companies/kuper/articles/830426 - Как начинающему тимлиду не сойти с ума от обилия задач: практический гайд. Иногда бывает, что вы не хотели а вам пришлось стать тимлидом. Ну нет других кандидатов, а вы очень хорошо в своей предметной области. Капитолина Кузнецова (тимлид, Ruby-разработчик в Купере) делится своим опытом.

#management #junior #career
https://habr.com/ru/companies/nixys/articles/830830/ - Выбираем между инструкциями RUN, CMD и ENTRYPOINT. Начинающие инженеры часто не понимаю разницы. Хорошая статья, которая на пальцах расскажет в чем разница.

#docker #junior
👍1
https://altinity.com/blog/building-a-diy-prometheus-http-endpoint-in-clickhouse - а вы знали что clickhouse может отдавать почти нативно данные с таблиц в виде метрик прометея, которые можно потом скрапать и навешивать алерты. Может быть полезно в кейсах когда вам надо какие данные из clickhouse превратить в метрики.

#db #clickhouse #senior #external_clickhouse
https://www.youtube.com/watch?v=wsyPccNCj2E - живой пример как улучшить и оптимизировать конфигурацию инфраструктуры описанной в terraform, используя возможности terragrunt

Ну и в продолжении истории с terraform/terragrunt видео как https://www.youtube.com/watch?v=LHXnpcuwfW8

#terraform
🧠 Я тут подумал, что было бы круто если бы вы тоже могли поделиться своими крутыми статями. Я почти уверен кто то из вас периодически что то пишет или хочет писать. А может у кого то в избранном как и у меня тонны информации, которой можно и хочется поделиться.

🎯 Задача понятна, нужно предоставить какой то инструмент для взаимодействия. И вроде бы в телеге нет такой возможности. "Есть готовые решения” скажете вы. Но что мы за инженеры, если за несколько часов не можем реализовать именно своего лампового бота.

Итак, какие требования будем предъявлять:

1. Бот на вход получает линку от пользователя. Линка пересылается админу.
2. Админ ревьювит эту историю и готовит материал.
3. Выкладывает пост и благодарит автора за годный материал.
4. Нужны rate limit на количество сообщений в определенное время.
5. Нужно чтобы бота можно было клонировать и кому надо могли сами использовать своих ботов в своих каналах. Те получаем новый токен в телеге, немного настраиваем бота и запускаем своего бота со своим токеном на какой то площадке.
6. Желательно чтобы был бесплатный хостинг.

Спустя 3 часа готова mvp(Minimal Viable Product) которая реализует все эти хотелки, включая бесплатную площадку. Спасибо, github. Немножко магии и оно будет работать почти круглосуточно.

Как оно устроено можно посмотреть в репке https://github.com/itcaat/telegram-bot-suggest-news. Очень хочется мультиязыковую поддержку, но пока нет времени этим заняться. Может кто то захочет поконтрибутить. 🦾 А так всем спасибо за внимание и хорошего вечера. 💤
DevOps Brain 🧠 pinned Deleted message
Сегодня поделились интересным проектом для маководов. 💻


Итак, если у вас мак, но очень нужны VM-ки на Linux, а пользоваться UI совершенно не хочется. Cпециально для вас решение на мульйон баксов, которое позволит за пару минут натянуть эту историю в консоль и наслаждаться.

🎯️️ Итак, погнали. Поднимем всю эту историю, внутрь воткнем классический nginx и выкинем порт на хостовую машину

# установим через macpine команды `alpine` и зависимость `qemu`
brew install macpine

# запустим вмку на 10 гигов диска, 4 cpu и 2 гига памяти с именем lol-kek и выкинем SSH порт 2221 на локальный хост. А также дополнительно прокинем 8081 c хоста на 80 порт вм
alpine launch -d 10G -c 4 -m 2048 -n lol-kek -s 2221 -p8081:80

# ну и все можно подключаться и проводить эксперименты. Даже порт не надо указывать, он подхватится автоматом
alpine ssh lol-kek

# ставим nginx
apk update && apk add nginx

# стартуем nginx
/etc/init.d/nginx start


Ну и как бы и все! Открываем браузер http://localhost:8081 и у нас готова изолировнная вм за пару минут ( привет vagrant ).

Сам проект тут https://github.com/beringresearch/macpine
👍4
Прежде чем деплоить в пятницу, ваш тимлид должен сказать
😁7💯2🤣1
Привет, всем отличной пятницы. Старайтесь сегодня ничего важного не деплоить, а то выходные длинные и хочется хотя бы прожить спокойно и без инцидентов.

Скинули давеча в чатик такой твит ( https://x.com/sebjvidal/status/1839694113249096052 ). И я подумал, реально же бывает сидишь такой и смотришь на pull request и понимаешь что это кусок говна. С одной стороны ты никогда бы такое и не апрувнул, а с другой бизнес требует катить быстрее. Вздох - выдох, закатываешь глаза и ты ставишь апрув. Просто фильм ужасов.

А почему бы не дать такую кнопку? Я написал шуточное дополнение в хром, которое рядом с кнопкой Approve добавляет Approve, but unhappy with it. Работает довольно просто - в настройках расширения прописывайте дефолтный коммент и при клике на Approve, but unhappy with it он будет комментом добавлять в pr этот текст.

Дополненение: https://chromewebstore.google.com/detail/github-%E2%80%94-unhappy-approve/jjggjkmjjjmfbhfkpjhmhkgkdiibfddl
Исходники: https://github.com/itcaat/github-unhappy-approve
🔥21
Если у вас есть кластера proxmox и вы задумались об автоматической балансировке, то вот тут есть для вас решение https://github.com/gyptazy/ProxLB

Выглядит очень интересно - но сам не тестировал. Может кто то захочет внедрить - расскажите потом как прошло =)

А вообще есть статья у автора https://gyptazy.com/howto-automated-deployment-of-freebsd-vms-in-proxmox-with-proxlb-and-terraform/, там пример с терраформом 🔥

#proxmox #tools
👍2
А если вы уже достигли уровня бог в terraform, то статья как начать писать свои кастомные провайдеры

https://spacelift.io/blog/terraform-custom-provider

#terraform
🔥2
(сижу пью 🍷 и думаю…) У моих детей есть примерно полтора часа в день на игры за компом. Прямо сейчас они играют с другом по сети в Minecraft ( и что они вообще нашли в этой игре - не понимаю. Играли бы лучше в cs 👴 и желательно в 1.6). Обычно я прихожу и ссаными тряпками гоню от компа 😄 Но вот реально, если я не приду сколько им нужно будет времени понять что уже пора заканчивать? На самом деле в своем детстве, если была возможность я сидел до потери сознания. Имею ли я моральное право их упрекнуть, если сегодня они просидят за компом часов 5?
😁8
Channel photo updated
Вечная боль - нарисовать схему работы какой то прилы. Идешь в какой нибудь draw.io. Рисуешь там, экспортишь в файл, сохраняешь в репку. Подключаешь в readme.md. И так по кругу, если что то поменялось. Но оказывается уже есть решение 🦸‍♂️

Топовая находка этой недели - https://marketplace.visualstudio.com/items?itemName=pomdtr.excalidraw-editor

Экстеншен позволяет рисовать офигенские схемки (точно также как на их сайте https://excalidraw.com/), но прям в vs code.

Как это работает:
1️⃣ Создаем файлик с именем .excalidraw.png в конце (Например в schema.excalidraw.png)
2️⃣ Внутри vscode открывается редактор
3️⃣ Рисуем/редачим схемку и сохраняем.
4️⃣ В результате это будет обычная png, которая откроется любым просмотрщиком.

В readme.md добавляем эту же png и кафуем. Теперь достаточно прям в vscode отредактировать схему, сохранить и пушнуть. 🔥
🔥14
Недавно в twitter спрашивал о том, есть ли практика ведения посмортемов. Оказалось, что не такой большой процент заботит эта история. И были даже кейсы, когда просили лида внедрить такую практику, но лид сливался. 😱 Давайте сегодня чуть ближе познакомимся с этим очень важным и нужный инструмент.

Постмортем ([лат.] «после смерти») — это анализ инцидента, произошедшего в системе, и его последствий. В сфере DevOps/SRE равно как и в разработке продукта постмортемы играют ключевую роль для повышения устойчивости и надежности инфраструктуры. Выделим несколько ключевых моментов о постмортемах и как сделать их полезным инструментом для роста вашей команды.

💀 Принципы «Blameless» постмортемов

Ключевое правило постмортемов — это принцип «без обвинений». Цель анализа инцидента — понять, что пошло не так, выявить первопричину и разработать меры для предотвращения подобных случаев в будущем. Важно не сосредотачиваться на том, кто допустил ошибку, а на том, что можно улучшить в процессах и инструментах.

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

- Увеличивает доверие в команде, так как инженеры чувствуют себя безопасно, высказывая свои мысли и идеи.
- Способствует честному анализу инцидентов и их реальных причин.
- Позволяет всей команде извлечь ценные уроки и избежать подобных проблем в будущем.

💀Составляющие хорошего постмортема

Успешный постмортем состоит из нескольких важных этапов:

1️⃣ Описание инцидента. Кратко и четко изложите, что произошло. Например: «API перестало отвечать на запросы из-за превышения лимита соединений в базе данных».
2️⃣ Причины. Опишите, какие факторы привели к инциденту. Это может быть комбинация технических проблем, недоработок в процессах или неожиданного поведения системы.
3️⃣ Реакция команды. Зафиксируйте действия, которые предпринимались для устранения проблемы, и как быстро был восстановлен сервис.
4️⃣ Уроки. Что можно улучшить в будущем? Нужно ли пересмотреть мониторинг, переработать конфигурации или оптимизировать процессы развертывания?
5️⃣ Действия на будущее. Определите конкретные шаги, которые помогут избежать повторения инцидента. Это может включать добавление мониторинга для критичных метрик, улучшение документации или изменение архитектурных решений.

💀Автоматизация и инструментальная поддержка

Для постмортемов часто используют автоматизированные системы для сбора данных и логов, чтобы сэкономить время и не упустить важные детали инцидента. Рекомендуется настроить процесс так, чтобы все метрики, логи и события автоматически собирались в едином хранилище, что значительно упростит анализ. Также популярны инструменты для отслеживания выполнения всех шагов плана улучшений, определенных по результатам постмортема. Хотя отсутствие метрик и логов как раз может стать кейпоинтом в одном из ваших первых посмортемов. =)

💀 Ретроспективы — следите за прогрессом

Задача лида команды после проведения постмортема провести ретроспективу через определенное время. Это позволит оценить, были ли внедрены предложенные улучшения и помогли ли они. Если ситуация повторилась, это повод углубиться в анализ и пересмотреть ранее принятые меры.

💀 Польза посмортемов для всех
🔥4👏1
Инженеры могут улучшить качество своей работы за счет углубленного анализа причинных факторов инцидентов.
Помогают выявить недостатки в коде, которые могут вызвать инциденты в будущем, и дают возможность быстро их устранить.
Это отличная возможность для разработки новых инструментов и процессов, улучшающих стабильность системы.
Позволяют улучшать процессы мониторинга и алертинга, что предотвращает повторение проблем.
Дают новые знания о том, как системы ведут себя в реальных условиях, и что можно улучшить в архитектуре и инфраструктуре.
Помогают повысить общую надежность системы и уверенность в поддержке её работы при высоких нагрузках.
Анализ инцидентов снижает риски повторных сбоев, что напрямую влияет на качество предоставляемых услуг и удовлетворенность клиентов.
Понимание корневых причин и внедрение улучшений обеспечивает стабильную работу сервисов, что способствует росту репутации компании.
Шаринг знаний между котлегами.

💀💀💀 Кстати, деплой в пятницу, как раз может стать поводом написать свой первый посмотрем 💀💀💀
🔥3
Накатал некий аналог service discovery для VMs и Nodes в кластере proxmox ( если вы не юзаете SDN). Принцип работы максимально простой. Фигачите обслуживание зоны (например proxmox.example.com) в proxmox-service-discovery (желательно в 2 экземплярах конечно - ну вы поняли почему). Дальше тула забирает по API все нужные данные для отдачи IP адреса и отдается по 53 (UDP, DNS)

Мапа из A записей в памяти собирается из нод, имен VM и тегов ( если нужно )

Сама тула тут https://github.com/nrukavkov/proxmox-service-discovery
🔥3