ar
Feedback
Библиотека девопса | DevOps, SRE, Sysadmin

Библиотека девопса | DevOps, SRE, Sysadmin

الذهاب إلى القناة على Telegram

Все самое полезное для девопсера в одном канале. По рекламе: @proglib_adv Учиться у нас: https://proglib.io/w/25874ec4 Для обратной связи: @proglibrary_feeedback_bot РКН: https://gosuslugi.ru/snet/6798b4e4509aba56522d1787

إظهار المزيد

📈 نظرة تحليلية على قناة تيليجرام Библиотека девопса | DevOps, SRE, Sysadmin

تُعد قناة Библиотека девопса | DevOps, SRE, Sysadmin (@devopsslib) في القطاع اللغوي الروسية لاعباً نشطاً. يضم المجتمع حالياً 10 429 مشتركاً، محتلاً المرتبة 11 851 في فئة التكنولوجيات والتطبيقات والمرتبة 62 903 في منطقة روسيا.

📊 مؤشرات الجمهور والحراك

منذ تأسيسه في невідомо، حقق المشروع نمواً سريعاً وجمع 10 429 مشتركاً.

بحسب آخر البيانات بتاريخ 11 يونيو, 2026، تحافظ القناة على نشاط مستقر. خلال آخر 30 يوماً تغيّر عدد الأعضاء بمقدار 3، وفي آخر 24 ساعة بمقدار 0، مع بقاء الوصول العام مرتفعاً.

  • حالة التحقق: غير موثّقة
  • معدل التفاعل (ER): يبلغ متوسط تفاعل الجمهور 8.62‎%. وخلال أول 24 ساعة من النشر يحصد المحتوى عادةً 5.58‎% من ردود الفعل نسبةً إلى إجمالي المشتركين.
  • وصول المنشورات: يحصل كل منشور على متوسط 899 مشاهدة. وخلال اليوم الأول يجمع عادةً 582 مشاهدة.
  • التفاعلات والاستجابة: يتفاعل الجمهور بانتظام؛ متوسط التفاعلات لكل منشور يبلغ 4.
  • الاهتمامات الموضوعية: يركز المحتوى على مواضيع رئيسية مثل devops'a, навигация, скрипт, docker, git.

📝 الوصف وسياسة المحتوى

يصف المؤلف القناة بأنها مساحة للتعبير عن الآراء الذاتية:
Все самое полезное для девопсера в одном канале. По рекламе: @proglib_adv Учиться у нас: https://proglib.io/w/25874ec4 Для обратной связи: @proglibrary_feeedback_bot РКН: https://gosuslugi.ru/snet/6798b4e4509aba56522d1787

بفضل وتيرة التحديث المرتفعة (أحدث البيانات بتاريخ 12 يونيو, 2026) تحافظ القناة على حداثتها ومستوى وصول مرتفع. وتُظهر التحليلات تفاعلاً نشطاً من الجمهور، ما يجعلها نقطة تأثير مهمة ضمن فئة التكنولوجيات والتطبيقات.

10 429
المشتركون
لا توجد بيانات24 ساعات
+107 أيام
+330 أيام
أرشيف المشاركات
📍 Навигация: Вакансии • Задачи • Собесы 🐸 Библиотека devops'a #пятничный_деплой
📍 Навигация: ВакансииЗадачиСобесы 🐸 Библиотека devops'a #пятничный_деплой

price_update: scheduled for Jan 20 Завтра мы деплоим повышение цен на все программы. Успейте сегодня нажать apply, пока стары
price_update: scheduled for Jan 20 Завтра мы деплоим повышение цен на все программы. Успейте сегодня нажать apply, пока старые условия не превратились в legacy. Настроить пайплайн саморазвития

HEALTHCHECK в Dockerfile чтобы контейнер не умирал молча Контейнер может продолжать работать, даже если внутри уже все сломалось. HEALTHCHECK позволяет Docker периодически проверять состояние и выставлять статус healthy или unhealthy. Самый простой вариант это дергать внутренний эндпоинт и падать по ненулевому коду, если ответ плохой. Docker поддерживает параметры interval, timeout и retries, чтобы настроить частоту и порог ошибок. Пример:
HEALTHCHECK --interval=30s --timeout=5s --retries=3 \
  CMD curl -f http://localhost:8080/health || exit 1
