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

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

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

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

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

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

Многие считают, что девопсам нужно погружаться в глубокие технические темы — гайды по внедрению Terraform, Kubernetes, настройки сетевой инфраструктуры и AWS, потому что все с этим работают.

С другой стороны огромные гайды про AWS и другие облачные сервисы могут и не иметь смысла, если в реальности с ними работали единицы.

Всегда можно взять готовую статью или ресурс — а сейчас нужна информация, которая касается реальных и актуальных задач, таких как CI/CD, мониторинг и автоматизация.

💬 Что думаете вы? Какой контент нужен настоящему девопсу, а какой это просто пыль в глаза незнающим, чтобы они думали, что всё так сложно? Делитесь мыслями в комментариях 👇

🐸Библиотека devops'a #междусобойчик
Please open Telegram to view this post
VIEW IN TELEGRAM
👍32🔥1
📈 Итоги недели

Мы выбрали самые интересные статьи и материалы недели, которые стоит изучить.

Управление настройками Docker Desktop через консоль администратора

Docker объявил о полном запуске функции управления настройками Docker Desktop через консоль администратора для подписчиков Docker Business.

Введение расширения Inference API в Gateway API

Gateway API Inference Extension адаптирует существующие маршрутизаторы для обработки AI/ML-трафика, обеспечивая маршрутизацию на основе модели, приоритетности запросов и оптимизацию нагрузки.

Создание AI-чат-бота с нуля с использованием Docker Model Runner

Docker представил руководство по созданию функционального AI-чат-бота с использованием Docker Model Runner.

Процесс включает в себя создание интерфейса на React, настройку бэкенда на Go и реализацию потоковой передачи ответов от модели.

Ключевые аспекты безопасности API

Стройные контейнеры

Не забудьте про наш опрос

🐸Библиотека devops'a #свежак
Please open Telegram to view this post
VIEW IN TELEGRAM
Вакансии «Библиотеки программиста»

Привет! Мы ищем контент-менеджеров, которые будут вести наши телеграм-каналы о разработке.

👾 Требования:
— знать принципы залетающего контента
— разбираться в темах, связанных с разработкой

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

Условия:
— удаленка
— частичная занятость
— сдельная оплата в зависимости от количества задач

🔥 Оставляйте отклик, и мы свяжемся с вами: https://forms.gle/o4BZnsQ526JoqsCq9
1
Для какого типа рабочей нагрузки обычно лучше использовать Ingress в Kubernetes?

👾 — Приложения с отслеживанием состояния
👍 — Микросервисы без сохранения состояния
🥰 — Задания пакетной обработки
— Системы управления базами данных

Библиотека задач по DevOps
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12🥰1
💃 Топ-вакансий для девопсов за неделю

Senior/Lead DevOps — от 4 500 €, Удалёнка

DevOps engineer — до 350 000 ₽, Удалёнка

Системный администратор Windows/Linux — до 200 000 ₽, Гибрид (Москва)

DevOps middle — от 180 000 ₽, Удалёнка

Дата инженер/Инженер по обработке данных — от 200 000 ₽, Удалёнка

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

➡️ Еще больше вакансий — в нашем канале Вакансии по DevOps & SRE
Please open Telegram to view this post
VIEW IN TELEGRAM
🎮 Балансировка нагрузки для TCP-сервисов

Проблема: необходимо распределить трафик между несколькими TCP-серверами.

Решение: в книге "Nginx Cookbook: Advanced Recipes for High-performance Load Balancing" автор показывает использование модуля stream для балансировки нагрузки на уровне транспортного слоя.

Пример кода:
stream {
upstream mysql_read {
server read1.example.com:3306 weight=5;
server read2.example.com:3306;
server 10.10.12.34:3306 backup;
}

server {
listen 3306;
proxy_pass mysql_read;
}
}


Преимущества:

— Поддержка балансировки для TCP-сервисов.
— Гибкая настройка весов серверов.
— Резервирование серверов для повышения надёжности.

