DevOps by REBRAIN
28.8K subscribers
544 photos
14 videos
4 files
1.13K links
Открытые практикумы по DevOps, Linux, Golang, Networks, Security

Мы на связи:
info@rebrainme.com
+7 (499) 116-34-68

https://rebrainme.com/

Зарегистрированы в РКН: https://knd.gov.ru/license?id=674db558d793bc0b0b8845ff&registryType=bloggersPermission
Download Telegram
☕️ IT-сводка нескучных новостей: Atlassian латает CVSS 9.3, NetScaler патчится второй раз за неделю, GitHub падал пять раз за три дня

🟢 Atlassian: CVE-2026-21589, CVSS 9.3. 5 октября Atlassian закрыла чтение файлов без аутентификации в Data Center-версиях Jira Software, Jira Service Management, Confluence, Bitbucket, Bamboo и Crowd, а также в Crucible и Fisheye. Нужно знать точный путь к файлу, но в корне веб-приложения лежат конфиги с учётками: watchTowr на следующий день показал, как достать crowd.properties из Jira. 7 октября VulnCheck внёс уязвимость в свой каталог KEV, отметив атаки на Bamboo. Облако уже закрыто, self-hosted обновляйте сами, а если не успеваете, уберите инстансы из интернета и поставьте правило на WAF из advisory.

🟢 NetScaler: второй патч за неделю, теперь CVSS 9.5. 3 октября Citrix закрыла zero-day CVE-2026-88779 в SAML (CVSS 8.7): через него уже роняли устройства, CISA добавила его в KEV. 8 октября вышел бюллетень по CVE-2026-107406, переполнению памяти с риском RCE, и уязвимы в том числе свежие сборки 14.1-73.41 и 13.1-64.28 в роли SAML IdP. Если в конфиге есть add authentication samlAction или samlIdPProfile, ставьте 14.1-73.46 или 13.1-64.29. Окно обслуживания для NetScaler, похоже, пора бронировать по подписке.

🟢 OpenSSH 10.6 переходит на постквантовые подписи. Релиз 6 октября добавил гибридный алгоритм ssh-mldsa44-ed25519, а sshd теперь по умолчанию предупреждает о key exchange без постквантовой защиты (WarnWeakCrypto). Из-за атаки на восстановление открытого текста в сжатии отключён словарь LZ77, а scp -R выдаёт предупреждение о депрекейте. Ключи экспериментальной версии с суффиксом @openssh.com придётся перевыпустить. Разработчики пишут, что получают много отчётов об уязвимостях, найденных с помощью ИИ, поэтому релизы будут выходить чаще.

🟢 GitHub падал пять раз за три дня. С 5 по 7 октября на статус-странице набралось пять инцидентов. Самый долгий случился 5 октября: Actions, hosted runners и Pages деградировали около четырёх часов из-за частичного сбоя сети между собственным дата-центром и облачными базами и хранилищами. 7 октября Git-операции, пулреквесты и Actions ложились дважды за день. Если релизный пайплайн целиком живёт в GitHub Actions, заранее решите, как выкатите хотфикс без него.

🟢 COSMIC больше не принимает код от LLM. 5 октября System76 запретили присылать в issues и пулреквесты проектов Pop!_OS и COSMIC контент, сгенерированный любой LLM: код, комментарии и описания. Jeremy Soller объяснил это нагрузкой на ревью: новички присылают много сгенерированных правок, которые заранее не обсуждались и редко принимаются. Похожие правила уже ввели Godot и KDE. Если вы контрибьютите в open source, перед PR загляните в CONTRIBUTING.md: политики по ИИ теперь у всех разные.

📝 А какие новости из мира инфраструктуры зацепили вас на этой неделе? Делитесь в комментариях: самые интересные возьмём в следующую сводку.

🔥 Поставьте огонёк, если сводка была полезной. По реакциям мы поймём, какие темы вам интереснее.
🔥26👍5❤2
Новый пакет: SRE: Production Reliability