Команда может быть любой, главное чтобы успешный результат был exit 0, а неуспешный exit 1. 📍 Навигация: ВакансииЗадачиСобесы 🐸 Библиотека devops'a #root_prompt

😎 Поставьте свой голос за любимый пост
Anonymous voting

🗞 Первая рабочая неделя Собрали для вас новости и материалы прошедшей недели. — Трудоголики снова в моде — Свежий Wine — Ког
🗞 Первая рабочая неделя Собрали для вас новости и материалы прошедшей недели. — Трудоголики снова в модеСвежий Wine Когда ls уже не впечатляетLinux Mint 22.3 ZenaSSD за грамм стали дороже золота 📍 Навигация: ВакансииЗадачиСобесы 🐸 Библиотека devops'a #дайджест_недели

👨‍💻 COPY с chown и меньше боли с правами Если в контейнере приложение запускается не от root, то права на файлы часто ломают сборку или запуск. Вместо отдельного RUN chown можно сразу копировать файлы с нужным владельцем через COPY с флагом chown. Простой пример для приложения, которое запускается от appuser:
FROM alpine:3.20

RUN addgroup -S app && adduser -S -G app appuser

WORKDIR /app

COPY --chown=appuser:app . /app

USER appuser
CMD ["./app"]
Если в образе нет /etc/passwd или /etc/group, и указать имя пользователя или группы, сборка может упасть, поэтому для минимальных образов иногда проще использовать числовые UID и GID. 📍 Навигация: ВакансииЗадачиСобесы 🐸 Библиотека devops'a #root_prompt

👀 Наглядная иерархия процессов в Linux systemd-cgls — это утилита для отображения иерархии control groups в системах на базе systemd. Она показывает древовидную структуру всех процессов, сгруппированных по юнитам systemd. В отличие от классического ps или top, systemd-cgls показывает не просто список процессов, а их организационную структуру: какие процессы принадлежат каким службам, сессиям пользователей и слайсам системы. Просто запустите без аргументов:
systemd-cgls
Вы увидите дерево, разделённое на слайсы: • system.slice — системные службы • user.slice — пользовательские сессии • machine.slice — виртуальные машины и контейнеры Показать только конкретный юнит:
systemd-cgls /system.slice/nginx.service
Показать процессы определённого пользователя:
systemd-cgls /user.slice/user-1000.slice
📍 Навигация: ВакансииЗадачиСобесы 🐸 Библиотека devops'a #арсенал_инженера

🏷 Теги и лейблы в Terraform как привычка Ресурсы без тегов почти всегда превращаются в невидимые расходы и в проблемы с управлением. Если навести порядок в тегах прямо в Terraform модулях, инфраструктуру проще искать, считать и контролировать. Лучше начинать со схемы на уровне модуля. У каждого модуля должен быть входной map для tags или labels и этот map должен применяться ко всем ресурсам, которые это поддерживают. Идея простая. В модуле есть базовые поля вроде окружения и владельца, а сверху можно передать дополнительные теги и объединить их через мерж. Пример:
variable "environment" {
  type = string
}

variable "owner" {
  type = string
}

variable "tags" {
  type        = map(string)
  description = "Общие теги для всех ресурсов"
  default     = {}
}

locals {
  common_tags = merge(
    {
      env       = var.environment
      owner     = var.owner
      terraform = "true"
    },
    var.tags
  )
}

resource "proglib_bucket" "this" {
  bucket = var.owner

  tags = local.common_tags
}
Последний шаг это запрет на ресурсы без обязательных тегов. Это можно сделать через policy as code и проверки, чтобы не разгребать мусор уже в проде. 📍 Навигация: ВакансииЗадачиСобесы 🐸 Библиотека devops'a #root_prompt

