Библиотека девопса | DevOps, SRE, Sysadmin
Все самое полезное для девопсера в одном канале. Наши курсы: https://clc.to/ZJ7Z1w По рекламе: @proglib_adv Для обратной связи: @proglibrary_feeedback_bot РКН: https://gosuslugi.ru/snet/6798b4e4509aba56522d1787
Показати більше📈 Аналітичний огляд Telegram-каналу Библиотека девопса | DevOps, SRE, Sysadmin
Канал Библиотека девопса | DevOps, SRE, Sysadmin (@devopsslib) у мовному сегменті Російська є активним учасником. На даний момент спільнота об'єднує 10 390 підписників, посідаючи 11 434 місце в категорії Технології та додатки та 61 255 місце у регіоні Росія.
📊 Показники аудиторії та динаміка
З моменту свого створення невідомо, проект продемонстрував стрімке зростання, зібравши аудиторію у 10 390 підписників.
За останніми даними від 28 серпня, 2026, канал демонструє стабільну активність. Хоча за останні 30 днів спостерігається зміна кількості учасників на -4, а за останні 24 години на -3, загальне охоплення залишається високим.
- Статус верифікації: Не верифікований
- Рівень залученості (ER): Середній показник залученості аудиторії становить 10.37%. Протягом перших 24 годин після публікації контент зазвичай збирає 4.23% реакцій від загальної кількості підписників.
- Охоплення публікацій: В середньому кожен допис отримує 1 077 переглядів. Протягом першої доби публікація в середньому набирає 439 переглядів.
- Реакції та взаємодія: Аудиторія активно підтримує контент: середня кількість реакцій на один пост – 1.
- Тематичні інтереси: Контент зосереджений навколо ключових тем, таких як devops'a, навигация, скрипт, docker, git.
📝 Опис та контентна політика
Автор описує ресурс як майданчик для висловлення суб'єктивної думки:
“Все самое полезное для девопсера в одном канале.
Наши курсы: https://clc.to/ZJ7Z1w
По рекламе: @proglib_adv
Для обратной связи: @proglibrary_feeedback_bot
РКН: https://gosuslugi.ru/snet/6798b4e4509aba56522d1787”
Завдяки високій частоті оновлень (останні дані отримано 29 серпня, 2026), канал підтримує актуальність та високий рівень охоплення публікацій. Аналітика показує, що аудиторія активно взаємодіє з контентом, що робить його важливою точкою впливу в категорії Технології та додатки.
pip install httpx
python deploy.py
Все настройки в секции CONFIG вверху файла: имя образа, порты, список тестов. Под конкретный проект меняется за минуту.
Это не замена Kubernetes или полноценному оркестратору. Но для одного сервера или небольшого проекта это рабочее решение без лишних зависимостей.
Чтобы писать такие скрипты нужно знать Python. Подтянуть базу и попасть на продвинутый уровень можно тут ➡️ Библиотека питониста
📍 Навигация: Вакансии • Задачи • Собесы
🐸 Библиотека devops'a
#арсенал_инженераkubectl port-forward пробрасывает порт сервиса прямо на вашу машину:
kubectl port-forward svc/<service-name> 5432:5432 --address 0.0.0.0
Флаг --address 0.0.0.0 здесь ключевой. Без него проброшенный порт доступен только с localhost — то есть только с вашей машины. С ним — со всех устройств в локальной сети. Полезно, когда нужно дать временный доступ коллеге или подключиться с другого девайса.
📍 Навигация: Вакансии • Задачи • Собесы
🐸 Библиотека devops'a
#root_promptwindow_drag_tolerance.
Добавлена командная палитра, через которую можно просматривать и запускать все действия, в том числе без привязки к горячим клавишам.
Из других изменений: shift+клик теперь расширяет текущее выделение вместо того, чтобы начинать новое;
двойной клик по вкладке переименовывает её;
в раскладках со сплитами появились новые действия для максимизации окна.
➡️ Источник
📍 Навигация: Вакансии • Задачи • Собесы
🐸 Библиотека devops'a
#пульс_индустрииRequestMirror. Реальный трафик продолжает идти через Ingress-NGINX, а его копия параллельно обрабатывается новым Gateway. Можно сравнивать ответы и выявлять расхождения без риска для продакшена.
Утилита ingress2gateway. Инструмент от сообщества Kubernetes конвертирует Ingress-ресурсы в HTTPRoute и показывает места, где автоматический перевод невозможен. Хорошая отправная точка, но не финальный результат.
Проверка приоритетов маршрутов. В Gateway API более специфичный путь имеет больший приоритет. В Ingress-NGINX логика другая. Если есть пересекающиеся маршруты, порядок их срабатывания после миграции может измениться незаметно.
Начните с одного маршрута, протестируйте его в тени, убедитесь в корректности — и только потом двигайтесь дальше. Чем больше у вас тестов, описывающих реальное поведение маршрутов, тем безопаснее переход.
📍 Навигация: Вакансии • Задачи • Собесы
🐸 Библиотека devops'a
#арсенал_инженераpodman auto-update. Она проверяет контейнеры с нужным лейблом и обновляет их, если в реестре появился новый образ.
Чтобы контейнер участвовал в автообновлениях, ему нужен лейбл io.containers.autoupdate. Значение registry сравнивает дайджесты образов с реестром, local проверяет локально собранные образы.
Лейбл задаётся при создании контейнера:
podman run -d --name my-service \
--label "io.containers.autoupdate=registry" \
docker.io/library/nginx:latest
В Quadlet-файле достаточно одной строки в секции [Container]:
AutoUpdate=registryСамо обновление запускается через systemd-таймер. Включается он одной командой:
systemctl --user enable --now podman-auto-update.timer
Пример конфига для обновлений каждый понедельник в 3:30 ночи:
[Timer] OnCalendar=Mon *-*-* 03:30:00 RandomizedDelaySec=30mПеред тем как писать выражение для
OnCalendar, стоит проверить его через systemd-analyze calendar — он сразу покажет следующее время срабатывания и не даст ошибиться с форматом.
Podman не угадывает проблемы заранее, он реагирует. Последовательность такая: тянет новый образ, перезапускает сервис, смотрит, запустился ли контейнер. Не запустился — возвращает предыдущий образ.
Для этого нужно три условия:
• контейнер управляется через systemd
• флаг --rollback включён
• systemd может понять, что контейнер сломан.
Самый надёжный способ это обеспечить — health check с sdnotify. Контейнер сам сигналит systemd о готовности. Если сигнал не пришёл за отведённое время, systemd фиксирует сбой и Podman откатывается.
📍 Навигация: Вакансии • Задачи • Собесы
🐸 Библиотека devops'a
#root_promptproduction вскрывает серьёзные проблемы: разработчикам приходится бороться с непредсказуемыми галлюцинациями моделей, нестабильными API и сложной интеграцией в существующую архитектуру.
Сегодня в 19:00 МСК в рамках нашего курса «Разработка AI-агентов» мы проведём открытый вебинар «ИИ-агенты в продакшене: от хайпа к деньгам». Спикер — Полина Полунина, руководитель AI-направления в Альфа-Банке. Будем говорить о нейросетях с позиции жёсткой инженерии.
Разберём три реальных кейса из сурового банковского энтерпрайза, напишем и запустим агента прямо в эфире, честно обсудим грабли, на которые наступает бизнес при интеграции LLM.
Тем, кто придёт на эфир, дадим промокод AGENTS на скидку 10 000 ₽ на любой тариф курса.
👉 Занять место на вебинареnginx.ingress.kubernetes.io/limit-rps настраивает rate limiting. В Gateway API аналог реализуется через политики, привязанные к маршруту или gateway. Но синтаксис зависит от реализации — Istio, Envoy Gateway и Kgateway делают это по-разному. Единого стандарта пока нет.
nginx.ingress.kubernetes.io/auth-url подключает внешнюю аутентификацию через subrequest. Аналог в Gateway API — внешние фильтры через ExtensionRef. Зависит от реализации и требует отдельной проверки.
nginx.ingress.kubernetes.io/configuration-snippet позволяла вставлять произвольные директивы в конфиг NGINX. В Gateway API такого механизма нет — это намеренное решение ради безопасности. Если сниппеты активно использовались, нужно найти другой способ реализовать ту же логику.
Составьте список всех аннотаций из текущих Ingress-ресурсов и проверьте их поддержку в выбранной реализации Gateway API. Лучше сделать это до выбора реализации, а не после.
📍 Навигация: Вакансии • Задачи • Собесы
🐸 Библиотека devops'a
#арсенал_инженераscrape_configs:
- job_name: 'uptime_scope'
scrape_interval: 30s
static_configs:
- targets:
- 'uptimescope-eu-west:8181'
- 'uptimescope-us-east:8181'
- 'uptimescope-asia:8181'
Это удобный способ получить географически распределённый мониторинг доступности — запускаете агентов в разных регионах, Prometheus собирает метрики со всех.
В комментариях к проекту уже подсветили несколько вещей. Во-первых, есть blackbox exporter от самой команды Prometheus — он решает похожую задачу и поддерживает динамическое обнаружение целей через сам Prometheus. Uptime Scope пока проще, но автор планирует добавить собственный dynamic discovery.
Во-вторых, по коду есть несколько резонных замечаний: путь к конфигу лучше передавать флагом, интервал проверок сделать настраиваемым, добавить graceful shutdown и структурированное логирование через slog. Всё это стандартные практики для Go-сервисов.
➡️ Репозиторий
📍 Навигация: Вакансии • Задачи • Собесы
🐸 Библиотека devops'a
#арсенал_инженераlisteners[].tls.mode: Terminate с указанием certificateRefs в ресурсе Gateway.
_Второй_ — SSL passthrough через аннотацию nginx.ingress.kubernetes.io/ssl-passthrough: "true". Контроллер проксирует зашифрованный поток напрямую к поду, не расшифровывая его. В Gateway API для этого существует отдельный тип ресурса — TLSRoute. И здесь важный момент: при passthrough контроллер не видит HTTP-заголовки. Маршрутизация по пути или заголовкам недоступна — только по SNI.
Если в текущей конфигурации для одного хоста одновременно используются passthrough и HTTP-маршрутизация — это признак того, что архитектуру придётся пересматривать, а не просто переписывать манифесты.
Зафиксируйте для каждого хоста, какой режим TLS используется. Это определит не только синтаксис Gateway API, но и выбор реализации — не все из них поддерживают TLSRoute в полном объёме.
📍 Навигация: Вакансии • Задачи • Собесы
🐸 Библиотека devops'a
#арсенал_инженераdocker logs
Запустите эту команду сразу, как только контейнер упал. Часто там будет сразу видно, что случилось. Если логов мало, добавьте флаг --tail 100 или посмотрите всё целиком через --all.
Рабочая директория и файлы
Очень частая причина. Если приложение ищет конфиг в /app/config, а в образе это лежит в /etc/app, всё сломается.
Проверьте в Dockerfile:
WORKDIR /app
COPY . .
Убедитесь, что все нужные файлы скопированы на место и структура директорий совпадает с тем, что ожидает приложение.
Переменные окружения
Приложение может требовать DATABASE_URL или API_KEY, и если их нет, оно не запустится. При запуске передавайте всё нужное:
docker run -e DATABASE_URL=postgres://... -e API_KEY=secret myapp:latest
Или через файл:
docker run --env-file .env myapp:latest
Проверьте документацию вашего приложения на список обязательных переменных.
Runtime и зависимости
Иногда базовый образ не содержит то, что нужно. Вы собрали Go приложение, положили бинарник в контейнер на основе alpine:latest, но забыли нужную библиотеку. Результат предсказуем.
FROM golang:1.21 as builder
WORKDIR /build
COPY . .
RUN go build -o app .
FROM alpine:latest
RUN apk add --no-cache ca-certificates
COPY --from=builder /build/app /usr/local/bin/
Убедитесь, что в образе есть всё необходимое. Используйте docker run -it myimage sh и проверьте вручную, работает ли приложение.
Порты и привилегии
Контейнер может падать из-за проблем с портами или правами. Если приложение пытается слушать на порту ниже 1024, но не запущено от root, это не сработает.
USER appuser
EXPOSE 8080
Убедитесь, что пользователь имеет нужные привилегии и приложение слушает на доступном порту.
Точка входа
Проверьте, правильная ли у вас ENTRYPOINT или CMD:
ENTRYPOINT ["node", "server.js"]
Если здесь опечатка или путь неверный, контейнер не запустится. Команда должна существовать и быть исполняемой.
Быстрая диагностика
Запустите контейнер интерактивно с sh вместо основного процесса:
docker run -it myapp:latest /bin/sh
Теперь вы внутри контейнера. Проверьте рабочую директорию, переменные окружения, наличие файлов. Попробуйте запустить приложение вручную и посмотрите, что сломается.
Что проверить в первую очередь
1. Логи контейнера через docker logs
2. Переменные окружения и их значения
3. Рабочая директория и наличие файлов
4. Запуск приложения вручную внутри контейнера через /bin/sh
5. Права доступа и привилегии пользователя
Если контейнер падает, проблема почти всегда в одном из этих пунктов. Диагностика займёт несколько минут, если знать, где искать.
📍 Навигация: Вакансии • Задачи • Собесы
🐸 Библиотека devops'a
#арсенал_инженера