Сервис тормозит, Load Average под 40, а процессор загружен наполовину. Чтобы найти причину, нужны и Linux на уровне ядра, и метрики, и логи, и нагрузочный тест, который воспроизведёт проблему. Мы собрали это в один трек из 8 программ.

Что внутри:
🟢Linux Performance & HighLoad Fundamentals и «Linux: анализ производительности и тюнинг»: планировщик EEVDF, PSI вместо Load Average, perf и bpftrace, память в cgroup v2, I/O на NVMe;
🟢Prometheus, Grafana и Kube Prometheus Stack: отказоустойчивый мониторинг и запросы на PromQL;
🟢Logs и Loki: пайплайны логов на Graylog, Fluentd и Loki, запросы на LogQL;
🟢 Load Testing & Benchmarking: сценарии нагрузки на k6 и JMeter и их запуск в CI/CD.

125 уроков, в среднем 210 часов. В финальном проекте вы нагружаете веб-приложение, находите и устраняете узкие места в Linux, а потом разворачиваете в Kubernetes мониторинг и логи с отказоустойчивым хранением и алертингом.

Для кого: уровень Senior. Нужны Linux на уровне Middle, базовые Docker и Kubernetes и понимание TCP/IP. Если вы только начинаете работать с Linux, трек будет тяжёлым, лучше начать с Linux Basics.

Модули по отдельности стоят 235 000 ₽, пакет — 164 000 ₽. До 20 октября включительно скидка 14 000 ₽, пакет за 150 000 ₽. В рассрочку 12500р в месяц. Если обучение оплачивает компания, выставим счёт на юрлицо.

↘️ Узнать подробности и записаться
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥6
Сегодня в 19:00: Wi-Fi из одной точки через CAPWAP

Когда точек доступа в офисе два десятка, каждая живёт со своим конфигом. Сменить SSID или пароль значит обойти их все. CAPWAP переносит управление на контроллер: точки сами находят его и забирают настройки.

Программа вебинара:
🟢 CAPWAP: основные теоретические сведения;
🟢 методы обнаружения контроллера точками доступа;
🟢 базовая настройка контроллера Huawei AC.

Ведёт Андрей Шабалин — тренер Cisco / Huawei, инструктор академии Eltex и Астра-Университета.

Участие бесплатное, начало в 19:00 по МСК, регистрация по кнопке под постом.

Сетевое оборудование и беспроводные сети по порядку разбираем в курсе Networks.
Поменяли что-то руками в кластере? Argo CD откатит
Kubernetes, серия 2 из 3

Ночью кто-то сделал kubectl edit, чтобы потушить пожар. Утром в Git одно, в кластере другое: следующий деплой молча перетрёт правку, или она проживёт полгода, и никто не вспомнит, откуда она взялась. Это называется дрифт.

В GitOps источник правды — Git. Argo CD сравнивает его с кластером и приводит кластер к Git.

🟢 Helm-чарт описывает приложение, values для прода лежат в репозитории.
🟢 Application говорит Argo CD, что и куда разворачивать:
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: shop
namespace: argocd
spec:
project: default
source:
repoURL: https://git.example.com/team/shop.git
targetRevision: main
path: charts/shop
destination:
server: https://kubernetes.default.svc
namespace: shop
syncPolicy:
automated:
selfHeal: true
prune: true

🟢 selfHeal возвращает ресурс к состоянию из Git, если его поменяли руками. prune удаляет из кластера то, что убрали из Git.

Проверить можно за минуту:
kubectl -n shop scale deploy shop --replicas=5
argocd app get shop # OutOfSync, через несколько секунд снова Synced
kubectl -n shop get deploy shop # реплик снова столько, сколько в Git

Новый коммит Argo CD по умолчанию подтягивает из Git в течение трёх минут, а ручную правку selfHeal откатывает почти сразу.

Оговорка: во время инцидента selfHeal откатит и ваш хотфикс. Хотфикс делайте коммитом в Git или на время отключайте автосинк у приложения.

Application, политики синхронизации, App of Apps, ApplicationSets и секреты в GitOps разбираем в курсе Argo CD, чарты — в курсе Helm. Первые задания обоих курсов открыты бесплатно.

