Налаштування Platform Engineering підходу для DevOps

Розробники витрачають забагато часу на інфраструктурні завдання, відволікаючись від створення продукту. Ми налаштовуємо Platform Engineering підхід, перетворюючи DevOps на внутрішню платформу з self-service інструментами та golden path. Наша команда реалізує проєкт під ключ — від аудиту до впровадження та подальшої підтримки, забезпечуючи стабільну роботу й масштабування рішення разом із вашим бізнесом.
Часті запитання

Команди розробників витрачають години на завдання, які не пов'язані з продуктом: налаштовують локальне оточення, розбираються з деплоєм у staging, чекають, поки DevOps створить репозиторій або Kubernetes namespace. Platform Engineering — це відповідь на питання «як прибрати це тертя з повсякденного циклу розробки», не перетворюючи DevOps-команду на сервісний тікет-стол.

Ми застосовуємо цей підхід вже в сотні проєктів — від стартапів до enterprise. Суть: внутрішня платформа, яку DevOps будує як продукт для внутрішніх клієнтів-розробників. Не набір скриптів у shared папці, не wiki з інструкціями — а self-service інструментарій з певними гарантіями.

Проблеми з CI/CD

Типова біль: у компанії є GitLab CI з десятком .gitlab-ci.yml у різних репозиторіях, кожен написаний по-своєму. Десь використовується docker:dind, десь Kaniko, десь чистий shell. Коли змінюється базовий образ або registry — оновлювати потрібно всюди вручну. Новий проєкт запускається від двох тижнів: DevOps створює репозиторій, налаштовує pipeline, видає namespace у кластері, прописує secrets у Vault, додає моніторинг.

Platform Engineering вирішує це через стандартизацію деплою та автоматизацію на рівні платформи, а не окремих проєктів. Розробник отримує golden path — опініонований, попередньо сконфігурований шлях від коду до продакшену.

Компоненти Platform Engineering

Архітектура платформи залежить від зрілості організації, але типовий стек виглядає так:

  • Control plane платформи — найчастіше Backstage (CNCF проєкт від Spotify). Backstage служить порталом розробника (DevPortal): service catalog, software templates, TechDocs. Конфігурується через app-config.yaml, інтегрується з GitLab/GitHub, Kubernetes, Vault, PagerDuty.
---
# app-config.yaml — приклад інтеграції з GitLab і Kubernetes
integrations:
  gitlab:
    - host: gitlab.company.com
      token: ${GITLAB_TOKEN}
  kubernetes:
    serviceLocatorMethod:
      type: 'multiTenant'
    clusterLocatorMethods:
      - type: 'config'
        clusters:
          - name: production
            url: https://k8s.company.com
            authProvider: 'serviceAccount'
            serviceAccountToken: ${K8S_SA_TOKEN}
---
  • Provisioning шар — Crossplane або Terraform + atlantis/spacelift для self-service provisioning інфраструктури. Розробник відкриває PR з описом ресурсу (база даних, S3 bucket, черга) — платформа застосовує його автоматично.
  • Secrets management — HashiCorp Vault з Kubernetes auth method. Кожен сервіс отримує політику з мінімальними правами, токени ротуються через Vault Agent Injector або External Secrets Operator.
  • Observability за замовчуванням — кожен новий сервіс, створений через платформу, автоматично отримує: Prometheus scraping (через ServiceMonitor), structured logging у Loki, трейсинг через OpenTelemetry collector, базовий Grafana dashboard за шаблоном.

Побудова внутрішньої платформи

Починаємо з аудиту: розмовляємо з розробниками (не тільки з DevOps), щоб зрозуміти реальні вузькі місця. Де губиться час? Що блокує? На якому кроці найчастіше відкривають тікет у DevOps? Відповіді на ці питання визначають пріоритети першого етапу.

Перший інкремент завжди мінімальний. Не будуємо повну платформу одразу — беремо найболючішу точку і автоматизуємо саме її. Найчастіше це onboarding нового сервісу: створення репозиторію + CI pipeline + Kubernetes namespace + базові secrets.

Приклад template.yaml для Scaffolder
---
# template.yaml — scaffolding нового мікросервісу
apiVersion: scaffolder.backstage.io/v1beta3
kind: Template
metadata:
  name: microservice-nodejs
  title: Node.js Microservice
spec:
  parameters:
    - title: Service Configuration
      properties:
        serviceName:
          type: string
          pattern: '^[a-z][a-z0-9-]*$'
        team:
          type: string
        environment:
          type: array
          items:
            enum: [dev, staging, production]
  steps:
    - id: fetch
      action: fetch:template
      input:
        url: ./skeleton
    - id: gitlab-repo
      action: publish:gitlab
      input:
        repoUrl: gitlab.company.com?owner=${{ parameters.team }}&repo=${{ parameters.serviceName }}
    - id: create-namespace
      action: kubernetes:apply
      input:
        manifest: |
          apiVersion: v1
          kind: Namespace
          metadata:
            name: ${{ parameters.serviceName }}
            labels:
              team: ${{ parameters.team }}

Після scaffold розробник за кілька хвилин отримує репозиторій з готовим .gitlab-ci.yml, Dockerfile, Helm chart у charts/, catalog-info.yaml для реєстрації в Backstage і скелет застосунку з уже підключеним OpenTelemetry SDK.

