DevOps – Telegram
DevOps
8.47K subscribers
1.46K photos
822 videos
28 files
1.74K links
Docker, Kubernetes, облачные сервисы (AWS, GCP, Azure), Infrastructure as a Code (Terraform, CloudFormation), администрирование Windows и Linux, сети TCP, IP, скрипты (Bash, PowerShell), Ansible, Jenkins, DevSecOps, логирование. По вопросам @evgenycarter
Download Telegram
Пакетная фильтрация в Linux

Бесконтекстная пакетная фильтрация (iptables): stateless
Контекстная пакетная фильтрация (iptables): stateful

источник

📲 Мы в MAX

#devops #девопс

Подпишись 👉@i_DevOps
👍6
This media is not supported in your browser
VIEW IN TELEGRAM
Давно планировал выучить Go, но не хотел тонуть в теории?

Курс «Golang-разработчик» в Слёрме стартует 30 января. Мы создали его для бэкенд-разработчиков и DevOps-инженеров, которые хотят сменить стек или научиться писать инфраструктурные инструменты на Go.

Важно: курс не для новичков.

Почему этот курс дает результат:
• 80% обучения — это практика. Вместо скучных лекций вы получите 53 часа прикладной работы.
• Спикер-практик. Обучение ведет Виталий Лихачев, SRE в Booking.com.
• Реальный проект в портфолио. Ты с нуля спроектируешь отказоустойчивый сервис на выбор: онлайн-банк, мессенджер или файловое хранилище.

Попробуй продукт бесплатно: мы открываем демо-доступ на 3 дня. Ты сможешь оценить платформу, подачу материала и решить, подходит ли тебе темп обучения, прежде чем платить.

👉 Занять место или получить демо-доступ
👉 Проверь свои знания и получи полезные материалы от экспертов рынка.
👍2
🐳 Хватит тащить curl и vim в продакшн! (Используем Ephemeral Containers)

Салют, коллеги, всех с прошедшими праздниками! 👋

Сколько раз я видел Dockerfile, который начинается за здравие (FROM alpine), а заканчивается установкой половины интернета: apk add curl vim net-tools bind-tools...?

Аргумент всегда один: "Ну мне же надо как-то дебажить, если под отвалится!"

В итоге мы получаем:

1. Раздутый образ. (Платим за сторадж и трафик).
2. Дыру в безопасности. (Хакер, попавший в контейнер, скажет спасибо за curl и nmap, любезно оставленные вами).

Правильный путь - это Distroless образы или минимальный Alpine, где нет даже шелла. А для дебага мы используем Ephemeral Containers (эфемерные контейнеры).

🛠 Как это работает?

В Kubernetes (начиная с v1.25 это уже стабильная фича) вы можете "подселить" временный контейнер в работающий Pod. Он будет делить с подом пространство имен процессов (PID) и иногда сети, но файловая система у него будет своя.

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

🔥 Практика: kubectl debug

Допустим, у вас есть "глухой" под my-app, в котором нет ничего, кроме бинарника приложения. Вам нужно проверить сеть.

Вместо того чтобы пересобирать образ, делаем так:


kubectl debug -it my-app \
--image=nicolaka/netshoot \
--target=my-app-container



Разберем магию:

🔘 --image=nicolaka/netshoot: Мой любимый образ для траблшутинга. Там есть ВСЁ: tcpdump, curl, dig, iperf, mtr.
🔘 --target: Указываем, к какому контейнеру в поде подключиться (важно, чтобы видеть процессы друг друга).

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

💡 А если я не в K8s?

Если вы сидите на чистом Docker, похожий трюк делается через --pid и --network:


docker run -it --rm \
--network container:my-prod-container \
--pid container:my-prod-container \
nicolaka/netshoot



Итог: Перестаньте бояться Distroless образов. Инструментарий для внешнего дебага уже давно вырос.

💬 А какой у вас любимый тул-кит для дебага сети? Пишите в комменты! 👇


📲 Мы в MAX

#k8s #docker #security #tips #debug

Подпишись 👉@i_DevOps
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥14👍1
Это репозиторий aws2tf от AWS Samples, предназначенный для автоматического преобразования существующих ресурсов AWS в код Terraform. Он может помочь экспортировать инфраструктуру AWS в виде кода Terraform, что полезно для управления IaC (Infrastructure as Code).

Основные возможности aws2tf:
- Генерация Terraform-кода на основе существующей AWS-инфраструктуры.
- Поддержка множества сервисов AWS.
- Автоматическое создание зависимостей между ресурсами.
- Упрощение миграции и управления конфигурацией.

