DevOps MemOps
6.34K subscribers
3.37K photos
536 videos
16 files
5.4K links
Всё о DevOps

Для связи - @raz_raz
Заказать рекламу через биржу: https://telega.in/c/devops_memops
Download Telegram
Please open Telegram to view this post
VIEW IN TELEGRAM
😁1🦄1
Bombini — runtime security агент на eBPF, целиком написанный на Rust с библиотекой Aya.

Он построен на BPF LSM хуках и состоит из модульных детекторов, которые отслеживают процессы, файловые и сетевые операции, а также взаимодействие с eBPF-подсистемой ядра.

Самое интересное здесь — rule engine, который целиком работает внутри eBPF в отличие от Falco, где правила вычисляются в user mode части агента. Правила пишутся в YAML с булевыми предикатами (AND/OR/NOT, in, CIDR для IPv4/IPv6, списки и макросы). Каждое правило компилируется как программа: парсер строит AST,оптимизационные проходы его упрощают, а на выходе получается байткод в обратной польской записи. Байткод загружается в eBPF-мапы и исполняется прямо в ядре собственным RPN-интерпретатором. Поэтому фильтрация происходит до отправки событий в userspace, и накладные расходы минимальны. Для правил есть sandbox-режим в вариантах allow-list и deny-list, в отличие от Tetragon, где реализован только deny-list способ.

Отдельно стоит отметить детектор SysEnumMon, аналогов нет ни в Falco, ни в Tetragon. Обычно в eBPF-агентах одно срабатывание хука даёт одно событие. SysEnumMon работает иначе: он собирает наблюдения с нескольких хуков (запуск бинарей и открытие файлов), коррелирует их внутри дерева процессов в скользящем временном окне и принимает решение прямо в eBPF. Так он ловит сканеры вроде LinPEAS и LinEnum, хотя каждое их действие по отдельности (id, uname, чтение /etc/passwd) выглядит легитимно.


📌 Подробнее: https://bombinisecurity.github.io/bombini/

MemOps🤨
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2🤯2
Devs did what?! Oooops

MemOps
😃
Please open Telegram to view this post
VIEW IN TELEGRAM
😁16
Выучил Go. Горутины, каналы, интерфейсы — всё понятно.
А потом реальная задача: опросить 300 хостов, не положить чужой API ретраями и корректно остановиться по SIGTERM.

И пустой main.go 🫠

Туториалы учат синтаксису. Никто не рассказывает, почему:
— ретраи без джиттера добивают поднявшийся API
— незакрытый resp.Body съедает пул соединений
— liveness-проба с проверкой БД отправляет весь кластер в каскадный рестарт
— горутины «работают», а под -race сыпятся гонки

«Go для DevOps/SRE» закрывает разрыв между «знаю Go» и «пишу на Go инфраструктурные утилиты».

Внутри:
— CLI-утилиты, os/exec, graceful shutdown
— Параллельный опрос хостов, worker pool, отмена по первой ошибке
— HTTP-клиент для прода: таймауты, backoff с джиттером, идемпотентность
— Метрики Prometheus, экспортёры, правильные /livez и /readyz

31 урок, 29 задач с автопроверкой.

🎁 −30% по промокоду GODEVOPS до 3 октября

https://tglink.io/d40bd88310687d?erid=2W5zFHnEoay
😁6
rune — быстрый, ускоряемый графическим процессором, полнофункциональный IDE и терминальный мультиплексор, подходящий как для автоматического, так и для ручного программирования.

📌 Подробнее: https://github.com/unstablebuild/rune

MemOps🤨
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
MemOps 😃
Please open Telegram to view this post
VIEW IN TELEGRAM
😁11🫡4👍1
Grafana Alerting: Scale alert routing without scaling complexity using multiple notification policies

В Grafana Alerting появилась полезная штука для тех, у кого одним инстансом пользуются несколько команд.

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

В Grafana 13.2 в GA появились несколько независимых деревьев notification policies. Теперь можно завести отдельное дерево для команды или сервиса и явно направить в него алерты нужных правил. У каждого дерева — своё управление через UI, API или Terraform.

Самое полезное здесь — возможность раздельно менять и выкатывать настройки маршрутизации. Команда платежей правит свои маршруты, не затрагивая конфигурацию и состояние уведомлений платформенной команды.

Переносить всё разом тоже не требуется: существующие правила продолжат использовать политику по умолчанию, пока им не назначат другую.


📌 Подробнее: https://grafana.com/blog/grafana-alerting-scale-alert-routing-without-scaling-complexity-using-multiple-notification-policies/

MemOps🤨
Please open Telegram to view this post
VIEW IN TELEGRAM