➡️ Лучшее из мира IT-книг — у нас в @progbook
Please open Telegram to view this post
VIEW IN TELEGRAM
👍71🔥1
😡 А вас тоже бесят облачные сервисы?

Согласитесь, статус отношений с облаками — все сложно. Но что, если можно изменить правила игры?

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

Что мы хотим узнать:
— Для чего вы реально используете облако?
— Чего катастрофически не хватает прямо сейчас?
— Что бесит больше всего? (можно материться)
— Как выбираете провайдера — по цене или по любви?
— и тому подобное

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

️Время на опрос: меньше, чем на кофе-брейк. Жмите → https://clc.to/nboYDA
👨‍💻 Почему споры о микросервисах бессмысленны

Микросервисы — это не просто архитектурный тренд, а инструмент, который работает только при правильном подходе. В карточках разберёмся, почему споры часто уходят в сторону от реальных задач.

➡️ Узнать почему автор забил на споры

🐸Библиотека devops'a #буст
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
📊 Своя метрика в Prometheus

Хотите отслеживать, сколько запросов прилетает в ваше приложение? Или сколько задач выполнилось? Делается это за 5 шагов — через кастомные метрики.

Попробуем реализовать пример: считаем количество HTTP-запросов в приложении на Go.

1. Подключаем библиотеку Prometheus:
go get github.com/prometheus/client_golang/prometheus


2. Создаём счётчик:
var requestCounter = prometheus.NewCounter(
prometheus.CounterOpts{
Name: "myapp_http_requests_total",
Help: "Total number of HTTP requests",
})


3. Регистрируем метрику:
func init() {
prometheus.MustRegister(requestCounter)
}


requestCounter будет инкрементироваться при запросе приложения.

4. Добавляем endpoint для Prometheus:
http.Handle("/metrics", promhttp.Handler())
log.Fatal(http.ListenAndServe(":8080", nil))


5. Пишем конфиг на стороне Prometheus
scrape_configs:
- job_name: 'myapp'
metrics_path: /metrics
static_configs:
- targets: ['localhost:8080']


📍 Всё — теперь http://localhost:8080/metrics отдаёт данные, которые можно добавить в дашборд в Prometheus.

🐸Библиотека devops'a #буст
Please open Telegram to view this post
VIEW IN TELEGRAM
👍62🔥1
💸 Инженер, который считает деньги

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

Он разбивает вашу инфраструктуру по компонентам, считает стоимость и находит, где можно сэкономить.

Промпт:
You are a highly efficient and cost-conscious DevOps engineer, renowned for your meticulous approach to infrastructure cost optimization. Your primary goal is to accurately estimate the cost of infrastructure based on a given configuration, identifying potential areas for savings and ensuring maximum value for every dollar spent. You will analyze the provided configuration, break down the individual components, and estimate their associated costs, considering factors like usage patterns, scaling requirements, and available pricing models.

Here is the format you will use to reason through the cost estimation and provide a comprehensive analysis:

---

## Infrastructure Configuration
$infrastructure_configuration (Detailed description of the infrastructure setup, including server types, storage, networking, databases, and other relevant components)

## Cost Breakdown

### Component 1: $component_name (e.g., Web Servers)
* **Description:** $component_description (e.g., Number of servers, instance type, operating system)
* **Estimated Cost:** $estimated_cost_per_unit (e.g., $X per hour)
* **Total Cost:** $total_cost_component (e.g., $Y per month)
* **Justification:** $cost_justification (Explanation of how the cost was calculated, including pricing model used and assumptions made)

### Component 2: $component_name (e.g., Database)
* **Description:** $component_description (e.g., Database type, size, replication settings)
* **Estimated Cost:** $estimated_cost_per_unit (e.g., $X per hour)
* **Total Cost:** $total_cost_component (e.g., $Y per month)
* **Justification:** $cost_justification (Explanation of how the cost was calculated, including pricing model used and assumptions made)

### Component 3: $component_name (e.g., Load Balancer)
* **Description:** $component_description (e.g., Type of load balancer, number of requests handled)
* **Estimated Cost:** $estimated_cost_per_unit (e.g., $X per hour)
* **Total Cost:** $total_cost_component (e.g., $Y per month)
* **Justification:** $cost_justification (Explanation of how the cost was calculated, including pricing model used and assumptions made)

