uk
Feedback
Библиотека девопса | DevOps, SRE, Sysadmin

Библиотека девопса | DevOps, SRE, Sysadmin

Відкрити в Telegram

Все самое полезное для девопсера в одном канале. Наши курсы: https://clc.to/ZJ7Z1w По рекламе: @proglib_adv Для обратной связи: @proglibrary_feeedback_bot РКН: https://gosuslugi.ru/snet/6798b4e4509aba56522d1787

Показати більше

📈 Аналітичний огляд Telegram-каналу Библиотека девопса | DevOps, SRE, Sysadmin

Канал Библиотека девопса | DevOps, SRE, Sysadmin (@devopsslib) у мовному сегменті Російська є активним учасником. На даний момент спільнота об'єднує 10 390 підписників, посідаючи 11 434 місце в категорії Технології та додатки та 61 255 місце у регіоні Росія.

📊 Показники аудиторії та динаміка

З моменту свого створення невідомо, проект продемонстрував стрімке зростання, зібравши аудиторію у 10 390 підписників.

За останніми даними від 28 серпня, 2026, канал демонструє стабільну активність. Хоча за останні 30 днів спостерігається зміна кількості учасників на -4, а за останні 24 години на -3, загальне охоплення залишається високим.

  • Статус верифікації: Не верифікований
  • Рівень залученості (ER): Середній показник залученості аудиторії становить 10.37%. Протягом перших 24 годин після публікації контент зазвичай збирає 4.23% реакцій від загальної кількості підписників.
  • Охоплення публікацій: В середньому кожен допис отримує 1 077 переглядів. Протягом першої доби публікація в середньому набирає 439 переглядів.
  • Реакції та взаємодія: Аудиторія активно підтримує контент: середня кількість реакцій на один пост – 1.
  • Тематичні інтереси: Контент зосереджений навколо ключових тем, таких як devops'a, навигация, скрипт, docker, git.

📝 Опис та контентна політика

Автор описує ресурс як майданчик для висловлення суб'єктивної думки:
Все самое полезное для девопсера в одном канале. Наши курсы: https://clc.to/ZJ7Z1w По рекламе: @proglib_adv Для обратной связи: @proglibrary_feeedback_bot РКН: https://gosuslugi.ru/snet/6798b4e4509aba56522d1787

Завдяки високій частоті оновлень (останні дані отримано 29 серпня, 2026), канал підтримує актуальність та високий рівень охоплення публікацій. Аналітика показує, що аудиторія активно взаємодіє з контентом, що робить його важливою точкою впливу в категорії Технології та додатки.

10 390
Підписники
-324 години
-107 днів
-430 день
Архів дописів
📍 Навигация: Вакансии • Задачи • Собесы 🐸 Библиотека devops'a #пульс_индустрии
📍 Навигация: ВакансииЗадачиСобесы 🐸 Библиотека devops'a #пульс_индустрии

🔧 Что на самом деле происходит, когда вы запускаете apt upgrade Вы набираете две команды, жмёте Enter и уходите пить кофе. Но за эти секунды система делает куда больше, чем кажется. 1. Сначала идёт apt update Это не обновление пакетов — это обновление *списков* пакетов. APT обходит все репозитории из /etc/apt/sources.list и скачивает свежие индексы. Без этого шага upgrade работает по устаревшей карте. 2. Разрешение зависимостей APT строит граф зависимостей: какие пакеты нужно обновить, какие версии совместимы, что тянет что за собой. Это NP-сложная задача в общем случае — и APT решает её эвристиками. Иногда неидеально. 3. Скачивание .deb-файлов Пакеты загружаются в /var/cache/apt/archives/. Если соединение оборвётся, то ничего страшного, при следующем запуске докачает. 4. Проверка подписей Каждый пакет проверяется по GPG-подписи. Это защита от подмены: если подпись не совпадает, то установка не пройдёт. 5. Распаковка и скрипты .deb это ar-архив, внутри которого лежат control.tar и data.tar. APT распаковывает файлы, а потом запускает скрипты: preinst → установка → postinst. Именно здесь может что-то пойти не так. 6. apt upgrade vs apt full-upgrade upgrade никогда не удаляет пакеты и не устанавливает новые зависимости, если это ломает что-то существующее. full-upgrade (он же dist-upgrade) — может. Он агрессивнее и умнее одновременно. Что может пойти не так - Конфликт версий библиотек - Новый конфиг поверх старого (dpkg спросит — не игнорируйте) - Обновление ядра без перезагрузки (старое ядро всё ещё работает до ребута) - held packages — пакеты на удержании, которые не обновятся без явного разрешения Полезные команды:
apt list --upgradable        # что будет обновлено
apt-get -s upgrade           # симуляция без изменений
/var/log/apt/history.log     # история всех операций
Две строчки в терминале и десятки процессов под капотом. Теперь вы знаете, что именно происходит за этим скромным [Y/n]. 📍 Навигация: ВакансииЗадачиСобесы 🐸 Библиотека devops'a #арсенал_инженера

