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

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

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

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

РКН: https://gosuslugi.ru/snet/6798b4e4509aba565
Download Telegram
🔄 Что нового в мире виртуализации

VirtualBox обновился до версии 7.2.4. Давайте разберём, что интересного принёс этот релиз.

• Исправлен краш VirtualBox Manager при пробуждении хоста из режима сна.

• Исправлена проблема с множественными правилами проброса портов в NAT.

• Добавлена начальная поддержка ядра Linux 6.18.

• Дополнительные исправления для Guest Additions в RHEL 9.6 и 9.7.

• Исправлены проблемы с установкой Guest Additions в Windows XP SP2.

Иногда отсутствие сюрпризов — лучшая новость.

➡️ Release notes

Чтобы делать обновления без сюрпризов нужно быть продвинутым айтишником. Именно такие получаются после наших курсов. Но нужно успеть до 31 октября, ведь тогда закончатся скидки!

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

#пульс_индустрии
Please open Telegram to view this post
VIEW IN TELEGRAM
🧹 Kubernetes housekeeping

Kubernetes по умолчанию не удаляет завершённые поды автоматически. И это имеет смысл — логи можно посмотреть, причину падения изучить, отладить проблему.

Но когда таких подов сотни или тысячи, кластер превращается в свалку:
$ kubectl get pods -A | grep -E 'Completed|Error|Evicted' | wc -l
847


Как почистить кластер

Удалить все Completed поды:
kubectl get pods -A --field-selector=status.phase==Succeeded \
-o json | jq -r '.items[] | "\(.metadata.namespace) \(.metadata.name)"' \
| xargs -n2 bash -c 'kubectl delete pod -n $0 $1'


Или проще, если у вас kubectl 1.24+:
kubectl delete pods --all-namespaces \
--field-selector=status.phase==Succeeded


Удалить все Failed поды:
kubectl delete pods --all-namespaces \
--field-selector=status.phase==Failed


Удалить Evicted поды
Тут хитрее, потому что Evicted — это не phase, а reason:
kubectl get pods -A -o json | \
jq -r '.items[] | select(.status.reason=="Evicted") | "\(.metadata.namespace) \(.metadata.name)"' | \
xargs -n2 bash -c 'kubectl delete pod -n $0 $1'


Удалить всё разом:
kubectl get pods -A -o json | \
jq -r '.items[] |
select(.status.phase=="Succeeded" or .status.phase=="Failed" or .status.reason=="Evicted") |
"\(.metadata.namespace) \(.metadata.name)"' | \
xargs -n2 bash -c 'kubectl delete pod -n $0 $1 --ignore-not-found=true'


Чистый кластер — счастливый кластер.

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

#арсенал_инженера
Please open Telegram to view this post
VIEW IN TELEGRAM
6👍1
💥 Октябрь — месяц апгрейда!

До конца этого месяца действует скидка 40% на все курсы Proglib Academy (кроме AI-агентов, ML для старта и математики).

Под акцию попал и наш хит — курс «Алгоритмы и структуры данных».

👨‍💻 Он подойдёт джунам, мидлам и всем, кто хочет писать код осознанно, а не наугад.

👨‍🏫 Преподаватели — инженеры из Яндекса и ВШЭ.

🎓 Сертификат по итогам обучения — в портфолио.

47 видеоуроков и 150 практических задач;
поддержка преподавателей и чат;
доступ к материалам на 12 месяцев.

Полная программа курса тут 👈

👉 Остальные курсы
🧑‍💻 Топ-вакансий для девопсов за неделю

Инженер по инфраструктуре — от 440 000 ₽ с удалёнкой.

Network Engineer — до 3 500 € и удалёнка.

Senior DevOps-инженер с удалёнкой от 400 000 ₽.

➡️ Еще больше топовых вакансий — в нашем канале Devops Jobs

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

#вакансия_недели
Please open Telegram to view this post
VIEW IN TELEGRAM
🐋 Отладка Docker-сборок в Visual Studio Code

Теперь вы можете отлаживать Dockerfile прямо в VS Code, как обычный код.

Что умеет новый отладчик

• Ставьте брейкпоинты на любую инструкцию RUN в Dockerfile и останавливайте сборку именно в этом месте.

• Смотрите все переменные окружения, аргументы сборки, рабочую директорию и другие параметры прямо в панели Variables.

• Исследуйте структуру файлов внутри образа на любом этапе сборки. Видите, что скопировалось, что нет, и даже можете просматривать содержимое текстовых файлов.

• Когда сборка приостановлена на брейкпоинте, введите команду exec в Debug Console — и вы получите живой shell внутри образа, который сейчас собирается.

➡️ Попробовать фишки

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

#арсенал_инженера
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥10
📎 Запустил и забыл

screen — это программа, которая не даёт вашим командам на сервере прерваться, если интернет пропал или вы закрыли терминал.

Как пользоваться

Создать новую сессию:
screen -S my-task