(Repeat for all relevant infrastructure components)

## Total Estimated Infrastructure Cost: $total_estimated_cost (Sum of all component costs)

## Potential Cost Optimization Strategies
* **Strategy 1:** $optimization_strategy_1 (e.g., Switching to spot instances for non-critical workloads)
* **Estimated Savings:** $estimated_savings_1
* **Considerations:** $considerations_1 (e.g., Potential for instance interruption)
* **Strategy 2:** $optimization_strategy_2 (e.g., Utilizing reserved instances for long-term commitments)
* **Estimated Savings:** $estimated_savings_2
* **Considerations:** $considerations_2 (e.g., Commitment period, potential for unused capacity)
* **Strategy 3:** $optimization_strategy_3 (e.g., Right-sizing instances based on actual resource utilization)
* **Estimated Savings:** $estimated_savings_3
* **Considerations:** $considerations_3 (e.g., Monitoring resource usage, potential for performance bottlenecks)

## Final Recommendation
$final_recommendation (Summary of the most impactful cost optimization strategies and their potential benefits)

---

Here is the infrastructure configuration you need to evaluate: [ВВЕДИТЕ ЗДЕСЬ ВАШУ КОНФИГУРАЦИЮ ИНФРАСТРУКТУРЫ, БУДЬТЕ КАК МОЖНО ПОДРОБНЕЕ. ВКЛЮЧИТЕ КОНКРЕТНЫЕ ТИПЫ ЭКЗЕМПЛЯРОВ, РАЗМЕРЫ ХРАНИЛИЩ, ТИПЫ БАЗ ДАННЫХ, ТРЕБОВАНИЯ К ПРОПУСКНОЙ СПОСОБНОСТИ СЕТИ И ЛЮБЫЕ ДРУГИЕ СООТВЕТСТВУЮЩИЕ ДЕТАЛИ]


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

🐸Библиотека devops'a #буст
Please open Telegram to view this post
VIEW IN TELEGRAM
👍41🔥1🤔1
🌧️ Облачная терапия: время выговориться!

Знакомая ситуация? Покупаете облако как BMW, а получаете телегу с квадратными колесами. Обещают 99.9% uptime, а сервер падает на релизе. Техподдержка отвечает через сутки фразой «попробуйте перезагрузить».

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

🤫О чем спросим:
— Зачем вам вообще это облако нужно
— Какие косяки достали до печенок
— Сколько денег утекает в никуда ежемесячно
— Что должно случиться, чтобы вы сменили провайдера
— И еще пару каверзных вопросов

⏱️ 2 минуты честности = большое исследование без воды → https://clc.to/nboYDA
📎 Когда пайплайн — это просто уведомления

Подписчик поделился с нами историей о том, как он пришёл в команду, где были «готовые» пайплайны. На первый взгляд автоматизация настроена и можно спокойно работать. Но оказалось, что не всё так просто.

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

Когда разработчики ставили определённые сервисы, то в один из чатов приходило уведомление, спустя минут 15-20 разработчик писал мне и говорил, что у него не ставится сервис. Я начал разгребать что там такое.

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


Пайплайны, которые должны были автоматизировать процесс деплоя, на деле оказались лишь поверхностной иллюзией автоматизации.

💬 Были у вас странные наработки? Делитесь выходками своими или своих коллег в комментариях👇

P.S. Если хотите задать вопрос сообществу или поделиться историей, заполните нашу гугл-форму.

🐸Библиотека devops'a #междусобойчик
Please open Telegram to view this post
VIEW IN TELEGRAM
😁7
🧑‍💻 Кодим на сервере, будто он под боком

Если вы часто работаете с удалёнными серверами — будь то staging, продакшн или временная виртуалка — расширение Remote-SSH способно заметно упростить вашу жизнь.

Что даёт расширение

Подключение к серверу по SSH прямо из VS Code — без дополнительных тулов.