👨‍💻 Инцидент на праздниках Январские праздники, 7:02 утра. Консьюмер не запустился вовремя из-за регламентных работ. За три
👨‍💻 Инцидент на праздниках Январские праздники, 7:02 утра. Консьюмер не запустился вовремя из-за регламентных работ. За три минуты простоя Kafka тихо удалила все сообщения. retention.bytes был настроен на 10 МБ, и брокер не пощадил ни одну проводку. Архитектор Альфа-Банка разобрал 5 реальных случаев из прода: как неправильный сайзинг топика, кривые параметры retention и слепое доверие к дефолтным настройкам приводят к потере данных в самый неподходящий момент. ➡️ Читать статью 📍 Навигация: ВакансииЗадачиСобесы 🐸 Библиотека devops'a

📈 Топ-вакансий для девопсов за неделю DevOps-инженер — удалёнка SRE-инженер — удалёнка DevOps (Авторизация SaaS) — до 350 000 ₽ и удалёнка ➡️ Еще больше топовых вакансий — в нашем канале Devops Jobs 🐸Библиотека devops'a #вакансия_недели

🔄 Обновление Ansible Вышел очередной минорный релиз Ansible Core v2.20.4. Что нового в ansible-test Теперь можно указывать т
🔄 Обновление Ansible Вышел очередной минорный релиз Ansible Core v2.20.4. Что нового в ansible-test Теперь можно указывать тестовые окружения более гибко через контейнерные и удалённые алиасы, не привязываясь к конкретной конфигурации. Плюс добавили поддержку Ansible Core CI прямо из GitHub Actions — если вы гоняете тесты в CI на GitHub, это упрощает настройку. Исправления Починили выполнение команд PowerShell через плагины подключений, которые не поддерживают stdin и pipeline. Раньше в таких сценариях команды могли не выполняться корректно. В ansible-connection убрали ошибки десериализации: объекты AnsibleTaggedObjects в ответах JSON-RPC теперь корректно конвертируются в обычные типы до передачи в модульный контекст. Модуль rpm_key переехал с утилиты gpg на библиотечный API librpm. Это даёт совместимость с PGP-ключами версии 6, которые gpg в ряде систем не поддерживает. Поиск конфигурации через config lookup теперь правильно использует предустановленные константы при темплейтинге. И небольшой фикс для тех, кто использует чистую Python-реализацию PyYAML: убрали трейсбек при парсинге YAML из строк. 📍 Навигация: ВакансииЗадачиСобесы 🐸 Библиотека devops'a #пульс_индустрии

💡 Linux, который хочет быть BeOS 23 марта 2026 года команда VitruvianOS опубликовала первый публичный релиз своей операционн
💡 Linux, который хочет быть BeOS 23 марта 2026 года команда VitruvianOS опубликовала первый публичный релиз своей операционной системы. Проект существует с 2019 года, но до этого момента разработчики намеренно не привлекали к нему широкое внимание. VitruvianOS построена поверх Linux-ядра, но с реализацией совместимости с API BeOS и Haiku. Это значит, что приложения, написанные для Haiku, могут запускаться как нативные Linux-процессы. Разработчики построили собственный слой Nexus, который выполняет ту же роль, что Binder в Android: управляет межпроцессным взаимодействием и событийной моделью. Вместо X11 или Wayland используется собственная графическая подсистема. Ядро собрано с real-time патчами для снижения задержек на десктопе. ➡️ Сайт проекта 📍 Навигация: ВакансииЗадачиСобесы 🐸 Библиотека devops'a #арсенал_инженера