«Этот манёвр будет стоить нам 51 год...» DevOps — это не только YAML-конфиги, но и умение автоматизировать процессы с помощью
«Этот манёвр будет стоить нам 51 год...» DevOps — это не только YAML-конфиги, но и умение автоматизировать процессы с помощью Python и понимание архитектуры систем. Рынок требует всё больше компетенций в ИИ. Успейте забрать обучение в Proglib Academy по ценам 2025 года: — Разработка ИИ-агентов — Математика для разработки AI-моделей — ML для старта в Data Science — Математика для Data Science — Специалист по ИИ — Алгоритмы и структуры данных — Программирование на Python — Основы IT для непрограммистов — Архитектуры и шаблоны проектирования Выбрать направление ⚠️ Стоимость изменится 19 января

😤 «Я ненавижу GitHub Actions всей душой» Разработчик написал эмоциональный текст о том, почему GitHub Actions — это боль. Переводим и разбираем аргументы. Главные претензии: 1. YAML-ад:
name: CI
on:
  push:
    branches: [main]
  pull_request:
    branches: [main]
jobs:
  test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - name: Setup Node
        uses: actions/setup-node@v3
        with:
          node-version: '18'
      - run: npm ci
      - run: npm test
Выглядит просто? Но здесь довольно просто докинуть багов: • Опечатка в node-version → silent fail • Забыл @v3 в actions → неожиданная версия • Отступы не там → непонятная ошибка 2. Дебаг — это пытка В других CI можно: • Подключиться по SSH к раннеру • Запустить локально (GitLab Runner) • Посмотреть полные логи В GitHub Actions: • Логи обрезаны • Нельзя зайти на раннер • Локальный запуск через костыли (act) • Цикл «коммит → push → wait → fail» занимает минуты 3. Секреты — русская рулетка:
- name: Deploy
  env:
    API_KEY: ${{ secrets.API_KEY }}
  run: ./deploy.sh
Проблемы: • Секрет не установлен? Пустая строка • Опечатка в имени? Пустая строка • Секрет в форке? Не работает • Дебажить? Удачи, secrets маскируются в логах 4. Кеширование — лотерея:
- name: Cache node modules
  uses: actions/cache@v3
  with:
    path: ~/.npm
    key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}
Проблемы: • Кеш иногда не восстанавливается • Иногда восстанавливается битый кеш • Лимит 10 GB → старые кеши удаляются 5. Версии actions — dependency hell:
- uses: actions/checkout@v3      # Какая v3? v3.0? v3.5?
- uses: actions/setup-node@v3    # Deprecated через месяц
- uses: docker/build-push-action@v4  # Ломает старые workflow
• Нет lock-файла для actions • Breaking changes в минорных версиях • @main — может сломаться завтра • @sha — нечитаемо и надо обновлять вручную 💬 Как у вас с GitHub Actions? Всё спокойно или тоже есть дровишки в огонь? 📍 Навигация: ВакансииЗадачиСобесы 🐸 Библиотека devops'a #пульс_индустрии

🏭 Трудоголики снова в моде Что происходит, когда рынок из «кандидатского» превращается в «работодательский»? Культ личной эф
🏭 Трудоголики снова в моде Что происходит, когда рынок из «кандидатского» превращается в «работодательский»? Культ личной эффективности вместо командной работы, up-or-out вместо саббатикала, и «работай или уходи» вместо «мы о тебе заботимся». 2026 год в IT — это конец иллюзии про дружескую атмосферу в офисе и начало честной истории про трудоголизм как норму выживания. ➡️ Узнать в этом кто виноват 📍 Навигация: ВакансииЗадачиСобесы 🐸 Библиотека devops'a

🤩 QR-коды чистым SQL в PostgreSQL Разработчик проснулся рано из-за кота и за час с помощью ИИ написал генератор QR-кодов одн
🤩 QR-коды чистым SQL в PostgreSQL Разработчик проснулся рано из-за кота и за час с помощью ИИ написал генератор QR-кодов одним SQL-запросом для Postgres. Никаких расширений или библиотек не нужно, просто выполним скрипт:
psql -qf pqr.sql -v payload='Hello, World!'
И на выходе нас ждёт QR-код. ➡️ Скрипт забираем здесь 📍 Навигация: ВакансииЗадачиСобесы 🐸 Библиотека devops'a #пульс_индустрии

