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

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

@devopsslib

Все самое полезное для девопсера в одном канале.

Наши курсы: https://clc.to/ZJ7Z1w

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

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

РКН: https://gosuslugi.ru/snet/6798b4e4509aba56522d1787

Заявка: 8137718351
Subscribers
10.4K
Photos
2.1K
Videos
84
Links
3.5K

Showing posts older than #4209 · Back to latest

Older Posts 20 shown
Post #4207 1.46K
😮 Шестидневка позади

Выдохнули — самая насыщенная неделя завершена. Теперь время для перезагрузки: встречи с друзьями, хобби, любимые сериалы — всё, что поможет восстановить силы.

💬 Как вы справились с этой неделей? Что первым делом сделаете в выходные? Рассказывайте в комментариях 👇

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

#холиварня
Post #4206 1.44K
📎 Боремся с infra-flake

Когда вы запускаете автоматические тесты или задачи, иногда возникают ошибки, связанные с инфраструктурой — с сетью, временными сбоями серверов или сбоями среды выполнения. Они проявляются как короткие перебои или ошибки 5xx.

В таких случаях есть эффективный подход: сделать автоматическую повторную попытку один раз.

Почему это работает? Обычно проблема — не в вашем коде, а в инфраструктуре. Если перезапуск помогает и задача проходит успешно, значит ошибка — временная и связана с сетью или сервером, а не с самим программным продуктом.

Пример:
jobs:
tests:
runs-on: ubuntu-latest
strategy:
fail-fast: false
max-parallel: 4
steps:
- uses: actions/checkout@v4
- name: Run tests with one retry on infra errors
run: |
set -e
for i in 1 2; do
npm test && break || {
if grep -qE "ENETUNREACH|ECONNRESET|502 Bad Gateway" test.log; then
echo "Retrying due to infra indicators..."
sleep 10
else
exit 1
fi
}
done


Такой подход помогает разграничить плохие ошибки, вызванные внешней инфраструктурой, от серьезных багов в коде.

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

#root_prompt
  • ❤ 1
Post #4205 1.51K
☕️ Gitea 1.25.0

Gitea — это бесплатная платформа для хостинга и управления Git-репозиториями.

Что нового:

• Добавлен предварительный просмотр 3D-файлов и CAD-файлов.

• Поддерживаются email-уведомления о результатах CI/CD.

• Улучшена SSH-подпись коммитов и интеграция с OpenID Connect.

• Админ-панель оптимизирована: архивы исключены из бэкапов, улучшена настройка эмодзи.

• Удалены устаревшие источники аутентификации.

➡️ Release notes

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

#пульс_индустрии
  • 👍 5
Post #4204 1.56K
📎 Забыли про requests и limits — получили OOMKilled

Kubernetes не требует указывать requests и limits для CPU и памяти. Поды запускаются и без них. Но когда кластер растёт, начинаются проблемы.

Scheduler не знает, сколько ресурсов нужно поду. Он пихает на одну ноду 20 подов, которые съедают всю память. Результат — OOM killer убивает случайные поды. Или наоборот: один под жрёт все ресурсы, остальные задыхаются.

Как исправить:
resources:
requests:
memory: "128Mi"
cpu: "100m"
limits:
memory: "256Mi"
cpu: "200m"


Начните с минимальных значений. Запустите под, посмотрите kubectl top pods. Увидите реальное потребление — скорректируете цифры. Если нагрузка скачет, добавьте HorizontalPodAutoscaler.

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

#арсенал_инженера
Post #4203 1.53K
👻 Пугающие баги

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

💬 Оставляйте свои впечатления и фото в комментариях 👇


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

#холиварня
Post #4202 1.47K
🎃 Хэллоуин в Proglib Academy: скидки, призы и... немного паники

Сегодня 31 октября, и это не просто время тыкв и призраков, это ПОСЛЕДНИЙ ДЕНЬ, когда ты можешь выиграть макбук!

→ Купи любой курс со скидкой 40% 💸
→ Начни обучение, чтобы пройти 2 недели к 15 ноября 🎓
→ Напиши куратору #розыгрыш ✍️