👨‍💻 Переходим с Ingress на Gateway API ingress2gateway 1.0 это инструмент, который переводит Ingress-конфиги в Gateway API
👨‍💻 Переходим с Ingress на Gateway API ingress2gateway 1.0 это инструмент, который переводит Ingress-конфиги в Gateway API и сразу показывает, что не смог перевести автоматически. Основная идея: вы даёте ему Ingress-манифесты или указываете кластер, он отдаёт Gateway API YAML. У Ingress-NGINX, Kong, Istio, GCE и других контроллеров свои аннотации и CRD, и ingress2gateway умеет их читать и переводить в соответствующие конструкции Gateway API. Установка:
go install github.com/kubernetes-sigs/ingress2gateway@v1.0.0
# или
brew install ingress2gateway
Запуск:
# из файлов
ingress2gateway print --input-file my-manifest.yaml --providers=ingress-nginx > gwapi.yaml

# из неймспейса кластера
ingress2gateway print --namespace my-api --providers=ingress-nginx > gwapi.yaml

# из всего кластера
ingress2gateway print --providers=ingress-nginx --all-namespaces > gwapi.yaml
regex-матчи в Ingress-NGINX по умолчанию case-insensitive, поэтому инструмент добавит (?i) в начало паттерна. Скорее всего, вы захотите убрать это вручную. Вывод ingress2gateway v1.0 совместим с Gateway API v1.4. Инструмент следит за версиями Gateway API и обновляется вместе с ними. ➡️ Блог разработчиков 📍 Навигация: ВакансииЗадачиСобесы 🐸 Библиотека devops'a #арсенал_инженера

🔄 Обновление SysVinit SysVinit 3.16 это первый релиз за полгода. Больших изменений нет: авторы подчистили код и привели документацию в порядок. Что изменилось: Поправили опечатки и синтаксис в двух мануальных страницах — inittab и init. Туда же добавили описание того, как init читает директорию /etc/inittab.d/ — раньше это нигде не было задокументировано. Contributor avivdaum улучшил конвертацию юнит-файлов systemd в SysV-скрипты. Пригодится тем, кто работает в смешанных окружениях или переходит с systemd. Из кода убрали лишние отладочные и статусные сообщения при чтении /etc/inittab.d/, а в компоненте sulogin удалили неиспользуемые переменные. SysVinit продолжает жить в дистрибутивах без systemd — Devuan, antiX и других легковесных системах. ➡️ Источник 📍 Навигация: ВакансииЗадачиСобесы 🐸 Библиотека devops'a #пульс_индустрии

⚙️ systemd-nspawn: контейнеры, о которых вы не знали, что они уже у вас есть Пока все спорят, Podman лучше Docker или нет, в вашей системе уже лежит systemd-nspawn. Просто никто не сказал. Это системный контейнер прямо из коробки часть systemd. Никакого демона, никакого рантайма, никакой регистрации на Docker Hub. nspawn — это лёгкий контейнер на уровне ОС. Не Docker с OCI-образами, слоями, сетью, не VM с гипервизором и своим ядром. Что-то среднее: изолированный процесс со своим корнем файловой системы, PID-пространством и сетью. Ядро при этом общее с хостом. Когда использовать вместо альтернатив Docker/Podman когда нужны образы, реестры, оркестрация, микросервисы. nspawn когда нужно: • быстро поднять изолированное окружение для теста или сборки • запустить другой дистрибутив на том же хосте без VM • отлаживать chroot, но с нормальной изоляцией • не тащить Docker на минималистичный сервер Примеры команд Создаём минимальный Debian-контейнер:
debootstrap stable /var/lib/machines/mydebian
Запускаем:
systemd-nspawn -D /var/lib/machines/mydebian
Запускаем как полноценный systemd-контейнер:
systemd-nspawn -D /var/lib/machines/mydebian --boot --network-veth
Нет хайпа, нет логотипа с китом, нет конференций. Просто инструмент, который работает, весит ноль байт сверх того что уже есть, и не требует отдельного сервиса в продакшне. 📍 Навигация: ВакансииЗадачиСобесы 🐸 Библиотека devops'a #арсенал_инженера