🐳 Секреты из .env в Docker Мы уже говорили, что переменные из .env файлов при сборке Docker-образов запекаются в слои навсегда. Вот свежий кейс от команды, где ключи БД и токены оказались доступны всем. Что пошло не так В Dockerfile скопировали .env в контекст или использовали в RUN-командах. Результат: docker history показывает секреты, любой pull видит их в inspect. Фикс и лучшие практики Передавайте через --env-file только на runtime. Для build ARG без дефолтов и --build-arg снаружи. Multi-stage сборка сбрасывает промежуточные слои с данными. ➡️ Живой пример | Зеркало 📍 Навигация: ВакансииЗадачиСобесы 🐸 Библиотека devops'a #разбор_полётов

📝 touch — недооценённая команда Все знают touch как «создать пустой файл». Но это лишь верхушка айсберга. Что на самом деле делает touch: Обновляет временные метки файла (access time, modification time). Создание файла — побочный эффект, если файл не существует. Базовое использование:
# Создать пустой файл
touch app.log

# Обновить время изменения существующего файла
touch config.yaml

# Создать несколько файлов
touch file1.txt file2.txt file3.txt
Продвинутые флаги:
# Установить конкретное время
touch -t 202501150830.00 file.txt
# Формат: [[CC]YY]MMDDhhmm[.ss]

# Установить время как у другого файла
touch -r reference.txt target.txt

# Изменить только access time
touch -a file.txt

# Изменить только modification time  
touch -m file.txt

# Не создавать файл, если не существует
touch -c file.txt
Полезные комбинации:
# Создать структуру директорий с файлами
mkdir -p app/{config,logs,data}
touch app/config/.gitkeep app/logs/.gitkeep

# Найти файлы старше 30 дней и "омолодить"
find /tmp -type f -mtime +30 -exec touch {} \;

# Обновить timestamp только если файл существует
[ -f config.json ] && touch config.json

# Создать файл с правами в одну команду
(umask 077 && touch secret.key)
touch — это швейцарский нож для работы с временными метками и файловыми операциями. 📍 Навигация: ВакансииЗадачиСобесы 🐸 Библиотека devops'a #арсенал_инженера

🍷 Свежий Wine Wine 11.0 вышел после года разработки и тысяч правок. Основные новинки: ARM64EC архитектура, улучшенная поддер
🍷 Свежий Wine Wine 11.0 вышел после года разработки и тысяч правок. Основные новинки: ARM64EC архитектура, улучшенная поддержка HiDPI, Wayland по умолчанию и экспериментальный FFMPEG-бэкенд для мультимедиа. ➡️ Анонс 📍 Навигация: ВакансииЗадачиСобесы 🐸 Библиотека devops'a #пульс_индустрии

Roadmap: Оркестрация и деплой ИИ-агентов Для `DevOps`-инженера ИИ-агенты — это новые типы нагрузок, требующие специфического
Roadmap: Оркестрация и деплой ИИ-агентов Для `DevOps`-инженера ИИ-агенты — это новые типы нагрузок, требующие специфического мониторинга, безопасности и масштабирования. План освоения технологии: — понимание логики автономных агентов и их взаимодействия с API; — настройка окружений для работы мультиагентных систем; — управление состоянием (`State`) и памятью агентов в кластерах; — безопасность и контроль доступа при Tool Calling. Курс «Разработка ИИ-агентов» поможет разобраться в архитектуре ИИ-сервисов и научиться внедрять их в продакшн. Освоить ИИ-инструменты Акция «3 в 1» до 19 января: купите курс и получите ещё два в подарок.