Реальний кейс з нашої практики

Наш клієнт — продуктова компанія з ~15 розробниками і 2 DevOps. Кількість мікросервісів зросла до 30+, при цьому у кожного своя «традиція» деплою. Bottleneck став явним: DevOps брали участь у кожному релізі як обов'язкова ланка.

Перший місяць: стандартизували Helm charts у репозиторії company-charts, ввели єдиний values.yaml з обов'язковими полями (image.repository, image.tag, resources.requests, probes). Це одразу прибрало найчастіший тікет — «допоможи налаштувати chart».

Другий місяць: задеплоїли Backstage, додали всі існуючі сервіси в каталог через catalog-info.yaml. Підключили GitLab, Kubernetes, Grafana. Розробники отримали єдине вікно: статус деплою, логи, метрики, документація — все в одному місці.

Третій місяць: додали software template для створення нових сервісів. Час від «потрібен новий мікросервіс» до першого деплою в dev скоротився з 3 днів до 40 хвилин — у 108 разів швидше. Це на 95% швидше, ніж попередній процес.

Етапи роботи

  1. Аудит — інтерв'ю з командами, карта поточного developer journey, виявлення bottleneck'ів
  2. Проєктування — вибір стеку, дизайн golden path, домовленості про стандарти
  3. MVP платформи — мінімальний набір інструментів, що вирішує найгострішу біль
  4. Ітеративний розвиток — розширення функціональності за пріоритетами, зібраними від команд
  5. Документація та навчання — TechDocs у Backstage, воркшопи для розробників
  6. Передача — платформа переходить під ownership DevOps-команди замовника
Масштаб Оцінка строків
Стартап, до 10 розробників 2–4 тижні
Компанія, 10–50 розробників 1–2 місяці
Велика структура, 50+ розробників 2–3 місяці

Вартість MVP Platform Engineering — від 5000 до 15000 USD залежно від складності. Наші інженери мають 10+ років досвіду в DevOps і допомогли більш ніж 50 проєктам впровадити Platform Engineering. Згідно з опитуваннями організацій, які перейшли на платформний підхід, час виведення фіч на ринок скорочується на 40–60%, а задоволеність розробників (Developer Experience) зростає вдвічі. Наші клієнти підтверджують ці цифри: після впровадження кількість звернень до DevOps падає на 70%, а середня економія на DevOps-трудозатратах становить 2000–5000 USD на місяць.

Переваги Platform Engineering

Platform Engineering в 2 рази підвищує задоволеність розробників порівняно з традиційним DevOps. Крім того, згідно з опитуваннями, час виведення фіч скорочується на 40–60%.

Типові помилки при запуску Platform Engineering

  • Будувати платформу без спілкування з розробниками. Результат — інструмент, який технічно правильний, але не вирішує реальних проблем. Developer portal без контенту і без adoption — це просто ще один інструмент, який потрібно підтримувати.
  • Автоматизувати винятки, а не правило. Якщо 80% сервісів — Node.js, починати з Rust template — неправильно. Автоматизуй спочатку те, що використовується щодня.
  • Ігнорувати governance. Self-service не означає «роби що хочеш». Платформа повинна гарантувати, що кожен створений через неї сервіс відповідає стандартам безпеки: правильні resource limits, network policies, non-root контейнер. Це кодується в шаблонах, а не в code review.

Порівняння підходів: Platform Engineering vs традиційний DevOps

Критерій Традиційний DevOps Platform Engineering
Час на onboarding нового сервісу від 2 тижнів до 40 хвилин
Self-service для розробників ні (тікети) так (через портал)
Стандартизація деплою різна в кожному проєкті єдиний golden path
Навантаження на DevOps висока (реактивний режим) знижується в 3–5 разів

Що входить в роботу

  • Аудит поточної інфраструктури та developer journey
  • Дизайн golden path і вибір стеку
  • Впровадження Backstage та налаштування DevPortal
  • Налаштування CI/CD автоматизації та self-service provisioning
  • Створення документації в TechDocs
  • Проведення воркшопу для команди розробників
  • Підтримка на період трансферу знань

Хочете скоротити час релізів і позбавити команду від рутини? Оцінимо ваш проєкт — пишіть. Platform Engineering під ключ для вашої команди: за 2–4 тижні для стартапів, 1–2 місяці для компаній. Зв'яжіться з нами — обговоримо, як Platform Engineering підійде вашому стеку.

Наші компетенції:

Останні роботи

  • Розробка сайту компанії B2B ADVANCE
    Розробка сайту компанії B2B ADVANCE
    1542
  • Розробка веб-додатків для компанії FEEDME
    Розробка веб-додатків для компанії FEEDME
    1393
  • Розробка веб-сайту для компанії БЕЛФІНГРУП
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    1081
  • Розробка інтернет магазину для компанії FURNORO
    Розробка інтернет магазину для компанії FURNORO
    1368
  • Розробка логотипу компанії B2B Advance
    Розробка логотипу компанії B2B Advance
    815
  • Розробка веб-додатків для компанії Enviok
    Розробка веб-додатків для компанії Enviok
    1139