🔄 Wayland 1.25 вышел Быстрый обзор свежего обновления Wayland. Что нового Документация переведена из DocBook в mdBook. Диале
🔄 Wayland 1.25 вышел Быстрый обзор свежего обновления Wayland. Что нового Документация переведена из DocBook в mdBook. Диалект Wayland XML, модель обновления контента и управление цветом теперь полностью задокументированы. Новый атрибут frozen для интерфейсов с несколькими родительскими интерфейсами. Новый запрос wl_surface.get_release для per-commit коллбэков освобождения буфера Функция wl_display_dispatch_pending_single() для диспетчеризации одного события Wayland 1.25 продолжает закрывать белые пятна в документации и добавляет низкоуровневые API, которых не хватало. ➡️ Источник 📍 Навигация: ВакансииЗадачиСобесы 🐸 Библиотека devops'a #пульс_индустрии

Команда Ghostty выпустила демо-проект Ghostling — рабочий терминал, уместившийся в один .c файл. Делают это не просто так, а
Команда Ghostty выпустила демо-проект Ghostling — рабочий терминал, уместившийся в один .c файл. Делают это не просто так, а показывают, как использовать libghostty в сторонних приложениях. libghostty — встраиваемая библиотека из ядра Ghostty с C и Zig API. Ghostling демонстрирует, что поверх неё можно собрать свой терминал с любым рендерером — хоть на OpenGL, хоть на чём угодно ещё. Что под капотом • Рендеринг через Raylib: 2D, без прямого GPU • Однопоточный, без зависимостей, даже без libc • VT-парсинг, управление состоянием, Unicode • SIMD-оптимизированный парсинг, 24-bit цвет, Kitty keyboard protocol, трекинг мыши ➡️ Репозиторий 📍 Навигация: ВакансииЗадачиСобесы 🐸 Библиотека devops'a #арсенал_инженера

❗️ Git считает chmod за изменение Сделали chmod -R 755 на проекте и git показывает 300 изменённых файлов. Код не трогали. Сейчас разберёмся почему так. Git отслеживает не только содержимое, но и исполняемый бит файла. Рекурсивный chmod меняет права с 644 на 755 у всех файлов. Git видит смену режима 100644 → 100755 и считает их изменёнными. Как починить:
git config core.fileMode false        # для текущего репозитория
git config --global core.fileMode false  # для всех реп на машине
Если права уже попали в staging:
git diff -p -R --no-color \
  | grep -E "^(diff|(old|new) mode)" \
  | git apply
С fileMode false git будет молча игнорировать и намеренные изменения исполняемого бита. Если в проекте есть деплой-скрипты, то стоит предупредить команду перед глобальным включением. 📍 Навигация: ВакансииЗадачиСобесы 🐸 Библиотека devops'a #root_prompt

🔄 Релизы недели Неделя была полна релизов и не только, обновляем в памяти. — Debian 13.4 — Вышел systemd 260 — GNOME 50 Toky
🔄 Релизы недели Неделя была полна релизов и не только, обновляем в памяти. — Debian 13.4 Вышел systemd 260GNOME 50 TokyoСиндром пятничного оффлайнаAnsible Automation Platform 2.4 уходит на покой 📍 Навигация: ВакансииЗадачиСобесы 🐸 Библиотека devops'a #дайджест_недели

🔥 CI/CD заслуживает нормального QA Docker, Jenkins, OpenShift — QA-инженеры наконец начали говорить на одном языке с девопса
🔥 CI/CD заслуживает нормального QA Docker, Jenkins, OpenShift — QA-инженеры наконец начали говорить на одном языке с девопсами. Автотесты в пайплайне, трассировка через микросервисы, логи в Kibana — это уже норма, а не экзотика. ➡️ Как выглядит современный QA изнутри 📍 Навигация: ВакансииЗадачиСобесы 🐸 Библиотека devops'a

👋 Ansible Automation Platform 2.4 уходит на покой Red Hat объявила дату окончания поддержки для Ansible Automation Platform
👋 Ansible Automation Platform 2.4 уходит на покой Red Hat объявила дату окончания поддержки для Ansible Automation Platform 2.4 — 30 июня 2026 года. Платформа вышла в июне 2023 года и стала первым релизом с Event-Driven Ansible в составе. Теперь пришло время переходить на актуальную версию. Рекомендуемая версия для обновления Ansible Automation Platform 2.6. Важный момент: прямое обновление с 2.4 на версии 2.7 и выше будет недоступно. Поэтому переход на 2.6 сейчас это правильная подготовка инфраструктуры к будущим релизам. ➡️ Источник 📍 Навигация: ВакансииЗадачиСобесы 🐸 Библиотека devops'a #пульс_индустрии