В следующей серии: production-контур целиком, от git push до алерта.
👍9🔥1
Сегодня в 20:00: GlusterFS, распределённая файловая система

Один файловый сервер — одна точка отказа, и отказывает она обычно в пятницу вечером. На открытом практикуме Андрей Буранов покажет, как собрать хранилище из нескольких серверов на GlusterFS и чем этот подход отличается от DRBD.

Программа:
🟢 чем GlusterFS отличается от DRBD
🟢 типы томов GlusterFS
🟢 настраиваем GlusterFS

Ведёт Андрей Буранов — системный администратор в департаменте VK Play, 10+ лет работает с Linux, 8+ лет преподаёт и входит в топ-3 преподавателей образовательных порталов.

Участие бесплатное, начало в 20:00 по МСК.
↘️ Зарегистрироваться

Распределённое хранение и виртуализацию на практике разбираем в курсе Proxmox.
🔥9❤1👍1
PostgreSQL тормозит, а CPU в норме: ищем медленные запросы

Жалоба «база тормозит», а на графиках CPU 30% и памяти хватает. Чаще всего виноват не сервер, а пара запросов, которые читают таблицу целиком. Найти их можно за несколько минут.

🟢 Включите статистику запросов. Расширение pg_stat_statements копит время выполнения по каждому запросу. В postgresql.conf:
shared_preload_libraries = 'pg_stat_statements'
После перезапуска в нужной базе:
CREATE EXTENSION pg_stat_statements;
🟢 Найдите самые дорогие запросы. Сортируйте по суммарному времени, а не по самому долгому запросу: короткий запрос, вызванный миллион раз, нагружает базу сильнее.
SELECT calls,
round(total_exec_time) AS total_ms,
round(mean_exec_time, 1) AS avg_ms,
left(query, 80) AS query
FROM pg_stat_statements
ORDER BY total_exec_time DESC
LIMIT 5;

🟢 Посмотрите план запроса:
EXPLAIN (ANALYZE, BUFFERS)
SELECT * FROM orders WHERE customer_id = 42;

Seq Scan on orders и тысячи страниц в Buffers: shared read значат, что таблица читается целиком.
🟢 Добавьте индекс и проверьте план ещё раз:
CREATE INDEX CONCURRENTLY idx_orders_customer ON orders (customer_id);
CONCURRENTLY строит индекс без блокировки записи в таблицу, на проде это важно. В плане должен появиться Index Scan.

Сегодня в 19:00 Николай Лавлинский покажет PMM: он собирает такую статистику по PostgreSQL и MySQL в дашборды, чтобы не ходить в каждую базу с SQL. Участие бесплатное, регистрация по кнопке под постом.

EXPLAIN, индексы, VACUUM, репликацию и мониторинг разбираем в курсе PostgreSQL, отказоустойчивый кластер — в курсе Patroni.
👍7
🗓️ Расписание вебинаров на сегодня

⏰ 19:00 МСК - Мониторинг MySQL и PostgreSQL c PMM
🔗 Регистрация и программа

О вебинаре напомним за 5 минут до начала на этом канале.
Также вы сможете зайти через личный кабинет.

🔥 Задать вопросы и обсудить детали можно в нашем чате
❤1🔥1
Новый курс: Highload: Monitoring & Observability

Алерт пришёл, дашборд красный, а чтобы найти запрос, который тормозит, приходится открывать три системы и сверять время на глаз. На курсе вы связываете метрики, логи и трассы через trace_id и exemplars, чтобы от алерта до первопричины было несколько переходов.

Что внутри:
🟢 Prometheus 3.x, Alertmanager и Grafana с дашбордами как кодом;
🟢 OpenTelemetry Collector, Jaeger и tail sampling: 100% трасс с ошибками и 10% остальных;
🟢 Fluent Bit, кластер Elasticsearch из трёх узлов с ILM и Graylog для сравнения;
🟢 Zabbix с LLD, Proxy и TimescaleDB.

