Библиотека девопса | DevOps, SRE, Sysadmin
10.2K subscribers
1.56K photos
74 videos
4 files
2.8K links
Все самое полезное для девопсера в одном канале.

По рекламе: @proglib_adv

Учиться у нас: https://proglib.io/w/25874ec4

Для обратной связи: @proglibrary_feeedback_bot

РКН: https://gosuslugi.ru/snet/6798b4e4509aba565
Download Telegram
🍷 Wine: 32 бита на 64-битной системе

Вышла версия Wine 10.18. Основной фокус — доработка WoW64 режима, который позволяет запускать 32-битные Windows-приложения на 64-битной Linux-системе, имитируя нативный Windows WoW64 подсистему.

OpenGL теперь использует Vulkan для отображения в памяти в WoW64 режиме, добавлена поддержка SCSI pass-through, реализована API синхронизационных барьеров (нужна для некоторых игр, например The Obsessive Shadow), поддержка WinRT исключений. Плюс 30 багфиксов для приложений и игр.

➡️ Анонс

🐸 Библиотека devops'a

#пульс_индустрии
Please open Telegram to view this post
VIEW IN TELEGRAM
🤩 Апгрейднули cp

Когда Вы копируете большую папку командой cp -r, Вы не видите, что происходит. Процесс может занять часы, а Вы сидите в неведении — копируется ли вообще? Сколько осталось? Если что-то пойдёт не так, часто нужно начинать заново.

rsync — это утилита для копирования и синхронизации файлов. Главное преимущество: показывает прогресс, сохраняет все атрибуты файлов и умеет возобновлять прерванные копирования.

Базовая команда:
rsync -av --progress /path/to/src/ /path/to/dest/


-a — архивный режим. Cохраняет права, временные метки, символические ссылки.
-v — подробный вывод
--progress — показывает прогресс для каждого файла

Если Вы копируете по сети на удалённый сервер, добавьте флаг -z для сжатия:
rsync -avz --progress /local/path/ user@server:/remote/path/


Если копирование прервалось, просто запустите ту же команду ещё раз — rsync пропустит уже скопированные файлы и продолжит с того же места.

🐸 Библиотека devops'a

#root@prompt
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
👨‍💻 kubectl logs — это не логирование

kubectl logs показывает логи только из работающих или недавно упавших контейнеров. Логи лежат на диске ноды. Контейнер удалился, нода перезагрузилась, логи ротировались — всё пропало.

Что происходит

Под упал ночью. Утром вы приходите разбираться — логов нет. Или под был в namespace с агрессивной политикой очистки. Или кто-то удалил Deployment.
В production это значит, что вы не узнаете, почему сервис лёг в 3 часа ночи.

Как исправить

Поднимите централизованное логирование. Fluentd или Fluent Bit собирают логи со всех подов и отправляют в хранилище — Elasticsearch, Loki, S3.

Пример sidecar с Fluent Bit:
containers:
- name: app
image: your-app:1.0
- name: fluent-bit
image: fluent/fluent-bit:latest
volumeMounts:
- name: varlog
mountPath: /var/log


Если нужна корреляция логов с метриками — добавьте OpenTelemetry. Если нужны трейсы — Jaeger. Но начните с простого: соберите логи в одном месте.

🐸 Библиотека devops'a

#арсенал_инженера
Please open Telegram to view this post
VIEW IN TELEGRAM
4🥱1
🌐 Grafana Mimir 3.0

Вышла версия Grafana Mimir 3.0 — база данных временных рядов для метрик.

Главное изменение — разделение путей чтения и записи. Раньше один компонент отвечал за обе операции, поэтому тяжёлые запросы замедляли поступление новых данных. Теперь между ними встал Kafka как буфер, и каждый путь масштабируется независимо.

Вторая важная фишка — новый Query Engine для Mimir. Вместо загрузки всех данных в память, он обрабатывает выборку потоком и берёт только необходимые точки на каждом шаге.

➡️ Блог разработчиков

🐸 Библиотека devops'a

#пульс_индустрии
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
🔭 Долгоживущие флаги

Разработчик создаёт флаг для плавного выката новой фичи. Две недели максимум — думает он. Три месяца спустя флаг всё ещё живёт в кодовой базе. Теперь там две логики работы: старая и новая. Если что-то сломается, непонятно, что именно. Никто не удаляет флаг, потому что вдруг кто-то им пользуется.

