DevOps
8.74K subscribers
1.37K photos
864 videos
28 files
1.7K links
Docker, Kubernetes, облачные сервисы (AWS, GCP, Azure), Infrastructure as a Code (Terraform, CloudFormation), администрирование Windows и Linux, сети TCP, IP, скрипты (Bash, PowerShell), Ansible, Jenkins, DevSecOps, логирование. По вопросам @evgenycarter
Download Telegram
Трюки для ускорения Docker-образов на проде

Контейнеры это сердце современных приложений. Но тяжёлые образы = медленные деплои и высокие затраты. Как ускорить образы без боли?

Мультистейдж билды - must have

Используй multi-stage builds, чтобы собрать приложение в одном контейнере, а продакшн-образ сделать минимальным:

# Сборка
FROM golang:1.22 as builder
WORKDIR /app
COPY . .
RUN go build -o app

# Продакшн
FROM alpine:latest
WORKDIR /app
COPY --from=builder /app/app .
CMD ["./app"]


Минимизируй базовые образы

Выбирай облегчённые базовые образы:
- alpine вместо ubuntu
- distroless для максимальной безопасности и минимального веса

Оптимизируй порядок слоёв

Чем выше изменяемость, тем ниже слой:
- Сначала COPY go.mod, npm package.json, установка зависимостей
- Потом COPY . . с кодом проекта

Это позволяет кэшировать большую часть слоёв даже при частых изменениях кода.

Чисть за собой

Всегда удаляй временные файлы и зависимости для сборки:

RUN apt-get install -y build-essential && \
make build && \
apt-get remove --purge -y build-essential && \
apt-get autoremove -y && \
apt-get clean


Сжимай образы

Используй docker-slim, он автоматически оптимизирует образ, удаляя всё ненужное:

docker-slim build --http-probe my-app:latest



Как применять и чего избегать
- В продакшне старайся держать образы <100MB
- Не добавляй лишние пакеты “на всякий случай”
- Проверяй образы на уязвимости: trivy image your-app:tag

#devops #девопс

📲 Мы в MAX

Подпишись 👉@i_DevOps
👍51👎1
Yandex B2B Tech представила Monium — платформу observability для мониторинга ИТ-систем, которая изначально была разработана командой Yandex Infrastructure для мониторинга критических сервисов внутри Яндекса, а теперь она доступна всем внешним пользователям.

Что по цифрам:
• До 3 млрд семплов метрик в секунду
• Около 44 млн спанов трассировки
• До 60 ГБ логов ежесекундно
• Порядка 16 тысяч внутренних пользователей

Платформа объединяет метрики, логи и трейсы в одном интерфейсе и помогает быстрее находить причину инцидентов. Поддерживаются стандарты Prometheus и OpenTelemetry, что упрощает интеграцию с существующими DevOps-конвейерами.
Среди первых внешних тестовых пользователей — ОТП Банк.
По прогнозам Gartner, к 2027 году до 80% крупных компаний будут использовать observability-платформы для управления рисками стабильности сервисов.
👍81
Bruno — это новый, современный и удобный инструмент для работы с API. В отличие от Postman и аналогов, Bruno хранит все данные локально в виде обычных файлов и папок, что позволяет легко версионировать их с помощью Git.

Основные особенности:
- Локальное хранение данных без облака
- Полная совместимость с Git
- Высокая производительность и минималистичный интерфейс
- Открытый исходный код

https://github.com/usebruno/bruno

#devops #девопс

📲 Мы в MAX

Подпишись 👉@i_DevOps
👍7👎1
CI/CD без боли: оптимизация пайплайнов на GitHub Actions 🚀

GitHub Actions — мощный инструмент, но без оптимизации ваш пайплайн легко превратится в тормозную мясорубку. Разбираемся, как выжать максимум из CI/CD на GitHub.


Почему это важно:
Быстрые и надёжные пайплайны — ключ к высокой скорости доставки. Медленные сборки = потеря времени, нервов и денег.


1. Кэшируй разумно
Используй actions/cache для ускорения зависимостей, но не кэшируй всё подряд. Пример для Node.js:


- uses: actions/cache@v4
with:
path: ~/.npm
key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}
restore-keys: |
${{ runner.os }}-node-


⚠️ Ключ должен быть завязан на lock-файлы, иначе можно словить конфликты версий.


2. Делай job-ы параллельными
Разделяй пайплайн на независимые шаги — unit-тесты, линтеры, сборка. Добавляй needs: там, где реально нужно, а не везде.


