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

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

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

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

РКН: https://gosuslugi.ru/snet/6798b4e4509aba565
Download Telegram
🤨 На одну вакансию теперь 2383 отклика

Рынок IT-специалистов в цифрах:

• Вакансий — минус 17%
• Резюме — плюс 25%

В страте про динамику зарплат, востребованные специализации и почему знания одного языка программирования больше недостаточно.

➡️ Узнать как там рынок

🐸 Библиотека devops'a
Please open Telegram to view this post
VIEW IN TELEGRAM
💥 Массовая поломка AWS

20 октября произошёл крупнейший сбой AWS в истории. Упали Netflix, Reddit, PlayStation, Amazon и ещё 2500+ сервисов по всему миру. Давайте разберём, что пошло не так и какие выводы должен сделать каждый DevOps.

Что сломалось

Проблема началась с неправильной настройкой DNS в регионе US-East-1. Это старейший и самый нагруженный дата-центр Amazon, через который проходит трафик банков, стартапов, стриминговых платформ и AI-систем.

Когда приложение обращается к базе данных, оно спрашивает у AWS: «Где мои данные?». В тот день AWS отвечал: «Не знаю». Один неправильный конфиг оборвал связь между приложениями и их базами данных.

Что делать DevOps-инженеру

Один DNS-конфиг не должен откатывать цивилизацию на 50 лет назад. Но откатил. Вот что нужно проверить в своей инфраструктуре:

• Не держите все яйца в US-East-1. Разносите критичные сервисы по регионам.

• Мониторинг внешних зависимостей — если AWS падает, вы должны узнать об этом раньше ваших пользователей.

• Graceful degradation — приложение должно уметь работать в режиме ограниченной функциональности, а не просто умирать.

• Проверка конфигов — внедрите code review для инфраструктурного кода. IaC тоже может содержать критичные ошибки.

Этот инцидент показал, что современный интернет слишком хрупкий и слишком зависим от одного провайдера. Если не начать диверсифицировать риски сейчас, следующий чих AWS может остановить весь мир.

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

#разбор_полётов
Please open Telegram to view this post
VIEW IN TELEGRAM
👏4
🖥 На чём работают девопсы

Каждому девопсу точно нужен компьютер. Кому-то хватит рабочей машинки терминал открыть, а кому-то нужна максимальная мощность за каждый рубль, вложенный в сборку.

💬 Какой у вас ПК? Или может лэптоп? Скидывайте свои модели и характеристики в комменты 👇

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

#холиварня
Please open Telegram to view this post
VIEW IN TELEGRAM
1
🔄 Что нового в мире виртуализации

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
👍2
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