Всё! Теперь ты в игре.

👉 Сейчас или никогда!
Post #4201 1.48K
➕ Топ-вакансий для девопсов за неделю

DevSecOps-инженер на удалёнку с ЗП от 300 000 ₽

Junior DevOps Engineer с ЗП до 200 000 ₽

Senior DevOps Engineer для работы на bare-metal от 300 000 ₽

DevOps Engineer с зарплатой, посчитанной до сотен рублей — 337 500 ₽

Бустер — Офис у вас дома.

➡️ Еще больше топовых вакансий — в нашем канале Devops Jobs
Post #4200 1.51K
❌ 14 вопросов, после которых вам не перезвонят

Разбираем 14 вопросов, которые лучше не задавать на собеседовании: что не так с каждым из них и как переформулировать, чтобы получить нужную информацию без риска для репутации.

➡️ Прочитать статью

🐸 Библиотека devops'a
  • 👍 1
  • 🌚 1
Post #4199 1.41K

Forwarded from Библиотека собеса по DevOps | вопросы с собеседований

Каким образом мы можем управлять вычислительными ресурсами в k8s?

Для эффективного управления ресурсами в кластере k8s используются resources requests / limits. Они могут быть настроены для CPU, памяти и, в последних версиях k8s, для GPU.

Requests используются для определения типичного потребления ресурсов нашим приложением. На основе этих данных Kubernetes scheduler выбирает ноды для запуска PODов (сумма всех request'ов контейнеров во всех PODах не должна превышать доступные ресурсы на ноде).

Limits служат как механизм предотвращения, ограничивая потребление ресурсов контейнером в PODе. При превышении лимита процессорного времени применяется thermal throttling, а при превышении лимита памяти — механизм OOM.

Модель, при которой requests меньше limits, называется burstable QoS, а когда requests равны limits — guaranteed QoS.

Кроме того, можно установить квоты ресурсов на namespace (CPU, память, количество запущенных PODов, размер диска persistent volume) и указать требования к resources requests на PODах в namespace с помощью limit ranges.

Для управления ресурсами приложений также можно использовать автоскейлеры. В k8s доступны HPA (horizontal pod autoscaler), который регулирует количество PODов в зависимости от потребления CPU и/или памяти, и VPA (vertical pod autoscaler), который управляет resources requests / limits.

Существуют также реализации автоскейлеров, которые могут использовать внешние метрики (например, длину очереди), такие как carpenter или KEDA. В облачном окружении можно использовать cluster autoscaler для добавления или удаления нод в зависимости от общей загрузки кластера.


Библиотека собеса по DevOps
Post #4197 1.35K
🎩 Вышла 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

#пульс_индустрии
  • ❤ 2
Post #4196 1.27K
🎁 Конкурс от Proglib Academy!

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

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

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

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

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

👉 Участвовать в розыгрыше
Post #4195 1.22K
📊 Структурированное логирование ошибок: практическое руководство

Неинформативные логи типа «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

#арсенал_инженера
  • 👍 2
Post #4194 1.43K
🔄 Bottles 51.25: исправления и поддержка st terminal

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

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

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

➡️ Релиз на GitHub

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

#пульс_индустрии
  • ❤ 3
  • 👍 1
Post #4193 1.54K
🧑‍💻 Самая длинная рабочая неделя 2025 года

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

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

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

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

#dev_null
  • ❤‍🔥 4
Post #4191 1.43K
🔒 Как хранить секреты в 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
  • 👍 3
  • 🌚 1
Post #4190 1.48K
😭 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

#пульс_индустрии
  • ❤ 1
  • 👍 1
  • 🙏 1
Post #4189 1.59K
📎 Быстрая диагностика через journalctl

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

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


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

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

#root_prompt
  • 👍 8
Post #4188 1.52K
🧠 Готовишься к собесам, а ноутбук еле тянет IDE?

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

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

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

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

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

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

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

👉 Принять участие
  • ❤ 1
Older posts →
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →