Библиотека девопса | 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
✈️ Разбор полётов

Недавний масштабный сбой в IT-инфраструктуре Аэрофлота — не просто технический инцидент, а пример системного провала. Давайте устроим компании postmortem.

Кратко: что случилось

• Аэрофлот на несколько часов остановил бронирования, регистрацию и доступ к сайту.

• Все системы зависели от централизованной IT-инфраструктуры, которая была выведена из строя.

• По симптомам — возможен сбой ЦОД, отказ кластеров, падение критических сервисов.

🛠 Что можно было сделать

1. Geo-распределённая отказоустойчивая архитектура

Active-active или хотя бы active-passive в двух независимых регионах, например, использование облаков с мультирегиональной поддержкой.

2. Резервные каналы связи и DNS Failover

Ротация DNS на резервную инфраструктуру — классическая страховка. Cloudflare Load Balancer, Route53, NS1 — дают гибкость при переключениях.

3. Холодный и горячий Disaster Recovery план

Тестируемый DR-сценарий с переключением в течение 15 минут. Как минимум – ежедневная проверка резервных копий и симуляции отказов.

4. Тестирование отказов хаосом

Периодическая случайная остановка нод или симуляция отказа БД.

5. Автоматизация развёртывания и восстановления

Возможность воссоздать инфраструктуру за час, а не за сутки вручную. GitOps с Terraform, Ansible, Pulumi, ArgoCD для восстановления конфигурации в любой момент.

Крупный бизнес без продуманной стратегии отказоустойчивости — это только вопрос времени, когда «всё упадёт».

💬 Что бы вы использовали для предотвращения такого инцидента? Или чем бы пользовались уже пост фактум для восстановления?

🐸Библиотека devops'a #междусобойчик
Please open Telegram to view this post
VIEW IN TELEGRAM
Proglib Academy — это место, где вы превращаете теорию в практику. Здесь ваши знания становятся проектами для портфолио, а вы — более уверенным специалистом.

Выберите курс, который поможет сделать следующий шаг ⬇️

🚀 Для тех, кто начинает путь в IT:

Основы IT для непрограммистов
Программирование на Python (обновлённый)
Frontend-разработчик с нуля: HTML, CSS, JavaScript

🧠 Для будущих и настоящих Data Scientist'ов:

ML для старта в Data Science (начинается в сентябре)
Базовые модели ML и приложения
Математика для Data Science
AI-агенты для DS-специалистов (скоро второй поток)

🛠️ Для опытных разработчиков, готовых к росту:

Алгоритмы и структуры данных
Архитектуры и шаблоны проектирования

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

Вместо того чтобы снова и снова руками набирать длинные пути или параметры из предыдущей команды, в bash/zsh можно просто вытащить их из истории.

Alt+. (или Esc + .) — вставить последний аргумент предыдущей команды.

$ ls /var/log/nginx
$ cd Alt+. # подставит /var/log/nginx


!$ — то же самое, но внутри команды.

$ tar -xf archive.tar.gz /tmp/data
$ cd !$


!* — вставить все аргументы предыдущей команды.

$ cp file1.txt file2.txt /tmp
$ rm !*


^old^new — повтор предыдущей команды, заменив подстроку.

$ kubectl get pods
$ ^get^describe # превратит в kubectl describe pods


Удобно в деплоях, когда команды повторяются с небольшими изменениями. Да и опечаток становится в разы меньше.

🐸Библиотека devops'a #буст
Please open Telegram to view this post
VIEW IN TELEGRAM
💰 Интеграция платежных систем на уровне банковской инфраструктуры

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

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

➡️ Читать статью

🐸Библиотека devops'a
Please open Telegram to view this post
VIEW IN TELEGRAM
📰 Главное за неделю

Собрали дайджест материалов от крупных компаний за эту неделю.

Короткие SSH-сертификаты для Ansible

HashiCorp представил способ интеграции Vault и Red Hat Ansible Automation Platform (AAP), позволяющий заменить статические SSH‑ключи на динамические, подписанные сертификаты.

Теперь при запуске Ansible‑джоба AAP запрашивает у Vault SSH‑сертификат на лету — Vault аутентифицирует запрос, подписывает сгенерированную пару ключей и возвращает АAP короткоживущий сертификат

Плагин c ИИ для управления кластерами k8s

Headlamp AI Assistant — это новый плагин для веб-интерфейса Headlamp, который привносит возможности общения с Kubernetes через естественный язык. Модель, работающая на базе LLM, способна отвечать на вопросы вроде «Какое состояние приложения?» или «Что здесь не так?»

OpenShift Service Mesh 3.1

В новую версию добавлена полноценная поддержка dual‑stack кластеров (IPv4 + IPv6) на x86, а также реализована технологическая preview‑версия «ambient mode» — sidecar‑less архитектура на базе Ztunnel и Waypoint.

Когда меньшая модель — лучший путь к эффективному ИИ

Docker представил подход Remocal + Minimum Viable Models (MVM), который объединяет локальную разработку с возможностью динамически масштабироваться в облако, когда требуется больше мощности.

🐸Библиотека devops'a #свежак
Please open Telegram to view this post
VIEW IN TELEGRAM
2
В GitOps-подходе с использованием ArgoCD и монорепозитория, какой сценарий наибольшим образом нарушает идемпотентность и предсказуемость деплоя?

👾 — Хранение всех манифестов в одной ветке и использование ArgoCD для автоматической синхронизации с HEAD
👍 —Разделение инфраструктурных и приложенческих манифестов по разным директориям в одном репозитории
🥰 — Прямое применение изменений в кластере через kubectl apply без фиксации в Git
⚡️ — Настройка ArgoCD на использование webhook-триггеров вместо периодической синхронизации

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

DevOps Engineer — 280 000 — 400 000 ₽, удалёнка.

Ещё DevOps инженер — до 200 000 ₽, удалёнка.

И ещё DevOps-Инженер — до 240 000 ₽, удалёнка.

Ещё один DevOps-инженер — 200 000 — 250 000 ₽, удалёнка.

DevOps-инженер (CI/CD) — до 170 000 ₽, удалёнка.

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

➡️ Еще больше вакансий — в нашем канале Вакансии по DevOps & SRE
Please open Telegram to view this post
VIEW IN TELEGRAM
⚙️ Как с помощью Kustomize упростить управление конфигурациями

Kustomize — это инструмент для работы с Kubernetes-конфигурациями, который позволяет адаптировать и комбинировать файлы YAML без их дублирования.

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

Структура проекта:
my-app/

├── base/
│ ├── deployment.yaml
│ ├── service.yaml
│ └── kustomization.yaml

└── overlays/
├── dev/
│ ├── kustomization.yaml
│ ├── deployment-patch.yaml
│ └── service-patch.yaml
└── prod/
├── kustomization.yaml
├── deployment-patch.yaml
└── service-patch.yaml


base/: хранит общие для всех окружений файлы конфигураций — это основа, от которой будут наследоваться все остальные окружения.

overlays/: здесь лежат изменения для каждой среды (например, для разработки и продакшн), такие как количество реплик или версия образа.

Пример базовой конфигурации для деплоя:
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-app
spec:
replicas: 2
selector:
matchLabels:
app: my-app
template:
metadata:
labels:
app: my-app
spec:
containers:
- name: my-app
image: my-app:v1
ports:
- containerPort: 8080


Здесь у нас базовый деплоймент с двумя репликами и образом Docker my-app:v1. Это конфигурация, которая будет использована во всех окружениях, пока мы не внесем в нее изменения.

Конфигурация для окружения разработки

В папке overlays/dev мы создаем патчи, которые изменяют конфигурацию для разработки. Для разработки нужно:

• Использовать тестовую БД
• Использовать самый последний образ контейнера
• Включить дебаг логгирование
• Поиграться с количеством реплик

Пример патча для деплоя:
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-app
spec:
replicas: 3 # Увеличиваем количество реплик для разработки
template:
spec:
containers:
- name: my-app
image: my-app:latest # Используем последний образ для разработки


Также в папке overlays/dev создаем файл kustomization.yaml:
bases:
- ../../base
patchesStrategicMerge:
- deployment-patch.yaml
- service-patch.yaml


Этот файл говорит Kustomize, что конфигурация для окружения dev будет базироваться на файлах из папки base, но с изменениями, определенными в патче.

Пример патча для прода:
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-app
spec:
replicas: 2 # В продакшн — только 2 реплики
template:
spec:
containers:
- name: my-app
image: my-app:v1.2.3 # Стабильная версия для продакшн


Теперь, благодаря Kustomize, вы можете использовать одни и те же манифесты, но с разными настройками для каждой среды.

Как применить конфигурации:

После того как мы создали все необходимые файлы, применить конфигурацию можно с помощью команды kustomize build. Например, для разработки:
kustomize build overlays/dev | kubectl apply -f -


Для прода:
kustomize build overlays/prod | kubectl apply -f -


Эти команды соберут все ресурсы, применят соответствующие патчи для окружения и передадут их в Kubernetes.

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

#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
👍43
📎 Как стать Delivery Manager

Чтобы стать Delivery Manager'ом нужно быть всегда и везде. Он как дирижёр, который управляет не только процессами разработки, но и коммуникациями между командами, бизнес-стейкхолдерами и внешними партнёрами.

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

🐸Библиотека devops'a
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
💬 Открываем чат между серверами

nc — это утилита для работы с сетью. Умеет слушать порты, подключаться к ним, передавать файлы и данные.

С помощью открытого порта мы можем обмениваться файлами между серверами:

# Сервер
nc -l -p 9000
# Клиент
nc <ip_сервера> 9000


Передача файла:
# Приём
nc -l -p 9999 > file.txt
# Отправка
nc <ip_получателя> 9999 < file.txt


Также можно использовать udp подключение:
nc -u -l -p 500


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

#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
🔥 Успей поднять квалификацию по выгодной цене!

Только до 17 августа у вас есть последняя возможность купить наши курсы по старым ценам.

🔹 Математика для Data Science:

— Базовый: (сейчас) 26 399₽(будет) 33 900₽
— Ультра: 35 199₽44 900₽
— VIP: 59 829₽75 900₽ (выгода больше 16 000₽!)

🔹 Программирование на Python: 24 990₽32 900₽
🔹 Алгоритмы и структуры данных: 31 669₽39 900₽
🔹 Архитектуры и шаблоны проектирования: 24 890₽32 900₽
🔹 AI-агенты для DS специалистов: 54 000₽59 000₽
🔹 Основы IT для непрограммистов: 14 994₽19 900₽
🔹 Базовые модели ML: 6 990₽9 900₽

Важно: Курсы из линейки Frontend Basic полностью снимаются с продажи. 17 августа — буквально последний день, когда их можно будет приобрести.

Успей купить до повышения — осталось 4 дня!

👉 Зафиксировать цену и начать учиться
1
⛳️ Чеклист для использования облачных сервисов

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

В этом чеклисте мы предлагаем основные шаги для старта в облаках.

Оцените стоимость, доступность и нужные сервисы у провайдера. Сравните популярные облачные платформы.

Используйте Infrastructure as Code (IaC) и CI/CD пайплайны для автоматизации.

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

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

Используйте инструменты для мониторинга и централизованное логирование.

Организуйте резервное копирование и архивирование данных.

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

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

#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2