DevOps by REBRAIN
29K subscribers
493 photos
12 videos
4 files
1.03K links
Открытые практикумы по DevOps, Linux, Golang, Networks, Security

Мы на связи:
info@rebrainme.com
+7 (499) 116-34-68

https://rebrainme.com/

Зарегистрированы в РКН: https://knd.gov.ru/license?id=674db558d793bc0b0b8845ff&registryType=bloggersPermission
Download Telegram
⚡️ Делимся новостью наших друзей
Получите статус сертифицированного инженера данных

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

Что за экзамены?

1️⃣ Yandex Cloud Certified Data Engineer — базовый уровень, подтверждает навыки работы с сервисами платформы данных.

2️⃣ Yandex Cloud Certified Lakehouse Data Engineer — продвинутый уровень, проверяет компетенции по построению Lakehouse-платформ.

Пилоты проводятся до 4 июля. Участие бесплатное, но количество мест ограничено.
Заполняйте эту форму, чтобы зарегистрироваться. Детали на этой странице.
👍12
🔥Интенсив Network Security с Андреем Шабалиным стартует уже через 2 дня. Придержали место специально для тебя 😉

За 8 живых занятий с Андреем ты получишь все самые необходимые навыки по работе с сетями и научишься:
• проектировать и настраивать сети в эмуляторе GNS3
• управлять межсетевым экраном Eltex ESR
• настраивать фильтрацию трафика с помощью ACL
• конфигурировать Source NAT и Destination NAT
• настраивать мониторинг сетевых устройств по протоколам Syslog и SNMP
• конфигурировать xFlow и зеркалирование трафика (SPAN)
• управлять сетевым доступом через AAA

↘️ Занять место

Тебя ждёт:

🟢 8 живых занятий с Андреем Шабалиным
🟢 7 практических заданий с проверкой
🟢 Практика на виртуальных образах Eltex vESR в среде GNS3
🟢 Чат с Андреем и участниками интенсива
🟢 Глубокий разбор логики работы Firewall (Class-map, Policy-map)
🟢 Фокус на безопасности управления (Control Plane Hardening).

🟡 Начало занятий — 1 июля
🎁 Сейчас действует скидка 3 000 руб. А для участников прошлого интенсива с Андреем дополнительная скидка 2 000 руб.

↘️ Узнать подробности и занять место
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5👏1
🤖 Какие ИИ-агенты нужны инженерам для работы? Уже завтра на бесплатном вебинаре разберём с Артуром Сапрыкиным.

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

На вебинаре «Агенты ИИ. Что это такое и почему они сделали LLM полезным?» разберём:

🟢что на самом деле стоит за словом «ИИ-агент»
🟢почему голой LLM недостаточно для рабочих задач
🟢какую роль агенты играют в современных ИИ-решениях
🟢 примеры применения в реальных продуктах
🟢 почему ChatGPT — это не только LLM

👨‍💻 Ведёт: Артур Сапрыкин, основатель и CEO Maglosya. 17 лет в IT, 10 из них в ИИ, 7 лет преподаёт. Начинал с desktop-приложений для госучреждений на .NET и C++, сейчас проектирует архитектуру ИИ-систем: агенты, LLM, компьютерное зрение, аудио-аналитика.

📆 1 июля, 20:00 мск
📍 Zoom

↘️ Регистрируйся бесплатно

Ждём именно тебя 🤍
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥91
А ты уже сделал своего ИИ-агента для автоматизации инфраструктуры? Если нет — ждём на интенсиве «ИИ-агенты для инженеров», где за 9 живых занятий соберешь агента под свои рабочие задачи.

Рынок уходит от простых чатов к автономным агентам, которые сами доводят задачу до результата по циклу Reason+Act. MCP, интеграция в CI/CD и контроль расходов на LLM уже встречаются в требованиях вакансий.

Программу интенсива собрали специально для DevOps, SRE и backend-инженеров, где ты научишься:

🟢внедрять автономных coding-агентов: Aider, opencode для рефакторинга и написания тестов
🟢разрабатывать собственные MCP-серверы на FastMCP для связи LLM с внутренней инфраструктурой
🟢снижать расходы на API через связку Architect/Editor и мониторинг в Langfuse
🟢генерировать и валидировать Helm-чарты и Kubernetes-манифесты силами агента
🟢защищать агентов от Prompt Injection и утечки секретов через Docker-изоляцию
🟢подключать AI-ревьюеров в GitHub Actions
🟢управлять контекстом в длинных проектах через иерархическую память

↘️ Подробная программа

Тебя ждёт:

🟢 9 живых эфиров с Артуром Сапрыкиным
🟢 8 заданий с проверкой
🟢 упор на self-hosted решения и open-source агентов — Aider, opencode
🟢 чат с Артуром и участниками интенсива, записи эфиров
🟢 реальные сценарии DevOps: работа с Terraform, Helm и логами систем
🟢 разбор безопасности и изоляции AI-процессов
🟢 блок про экономику: как не слить бюджет на API в первый же день

👨‍💻 Автор и ведущий практикума — Артур Сапрыкин, основатель и CEO Maglosya
17 лет в IT, 10 из них в ИИ, 7 лет преподаёт. Начинал с desktop-приложений для госучреждений на .NET и C++, сейчас проектирует архитектуру ИИ-систем: агенты, LLM, компьютерное зрение, аудио-аналитика.

🟡 Начало занятий — 20 июля
🎁 Сейчас действует скидка 10 000 руб. А для участников практикума «LLM для инженеров» дополнительная скидка 3 000 руб.

↘️ Узнать подробности и занять место

✉️ Чтобы получить дополнительную скидку, напиши нашим менеджерам в телеграм, они подробно расскажут о программе и помогут с оплатой.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥52
🔥Пять задач по Terraform и пять задач по безопасности веб-приложений

Мы запустили тренажёры сразу к двум практикумам — это усложнённые задачи курса без подсказок и чек-листов: тебе дают рабочую инфраструктуру или уязвимый код, и дальше ты один на один с проблемой, как на реальном проде.

Тренажеры Terraform:

🟢 Инфраструктура для staging и prod окружений
🟢 Веб-сервис с балансировкой н агрузки
🟢 Переиспользуемый модуль virtual-machine
🟢 Безопасная сеть: public/private subnet и bastion
🟢 Terraform quality gate

↘️ Забрать практикум + тренажёры

Тренажеры по безопасности веб-приложений:

🟢 Анализ безопасности CorpDocs
🟢 Уязвимый API
🟢 Микросервисы с макро-проблемами
🟢 Уязвимый GraphQL
🟢 Секретная уязвимость

↘️ Забрать практикум + тренажёры

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

✉️ Если у тебя уже куплен практикум Terraform или по безопасности веб-приложений — открыть доступ ко всем пяти тренажёрам можно за 5 000 ₽. Напиши нашим менеджерам в телеграм, они помогут.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🔥52
Как спрятать секреты, внедряя HashiCorp Vault

Выкатываешь релиз, открываешь логи - а там пароль от продовой базы. Или секреты лежат в репозитории, закоммиченные в application.yml. Переменные окружения в CI/CD создают ложное ощущение защищённости: GitLab маскирует их в интерфейсе, но при компрометации раннера все переменные видны в открытом виде.

Статические секреты создают постоянные риски для безопасности. Пароль от базы данных часто не меняется годами, потому что «если поменяем, всё упадёт». И он один на все окружения.

HashiCorp Vault решает эту проблему на уровне архитектуры, полностью исключая человеческий фактор.

Шаг 1. Интеграция с Kubernetes через Agent Injector

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

Добавляем аннотации к поду, и Vault монтирует секреты в его файловую систему:


apiVersion: apps/v1
kind: Deployment
metadata:
name: app-example
spec:
template:
metadata:
annotations:
vault.hashicorp.com/agent-inject: "true"
vault.hashicorp.com/role: "db-app"
vault.hashicorp.com/agent-inject-secret-db-creds: "database/creds/db-app"
vault.hashicorp.com/agent-inject-template-db-creds: |
{{- with secret "database/creds/db-app" -}}
export DB_USER="{{ .Data.username }}"
export DB_PASSWORD="{{ .Data.password }}"
{{- end }}
spec:
serviceAccountName: app-example
containers:
- name: app
image: app:1.0.0
command: ["/bin/sh", "-c", ". /vault/secrets/db-creds && ./main"]



⚠️ Важно: Аннотации размещаются строго в spec.template.metadata, а не на самом Deployment. Иначе инжектор просто проигнорирует под.
👍116🔥3💯1
Шаг 2. Подключаем GitLab CI

GitLab поддерживает ID Tokens (подписанные JWT), генерируемые для джоб. Vault верифицирует этот токен через JWKS-эндпоинт GitLab и выдает краткосрочный access-токен с политиками конкретной роли.

Для GitLab Premium/Ultimate доступна нативная интеграция:


deploy_job:
id_tokens:
VAULT_ID_TOKEN:
aud: https://vault.example.com
secrets:
DATABASE_PASSWORD:
vault: production/db:password@ops # Путь/к/секрету:ключ@метод
file: false



Для GitLab Community Edition (Free) используем стандартный CLI:


manual_authentication:
image: vault:latest
id_tokens:
VAULT_ID_TOKEN:
aud: https://vault.example.com
script:
- export VAULT_TOKEN="$(vault write -field=token auth/jwt/login role=myproject jwt=$VAULT_ID_TOKEN)"
- export PASSWORD="$(vault kv get -field=password secret/myproject/staging/db)"



Шаг 3. Внедряем динамические секреты

Вместо хранения постоянного пароля, мы создаем уникальную учетную запись для каждого пайплайна со временем жизни (TTL) 15 минут.

Настройка роли в Vault (для PostgreSQL):


vault write database/roles/my-db-role \
db_name="my-postgres-database" \
creation_statements="CREATE ROLE \"{{name}}\" WITH LOGIN PASSWORD '{{password}}' VALID UNTIL '{{expiration}}'; GRANT SELECT ON ALL TABLES IN SCHEMA public TO \"{{name}}\";" \
default_ttl="15m" \
max_ttl="30m"



В пайплайне запрашиваем данные:


DB_CREDS=$(vault read -format=json database/creds/my-db-role)
DB_USER=$(echo "$DB_CREDS" | jq -r '.data.username')
DB_PASS=$(echo "$DB_CREDS" | jq -r '.data.password')



Если учетные данные утекут, они автоматически станут недействительными через 15 минут. Злоумышленник не успеет предпринять никаких действий, а вам не придется вручную заниматься их экстренной заменой.

Пошаговый план внедрения:

1. Настроить Kubernetes auth method в Vault и привязать Service Account к роли.
2. Установить Vault Agent Injector через Helm-чарт для проксирования запросов от подов.
3. Настроить связку GitLab CI и Vault через JWT/OIDC (ID Tokens).
4. Перенести статические секреты в Vault KV engine, начиная с некритичных сервисов.
5. Перевести базы данных на динамические секреты, протестировав процесс на staging.

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

HashiCorp Vault - настройка кластера, политики, интеграции с БД и облаками
Kubernetes Admin - детальная работа с кластером, безопасность, networking
Gitlab CI - сложные пайплайны, интеграции, best practices
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥116👍5💯2
🔥 История трансформера: от Марковских моделей до современных LLM. Новое видео с Артуром Сапрыкиным уже на канале.

20 июля у Артура стартует интенсив «ИИ-агенты для инженеров». Подробности тут: https://clck.ru/3UTeAG

Делимся записью открытого практикума, где разобрали эволюцию языковых моделей, устройство трансформеров и принцип работы ИИ-агентов. Краткий конспект👇🏼

🟢 Языковая модель (LM) — математическая система (нейросеть или граф) для генерации текста. Первые LM решали задачи Т9 и перевода (программа PROMT).

🟢Марковские цепи — предсказывают следующее слово на основе вероятности перехода от текущег. Главные минусы: отсутствие глубокого контекста и непонимание синонимов.

🟢Word2Vec (2013) — прорывная модель, научившаяся кодировать смысл слов в векторы (геометрия смыслов).

🟢Трансформеры (2017) — архитектура с механизмом внимания (Attention). Работают с токенами (частями слов) и учитывают их порядок через позиционное кодирование.

🟢ChatGPT и RLHF — модель стала популярной благодаря RLHF (обучению на основе отзывов людей), что сделало ответы полезными и «человечными».

🟢Агенты и Reasoning — современные модели используют внешние инструменты (калькуляторы, поиск) и режим «размышления» (цепочку мыслей) для решения сложных задач.

🟢Масштаб — современные LLM (например, DeepSeek R1) имеют до 700 млрд параметров, требуя для работы мощных кластеров из видеокарт.

↘️ Смотреть в ВК
↘️ Смотреть в Youtube

Если тебе интересна тема ИИ-агентов и ты хочешь разобраться, как внедрить искусственный интеллект в разработку и автоматизацию инфраструктуры, то ждем тебя на живом интенсиве «ИИ-агенты для инженеров», где за 9 занятий ты пройдешь весь путь.

↘️ Узнать подробнее об интенсиве и записаться
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥114👍4
🟡 Анонс открытых практикумов на следующую неделю

1️⃣ Cisco Adaptive Security Appliance (ASA) Software: базовая настройка. Часть 2
Регистрация

Время проведения:
07 июля 2026, вторник, 19:00 по МСК

Программа практикума:
🟢Работа с виртуальными локальными сетями (VLAN);
🟢Управление динамической конфигурацией хостов (DHCP);
🟢Настройка сетевой трансляции адресов (NAT).

Кто ведёт?
Андрей Шабалин — Тренер Cisco / Huawei, инструктор академии Eltex и Астра-Университета
---------------------------------------------------------------------------------------

2️⃣ Работа с дисками в Linux
Регистрация

Время проведения:
8 июля 2026, среда, 20:00 по МСК

Программа практикума:
🟢Блочные устройства
🟢Little Endian, Big Endian
🟢Файловые системы

Кто ведёт?
Андрей Буранов — системный администратор в департаменте VK Play, 10+ лет опыта работы с ОС Linux, 8+ лет опыта преподавания. Входит в топ 3 лучших преподавателей образовательных порталов
---------------------------------------------------------------------------------------

3️⃣ Docker-образ весит 1.5 GB. Как похудеть?
Регистрация

Время проведения:
9 июля 2026, четверг, 19:00 по МСК

Программа практикума:
🟢Чистим историю: комбинация RUN команд в одну (убираем кеш apt).
🟢Multi-stage сборка: компилируем в одном контейнере, копируем бинарник в другой.
🟢Итог: образ с 1.5 GB → 50 MB за 15 минут.

Кто ведёт?
Дмитрий Куликов — DevOps-инженер с 7+ лет опыта в IT. Специализация: построение и автоматизация IT-инфраструктуры.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9
🔥 Победи в новом траблшутинге Nginx Reverse Proxy и выиграй доступ к одному из практикумов. Регистрация уже открыта.

Новый инцидент: высоконагруженный прокси-сервер перестал принимать и корректно перенаправлять запросы клиентов. Часть трафика теряется, часть уходит не туда, а команда уже на созвоне и ждёт объяснений.

Тебе предстоит подключиться к виртуальной машине Ubuntu 24.04 со сломанным Nginx и бэкенд-приложением на Go. Необходимо провести полную диагностику по логам, исправить конфигурацию Nginx и systemd-юнита, устранить проблемы с правами доступа и ресурсными лимитами, восстановить устойчивый автозапуск после перезагрузки и добиться ответа 200 OK при обращении к прокси-серверу.

Формат:

🟢 доступ к рабочей инфраструктуре
🟢 симулятор реального инцидента без искусственных ограничений
🟢 доступ к задаче открыт с 9 по 15 июля
🟢 в конце — эфир с разбором решения

🎁 Призы:

🏆 инженер, который решит задачу быстрее всех, получит доступ к одному из практикумов стоимостью до 30 000 руб. на выбор
🟢 среди остальных участников разыграем две годовые подписки на вебинары

↘️ Участвовать бесплатно

Восстанови работу прокси-сервера под нагрузкой и докажи, что готов к реальным авариям!
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥9👍2
Медленный старт контейнера
Оптимизация образов Docker и прогон через CI

Сборка пайплайна длится 10 минут, поды стартуют 30 секунд. Образы занимают под гигабайт, каждый новый релиз тянет все зависимости заново. При масштабировании приложение замедляется из-за долгого подъёма контейнеров.

Это следствие неоптимальной сборки образов. Многие используют один Dockerfile, который устанавливает все пакеты, копирует весь исходный код и собирает приложение в одном слое. В результате образ разрастается, слои не кэшируются, каждый запуск требует загрузки гигабайтов из registry.

В CI проблема усугубляется: без кэширования слоёв каждый пайплайн скачивает базовые образы и зависимости заново. Это увеличивает время выполнения и расходует ресурсы.

🛠Решение
Многоступенчатая сборка (multi-stage build) и правильная стратегия кэширования. Разделяем сборку и исполнение: в первой стадии компилируем приложение и собираем артефакты, во второй - копируем только то, что необходимо для работы.

Классический Dockerfile для Go-приложения:


FROM golang:1.26 AS builder
WORKDIR /app
COPY go.mod go.sum ./
RUN go mod download
COPY . .
# Флаги -s -w отсекают отладочную информацию, уменьшая бинарник
RUN CGO_ENABLED=0 GOOS=linux go build -ldflags="-s -w" -o myapp ./cmd/server

# Финальная стадия — distroless содержит ca-certificates и tzdata,
# но не содержит shell и пакетного менеджера
FROM gcr.io/distroless/static:nonroot
COPY --from=builder /app/myapp /myapp
ENTRYPOINT ["/myapp"]



В финальный образ попадает только скомпилированный бинарник и минимальный набор системных библиотек. Размер сокращается с ~800 МБ до ~15 МБ. Под стартует за секунды вместо десятков секунд.

Для интерпретируемых языков (Python, Node.js) принцип аналогичен. Например, для Python создаём виртуальное окружение на этапе сборки, где есть компиляторы для пакетов с C-расширениями, а в финальный образ переносим только готовое окружение без компиляторов и лишнего мусора:


# Стадия сборки. здесь есть компиляторы для пакетов с C-расширениями
FROM python:3.13-slim AS builder
WORKDIR /app
RUN apt-get update && apt-get install -y --no-install-recommends build-essential \
&& rm -rf /var/lib/apt/lists/*
RUN python -m venv /opt/venv
ENV PATH="/opt/venv/bin:$PATH"
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt

# Финальная стадия. чистый slim без компиляторов
FROM python:3.13-slim
WORKDIR /app
COPY --from=builder /opt/venv /opt/venv
ENV PATH="/opt/venv/bin:$PATH"
COPY app.py .
CMD ["python", "app.py"]



Теперь настраиваем кэширование в GitLab CI, чтобы не пересобирать зависимости при каждом коммите. Воспользуемся современным движком docker buildx, который умеет работать с кэшем напрямую в удаленном реестре (registry) без лишних движений вроде docker pull и docker tag:


stage: build
image: docker:latest
services:
- docker:dind
variables:
DOCKER_TLS_CERTDIR: "/certs"
DOCKER_IMAGE: $CI_REGISTRY_IMAGE:$CI_COMMIT_SHORT_SHA
DOCKER_CACHE: $CI_REGISTRY_IMAGE:cache
script:
# Логинимся в registry. без этого не пройдёт ни --push, ни --cache-to
- echo "$CI_REGISTRY_PASSWORD" | docker login -u "$CI_REGISTRY_USER" --password-stdin "$CI_REGISTRY"
# Инициализируем buildx-билдер с драйвером docker-container (умеет писать кэш в registry)
- docker buildx create --use
# Собираем образ, читая удалённый кэш и сохраняя новые слои в него же
- docker buildx build
--cache-from type=registry,ref=$DOCKER_CACHE
--cache-to type=registry,ref=$DOCKER_CACHE,mode=max
--tag $DOCKER_IMAGE
--tag $CI_REGISTRY_IMAGE:latest
--push .



Docker проверяет манифест удаленного кэша. Если в Dockerfile не изменились строки, влияющие на слой (например, requirements.txt или `go.mod`), тяжелые этапы установки зависимостей просто пропустятся.
🔥12👏63👍3
Дополнительный приём - разделение этапов внутри пайплайна, чтобы сборка запускалась только при изменении кода. Добавляем rules:changes в тот же джоб build, чтобы сборка запускалась только при изменении кода:


# ...весь script из блока 3 выше...
rules:
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- src/**/*
- go.mod
- go.sum
- requirements.txt
- if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH


Если изменения затронули только документацию или README - сборку можно пропустить.

Порядок действий для оптимизации:
1. Пересмотреть Dockerfile: вынести установку зависимостей в отдельный слой до копирования исходников, чтобы изменения кода не инвалидировали кэш.
2. Использовать минимальные базовые образы (`-slim` или `alpine`), если приложение не требует специфичных системных библиотек.
3. Внедрить многоступенчатую сборку, чтобы финальный образ содержал только исполняемые файлы, рантайм и необходимые артефакты.
4. Настроить GitLab CI с кэшированием слоёв через buildx (параметры --cache-from и `--cache-to`).
5. Для больших монорепозиториев добавить условные правила rules:changes, чтобы собирать только изменившиеся сервисы.

💡Эти изменения сокращают время пайплайна с 10 до 2–3 минут, а старт подов - до 2–3 секунд. Экономия ресурсов кластера и времени разработчиков очевидна.

Все нюансы сборки контейнеров, включая секьюрити, оптимизацию слоёв и работу с GitLab CI ты можешь найти на наших курсах. 🔥Открывай демодоступы бесплатно🔥 и начинай погружаться в технологию:

* Docker - устройство, сеть, хранение, продвинутые техники сборки
* Gitlab CI - пайплайны, артефакты, кэширование, интеграции
* Bash - скрипты для автоматизации сборки и деплоя
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥111
Keycloak: единая система авторизации вместо самописных решений в каждом сервисе

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

Практикум по Keycloak закрывает эту проблему: инженеры настраивают SSO, MFA и защиту API в Keycloak вместо самописной авторизации в каждом сервисе.

В программе:

🟢Проектирование и внедрение систем Single Sign-On (SSO) на базе Keycloak для корпоративных и микросервисных приложений.
🟢Настройка безопасной аутентификации пользователей с использованием протоколов OAuth 2.0, OIDC и SAML 2.0.
🟢Разработка кастомных сценариев аутентификации (Authentication Flows) и интеграция многофакторной защиты (MFA).
🟢Оптимизация и кастомизация интерфейсов авторизации Keycloak с использованием шаблонов FreeMarker и CSS.
🟢Интеграция бэкенд и фронтенд сервисов с Keycloak, включая валидацию JWT-токенов через JWKS.
🟢Администрирование и защита инстансов Keycloak: настройка политик паролей, сессий и защиты от Brute Force.
🟢Управление правами доступа и ролевыми моделями (RBAC) на уровне организации с использованием Realms.

↘️ Подробная о программа

В финальном проекте участники защищают распределённую микросервисную систему: разворачивают Keycloak, настраивают изолированный Realm с ролевой моделью, подключают MFA для администраторов, кастомизируют страницу входа и закрывают REST API проверкой подписи JWT.

Практикум уровня Middle. Требуются базовые навыки Docker, понимание HTTP/REST и опыт работы с curl/openssl. Отдельно мы добавили тренажёры — это более сложные практические задачи на инфраструктуре.

🎁 До 19 июля действует скидка 5 000 рублей для новых участников

↘️ Купить практикум Keycloak
↘️ Купить практикум Keycloak + тренажёры

Если вы DevOps-инженер, backend-разработчик или системный администратор и хотите свести несколько самописных систем авторизации к одному стандарту — этот практикум для вас🤍
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥11
🔥 Открыли демодоступ к новым практикумам июня 2026: Proxmox, Patroni, FreeIPA и другие

Заходите на платформу, активируйте доступ, начинайте проходить и выполнять задания.

🟢 Patroni
Настроите отказоустойчивый кластер PostgreSQL с автоматическим failover через Patroni, etcd и HAProxy.

🟢 Proxmox
Развернёте виртуальную инфраструктуру на Proxmox VE: кластер узлов, сети, хранилища и бэкапы.

🍻 FreeIPA
Поднимете централизованную систему идентификации для Linux-инфраструктуры: LDAP, Kerberos, DNS и управление доступом в одном месте.

🟢Атака на Active Directory
Пройдёте путь атакующего в домене Windows: разведка через LDAP, Kerberoasting, эскалация привилегий и закрепление в инфраструктуре.

🟢Docker Compose
Соберёте multi-container приложение с нуля: сети, volumes, зависимости между сервисами и продакшн-профили в одном файле.

🟢 Gateway API
Настроите маршрутизацию трафика в Kubernetes через Gateway API — преемника Ingress с более гибкими правилами и разделением ролей между командами.

🟢 Golang internal
Разберётесь, как устроен Go изнутри: планировщик горутин, garbage collector, работа с памятью и escape analysis.


🎁 В честь запуска — скидка -20% на эти программы до 31 июля

Как активировать демо:
🟢 Переходите по ссылке курса, доступ откроется автоматически всем зарегистрированным пользователям платформы
🟢 Слева вы увидите, какие модули и блоки открылись
🟢 Проходите в своём темпе, выполняйте задания и знакомьтесь с платформой

Проведите вечер с пользой 🤍
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥10👍32💯1
Linux Performance & HighLoad Fundamentals: тюнинг ядра вместо докупки серверов

Нагрузка выросла втрое, и через час падает база: OOM Killer выбрал не тот процесс, потому что oom_score_adj никто не выставил. Пакеты теряются на уровне ядра, диск отвечает с задержкой в разы выше нормы, а Docker-образ весит два гигабайта и собирается пять минут.

Практикум Linux Performance & HighLoad Fundamentals учит закрывать эти проблемы тюнингом системы, без докупки серверов: инженеры разбирают планировщик CFS, память, диск и сеть на реальных стендах с имитацией пиковой нагрузки.

В программе:

🟢Профилирование системных вызовов процессов с помощью strace и vmstat
🟢Изоляция ядер процессора и настройка CPU affinity через taskset
🟢Конфигурирование виртуальной памяти, swappiness и приоритетов выживания OOM Killer
🟢Тюнинг планировщиков ввода-вывода и параметров сброса грязных страниц
🟢Оптимизация параметров sysctl сетевого стека для предотвращения SYN drops
🟢Сборка оптимизированных multi-stage Docker-образов на Alpine Linux
🟢Настройка веб-сервера Nginx с поддержкой HTTP/3 QUIC и ECC-сертификатов

↘️ Подробная о программа

В финальном проекте участники оптимизируют медленно работающее веб-приложение в тяжёлом Docker-образе: пересобирают его на Alpine Linux до размера менее 45 МБ, настраивают Nginx на HTTP/3 с ECC-сертификатами, тюнингуют ядро под сетевую и дисковую нагрузку и подтверждают результат ростом RPS на нагрузочном тесте.

Практикум уровня Middle. Нужен базовый опыт администрирования Linux (Ubuntu/Debian), понимание TCP/IP и HTTP/TLS, навыки запуска контейнеров в Docker. Отдельно добавили тренажёры — более сложные практические задачи на инфраструктуре.

🎁 До 19 июля действует скидка 5 000 рублей для новых участников

↘️ Купить практикум
↘️ Купить практикум + тренажёры

Если ты DevOps-инженер, SRE или системный администратор и хочешь обрабатывать больше трафика на тех же серверах — этот практикум для тебя 🤍
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥92👍1
Please open Telegram to view this post
VIEW IN TELEGRAM
Траблшутинг Nginx Reverse Proxy открыт! Задача доступна всем, приступай к решению и поборись за главный приз

Формат участия:

🟢 доступ к рабочей инфраструктуре
🟢 симулятор реального инцидента без искусственных ограничений
🟢 доступ к задаче открыт с 9 по 15 июля
🟢 в конце — эфир с разбором решения

Тебе предстоит подключиться к виртуальной машине Ubuntu 24.04 со сломанным Nginx и бэкенд-приложением на Go. Необходимо провести полную диагностику по логам, исправить конфигурацию Nginx и systemd-юнита, устранить проблемы с правами доступа и ресурсными лимитами, восстановить устойчивый автозапуск после перезагрузки и добиться ответа 200 OK при обращении к прокси-серверу.

🎁 Призы:

🏆 инженер, который решит задачу быстрее всех, получит доступ к одному из практикумов стоимостью до 30 000 руб. на выбор
🟢 среди остальных участников разыграем две годовые подписки на вебинары

↘️ Участвовать бесплатно

Всем удачи 🤍
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥102
🟡 Анонс открытых практикумов на следующую неделю

1️⃣ Отправка событий безопасности из MS Windows в ELK-стек средствами Winlogbeat
Регистрация

Время проведения:
14 июля 2026, вторник, 19:00 по МСК

Программа практикума:
🟢Агент Winlogbeat: основные теоретические сведения
🟢Установка и базовая конфигурация ELK
🟢Настройка сбора событий безопасности c MS Windows

Кто ведёт?
Андрей Шабалин — Тренер Cisco / Huawei, инструктор академии Eltex и Астра-Университета
---------------------------------------------------------------------------------------

2️⃣ RAID массивы
Регистрация

Время проведения:
15 июля 2026, среда, 20:00 по МСК

Программа практикума:
🟢Некоторые уровни RAID массивов
🟢Виды RAID массивов
🟢Создание RAID массива и работа с ним

Кто ведёт?
Андрей Буранов — системный администратор в департаменте VK Play, 10+ лет опыта работы с ОС Linux, 8+ лет опыта преподавания. Входит в топ 3 лучших преподавателей образовательных порталов
---------------------------------------------------------------------------------------

3️⃣ IPTables-2
Регистрация

Время проведения:
16 июля 2026, четверг, 19:00 по МСК

Программа практикума:
🟢Перенаправление пакетов
🟢Работа с NAT
🟢Маркировка трафика
🟢Логирование пакетов
🟢Ограничения (rate limiting)
🟢Изменение свойств пакета (mangle)
🟢Работа со списками (IPSet)
🟢Создание собственных цепочек

Кто ведёт?
Николай Лавлинский — Технический директор в ООО “Метод Лаб”. Веб-разработчик более 15 лет. Спикер конференций HighLoad++, РИТ++
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
Делимся записью открытого практикума "Что такое ИИ-агенты и почему они сделали LLM полезным", где с Артуром Сапрыкиным разобрали, почему современные языковые модели — это больше, чем просто чат, как устроены ИИ-агенты и как они меняют подход к автоматизации.

20 июля у Артура стартует интенсив «ИИ-агенты для инженеров». Подробности тут: https://clck.ru/3UTeAG

Краткий конспект видео 👇🏼

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

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

🟢 Вспомогательные инструменты — это программные модули, которые система вызывает для работы: код для построения графиков, доступ к корпоративным системам или почтовым серверам.

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

🟢Долговременная память — помимо текущего контекста диалога, программы используют внешние хранилища и базы данных. Это позволяет им помнить предпочтения человека и специфику компании в течение длительного времени.

🟢Совместная работа систем — несколько цифровых помощников могут объединяться для решения одной задачи, где один ищет данные, другой их анализирует, а третий составляет итоговый отчет.

🟢Безопасность и мониторинг — чтобы предотвратить нежелательные действия, необходимо жестко ограничивать права доступа и использовать специальные инструменты для фиксации каждого шага программы. Для ответственных задач лучше применять заранее прописанные сценарии.

↘️ Смотреть в ВК
↘️ Смотреть в Youtube

Если тебе интересна тема ИИ-агентов и ты хочешь разобраться, как внедрить искусственный интеллект в разработку и автоматизацию инфраструктуры, то ждем тебя на живом интенсиве «ИИ-агенты для инженеров», где за 9 занятий ты пройдешь весь путь.

↘️ Узнать подробнее об интенсиве и записаться
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥92👍1
Когда Argo CD не синхронизирует состояние

Развернул приложение через Argo CD, всё зелёное, синхронизация прошла успешно. Через час заходишь - висит статус OutOfSync. Непонятно, кто и что изменил. Вроде бы репозиторий не трогали, но кластер думает иначе.

Или другая ситуация: разработчик запушил изменения, Argo CD их подхватил, но деплой завис, потому что какой-то ресурс уже существует и его нельзя обновить. А на следующий день выясняется, что кто-то из коллег выполнил kubectl apply вручную, и теперь состояние кластера расходится с Git-репозиторием.