🔍 systemd-analyze: что тормозит загрузку Linux systemd-analyze — встроенный инструмент для диагностики. Показывает какие сервисы жрут время при старте и где система простаивает. Быстрая диагностика Проверить общее время загрузки: Результат:
Startup finished in 3.2s (firmware) + 2.1s (loader) + 
1.8s (kernel) + 12.4s (userspace) = 19.5s
Сразу видно проблему — userspace съел 12 секунд из 19. Копаем дальше. Смотрим топ медленных сервисов:
systemd-analyze blame
8.234s postgresql.service
2.891s docker.service
1.456s NetworkManager-wait-online.service
0.234s nginx.service
PostgreSQL стартует 8 секунд. Может база огромная, либо что-то не так с конфигом. Сервисы запускаются не параллельно, а друг за другом по зависимостям:
systemd-analyze critical-chain
graphical.target @19.2s
└─multi-user.target @19.1s
  └─postgresql.service @10.8s +8.2s
    └─network.target @10.7s
      └─NetworkManager.service @8.2s +2.4s
Видно: postgresql ждёт сеть, сеть ждёт NetworkManager. И все остальные сервисы встали в очередь за базой. График покажет картину целиком:
systemd-analyze plot > boot.svg
firefox boot.svg
Получаете таймлайн с цветными полосками — когда каждый сервис стартовал, сколько времени занял, кто с кем параллелился. Узкие места видны сразу. Узнать время старта отдельного сервиса:
systemd-analyze blame | grep nginx
Или посмотреть его зависимости:
systemd-analyze critical-chain nginx.service
Больше не нужно гадать почему сервер грузится как чугунный мост. 📍 Навигация: ВакансииЗадачиСобесы 🐸 Библиотека devops'a #арсенал_инженера

🛠 Eza — когда ls уже не впечатляет Eza — это современная замена ls, написанная на Rust. Главное отличие: вывод сразу читабел
🛠 Eza — когда ls уже не впечатляет Eza — это современная замена ls, написанная на Rust. Главное отличие: вывод сразу читабельный, а не набор символов, который нужно расшифровывать. Что внутри Цветная подсветка по умолчанию. Папки, файлы, симлинки — каждый тип отличается визуально. Не нужно вглядываться в права доступа, чтобы понять, что перед вами. Иконки для файлов. Если терминал поддерживает Nerd Fonts, увидите значки рядом с именами. Мелочь, но код на Python сразу отличается от markdown-файла. Git-статусы в выводе. Команда eza --git покажет, какие файлы изменены, добавлены или проигнорированы. Древовидная структура. Флаг --tree развернёт директории в дерево. Глубину контролируете параметром --level. Детальная информация. Флаг --long выведет размеры, даты изменения, владельцев. Плюс человекочитаемые форматы: не «4096 байт», а «4.0 КБ». Eza доступна через пакетные менеджеры большинства систем:
# macOS
brew install eza

# Ubuntu/Debian
apt install eza

# Arch
pacman -S eza
После установки можете создать алиас в .bashrc или .zshrc:
alias ls='eza --icons'
alias ll='eza --long --git --icons'
alias tree='eza --tree --icons'
Eza не меняет рабочий процесс радикально, но убирает микрораздражители. А в долгосрочной перспективе это экономит больше времени, чем кажется. 📍 Навигация: ВакансииЗадачиСобесы 🐸 Библиотека devops'a #root_prompt

💻 Linux Mint 22.3 Zena Linux Mint 22.3 под кодовым именем Zena теперь доступен для скачивания. Это LTS-версия на базе Ubuntu
💻 Linux Mint 22.3 Zena Linux Mint 22.3 под кодовым именем Zena теперь доступен для скачивания. Это LTS-версия на базе Ubuntu 24.04.3 с поддержкой до апреля 2029 года. Свежее издание принесло Cinnamon 6.6 с переработанным меню приложений, боковой панелью для аватара, мест и фаворитов. Nemo обзавелся поиском по регулярным выражениям, паузой копирования файлов и шаблонами в контекстном меню. Экранная клавиатура переписана нативно, улучшена Wayland-поддержка, добавлены индикаторы уведомлений на панели. ➡️ Release Notes 📍 Навигация: ВакансииЗадачиСобесы 🐸 Библиотека devops'a #пульс_индустрии

📍 Навигация: Вакансии • Задачи • Собесы 🐸 Библиотека devops'a #пятничный_деплой
📍 Навигация: ВакансииЗадачиСобесы 🐸 Библиотека devops'a #пятничный_деплой