18 уроков и 5 тренажёров с инцидентами, в среднем 42 часа на прохождение курса. В финале собираете контур наблюдаемости для микросервисного приложения, который запускается из репозитория одной командой, и разбираете подброшенный инцидент от алерта до первопричины в отчёте rca.md.

Для кого: администраторы, которые растут в DevOps или SRE, и DevOps-инженеры.

Что нужно для прохождения: знания Linux в консоли, Docker Compose, основы сетей и первый опыт с Kubernetes: kubectl, Deployment, Service.

До 20 октября включительно скидка 5 000 ₽.


↘️ на практикум

↘️ на практикум+тренажеры
👍3
Обновили курс Kubernetes Admin

Собрали всю обратную свзяь от вас и приняли решение выпустить новую версию курса. В новой версии задания на актуальных версиях: обновление кластера с 1.34 до 1.35 через kubeadm, Kubespray 2.29, etcd 3.5.26, cert-manager 1.19.

Курс можно купить вместе с записью интенсива от василия Озерова: 12 занятий от Kubernetes the hard way и TLS до CNI вручную, Flannel, Calico и Cilium, MetalLB и CSI.

32 урока в двух модулях, в среднем 82 часа. Финальный проект: production-ready HA-кластер из трёх мастер-нод с внешним балансировщиком, мониторингом, логированием, автоматическим выпуском сертификатов и квотами для команд разработки.

Если вы учитесь на прошлой версии, то сможете бесплатно обновить версию до новой через нашу поддержку. Для этого пишите на почту info@rebrainme.com.

Для кого: DevOps-инженеры, которые переходят с managed-кластеров на self-hosted, и системные администраторы. Нужны уверенный Linux (bash, systemd, сеть), основы контейнеров и базовый Ansible. Если Kubernetes для вас новый, начните с Kubernetes Base.

До 20 октября включительно скидка 7 000 ₽. Первые задания можно пройти бесплатно в демо.

↘️ Подробнее о курсе
👍7🔥4❤3
Обновили курс Redis: теперь на Redis 8 и с тренажёрами

В Redis 8 в ядро вошли Query Engine, JSON и векторный поиск, а наш курс был собран под прошлые версии. Мы пересобрали его целиком.

Что внутри новой версии:
🟢 протокол RESP3 и сборка Redis 8 из исходников;
🟢 паттерны кэширования, распределённые блокировки на SET NX EX и Redlock, Client-Side Caching;
🟢 Streams с Consumer Groups и XAUTOCLAIM для упавших воркеров;
🟢 Query Engine, JSON и Vector Sets: гибридный поиск в одном запросе;
🟢 RDB и Multi-Part AOF, политики вытеснения, Sentinel, Redis Cluster с TLS и ACL;
🟢 диагностика: SLOWLOG, LATENCY HISTOGRAM, --bigkeys и --hotkeys.

15 уроков и 5 тренажёров с инцидентами, в среднем 36 часов. Финальный проект: отказоустойчивая система обработки файлов на Python или Go поверх Redis Cluster с TLS и ACL.

Скрипты на Python или Go в курсе остались: на них проверяются блокировки, очереди и финальный проект. Если вы совсем не пишете код, будет тяжело.

Для кого: DevOps, SRE и администраторы, которые отвечают за Redis в проде, и бэкенд-разработчики.

Если вы учитесь на прошлой версии, то сможете бесплатно обновить версию до новой через нашу поддержку. Для этого пишите на почту info@rebrainme.com.

До 20 октября включительно скидка. Первые уроки можно пройти бесплатно в демо, подробнее о курсе на странице.
👍9❤4
Как оплатить обучение за счёт компании: шаблон письма руководителю

«Курс зашёл, кубер развёрнут, работодатель счастлив» — так студент REBRAIN описал итог курса. Задача у него была рабочая: за два месяца перевести микросервисы в Kubernetes от вендора в частное облако.

Такое обучение часто оплачивает компания. Руководитель быстрее согласует курс, когда в запросе есть задача команды, результат после курса и стоимость. Вот шаблон, который можно отправить сегодня:
Тема: обучение по курсу «[название]» за счёт компании

[Имя], добрый день.

В ближайшие [N] месяцев команде нужно [задача: перевести сервисы в Kubernetes / настроить мониторинг / собрать CI/CD].
Предлагаю пройти практикум REBRAIN «[название]»: задания на реальных стендах, без отрыва от работы.
После курса смогу [что сделаю сам] без привлечения подрядчика.
Стоимость — [сумма] ₽, REBRAIN работает с юрлицами по договору и счёту.

Готов обсудить, когда вам удобно.


Для оформления даём договор, счёт на юрлицо и закрывающие документы.

В конце года многие компании распределяют остаток бюджета на обучение, поэтому письмо лучше отправить сейчас. Счёт и договор подготовит менеджер — кнопка под постом.
👍6
🟡 Анонс бесплатных вебинаров на следующую неделю

—————————

1️⃣ Networks: Безопасное удалённое управление средствами протокола SSH на маршрутизаторах Eltex

📅 20 октября 2026, вторник, 19:00 по МСК

Программа вебинара:
🟢SSH: основные теоретические сведения;
🟢Базовая настройка SSH-сервера на маршрутизаторах ESR;
🟢Настройка аутентификации пользователей по паролю и открытому ключу.

Кто ведёт?
Андрей Шабалин — тренер Cisco / Huawei, инструктор академии Eltex и Астра-Университета

↘️ Регистрация

—————————

2️⃣ Linux: Восстановление данных

📅 21 октября 2026, среда, 20:00 по МСК

Программа вебинара:
🟢Таблицы разделов;
🟢Восстановление LVM;
🟢Восстановление суперблока ФС.

Кто ведёт?
Андрей Буранов — специалист по UNIX-системам в VK, 13+ лет работает с Linux, 11+ лет преподаёт

↘️ Регистрация

—————————

3️⃣ DevOps: Загруженность сервера 100% по CPU. Кто виноват и что делать?

📅 22 октября 2026, четверг, 20:00 по МСК

Программа вебинара:
🟢Первые команды: top (заглянуть в P), htop, atop — какой инструмент когда;
🟢Ищем процесс-виновник: pidstat, strace -p;
🟢Анализ: это утечка памяти, бесконечный цикл или DDoS?

Кто ведёт?
Илья Сачков — DevOps-инженер в «Аптеки — Плюс», автор и ментор курса «Linux Basics» в REBRAIN

↘️ Регистрация

—————————

Не успеваете вживую? Записи эфиров есть в подписке REBRAIN.
👍6❤1👏1
Диск забит на 100%, а du показывает половину

df -h говорит, что корень заполнен, du насчитывает на 40 ГБ меньше, логи уже почистили, а места не прибавилось. Типичная причина: файл удалили, но процесс всё ещё держит его открытым. Пока дескриптор открыт, место на диске не освобождается.

🟢 Сравните цифры:
df -h /
sudo du -xsh / 2>/dev/null

Если df показывает заметно больше, чем du, ищите удалённые, но открытые файлы.
🟢 Найдите, кто их держит:
sudo lsof -nP +L1 | grep deleted
В выводе будут процесс, PID, номер дескриптора (FD) и размер. Чаще всего это лог, который удалили через rm вместо ротации.
🟢 Освободите место. Самый чистый путь — перезапустить сервис или попросить его переоткрыть логи:
sudo systemctl restart nginx
Если перезапускать сейчас нельзя, обнулите файл через дескриптор процесса. PID и FD берите из вывода lsof, здесь для примера 1234 и 7:
sudo truncate -s 0 /proc/1234/fd/7
🟢 Чтобы не повторилось, удаляйте логи через logrotate, а не rm. Для сервисов, которые не умеют переоткрывать файл, в конфиге ротации есть опция copytruncate.

Если df и du сходятся, а места всё равно нет, проверьте inode: df -i. Миллион мелких файлов сессий или кеша съедает их раньше, чем гигабайты.

Процессы, файловые дескрипторы, диски и systemd разбираем на практике в курсе Linux Basics. Первые задания открыты бесплатно — по кнопке под постом.
👍19🔥6❤1