🤔 Главная проблема - непонимание источника истины. В GitOps источник истины - это Git-репозиторий. Любое изменение в кластере, сделанное в обход Git, создаёт рассинхрон. Argo CD это видит, но не знает, что с этим делать, если политики не настроены правильно.

🛠Решение - корректная настройка политик синхронизации

Для каждого приложения в Argo CD можно определить, как именно оно должно синхронизироваться с репозиторием. Вот пример конфигурации с тремя ключевыми параметрами:


apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: guestbook
namespace: argocd
spec:
project: default
source:
repoURL: https://github.com/argoproj/argocd-example-apps.git
targetRevision: HEAD
path: guestbook
destination:
server: https://kubernetes.default.svc
namespace: guestbook
syncPolicy:
automated:
prune: false # Не удалять ресурсы, которых нет в Git
selfHeal: true # Автоматически возвращать состояние из Git при дрифте
syncOptions:
- CreateNamespace=true



🔹 `selfHeal: true` - самый важный параметр для борьбы с «ручными» правками. Он автоматически возвращает кластер к состоянию, описанному в Git, если кто-то изменил ресурс через kubectl edit или apply. Без этого параметра любое ручное вмешательство оставит приложение в статусе OutOfSync.
🔹 `prune: false` - осторожная настройка на этапе миграции. Мы запрещаем Argo CD удалять из кластера ресурсы, которые не описаны в Git. Это защита от случайной потери данных. Включать prune: true (что является стандартом для честного GitOps) стоит тогда, когда вы полностью уверены в чистоте своих манифестов.
🔹 `- CreateNamespace=true` - опция в syncOptions, которая указывает Argo CD автоматически создать целевой namespace в кластере, если его еще не существует. Избавляет от лишних ручных шагов.

😎Масштабируем подход: паттерн App-of-Apps
Для больших проектов используется паттерн App-of-Apps (приложение приложений). Это подход, при котором одно главное («рутовое») приложение Argo CD управляет набором других дочерних приложений.

Важно: Корневое приложение должно разворачивать дочерние манифесты строго в тот namespace, где работает сам контроллер Argo CD (обычно `argocd`), иначе система их не распознает.


apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: app-of-apps
namespace: argocd
spec:
project: default
source:
repoURL: https://github.com/org/infra.git
targetRevision: HEAD
path: apps/
destination:
server: https://kubernetes.default.svc
namespace: argocd # Обязательно указываем namespace Argo CD
syncPolicy:
automated:
prune: true
selfHeal: true



Каждое дочернее приложение в директории apps/ описывается собственным YAML-файлом и может иметь свои уникальные политики. Например, для баз данных можно оставить prune: false, а для легковесного фронтенда - prune: true.

Дополнительно внутри дочерних ресурсов можно использовать Sync Waves (волны синхронизации), чтобы управлять очередью развертывания. Например, сначала гарантированно поднять базу данных, а только потом - зависимый бэкенд:


metadata:
annotations:
argocd.argoproj.io/sync-wave: "1"



Ресурсы с меньшим значением волны (включая отрицательные числа) запускаются и проверяются на готовность раньше остальных.
👍31
Практический план внедрения
1. Соберите манифесты: определите все ресурсы, которые должны управляться через Argo CD, и перенесите их в Git.
2. Настройте политики безопасности: начните с selfHeal: true и prune: false для продакшена, чтобы защитить данные. На стейдже сразу включайте prune: true.
3. Подключите уведомления: настройте Argo CD Notifications в Slack или Telegram, чтобы мгновенно узнавать о сбоях синхронизации.
4. Внедрите App-of-Apps: централизуйте управление всеми сервисами кластера через один корневой репозиторий.
5. Оптимизируйте Webhooks: настройте webhook от GitHub/GitLab к Argo CD, чтобы синхронизация начиналась мгновенно при пуше, не дожидаясь стандартного 3-минутного опроса (polling).
6. Договоритесь на берегу: обучите команду главному правилу GitOps — никогда не менять ресурсы в кластере напрямую. Только через git commit и git push.

Если нарушить этот принцип, Argo CD либо молча перезапишет ваши изменения (при `selfHeal`), либо оставит кластер в перманентном рассинхроне. Единственный правильный подход: commit в Git, а не apply в консоли.

Чтобы освоить GitOps на практике, включая работу с Helm-чартами, настройку мультикластерного деплоя и управление конфигурациями, 🔥открывай демодоступы бесплатно🔥 и начинай погружаться в технологию:

* Argo CD - установка, настройка, App-of-Apps, интеграция с Helm
* Git - продвинутая работа с репозиториями, ветвление, стратегии слияния
* Helm - создание чартов, управление зависимостями, шаблонизация
🔥10