Теперь вы внутри screen. Запускайте команды как обычно.

Выйти из сессии (она продолжит работать):
Нажмите Ctrl+A, отпустите, потом нажмите D

Посмотреть все запущенные сессии:
screen -ls


Вернуться в сессию:
screen -r my-task


Открыть ещё одну вкладку внутри screen:
Ctrl+A, потом C

Переключаться между вкладками:

Ctrl+A, потом N — следующая вкладка
Ctrl+A, потом P — предыдущая вкладка
Ctrl+A, потом цифра (0, 1, 2...) — конкретная вкладка

Убить конкретную сессию:
screen -X -S 12345 quit


Лайфхак: всегда давайте сессиям понятные имена (-S backup, -S deploy), а не оставляйте автоматические номера — так проще найти нужную.

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

#арсенал_инженера
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥71
🚨 Критический баг в Ubuntu 25.10

В Ubuntu 25.10 обнаружен баг в команде date из пакета rust-coreutils, который блокирует автоматическую проверку доступных обновлений системы.

Как проверить, затронута ли ваша система:
dpkg -l rust-coreutils


Затронуты системы с версией: <= 0.2.2-0ubuntu2
Не затронуты системы с версией: >= 0.2.2-0ubuntu2.1

Быстрый фикс:
sudo apt install --update rust-coreutils


Если вы регулярно обновляете систему вручную через apt, скорее всего вы уже не затронуты.

➡️ Источник

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

#пульс_индустрии
Please open Telegram to view this post
VIEW IN TELEGRAM
😁1🙏1
🧠 Готовишься к собесам, а ноутбук еле тянет IDE?

Самое время прокачать скиллы и апгрейднуть железо!

Proglib Academy разыгрывает MacBook Pro 14 (M3 Pro, 36 GB, 1 TB SSD) 💻

Купи любой наш курс до 15 ноября → пройди 2 недели обучения → напиши куратору #розыгрыш. Всё, ты в игре!

📚 Среди курсов:

▫️ Алгоритмы и структуры данных — топ для подготовки к собесам в Яндекс и FAANG.

▫️ Архитектуры и шаблоны проектирования — чтобы думать как senior.

▫️ Python, математика для DS, основы IT и другие направления.

👉 Принять участие
1
📎 Быстрая диагностика через journalctl

На проде что-то сломалось. Первое что нужно — посмотреть свежие ошибки.

journalctl --since "1 hour ago" | grep -i error


Вытаскивает все записи с ошибками за нужный промежуток. Можно изменить период: «10 minutes ago», «2 hours ago», «today».

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

#root@prompt
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7
😭 NGINX Unit больше не разрабатывается

F5 Networks приняли решение прекратить активную разработку NGINX Unit. Репозиторий на GitHub переведен в архив — это означает конец поддержки проекта, который многие считали перспективным универсальным app-сервером.

Для тех, кто не знаком с проектом — Unit был амбициозной попыткой создать универсальный сервер приложений

Если вы используете Unit в проде:

• Провести аудит безопасности текущей версии

• Начать планирование миграции (3-6 месяцев)

• Искать community fork (если появится)

• Готовить план миграции на альтернативы

Альтернативы NGINX Unit по языкам

— Python:

• Gunicorn — проверенный WSGI сервер
• Uvicorn — современный ASGI (для FastAPI, Django async)
• uWSGI — мощный и гибкий (но сложный)

— PHP:

• PHP-FPM — стандарт индустрии
• FrankenPHP — новый, с поддержкой worker mode

Node.js:

• PM2 — production process manager
• Node.js напрямую за NGINX (для простых случаев)

Ruby:

• Puma — современный и быстрый
• Unicorn — стабильный классический выбор

Java:

• Tomcat / Jetty — традиционные app servers
• Spring Boot embedded server

➡️ Последний раз посмотреть в репозиторий

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

#пульс_индустрии
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍1🙏1
🔒 Как хранить секреты в Terraform

Правило №1: Никогда не хардкодьте секреты. Инфраструктурный код — это тоже код, и к нему применяются те же правила безопасности.

Плохой пример:
resource "aws_db_instance" "database" {
password = "notasecurepassword"
}


Правильный подход:

1. Объявляем переменную в variables.tf:
variable "db_password" {
type = string
}


2. Создаем secrets.tfvars:
db_password = "insecurepassword"


3. Используем переменную:
resource "aws_db_instance" "database" {
password = var.db_password
}


Не забудьте добавить secrets.tfvars в .gitignore

Но это только первый шаг. Хранить секреты в файлах — всё ещё не лучшее решение.

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

#root@prompt
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
Media is too big
VIEW IN TELEGRAM
Идём на Avito Infra DrinkUp 12 ноября, без вариантов ☄️

Коллеги из Авито зовут на встречу по инфраструктуре. Обещают брейншторм об инструментах IaC, разработке в SRE, базах данных, Kubernetes и многом другом. Но есть подвох: никаких записей и трансляций — только офлайн, только хард-кор.