https://github.com/aws-samples/aws2tf

📲 Мы в MAX

#devops #девопс

Подпишись 👉@i_DevOps
👍4
Docker для начинающих: простое развертывание приложения за несколько шагов

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

Начну, пожалуй, с самого сервиса. Я написал достаточно простое веб-приложение на стеке - Java, Spring, Maven, REST, HTTP, Hibernate, Postgresql, JSP/JSTL. Пока приложение представлено достаточно в сыром виде, но для понимания, как оно упаковывается в контейнер, вполне подойдет. Если вкратце, то это сервис для голосования за лучший ресторан, где можно зарегистрироваться, добавить ресторан, его описание, оставить отзыв и проставить рейтинг. Также, в зависимости от роли, можно посмотреть информацию о пользователях и редактировать ее.

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

📲 Мы в MAX

#devops #девопс

Подпишись 👉@i_DevOps
👍3
⚡️ Готовые решения и лучшие практики для надёжной защиты API в архитектуре бэкенда

📅 26 января | 20:00 мск | бесплатно

Хотите, чтобы ваши API были надёжно защищены без потери производительности?
На вебинаре разберём:

- Типовые угрозы и уязвимости API

- Аутентификация и авторизация

- Защита на уровне архитектуры

- Роль API Gateway и прокси в обеспечении безопасности

- Лучшие практики проектирования защищённых API и контрактов

После вебинара вы сможете:

- Проектировать API с учётом безопасности на уровне архитектуры

- Применять готовые решения для защиты API

- Осознанно балансировать между безопасностью, сложностью и производительностью

👉 Регистрация https://vk.cc/cTFqe2

Занятие приурочено к старту курса "Software Architect" в OTUS. Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
👍1
Тренировки по DevOps. Часть 1

Лекция 1: Кто такой DevOps
Лекция 2: Облако. Кто виноват и что делать?
Лекция 3: Процессы Linux
Лекция 4: Сети Часть 1. Коты и коробки
Разбор домашнего задания 1: Кто такой DevOps
Разбор домашнего задания 2: Облако. Кто виноват и что делать?
Лекция 5: Linux: инструменты командной строки
Лекция 6: Базы данных
Разбор домашнего задания 3: Процессы Linux"
Разбор домашнего задания 4: Сети. Часть 1. Коты и коробки

источник

#devops #девопс

Подпишись 👉@i_DevOps
🔥2👍1
Сертификация, которая реально работает на вас

🔘DevOps‑инженеры с опытом от 2 лет могут пройти экзамен Yandex Cloud DevOps Engineer: 65 вопросов, 90 минут, онлайн. Это не просто теория — это подтверждение практического опыта с автоматизацией инфраструктуры и CI/CD.

🔘 После прохождения сертификации 74% участников отмечают, что почувствовали рост уверенности в своих знаниях. Такое нам надо! Успейте зарегистрироваться до 31 марта со скидкой 50% и получить буст для карьеры. Все подробности тут.

📲 Мы в MAX

#devops #девопс

Подпишись 👉@i_DevOps
👍3🤣2
DevOps, как сам? Как строили мост между разработкой и эксплуатацией

Меня зовут Георг Гаал, я член ПК DevOpsConf. Я энтузиаст информационных технологий со школьной скамьи. Меня эта тема очень зажгла, когда я в первый раз сел за компьютер и осознал, что вообще не понимаю, как он функционирует. Сегодня я попытаюсь на примерах из своего опыта рассказать про эволюцию DevOps, актуальных трендах и о том, как оставаться востребованным в профессии.

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

📲 Мы в MAX

#devops #девопс

Подпишись 👉@i_DevOps
👍31
SnapScheduler — это контроллер Kubernetes, который автоматически создает снапшоты PVC (PersistentVolumeClaim) по расписанию, используя встроенный механизм VolumeSnapshot. Он не зависит от CSI-драйвера, пока тот поддерживает VolumeSnapshot, и работает с любым сторедж-классом, поддерживающим снапшоты.

Основные возможности:
- Создание снапшотов PVC по расписанию (cron).
- Поддержка нескольких расписаний для одного PVC.
- Возможность настройки политики хранения (retention policy).
- Не требует изменений в приложении или манифестах PVC.

Как это работает:
Вы создаете ресурс SnapshotSchedule, в котором указываете:
- Селектор PVC.
- Cron-расписание.
- Максимальное количество снапшотов для хранения.
Контроллер следит за расписанием и создает VolumeSnapshot объекты автоматически.

