Библиотека девопса | DevOps, SRE, Sysadmin – Telegram
Библиотека девопса | DevOps, SRE, Sysadmin
10.3K subscribers
1.7K photos
76 videos
4 files
3.02K links
Все самое полезное для девопсера в одном канале.

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

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

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

РКН: https://gosuslugi.ru/snet/6798b4e4509aba56522d1787
Download Telegram
🌐 Что такое DNS

Каждый раз, когда вы вводите адрес веб-сайта, например, example.com, ваш запрос проходит через скрытую систему под названием DNS (Domain Name System). Эта система делает возможной работу интернета так, как мы его знаем.

Простыми словами о DNS

DNS — это как телефонная книга интернета. Переводит понятные человеку доменные имена (например, google.com) в IP-адреса (например, 142.250.64.78), которые используют компьютеры для общения друг с другом.

DNS работает на основе записей. Они определяют, как домены связываются с серверами, почтовыми системами и другими сервисами. Каждая запись хранит информацию о действиях с запросами, связанными с доменом.

Какие бывают DNS-записи

A-запись: связывает доменное имя с IPv4-адресом

AAAA-запись: связывает доменное имя с IPv6-адресом

CNAME-запись: создаёт псевдонимы для доменов

MX-запись: указывает почтовый сервер для обработки email

TXT-запись: содержит текстовую информацию, например, для проверки домена или настройки безопасности.

📍 Навигация: ВакансииЗадачиСобесы

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

#лучшее_из_библиотеки_2025
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
⚙️ Колесо AWS

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

➡️ Оригинал

📍 Навигация: ВакансииЗадачиСобесы

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

#лучшее_из_библиотеки_2025
Please open Telegram to view this post
VIEW IN TELEGRAM
👍32
🤩 Справочник который всегда под рукой

Тогда мы хвалили DevDocs за удобство. Сейчас повторяем, потому что это реально must have для DevOps.

Объединяет доки Kubernetes, Docker, Terraform, AWS, Linux man pages и CI CD инструменты. Оффлайн доступ через кэш, быстрый поиск и клавиши для навигации. Можно выбрать только нужное и не тащить все подряд.

➡️ Читать документацию

📍 Навигация: ВакансииЗадачиСобесы

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

#лучшее_из_библиотеки_2025
Please open Telegram to view this post
VIEW IN TELEGRAM
3
👨‍💻 Каникулы закрыты

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

Админ снова на месте и готовит новый цикл постов, задач и обсуждений уже в контексте 2026.

📍 Навигация: ВакансииЗадачиСобесы

🐸 Библиотека devops'a
Please open Telegram to view this post
VIEW IN TELEGRAM
3
🤩 Дешёвая память

Шутка про скачать оперативку живет дольше многих языков программирования.​
Физическую память через интернет не привезут, но увеличить доступный системе лимит памяти можно, если вспомнить про swap.

Swap это запасной вариант, когда реальной RAM не хватает, и ОС начинает выгружать редко используемые страницы памяти в отдельное место.

Обычно это место на диске, но формально swap это просто блочное устройство, куда ядро умеет читать и писать.​
А блочное устройство в Linux можно сделать из файла через loopback device, то есть устроить swap поверх файла.

Если файл лежит в примонтированном облаке, получается своп в облаке, медленно, странно, но работает. Автор именно так и сделал.

➡️ Посмотреть как сделать облачную оперативку

📍 Навигация: ВакансииЗадачиСобесы

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

#root_prompt
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
🧑‍💻 Self-hosting в 2026

Раньше self hosting ассоциировался с вечерами над портами, Docker compose из трех блогов и «почему оно опять упало». Сейчас агенты вроде Claude Code берут на себя всю рутину, пишете «поставь Vaultwarden с Caddy», идёте за кофе, возвращаетесь к готовому compose и запущенным контейнерам.

Дешевые мини ПК тихие и кушают минимум энергии, стоят меньше выходных в баре, и на них спокойно крутятся 13 сервисов на 4 ГБ RAM.

В итоге на домашнем сервере висят полезные штуки, пароли в Vaultwarden с нативными клиентами, фото в Immich с распознаванием лиц, Plex для медиа, Uptime Kuma для мониторинга, Home Assistant для умного дома.

➡️ Как решить боль селфхостинга

📍 Навигация: ВакансииЗадачиСобесы

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

#арсенал_инженера
Please open Telegram to view this post
VIEW IN TELEGRAM
4🤔1
👨‍💻 Кроссшелл промпт из будущего

Starship это Rust промпт для терминала, который ставится везде и показывает ровно то, что нужно в данный момент.

Ставится через curl скрипт или менеджеры, на любой Linux дистрибутив, Mac, Windows, даже Android в Termux.

После установки добавляете eval "$(starship init bash)" в .bashrc или аналог в другой шелл, и перезапускаете терминал.

Из коробки видит git статус, текущую ветку, direnv, версии node,python и go, docker контекст, и меняет цвет если команда провалилась.

Если терминал — это основной интерфейс, стоит потратить минуту на установку.

➡️ Гайд по установке

📍 Навигация: ВакансииЗадачиСобесы

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

#root_prompt
Please open Telegram to view this post
VIEW IN TELEGRAM
2👍1
💻 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

#пульс_индустрии
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥42
🛠 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
Please open Telegram to view this post
VIEW IN TELEGRAM
2👍2🤔1
🔍 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.noscript
firefox boot.noscript