Как это решить

Добавляем в каждый флаг срок жизни — дату, после которой он должен исчезнуть. Не данные флага, а сам код его обработки. И конвейер CI останавливает сборку, если срок прошёл.
new_feature_flag:
owner: web-platform
created: 2025-09-08
expires: 2025-11-01


После даты expires случается одно из двух:

• CI выдаёт предупреждение на третий день просрочки
• CI ломает сборку, если просрочка больше недели

Разработчик не может игнорировать проблему, потому что его коммиты просто не пройдут.

Проводите flag burn-down — 15-минутный митинг, где смотрите, какие флаги уже 100% включены в прод.

🐸 Библиотека devops'a

#арсенал_инженера
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍1
😊 Dev и prod — разные миры, но у вас одинаковые манифесты

Команды копируют манифесты из dev в prod, чтобы было проще. Но в деве 2 реплики и 128Mi памяти хватает. В продц нужно 20 реплик и 2Gi памяти.

Что происходит

В dev запустили 10 реплик для теста — кластер упал. В prod оставили 2 реплики — сервис не держит нагрузку. Или забыли поменять ConfigMap с URL базы — prod подключился к dev-базе.

Как исправить

Используйте kustomize. Создайте base с общими настройками, а окружения описывайте в overlays:
base/
deployment.yaml
service.yaml
overlays/
dev/
kustomization.yaml
prod/
kustomization.yaml


В overlay переопределяете replicas, resources, ConfigMap, Secrets. В dev можете вообще не использовать Secrets — подойдёт mock-конфиг. В prod — настоящий Secret из Sealed Secrets или внешнего Vault.

🐸 Библиотека devops'a

#арсенал_инженера
Please open Telegram to view this post
VIEW IN TELEGRAM
2👍1
⚡️ Devuan 6 Excalibur

Devuan выпустил шестую версию своего дистрибутива. Это операционная система для тех, кто предпочитает OpenRC или runit вместо systemd. Новая версия основана на Debian 13 Trixie и получит поддержку до конца жизненного цикла Debian — в течение нескольких лет.

Главное изменение — теперь обязателен merged-/usr, то есть директория /usr сливается с корневой директорией. Если обновляетесь со старых версий, нужно сначала установить пакет usrmerge в Daedalus, а потом уже переходить на Excalibur.

➡️ Анонс обновления

🐸 Библиотека devops'a

#пульс_индустрии
Please open Telegram to view this post
VIEW IN TELEGRAM
2👍1
⚙️ Окружение работает локально, но падает в CI

Знакомая ситуация: код запускается на ноутбуке, а в CI он сразу же ломается. Причина почти всегда в окружении — где-то не хватает переменной, токен истёк, или указан неправильный регион.

Перед тем как запустить джоб, убедитесь, что все критичные переменные на месте и имеют смысл:
# Проверяем, что все нужные переменные заданы
required=(DB_URL OAUTH_CLIENT_ID OAUTH_SECRET REGION)
for v in "${required[@]}"; do
[ -n "${!v}" ] || { echo "::error::$v missing"; exit 78; }
done


Добавьте это в начало вашего скрипта CI. Код проходит по списку переменных и падает, если какая-то не установлена.

🐸 Библиотека devops'a

#арсенал_инженера
Please open Telegram to view this post
VIEW IN TELEGRAM
3
Open Source в действии: Runtime Radar — первый в России инструмент для защиты контейнерных сред на базе eBPF и Tetragon.

📆 11 ноября, 14:00 (МСК), онлайн, бесплатно

Контейнеры ускорили DevOps, но открыли новые векторы атак.
Узнай, как Runtime Radar помогает выявлять угрозы в реальном времени, расследовать инциденты и защищать Kubernetes без сложной настройки.

Что вас ждёт:
демонстрация Runtime Radar в действии;
интеграция в SOC и мониторинг кластеров;
инсайды от команды PT о развитии проекта.

Open Source — код и документация доступны на GitHub.
Присоединяйтесь и сделайте свою контейнерную инфраструктуру прозрачной и защищенной.

👉🏻 Регистрация на вебинар