Пример использования:

apiVersion: snapscheduler.backube/v1
kind: SnapshotSchedule
metadata:
name: example-schedule
spec:
schedule: "0 */6 * * *"
snapshotTemplate:
labels:
createdBy: snapscheduler
pvcSelector:
matchLabels:
snapshot: "true"
retention:
maxCount: 5


Такой манифест будет создавать снапшоты каждые 6 часов для всех PVC с лейблом snapshot=true, и хранить максимум 5 последних.

https://github.com/backube/snapscheduler

📲 Мы в MAX

#devops #девопс

Подпишись 👉@i_DevOps
👍2
⚙️ CI/CD часто выглядит как набор разрозненных скриптов.

Но платформа — это не пайплайн, а пайплайн — не YAML.

На открытом уроке вы за один раз пройдёте весь путь: от выбора платформы до работающего CI/CD-конвейера.

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

⌨️ Вы увидите, как проектировать CI/CD системно:
- создание пайплайнов
- тестирование
- деплой
- обработка ошибок
- обновления без простоев
- масштабирование

Разберём типовые архитектурные подходы и ошибки, которые мешают превратить CI/CD в устойчивую часть инфраструктуры.

💛Встречаемся 29 января в 20:00 МСК в преддверии старта курса «Инфраструктурная платформа на основе Kubernetes».

➡️ Регистрация открыта: https://vk.cc/cTMqSm

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
🚑 HEALTHCHECK: Спасательный круг или выстрел в ногу?

Продолжаем тему стабильности. Сегодня про Healthchecks (в Docker) и Probes (в K8s).

Казалось бы, что сложного? Написал curl -f http://localhost/ || exit 1 и пошел пить кофе. Но именно такие "простые" решения часто становятся причиной того, что ваш прод лежит, хотя нагрузка детская.

Разберем две крайности и как делать правильно.

Ошибка №1: "Зомби-апокалипсис" (Слишком слабый чек)

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

🔘Сценарий: У приложения отвалился коннект к БД (pool exhaustion), или случился дедлок внутри кода.

🔘Итог: Хелсчек проходит (порт-то открыт!), балансировщик продолжает лить трафик на под, а пользователи получают 500-ки.

🔘Лечение: Чек должен проверять работоспособность логики, а не просто наличие процесса.

Ошибка №2: "Эффект Домино" (Слишком жадный чек)

Вы решили быть умными и в /health эндпоинт засунули проверку коннекта к Базе, Редису и S3.

🔘Сценарий: База данных немного приуныла (медленные запросы).

🔘Итог: Хелсчеки всех 50 подов начинают тайм-аутить. Kubernetes думает: "Ага, поды сдохли!" и начинает их перезагружать.

🔘Финал: Все поды рестартуют одновременно, ломятся устанавливать соединения к и так лежащей базе и добивают её окончательно. Congratulations, you played yourself.

Как делать правильно: Liveness vs Readiness

В Kubernetes (да и в грамотном Docker Compose) эти понятия разделены. Это фундамент.

1. Liveness Probe (Я жив?)

🔘Цель: Понять, не завис ли процесс намертво.
🔘Действие при сбое: РЕСТАРТ контейнера.
🔘Что проверять: Очень легкий запрос. "Я могу отвечать на HTTP?". Не трогайте тут базу данных! Если база лежит, рестарт бэкенда не поможет ей подняться.


2. Readiness Probe (Я готов работать?)

🔘Цель: Понять, можно ли пускать на меня трафик.
🔘Действие при сбое: УБРАТЬ из балансировки (не убивать!).
🔘Что проверять: Вот тут проверяем зависимости. Есть коннект к БД? Прогрелся кэш? Если нет, просто временно не шлите на меня юзеров.



📝 Пример (K8s Manifest):


livenessProbe:
httpGet:
path: /health/live # Максимально тупой ответ 200 OK
port: 8080
initialDelaySeconds: 5
periodSeconds: 10

readinessProbe:
httpGet:
path: /health/ready # Проверка БД, очередей и т.д.
port: 8080
initialDelaySeconds: 10
periodSeconds: 10
failureThreshold: 3



💡 Главный совет

Никогда не делайте зависимость Liveness-пробы от внешних сервисов. Если у вас упал сторонний API, ваш сервис не должен уходить в циклическую перезагрузку. Он должен просто перестать говорить, что он Ready, или отдавать ошибку юзеру, оставаясь "живым".

#k8s #devops #fails #stability #bestpractices

📲 Мы в MAX

#devops #девопс

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