3. Matrix strategy — must-have
Хочешь тестировать на разных версиях языка/ОС? Используй matrix:


strategy:
matrix:
node-version: [16, 18, 20]


Это масштабирует проверку без дублирования кода.


4. Отключи ненужные события
Не запускай воркфлоу на каждом чихе. Используй on: грамотно:


on:
push:
branches:
- main
pull_request:
paths:
- 'src/**'


Это поможет не перегружать runners.


5. Используй workflow_dispatch для ручных запусков
Иногда надо протестить пайплайн руками — не бойся добавить ручной триггер:


on:
workflow_dispatch:



6. Логи и таймауты — твои друзья
Добавляй timeout-minutes к job-ам и выводи ключевые логи через ::group:: и ::endgroup::, чтобы не утонуть в консоли.


Вывод:
Грамотно настроенный GitHub Actions экономит время и снижает головную боль. Избегай монолитных пайплайнов, кэшируй умно и тестируй только то, что нужно. Автоматизация — это про контроль, а не хаос.

#devops #девопс

📲 Мы в MAX

Подпишись 👉@i_DevOps
👍3
🚨 Helm: как не сломать прод — 5 ошибок, которые делают все

Helm — must-have инструмент для деплоя в Kubernetes. Но даже опытные инженеры наступают на одни и те же грабли, особенно в проде. Разберём, какие ошибки чаще всего приводят к падениям и багам.


🔸 1. helm upgrade без флага --atomic
Без --atomic Helm не откатывает релиз при ошибке — в кластере остаётся полусломанное состояние.
Решение: всегда используйте --atomic на проде:


helm upgrade my-app ./chart --atomic --install


🔸 2. Забытый values.yaml с тестовыми значениями
Нередко инженеры коммитят values.yaml с включёнными debug-логами, выключенным HPA и отключённым SSL.
Решение:

* Разделяй values по окружениям (values-prod.yaml, values-staging.yaml)
* Используй .gitignore для временных файлов
* Применяй валидацию с helm-schema-gen

🔸 3. Не pinned зависимости в Chart.yaml
Если чарты-зависимости подтягиваются без фиксации версий (version: ^1.2.3), то обновления могут неожиданно всё сломать.
Решение:
Фиксируй зависимости чётко: version: 1.2.3 и контролируй обновления вручную.

🔸 4. Отсутствие pre-upgrade и post-upgrade хуков
Если приложение требует миграций БД или прогрева кэша, а хуки не заданы — велика вероятность получить нерабочий релиз.
Решение:
Определи хуки в templates/hooks.yaml:


apiVersion: batch/v1
kind: Job
metadata:
annotations:
"helm.sh/hook": pre-upgrade


🔸 5. Helm secrets хранятся в чистом виде в Git
Распакованный secrets.yaml в Git — это инцидент.
Решение:

* Используй helm-secrets с sops
* Шифруй secrets.yaml и расшифровывай только при деплое:


helm secrets upgrade my-app -f secrets.enc.yaml



Вывод:
Helm — мощный, но не прощающий ошибок инструмент. Настрой atomic деплой, следи за values и зависимостями, автоматизируй pre/post-хуки и защищай секреты. Это минимальный чеклист для прод-готовности.

#devops #девопс

📲 Мы в MAX

Подпишись 👉@i_DevOps
👍32
Netshoot — набор инструментов для устранения сетевых проблем с Docker и Kubernetes.

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

https://github.com/nicolaka/netshoot

#devops #девопс

📲 Мы в MAX

Подпишись 👉@i_DevOps
2👍2
Media is too big
VIEW IN TELEGRAM
Kubernetes без интернета: как мы устанавливаем Deckhouse в закрытом контуре (обзор и видео доклада)

Всем привет! На связи Максим Набоких, архитектор и технический руководитель Deckhouse Kubernetes Platform. Deckhouse работает в компаниях из разных отраслей: нефтегазовые предприятия, финтех, государственные организации, банки, облачные провайдеры и так далее. И больше чем в половине этих организаций во внутренней инфраструктуре нет интернета — он просто запрещён. Поэтому нам надо было придумать процесс установки своей платформы в закрытый контур.

О том, как устанавливать Kubernetes (Deckhouse использует ванильный K8s), где «не ступал» ни один пакет из публичной сети, я рассказал на HighLoad++ 2023. Эта статья — текстовая версия моего доклада. Мы разберём целевую схему закрытого контура, нюансы работы инструментов для создания безопасной среды, посмотрим, как готовить дистрибутив Kubernetes-платформы к установке и осуществлять доставку приложений в закрытых окружениях.