Почитали тут свежий отчёт по рынку ИИ-ускорителей в РФ: оказывается, 54% компаний тормозят внедрение ИИ исключительно из-за конских цен на инфраструктуру. Ну, то есть написать пет-проект с вызовом API это задача на вечер, а вот запустить агента в продакшн так, чтобы он не сжёг бюджет отдела за неделю — суровая инженерия. По сути, сейчас мало уметь собирать RAG. Нужно считать токены, настраивать time-travel дебаг в LangGraph и уметь роутить запросы на лету. Всё это мы учли в обновлённом курсе по разработке AI-агентов, где акцент сделан именно на AgentOps и жёсткий контроль ресурсов. Также в программе: — оценка качества, трейсинг и защита от деградации пайплайнов; — мультиагентные паттерны и интеграция по протоколу MCP; — локальный деплой Open Source под 152-ФЗ (когда данные нельзя выносить наружу). Кажется, это единственный адекватный roadmap по переходу от блокнотов к enterprise-решениям. Прямо сейчас можно урвать курс с увесистой скидкой (49 000 ₽ 62 990 ₽ за базовый тариф и 99 000 ₽ 124 990 ₽ за продвинутый трек), но стоит поторопиться — на потоке осталось всего 5 мест. 👉 Зафиксировать цену и начать собирать агентов, за которых не стыдно в проде

🏗 DevOps-вопрос с собеса Вам нужно выкатить одно и то же приложение на dev → staging → prod. Как вы это делаете? Подумайте:
🏗 DevOps-вопрос с собеса Вам нужно выкатить одно и то же приложение на dev → staging → prod. Как вы это делаете? Подумайте: как передать конфиг, если образ нельзя менять? Как откатиться, если что-то пошло не так? Как доказать, что в проде крутится именно то, что прошло тесты? ➡️ Ответ 📍 Навигация: ВакансииЗадачиСобесы 🐸 Библиотека devops'a #задача_со_звёздочкой

Давненько не было нормальных разборов по базам данных без воды По сути, когда речь заходит о масштабировании хранилищ, всё св
Давненько не было нормальных разборов по базам данных без воды По сути, когда речь заходит о масштабировании хранилищ, всё сводится к скучному пересказу официальной документации. Коллеги из AvitoTech решили пойти другим путём и 27 марта проводят митап, где покажут свои реальные шишки и технические решения. Можно прийти ногами к ним в офис, а можно просто открыть вкладку с трансляцией на втором мониторе. Что в программе: — как устроена защита чувствительных данных в DBaaS (Никита Жига выкатит внутренний чек-лист и покажет архитектуру); — в чём реальная разница между FoundationDB и Cassandra 5, если смотреть на практику и продакшн, а не на красивые статьи; — альтернативный путь масштабирования S3 (спойлер: пошли вразрез с привычными паттернами бигтеха, и это сработало). Честно говоря, доклад про S3 звучит интригующе — всегда полезно посмотреть, как пересобирают архитектуру, когда коробочные решения уже не тянут нагрузку. Регистрация на офлайн и онлайн тут 👈

⚙️ Безопасный дебаг прода в Kubernetes Типичная картина во время инцидента — инженер получает широкий доступ: cluster-admin, общий jump-бокс или долгоживущий SSH-ключ. У этого подхода два системных последствия: аудит теряет смысл, потому что непонятно, кто и что делал, а временные исключения тихо становятся постоянной нормой. Три принципа 1. Минимальные права через RBAC Вместо cluster-admin выдавать роль с конкретным набором действий, которые нужны дежурному. Привязывается к группе, а не к конкретному пользователю:
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
  name: oncall-debug
  namespace: payments
rules:
  - apiGroups: [""]
    resources: ["pods", "events"]
    verbs: ["get", "list", "watch"]
  - apiGroups: [""]
    resources: ["pods/log"]
    verbs: ["get"]
  - apiGroups: [""]
    resources: ["pods/exec", "pods/portforward"]
    verbs: ["create"]
  - apiGroups: [""]
    resources: ["pods/ephemeralcontainers"]
    verbs: ["update"]
