Библиотека девопса | DevOps, SRE, Sysadmin
Все самое полезное для девопсера в одном канале. Наши курсы: https://clc.to/ZJ7Z1w По рекламе: @proglib_adv Для обратной связи: @proglibrary_feeedback_bot РКН: https://gosuslugi.ru/snet/6798b4e4509aba56522d1787
Mostrar más📈 Análisis del canal de Telegram Библиотека девопса | DevOps, SRE, Sysadmin
El canal Библиотека девопса | DevOps, SRE, Sysadmin (@devopsslib) en el segmento lingüístico de Ruso es un actor destacado. Actualmente la comunidad reúne a 10 390 suscriptores, ocupando la posición 11 449 en la categoría Tecnologías y Aplicaciones y el puesto 61 235 en la región Rusia.
📊 Métricas de audiencia y dinámica
Desde su creación el невідомо, el proyecto ha mostrado un crecimiento acelerado, reuniendo a 10 390 suscriptores.
Según los últimos datos del 27 agosto, 2026, el canal mantiene una actividad estable. En los últimos 30 días la variación de miembros fue de 6, y en las últimas 24 horas de 0, conservando un alto alcance.
- Estado de verificación: No verificado
- Tasa de interacción (ER): El promedio de interacción de la audiencia es 10.22%. Durante las primeras 24 horas tras publicar, el contenido suele obtener 4.22% de reacciones respecto al total de suscriptores.
- Alcance de las publicaciones: Cada publicación recibe en promedio 1 062 visualizaciones. En el primer día suele acumular 439 visualizaciones.
- Reacciones e interacción: La audiencia responde de forma activa: el promedio de reacciones por publicación es 1.
- Intereses temáticos: El contenido se centra en temas clave como devops'a, навигация, скрипт, docker, git.
📝 Descripción y política de contenido
El autor describe el recurso como un espacio para expresar opiniones subjetivas:
“Все самое полезное для девопсера в одном канале.
Наши курсы: https://clc.to/ZJ7Z1w
По рекламе: @proglib_adv
Для обратной связи: @proglibrary_feeedback_bot
РКН: https://gosuslugi.ru/snet/6798b4e4509aba56522d1787”
Gracias a la alta frecuencia de actualizaciones (últimos datos recibidos el 28 agosto, 2026), el canal mantiene la vigencia y un amplio alcance. La analítica demuestra que la audiencia interactúa activamente con el contenido, lo que lo convierte en un punto de referencia dentro de la categoría Tecnologías y Aplicaciones.
apt update
Это не обновление пакетов — это обновление *списков* пакетов. APT обходит все репозитории из /etc/apt/sources.list и скачивает свежие индексы. Без этого шага upgrade работает по устаревшей карте.
2. Разрешение зависимостей
APT строит граф зависимостей: какие пакеты нужно обновить, какие версии совместимы, что тянет что за собой. Это NP-сложная задача в общем случае — и APT решает её эвристиками. Иногда неидеально.
3. Скачивание .deb-файлов
Пакеты загружаются в /var/cache/apt/archives/. Если соединение оборвётся, то ничего страшного, при следующем запуске докачает.
4. Проверка подписей
Каждый пакет проверяется по GPG-подписи. Это защита от подмены: если подпись не совпадает, то установка не пройдёт.
5. Распаковка и скрипты
.deb это ar-архив, внутри которого лежат control.tar и data.tar. APT распаковывает файлы, а потом запускает скрипты: preinst → установка → postinst. Именно здесь может что-то пойти не так.
6. apt upgrade vs apt full-upgrade
upgrade никогда не удаляет пакеты и не устанавливает новые зависимости, если это ломает что-то существующее. full-upgrade (он же dist-upgrade) — может. Он агрессивнее и умнее одновременно.
Что может пойти не так
- Конфликт версий библиотек
- Новый конфиг поверх старого (dpkg спросит — не игнорируйте)
- Обновление ядра без перезагрузки (старое ядро всё ещё работает до ребута)
- held packages — пакеты на удержании, которые не обновятся без явного разрешения
Полезные команды:
apt list --upgradable # что будет обновлено
apt-get -s upgrade # симуляция без изменений
/var/log/apt/history.log # история всех операций
Две строчки в терминале и десятки процессов под капотом. Теперь вы знаете, что именно происходит за этим скромным [Y/n].
📍 Навигация: Вакансии • Задачи • Собесы
🐸 Библиотека devops'a
#арсенал_инженераgo install github.com/kubernetes-sigs/ingress2gateway@v1.0.0
# или
brew install ingress2gateway
Запуск:
# из файлов
ingress2gateway print --input-file my-manifest.yaml --providers=ingress-nginx > gwapi.yaml
# из неймспейса кластера
ingress2gateway print --namespace my-api --providers=ingress-nginx > gwapi.yaml
# из всего кластера
ingress2gateway print --providers=ingress-nginx --all-namespaces > gwapi.yaml
regex-матчи в Ingress-NGINX по умолчанию case-insensitive, поэтому инструмент добавит (?i) в начало паттерна. Скорее всего, вы захотите убрать это вручную.
Вывод ingress2gateway v1.0 совместим с Gateway API v1.4. Инструмент следит за версиями Gateway API и обновляется вместе с ними.
➡️ Блог разработчиков
📍 Навигация: Вакансии • Задачи • Собесы
🐸 Библиотека devops'a
#арсенал_инженераdebootstrap stable /var/lib/machines/mydebian
Запускаем:
systemd-nspawn -D /var/lib/machines/mydebian
Запускаем как полноценный systemd-контейнер:
systemd-nspawn -D /var/lib/machines/mydebian --boot --network-veth
Нет хайпа, нет логотипа с китом, нет конференций. Просто инструмент, который работает, весит ноль байт сверх того что уже есть, и не требует отдельного сервиса в продакшне.
📍 Навигация: Вакансии • Задачи • Собесы
🐸 Библиотека devops'a
#арсенал_инженераfrozen для интерфейсов с несколькими родительскими интерфейсами.
Новый запрос wl_surface.get_release для per-commit коллбэков освобождения буфера
Функция wl_display_dispatch_pending_single() для диспетчеризации одного события
Wayland 1.25 продолжает закрывать белые пятна в документации и добавляет низкоуровневые API, которых не хватало.
➡️ Источник
📍 Навигация: Вакансии • Задачи • Собесы
🐸 Библиотека devops'a
#пульс_индустрииchmod -R 755 на проекте и git показывает 300 изменённых файлов. Код не трогали. Сейчас разберёмся почему так.
Git отслеживает не только содержимое, но и исполняемый бит файла. Рекурсивный chmod меняет права с 644 на 755 у всех файлов. Git видит смену режима 100644 → 100755 и считает их изменёнными.
Как починить:
git config core.fileMode false # для текущего репозитория
git config --global core.fileMode false # для всех реп на машине
Если права уже попали в staging:
git diff -p -R --no-color \
| grep -E "^(diff|(old|new) mode)" \
| git apply
С fileMode false git будет молча игнорировать и намеренные изменения исполняемого бита. Если в проекте есть деплой-скрипты, то стоит предупредить команду перед глобальным включением.
📍 Навигация: Вакансии • Задачи • Собесы
🐸 Библиотека devops'a
#root_prompttime-travel дебаг в LangGraph и уметь роутить запросы на лету. Всё это мы учли в обновлённом курсе по разработке AI-агентов, где акцент сделан именно на AgentOps и жёсткий контроль ресурсов.
Также в программе:
— оценка качества, трейсинг и защита от деградации пайплайнов;
— мультиагентные паттерны и интеграция по протоколу MCP;
— локальный деплой Open Source под 152-ФЗ (когда данные нельзя выносить наружу).
Кажется, это единственный адекватный roadmap по переходу от блокнотов к enterprise-решениям.
Прямо сейчас можно урвать курс с увесистой скидкой (49 000 ₽ DBaaS (Никита Жига выкатит внутренний чек-лист и покажет архитектуру);
— в чём реальная разница между FoundationDB и Cassandra 5, если смотреть на практику и продакшн, а не на красивые статьи;
— альтернативный путь масштабирования S3 (спойлер: пошли вразрез с привычными паттернами бигтеха, и это сработало).
Честно говоря, доклад про S3 звучит интригующе — всегда полезно посмотреть, как пересобирают архитектуру, когда коробочные решения уже не тянут нагрузку.
Регистрация на офлайн и онлайн тут 👈cluster-admin, общий jump-бокс или долгоживущий SSH-ключ.
У этого подхода два системных последствия: аудит теряет смысл, потому что непонятно, кто и что делал, а временные исключения тихо становятся постоянной нормой.
Три принципа
1. Минимальные права через RBAC
Вместо cluster-admin выдавать роль с конкретным набором действий, которые нужны дежурному.
Привязывается к группе, а не к конкретному пользователю:
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
name: oncall-debug
namespace: payments
rules:
- apiGroups: [""]
resources: ["pods", "events"]
verbs: ["get", "list", "watch"]
- apiGroups: [""]
resources: ["pods/log"]
verbs: ["get"]
- apiGroups: [""]
resources: ["pods/exec", "pods/portforward"]
verbs: ["create"]
- apiGroups: [""]
resources: ["pods/ephemeralcontainers"]
verbs: ["update"]
RBAC умеет ограничивать, может ли пользователь запустить pods/exec, но не может ограничить, какие команды он выполнит внутри сессии. Это задача для отдельного слоя поверх RBAC.
2. Краткосрочные учётные данные, привязанные к личности
Статичные kubeconfig с долгоживущими токенами — классический вектор компрометации. Цель: каждая сессия дебаггинга должна иметь учётные данные, которые истекают через 15-30 минут и однозначно идентифицируют конкретного человека.
Два способа реализации.
Вариант А — короткоживущие OIDC-токены. Большинство managed-кластеров это уже поддерживает. Достаточно настроить kubeconfig так, чтобы токен обновлялся автоматически, а не копировался вручную в конфиг:
users:
- name: oncall
user:
exec:
apiVersion: client.authentication.k8s.io/v1
command: cred-helper
args: ["--cluster=prod", "--ttl=30m"]
Вариант Б — короткоживущие X.509-сертификаты. Если API-сервер доверяет клиентскому CA, можно выдавать временные сертификаты через CertificateSigningRequest API. Приватный ключ остаётся на машине инженера, в идеале в аппаратном токене.
openssl genpkey -algorithm Ed25519 -out oncall.key
openssl req -new -key oncall.key -out oncall.csr \
-subj "/CN=user/O=oncall-payments"
После подписания CSR используем вместе с приватным ключом в kubectl. Через 30 минут сертификат протухает автоматически.
3. Just-in-time access gateway
Это точка входа, которую разворачивают в кластере по запросу — на время сессии. Работает по SSH-протоколу. Инженер запрашивает доступ, получает короткоживущий OpenSSH user certificate, подключается.
Gateway аутентифицирует пользователя, применяет политики и от его имени делает вызовы Kubernetes API. Сессия пишется в лог. После завершения гейт удаляется.
RBAC для такого сценария выглядит так:
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
name: jit-debug
namespace: payments
rules:
- apiGroups: [""]
resources: ["pods", "pods/log"]
verbs: ["get", "list", "watch"]
- apiGroups: [""]
resources: ["pods/exec"]
verbs: ["create"]
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
name: jit-debug
namespace: payments
subjects:
- kind: Group
name: jit:oncall:payments
apiGroup: rbac.authorization.k8s.io
roleRef:
kind: Role
name: jit-debug
apiGroup: rbac.authorization.k8s.io
Имя группы jit:oncall:payments берётся из короткоживущего сертификата или OIDC-токена — так в логах всегда видно, кто именно и к чему имел доступ.
Три принципа работают как слои: RBAC определяет, что разрешено; краткосрочные учётные данные убирают риск утечки; JIT gateway даёт полный аудит каждой сессии. Каждый из них можно внедрить отдельно, не переписывая всё сразу.
➡️ Блог разработчиков
📍 Навигация: Вакансии • Задачи • Собесы
🐸 Библиотека devops'a
#арсенал_инженераtime-travel дебаг в LangGraph и уметь роутить запросы на лету. Всё это мы учли в обновлённом курсе по разработке AI-агентов, где акцент сделан именно на AgentOps и жёсткий контроль ресурсов.
Также в программе:
— оценка качества, трейсинг и защита от деградации пайплайнов;
— мультиагентные паттерны и интеграция по протоколу MCP;
— локальный деплой Open Source под 152-ФЗ (когда данные нельзя выносить наружу).
Кажется, это единственный адекватный roadmap по переходу от блокнотов к enterprise-решениям.
Прямо сейчас можно урвать курс с увесистой скидкой (49 000 ₽ 