https://habr.com/ru/companies/oleg-bunin/articles/798317/

#devops #девопс

📲 Мы в MAX

Подпишись 👉@i_DevOps
👍31
Crd-to-sample-yaml or cty ( city )

Утилита для генерации манифестов YAML из CRD.

Это простая утилита, написанная на Go, которая читает CRD-файлы и создает из них YAML-образцы.

Она использует controller-tools/pkg/crd/schema и controller-tools/pkg/crd/markers для интерпретации и разбора схемы.

Установка:


go install github.com/Skarlso/crd-to-sample-yaml@latest


Использование:


crd-to-sample-yaml -path ./path/to/crds > output.yaml


https://github.com/Skarlso/crd-to-sample-yaml

#devops #девопс

📲 Мы в MAX

Подпишись 👉@i_DevOps
👍41
💡 Как DevOps'у не утонуть в логах

Когда в продакшене случается затык, первое, что мы делаем - лезем в логи. Но с микросервисами, десятками подов и различными компонентами инфраструктуры, логов становится столько, что можно утонуть.

Вот несколько проверенных приёмов, которые реально спасают время:

🔹 Стандартизируй формат логов. JSON - твой друг. Структурированные логи можно парсить, фильтровать и индексировать.

🔹 Сразу думай про central logging. Loki + Grafana, Elasticsearch + Kibana или даже простой Fluent Bit + S3. Главное - не SSH на 20 серверов.

🔹 Добавляй trace_id во все логи. Это твой маяк в море. Особенно полезно, когда надо отслеживать один запрос через всю систему.

🔹 Фильтры, фильтры, фильтры. Хорошие правила фильтрации в Grafana или Kibana - это как хороший кофе с утра. Делают день лучше.

🔹 Логи - это не помойка. Не пиши туда print("Hello from service X"). Пиши полезное: ошибки, статусы, идентификаторы.

И напоследок: не забывай про ротацию и retention. Логи не должны жить вечно, особенно если ты не хочешь платить лишнее за storage.

#devops #девопс

📲 Мы в MAX

Подпишись 👉@i_DevOps
👍5
Порядок в инфраструктуре: BSA-модель на практике

Инфраструктурный код хранится в разных местах, каждая команда пишет по-своему, развертывание каждый раз проходит по разному сценарию, а ответственность не закреплена. Знакомо? В итоге — задержки, долгие согласования и лишние конфликты.

На вебинаре 13 марта «Экспресс42» и «Магнит OMNI» покажут, как модель BSA (Base–Service–Application) помогает упорядочить инфраструктуру, чётко разделить зоны ответственности и сделать процессы поставки стабильными и предсказуемыми. Продемонстрируем не только подход, но и практический опыт реализации в компании «Магнит OMNI».

В программе:
— боли неструктурированного IaC;
— суть трёхуровневой модели BSA;
— опыт внедрения в Магнит OMNI;
— результаты использования модели;
— практические рекомендации.


13 марта в 12:00, онлайн
👉 Зарегистрироваться
Реклама. АО "ФЛАНТ". ИНН 7723661439.
2👍1
🔧 Про grep, который умеет больше, чем ты думаешь

Все знают grep как утилиту “найди мне это слово в этих логах”. Но давай копнём глубже — вот тебе пара трюков, которые удивят даже видавшего виды девопса:


📍 Ищем с контекстом
Хочешь не просто строку, а и то, что рядом?


grep -C 3 "ошибка" /var/log/syslog


Покажет 3 строки до и после найденной.


📍 Ищем по слову, а не по вхождению
Не хочешь ловить ошибка, если в логе есть предошибкака?


grep -w "ошибка" файл.log


Совпадение только по целому слову.


📍 Списки IP-шников? Без проблем.
Вытаскиваем IPv4 из текста:


grep -Eo '([0-9]{1,3}\.){3}[0-9]{1,3}' лог.txt



📍 Ищем рекурсивно, но только в файлах
Искать по директории, пропуская бинарники и показывая имя файла:


grep -rIn --exclude-dir={.git,node_modules} "TODO" .



📍 Цвет для глаз
Визуально быстрее цепляться за результат:


grep --color=auto "fail" журнал.log



Если ты думаешь, что grep — это просто "найди слово", то, возможно, ты не используешь весь его потенциал. А зря 😉