RBAC умеет ограничивать, может ли пользователь запустить pods/exec, но не может ограничить, какие команды он выполнит внутри сессии. Это задача для отдельного слоя поверх RBAC. 2. Краткосрочные учётные данные, привязанные к личности Статичные kubeconfig с долгоживущими токенами — классический вектор компрометации. Цель: каждая сессия дебаггинга должна иметь учётные данные, которые истекают через 15-30 минут и однозначно идентифицируют конкретного человека. Два способа реализации. Вариант А — короткоживущие OIDC-токены. Большинство managed-кластеров это уже поддерживает. Достаточно настроить kubeconfig так, чтобы токен обновлялся автоматически, а не копировался вручную в конфиг:
users:
- name: oncall
  user:
    exec:
      apiVersion: client.authentication.k8s.io/v1
      command: cred-helper
      args: ["--cluster=prod", "--ttl=30m"]
Вариант Б — короткоживущие X.509-сертификаты. Если API-сервер доверяет клиентскому CA, можно выдавать временные сертификаты через CertificateSigningRequest API. Приватный ключ остаётся на машине инженера, в идеале в аппаратном токене.
openssl genpkey -algorithm Ed25519 -out oncall.key

openssl req -new -key oncall.key -out oncall.csr \
  -subj "/CN=user/O=oncall-payments"
После подписания CSR используем вместе с приватным ключом в kubectl. Через 30 минут сертификат протухает автоматически. 3. Just-in-time access gateway Это точка входа, которую разворачивают в кластере по запросу — на время сессии. Работает по SSH-протоколу. Инженер запрашивает доступ, получает короткоживущий OpenSSH user certificate, подключается. Gateway аутентифицирует пользователя, применяет политики и от его имени делает вызовы Kubernetes API. Сессия пишется в лог. После завершения гейт удаляется. RBAC для такого сценария выглядит так:
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
  name: jit-debug
  namespace: payments
rules:
  - apiGroups: [""]
    resources: ["pods", "pods/log"]
    verbs: ["get", "list", "watch"]
  - apiGroups: [""]
    resources: ["pods/exec"]
    verbs: ["create"]
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
  name: jit-debug
  namespace: payments
subjects:
  - kind: Group
    name: jit:oncall:payments
    apiGroup: rbac.authorization.k8s.io
roleRef:
  kind: Role
  name: jit-debug
  apiGroup: rbac.authorization.k8s.io
Имя группы jit:oncall:payments берётся из короткоживущего сертификата или OIDC-токена — так в логах всегда видно, кто именно и к чему имел доступ. Три принципа работают как слои: RBAC определяет, что разрешено; краткосрочные учётные данные убирают риск утечки; JIT gateway даёт полный аудит каждой сессии. Каждый из них можно внедрить отдельно, не переписывая всё сразу. ➡️ Блог разработчиков 📍 Навигация: ВакансииЗадачиСобесы 🐸 Библиотека devops'a #арсенал_инженера

Почитали тут свежий отчёт по рынку ИИ-ускорителей в РФ: оказывается, 54% компаний тормозят внедрение ИИ исключительно из-за конских цен на инфраструктуру. Ну, то есть написать пет-проект с вызовом API это задача на вечер, а вот запустить агента в продакшн так, чтобы он не сжёг бюджет отдела за неделю — суровая инженерия. По сути, сейчас мало уметь собирать RAG. Нужно считать токены, настраивать time-travel дебаг в LangGraph и уметь роутить запросы на лету. Всё это мы учли в обновлённом курсе по разработке AI-агентов, где акцент сделан именно на AgentOps и жёсткий контроль ресурсов. Также в программе: — оценка качества, трейсинг и защита от деградации пайплайнов; — мультиагентные паттерны и интеграция по протоколу MCP; — локальный деплой Open Source под 152-ФЗ (когда данные нельзя выносить наружу). Кажется, это единственный адекватный roadmap по переходу от блокнотов к enterprise-решениям. Прямо сейчас можно урвать курс с увесистой скидкой (49 000 ₽ 62 990 ₽ за базовый тариф и 99 000 ₽ 124 990 ₽ за продвинутый трек), но стоит поторопиться — на потоке осталось всего 5 мест. 👉 Зафиксировать цену и начать собирать агентов, за которых не стыдно в проде