Как будто итог один — пропускать нельзя. Советуем уже сейчас кликать по ссылке и регистрироваться с коллегами и друзьями, пока не закончились места.
Please open Telegram to view this post
VIEW IN TELEGRAM
1
🧑‍💻 Самая длинная рабочая неделя 2025 года

Эта неделя — 6 рабочих дней подряд. Для большинства это событие, для девопса — обычный вторник.

Для нас разница не особо заметна. On-call работает все семь дней, инциденты не смотрят на календарь, мониторинг не знает про выходные, а деплои случаются когда угодно.

💬 А как вы настроились на эту неделю? У вас будет две пятницы или два понедельника?

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

#dev_null
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥4
🔄 Bottles 51.25: исправления и поддержка st terminal

Вышла новая версия Bottles — менеджера для запуска Windows-приложений на Linux через Wine. Релиз 51.25 исправляет ошибки, которые мешали нормальной работе программы.

Исправили вылет при обновлении списка зависимостей, проблему с некорректным вызовом метода при изменении даты обновления, и баг, из-за которого папки не удалялись полностью.

Добавили поддержку терминала st. Теперь bottles корректно загружает конфиг из файла bottle.yml, если он существует. Ещё один фикс касается запуска CMD через xfce4-terminal.

➡️ Релиз на GitHub

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

#пульс_индустрии
Please open Telegram to view this post
VIEW IN TELEGRAM
3👍1
📊 Структурированное логирование ошибок: практическое руководство

Неинформативные логи типа «Error!» затрудняют отладку. В проде поиск проблемы занимает часы.

Решение: 6-значная система кодирования
01 01 03
│ │ └─ Тип ошибки
│ └──── Сервис
└─────── Модуль


Первые 2 цифры — модуль:

01 — User
02 — Shipping
03 — Order
04 — Payment
05 — Notification

Средние 2 цифры — сервис:

01 — Database
02 — External API
03 — Payment Gateway
04 — Cache
05 — Queue

Последние 2 цифры — тип:

01 — Configuration
02 — Authentication
03 — Timeout
04 — Validation
05 — Not Found

Уровни серьёзности:

Low — информационные сообщения, не требуют действий
Medium — влияют на UX, требуют исправления
High — нарушают работу функционала
Critical — полный отказ системы, требуют немедленной реакции

Как выглядит лог в Json:
{
code: '010103', // Код ошибки
level: 'Medium', // Уровень
message: 'Clear text', // Описание
timestamp: '2025-10-29T...',

// Контекст
userId: 12345,
requestId: 'req-abc-123',
service: 'UserService',

// Технические детали
stack: error.stack,
duration: 3450
}


Минимальный старт

1. Определите 3-5 основных модулей
2. Создайте таблицу кодов
3. Добавьте структурированное логирование в критичные места
4. Настройте алерты на Critical
5. Постепенно расширяйте покрытие

Наши курсы построены по тому же принципу: чёткая структура, конкретные практические примеры, измеримые результаты. 3 дня до конца скидок!

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

#арсенал_инженера
Please open Telegram to view this post
VIEW IN TELEGRAM
🎁 Конкурс от Proglib Academy!

Кстати, если кто-то ещё не в курсе — у нас тут раздают MacBook Pro 14.
Да-да, не шутка, настоящий, железный, с M3 Pro

Но! Чтобы успеть пройти 2 недели обучения к 15 ноября, курс нужно взять до конца октября — и сейчас на всё скидка 40%.

Чтобы поучаствовать, нужно:

1️⃣ Покупаешь любой курс до конца октября;
2️⃣ Проходишь 2 недели обучения к 15 ноября;
3️⃣ Написать куратору в чат #розыгрыш.

До 15 ноября, потом всё — поезд (и макбук) уйдёт.

👉 Участвовать в розыгрыше
🎩 Вышла Fedora Linux 43

Fedora выпустила новую версию дистрибутива. Главное изменение для пользователей — установщик Anaconda WebUI теперь работает не только в Workstation.

Для любителей GNOME новость менее радужная: десктоп теперь работает только через Wayland, поддержку X11 полностью убрали.

Под капотом обновили пакетный менеджер до RPM 6.0. Это добавляет возможность подписывать пакеты несколькими ключами одновременно — готовятся к переходу на пост-квантовую криптографию.

Fedora CoreOS изменила схему обновлений: вместо OSTree-репозитория система получает апдейты как OCI-образы. Теперь любой может собрать FCOS через обычный Containerfile с помощью podman, без специальных инструментов.

Для чистой установки доступны все редакции: от классических Workstation и Server до Atomic-десктопов вроде Silverblue. 21 ноября пройдет виртуальная вечеринка в честь релиза.

➡️ Release notes

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

#пульс_индустрии
Please open Telegram to view this post
VIEW IN TELEGRAM
2