• Полноценная работа с файлами, конфигами и логами как с локальными.

• Встроенный терминал, автодополнение, дебаг, подсветка синтаксиса — всё работает.

• Проброс портов (да, можно открыть localhost:3000 на сервере и увидеть его у себя в браузере).

На что стоит обратить внимание перед и во время работы

• При слабом интернете возможны подтормаживания — всё же работа через SSH.

• На сервере должен быть установлен bash, tar, scp и поддержка SSH (обычно всё это есть по умолчанию).

• Иногда при обновлениях vscode-server могут возникнуть сбои — решается удалением директории ~/.vscode-server.

➡️ Попробовать расширение

🐸Библиотека devops'a #буст
Please open Telegram to view this post
VIEW IN TELEGRAM
👍31🔥1
🏃‍♀️ 1 день до конца спец предложения

У
спей впрыгнуть на курс «AI-агенты для DS» до завтрашнего повышения цены: 59.000 р. вместо 69.000 р.

🎙 Наш спикер — Никита Зелинский, Chief Data Scientist МТС, в своем канале рассказывает о RAG:

Про RAG слышали все — это уже два года самый массовый способ применения LLM в проде для бизнеса.

Это значит, что точность и надёжность такого решения достаточно предсказуемы для того, чтобы исключить человека из процесса аппрува выдачи LLM,
а связка «локально развернутая LLM + RAG над корпоративными документами» обеспечивает достаточную конфиденциальность, чтобы снять тревожность
«что наши данные попадут в OpenAI».

Эта история настолько популярна, что на рынке есть готовые RAG-решения,
а даже «маленькие» опенсорс-модели (до 5B) уже обзавелись своей RAG-ареной:
👉 https://huggingface.co/spaces/aizip-dev/SLM-RAG-Arena


Во время обучения на курсе «AI-агенты для DS» научим собирать автономные системы под реальные бизнес-задачи. На прошлой неделе мы рассказали о первом занятии.

➡️ вот что ждет слушателей курса на втором:

— Собираем свой RAG-пайплайн на своих данных
— Обсуждаем, почему качество такой системы нельзя измерять «на глаз»
— Разбираем схему LLM as a Judge и как подготовить для неё датасет
— Что такое guardrails и как они спасают от бреда
— Что делать, когда LLM не знает ответа
— Смотрим на агентский RAG и обсуждаем, можно ли использовать RAG как память агента

Если пропустили первое занятие, то вот ссылочка

❗️До повышения цены остался последний день — бронируйте место сейчас
Please open Telegram to view this post
VIEW IN TELEGRAM
🐳 Вышел Docker Desktop 4.42

Docker продолжает прокачивать инструменты. В свежем релизе Desktop — сразу несколько мощных улучшений, которые делают работу с сетями, сервисами и AI‑моделями ещё удобнее

— IPv6 без костылей. Теперь можно выбрать режим сети: IPv4-only, IPv6-only или dual-stack. А умный DNS сам уберёт неподдерживаемые типы записей, чтобы не было таймаутов.

— MCP Toolkit теперь внутри Docker Desktop. 100+ сервисов (GitHub, MongoDB, HashiCorp и т.д.) можно подключить напрямую — больше никаких плагинов или сторонних конфигураций.

docker mcp — теперь и в терминале. Полный контроль над MCP из CLI: запуск, настройка, управление секретами и клиентами.

— Gordon теперь дружит с MCP. Открываете агента Gordon → Tools → включаете MCP Toolkit → работаете с нужными сервисами прямо в интерфейсе.

— AI-инфраструктура на стероидах. Поддержка Windows на Qualcomm, обновлённый llama.cpp, запуск Model Runner на Linux без Docker Desktop — всё это уже доступно.

— Модели как контейнеры
. Команда docker model package превращает GGUF‑модели в артефакты OCI — можно пушить их на Docker Hub или в свой реестр.

Проверьте, какие фичи уже включены у вас в контейнерах.

➡️ Блог разработчиков

🐸Библиотека devops'a #свежак
Please open Telegram to view this post
VIEW IN TELEGRAM