Получаете таймлайн с цветными полосками — когда каждый сервис стартовал, сколько времени занял, кто с кем параллелился. Узкие места видны сразу.

Узнать время старта отдельного сервиса:
systemd-analyze blame | grep nginx


Или посмотреть его зависимости:
systemd-analyze critical-chain nginx.service


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

📍 Навигация: ВакансииЗадачиСобесы

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

#арсенал_инженера
Please open Telegram to view this post
VIEW IN TELEGRAM
6👍4
Roadmap: Оркестрация и деплой ИИ-агентов

Для `DevOps`-инженера ИИ-агенты — это новые типы нагрузок, требующие специфического мониторинга, безопасности и масштабирования.

План освоения технологии:

— понимание логики автономных агентов и их взаимодействия с API;

— настройка окружений для работы мультиагентных систем;

— управление состоянием (`State`) и памятью агентов в кластерах;

— безопасность и контроль доступа при Tool Calling.

Курс «Разработка ИИ-агентов» поможет разобраться в архитектуре ИИ-сервисов и научиться внедрять их в продакшн.

Освоить ИИ-инструменты

Акция «3 в 1» до 19 января: купите курс и получите ещё два в подарок.
🤔1
🍷 Свежий Wine

Wine 11.0 вышел после года разработки и тысяч правок. Основные новинки: ARM64EC архитектура, улучшенная поддержка HiDPI, Wayland по умолчанию и экспериментальный FFMPEG-бэкенд для мультимедиа.

➡️ Анонс

📍 Навигация: ВакансииЗадачиСобесы

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

#пульс_индустрии
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
📝 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

#арсенал_инженера
Please open Telegram to view this post
VIEW IN TELEGRAM
👍42💯2
🐳 Секреты из .env в Docker

Мы уже говорили, что переменные из .env файлов при сборке Docker-образов запекаются в слои навсегда. Вот свежий кейс от команды, где ключи БД и токены оказались доступны всем.

Что пошло не так

В Dockerfile скопировали .env в контекст или использовали в RUN-командах. Результат: docker history показывает секреты, любой pull видит их в inspect.

Фикс и лучшие практики

Передавайте через --env-file только на runtime. Для build ARG без дефолтов и --build-arg снаружи. Multi-stage сборка сбрасывает промежуточные слои с данными.

➡️ Живой пример | Зеркало

📍 Навигация: ВакансииЗадачиСобесы

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

#разбор_полётов
Please open Telegram to view this post
VIEW IN TELEGRAM
🤩 QR-коды чистым SQL в PostgreSQL

Разработчик проснулся рано из-за кота и за час с помощью ИИ написал генератор QR-кодов одним SQL-запросом для Postgres.

Никаких расширений или библиотек не нужно, просто выполним скрипт:
psql -qf pqr.sql -v payload='Hello, World!'


И на выходе нас ждёт QR-код.

➡️ Скрипт забираем здесь

📍 Навигация: ВакансииЗадачиСобесы

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

#пульс_индустрии
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
🏭 Трудоголики снова в моде

Что происходит, когда рынок из «кандидатского» превращается в «работодательский»? Культ личной эффективности вместо командной работы, up-or-out вместо саббатикала, и «работай или уходи» вместо «мы о тебе заботимся».

2026 год в IT — это конец иллюзии про дружескую атмосферу в офисе и начало честной истории про трудоголизм как норму выживания.

➡️ Узнать в этом кто виноват

📍 Навигация: ВакансииЗадачиСобесы

🐸 Библиотека devops'a
Please open Telegram to view this post
VIEW IN TELEGRAM
2🔥2😢1
😤 «Я ненавижу 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

#пульс_индустрии
Please open Telegram to view this post
VIEW IN TELEGRAM
💯3
«Этот манёвр будет стоить нам 51 год...»

DevOps — это не только YAML-конфиги, но и умение автоматизировать процессы с помощью Python и понимание архитектуры систем. Рынок требует всё больше компетенций в ИИ.

Успейте забрать обучение в Proglib Academy по ценам 2025 года:

— Разработка ИИ-агентов
— Математика для разработки AI-моделей
— ML для старта в Data Science
— Математика для Data Science
— Специалист по ИИ
— Алгоритмы и структуры данных
— Программирование на Python
— Основы IT для непрограммистов
— Архитектуры и шаблоны проектирования

Выбрать направление

⚠️ Стоимость изменится 19 января
🏷 Теги и лейблы в Terraform как привычка

Ресурсы без тегов почти всегда превращаются в невидимые расходы и в проблемы с управлением. Если навести порядок в тегах прямо в Terraform модулях, инфраструктуру проще искать, считать и контролировать.

Лучше начинать со схемы на уровне модуля. У каждого модуля должен быть входной map для tags или labels и этот map должен применяться ко всем ресурсам, которые это поддерживают. Идея простая. В модуле есть базовые поля вроде окружения и владельца, а сверху можно передать дополнительные теги и объединить их через мерж.

Пример:
variable "environment" {
type = string
}

variable "owner" {
type = string
}

variable "tags" {
type = map(string)
denoscription = "Общие теги для всех ресурсов"
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
Please open Telegram to view this post
VIEW IN TELEGRAM
2👍2
👀 Наглядная иерархия процессов в 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

#арсенал_инженера
Please open Telegram to view this post
VIEW IN TELEGRAM