#devops #девопс

📲 Мы в MAX

Подпишись 👉@i_DevOps
11
Периодическая таблица инструментов DevSecOps

Независимо от того, начинаешь ли ты с нуля, устраняешь пробелы или заменяешь существующие инструменты, начни с Периодической таблицы, чтобы подобрать оптимальные решения для своей DevOps-пайплайна.

#devops #девопс

📲 Мы в MAX

Подпишись 👉@i_DevOps
3👍2
Как проверить, что твои бэкапы не просто занимают место?

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

🔹 Автоматическое тестирование восстановления
Настрой регулярное восстановление из резервных копий в тестовой среде. Например, можно развернуть временный сервер и поднять на нём восстановленную БД.

🔹 Сравнение контрольных сумм
Для файловых бэкапов сохраняй хэши (MD5, SHA256) до и после резервного копирования. Это поможет выявить изменения или повреждения данных.

🔹 Логирование и мониторинг
Настрой алерты на ошибки резервного копирования. Если скрипт завершился неудачно, ты должен об этом узнать раньше, чем твой прод улетит в тартарары.

🔹 Глубина хранения и дедупликация
Не удаляй старые бэкапы слишком рано. Иногда проблему замечают через несколько недель. Храни несколько версий резервных копий, но следи за размером и удостоверься, что не копируешь лишнее.

🔹 Периодические мануальные проверки
Раз в месяц пробуй восстановить данные вручную. Это займёт 15 минут, но может спасти компанию от потерь.

Бэкап, который не тестировали на восстановление — это просто набор битов. Убедись, что твои копии действительно можно использовать!

#devops #девопс

📲 Мы в MAX

Подпишись 👉@i_DevOps
👍4💊1
Selectel Billing Exporter

Это экспортёр для Prometheus, который позволяет собирать метрики расходов в Selectel. С его помощью можно мониторить свои траты на сервисы Selectel прямо через привычные инструменты наблюдения.
Он поддерживает получение информации о балансе и детализации расходов по каждому сервису. Для работы потребуется указать API-токен Selectel.

https://github.com/mxssl/selectel-billing-exporter

#devops #девопс

📲 Мы в MAX

Подпишись 👉@i_DevOps
👍1
🚀 Подборка полезных IT каналов в Max


Системное администрирование, DevOps 📌

https://max.ru/i_odmin Все для системного администратора
https://max.ru/bash_srv Bash Советы
https://max.ru/sysadminof Книги для админов, полезные материалы
https://max.ru/i_odmin_book Библиотека Системного Администратора
https://max.ru/i_devops DevOps: Пишем о Docker, Kubernetes и др.

1C разработка 📌
https://max.ru/odin1c_rus Cтатьи, курсы, советы, шаблоны кода 1С

Программирование C++📌

https://max.ru/cpp_lib Библиотека C/C++ разработчика

Программирование Python 📌
https://max.ru/python_of Python академия.
https://max.ru/BookPython Библиотека Python разработчика

Java разработка 📌
https://max.ru/bookjava Библиотека Java разработчика

GitHub Сообщество 📌
https://max.ru/githublib Интересное из GitHub

Базы данных (Data Base) 📌
https://max.ru/database_info Все про базы данных

Фронтенд разработка 📌
https://max.ru/frontend_1 Подборки для frontend разработчиков

Библиотеки 📌
https://max.ru/programmist_of Книги по программированию
https://max.ru/proglb Библиотека программиста
https://max.ru/bfbook Книги для программистов

Программирование 📌
https://max.ru/bookflow Лекции, видеоуроки, доклады с IT конференций
https://max.ru/itmozg Программисты, дизайнеры, новости из мира IT
https://max.ru/php_lib Библиотека PHP программиста 👨🏼‍💻👩‍💻

Шутки программистов 📌
https://max.ru/itumor Шутки программистов

Защита, взлом, безопасность 📌
https://max.ru/thehaking Канал о кибербезопасности
https://max.ru/xakkep_1 Хакер Free

Книги, статьи для дизайнеров 📌

https://max.ru/odesigners Статьи, книги для дизайнеров

Математика 📌
https://max.ru/Pomatematike Канал по математике
https://max.ru/phismat_1 Обучающие видео, книги по Физике и Математике

Вакансии 📌
https://max.ru/progjob Вакансии в IT

Мир технологий 📌
https://max.ru/mir_teh Канал для любознательных


Бонус 📌
https://max.ru/piterspb_78 Свежие новости Санкт-Петербурга
https://max.ru/mockva_life Свежие новости Москвы
🤡8💩3👍1
🗂️ Как найти большие файлы в системе

Иногда на сервере внезапно заканчивается место, и нужно срочно найти, какие файлы занимают больше всего пространства. Вот простая команда на bash:


find / -type f -size +500M -exec ls -lh {} \; 2>/dev/null | awk '{ print $NF ": " $5 }' | sort -hr -k2


🔹 Что делает этот скрипт:

• Ищет все файлы больше 500 МБ по всему серверу.
• Показывает их размер и путь.
• Сортирует список по размеру - самые большие файлы будут вверху.

Совет:
Если нужно искать не по всему серверу, а только в домашней папке, просто поменяй / на ~/.

#devops #девопс

📲 Мы в MAX

Подпишись 👉@i_DevOps
👍51
Docker на каждый день: Ключевые команды в одной статье-шпаргалке

Забудьте о том, что Docker — это некий таинственный инструмент исключительно для DevOps-инженеров. В современном мире разработки Docker стал таким же незаменимым швейцарским ножом, как Git или ваш любимый редактор кода. Он позволяет любому разработчику писать код, который будет одинаково работать на машине коллеги, на тестовом стенде и в продакшене, забыв о кошмаре "а у меня на машине все работает". Если вы еще не погрузились в мир контейнеризации или вам нужен удобный источник команд, эта статья — ваш экспресс-билет.

https://habr.com/ru/articles/913978/

#devops #девопс

📲 Мы в MAX

Подпишись 👉@i_DevOps
👍3
Архитектура Docker состоит из трех основных компонентов

🔹 Клиент Docker
Это интерфейс, через который осуществляется взаимодействие с пользователями. Он взаимодействует с демоном Docker.

🔹 Docker Host
Здесь демон Docker принимает запросы Docker API и управляет различными объектами Docker, включая образы, контейнеры, сети и тома.

🔹 Реестр Docker
Здесь хранятся образы Docker. Например, широко используется публичный реестр Docker Hub.

#devops #девопс

📲 Мы в MAX

Подпишись 👉@i_DevOps
Please open Telegram to view this post
VIEW IN TELEGRAM
👍21
Tailspin - позволяет просматривать логи с подсветкой

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

Особенности
🪵 Просмотр (или отслеживание) любых лог-файлов в любом формате
🍰 Не требует настройки или конфигурации
🌈 Подсвечивает числа, даты, IP-адреса, UUID, URL и многое другое
⚙️ Все группы подсветки настраиваемы
🧬 Легко интегрируется с другими командами
🔍 Использует less для прокрутки, поиска и фильтрации

https://github.com/bensadeh/tailspin

#devops #девопс

📲 Мы в MAX

Подпишись 👉@i_DevOps
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4🦄1
HolmesGPT — опенсорсный DevOps-ассистент

Он соединяет AI-модели с данными мониторинга в реальном времени и организационными знаниями. Он использует агентный цикл для анализа данных из нескольких источников и выявления возможных первопричин.

Что может HolmesGPT?

👉 Расследует инциденты (AIOps) с помощью PagerDuty/OpsGenie/Prometheus/Jira
👉 Автоматизированная сортировка: отмечайте важные предупреждения и устанавливайте их приоритетность, чтобы ваша команда могла их рассмотреть
👉 Расширение возможностей оповещений: автоматическое добавление контекста к оповещениям, таким как журналы и информация о работоспособности микросервисов, для более быстрого поиска первопричин
👉 Выявляйте проблемы с облаком, задавая вопросы HolmesGPT о неработоспособности инфраструктуры
👉 Автоматизация Runbook простым языком: ускорьте решение известных проблем, проводя расследование в соответствии с предоставленными вами runbook.

https://github.com/robusta-dev/holmesgpt

#devops #девопс

📲 Мы в MAX

Подпишись 👉@i_DevOps
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
CI/CD на GitHub Actions и GitLab CI для самых маленьких. Часть 1

Основы CI/CD – что это и зачем нужно; обзор GitHub Actions и GitLab CI

В последние годы вы, вероятно, слышали слова "DevOps", "CI", "CD", возможно, даже "GitHub Actions" или "GitLab CI". Но что это всё значит на практике? Нужно ли быть сеньором DevOps-инженером, чтобы с этим разобраться?

https://habr.com/ru/articles/914560/

#devops #девопс

📲 Мы в MAX

Подпишись 👉@i_DevOps
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3