Ускоряем поставку с помощью Golden Paths и Policy as Code
By Mirko Peters ·
Добро пожаловать обратно в очередной глубокий разбор реалий современной разработки программного обеспечения. Если вы слушали наш подкаст, вы знаете, что мы часто обсуждаем f…
Automatically translated with AI from the original post. Read the English original

Добро пожаловать в очередной разбор реалий современной разработки программного обеспечения. Если вы слушаете наш подкаст, то знаете, что мы часто говорим о трениях, с которыми разработчики сталкиваются каждый день. В этой статье-спутнике мы продолжаем разговор из нашего последнего выпуска. Разбираем, почему современная поставка ПО часто выглядит тяжелее и сложнее, чем должна, и, что важнее, как передовые инженерные организации решают эту проблему с помощью Golden Paths и автоматизированного управления. Если вы еще не слушали, обязательно послушайте базовый выпуск: The DevOps Tax: Why Your Platform is Failing, там полный аудиоразбор.
Когда организации впервые переходят на современные облачные архитектуры, они часто внедряют чистую модель DevOps с огромным оптимизмом. Обещание было простым и революционным: дать небольшим кросс-функциональным командам возможность владеть своим ПО от идеи до продакшена. Принцип «создал — эксплуатируй» должен был устранить передачу задач между подразделениями, ускорить релизы и воспитать невероятный уровень ответственности. Однако по мере роста компаний и взросления облачных экосистем начинает незаметно и коварно съедать скорость инженерных команд «налог на DevOps». Мы называем это явление DevOps Tax: это огромная утечка продуктивности, которая возникает, когда высококвалифицированные инженеры тратят дни на борьбу с инфраструктурой вместо создания бизнес-функций.
Введение в DevOps Tax и когнитивную нагрузку инженеров
Чтобы по-настоящему понять, почему конвейеры поставки замедляются в корпоративной среде, нужно сначала разобраться, что отнимает время и внимание разработчиков. Современная разработка ПО уже не сводится к написанию бизнес-логики, проектированию реляционных моделей или созданию удобных пользовательских интерфейсов. Сегодня от разработчиков ожидают понимания огромного количества концепций распределенных систем. Им нужно настраивать контейнеры, осваивать оркестрацию Kubernetes, управлять облачной сетевой инфраструктурой, внедрять управление доступом на основе ролей (RBAC), описывать облачную инфраструктуру в виде кода, настраивать сложные конвейеры непрерывной интеграции и непрерывной доставки, конфигурировать стеки наблюдаемости, выполнять распределенную трассировку, обеспечивать соответствие требованиям безопасности, оптимизировать расходы на облако и планировать аварийное восстановление.
Ни одна из этих инфраструктурных задач напрямую не приносит ценности клиенту. Пользователь не заходит в приложение, чтобы похвалить организацию за остроумные Custom Resource Definitions в Kubernetes. Тем не менее эти операционные рутинные задачи поглощают удивительно большую долю инженерных ресурсов. Исследования и наблюдения в отрасли показывают, что до семидесяти четырех процентов мощности разработчиков может уходить на инфраструктурную рутину (toil). Так возникает серьезный кризис когнитивной нагрузки. От разработчиков требуют держать в голове десятки разрозненных инфраструктурных концепций еще до того, как они смогут развернуть базовый микросервис. Бесконечное переключение контекста неизбежно приводит к выгоранию разработчиков, нестабильным срокам поставки и, в конечном счете, к сильно сниженной отдаче от инвестиций в инженерию.
Почему классический DevOps ломается в масштабах предприятия
Почему модель, которая так хорошо работала в стартапе из десяти человек, катастрофически провалилась в корпорации на тысячу сотрудников? Ответ кроется в накапливающемся эффекте выбора и организационного разрастания. В небольшой команде все разделяют одну и ту же ментальную модель системы. Решения по инфраструктуре принимаются коллективно, документация естественным образом передается в ходе общения, а петли обратной связи чрезвычайно короткие.
Однако в масштабе предприятия автономные команды неизбежно начинают расходиться. Без централизованных ограничений и стандартизированных внутренних платформ команда A выбирает одну платформу CI/CD, а команда B — другую. Команда C настраивает мониторинг на основе Prometheus и Grafana, а команда D использует совершенно другой SaaS-инструмент для наблюдаемости. Каждая отдельная команда принимает решения, которые в изоляции кажутся логичными и эффективными. Однако в совокупности они создают лабиринт организационной сложности. Документация расходится по разным wiki, знания, передаваемые устно, оказываются заперты в головах старших инженеров, а введение новых сотрудников в курс дела занимает месяцы вместо дней. Организации перестают создавать программное обеспечение и вместо этого оказываются в плену операционного хаоса.
Как работают Golden Paths
Чтобы вытащить инженерные команды из этого болота сложности, передовые технологические организации обращаются к Platform Engineering и, в частности, к концепции Golden Paths. Golden Path — это определённый, заранее подготовленный и стандартизированный рабочий процесс, который ведёт разработчиков через наиболее типичные инженерные сценарии от создания до продакшена. Вместо того чтобы заставлять каждую команду с нуля проектировать собственные конвейеры развёртывания, инструменты проверки безопасности и конфигурации логирования, Golden Path предоставляет подобранный, проверенный на практике маршрут.
Ключевой момент: хорошо спроектированный Golden Path из коробки решает примерно восемьдесят процентов типовых сценариев развёртывания. Когда разработчику нужно запустить новый сервис, ему не требуется вручную настраивать сетевые правила, управление секретами или стратегии развёртывания. Он работает с внутренним порталом разработчика, выбирает стандартный шаблон сервиса, и платформа автоматически подготавливает всё в соответствии с организационными лучшими практиками. Разработчику нужно настроить только специфичный для бизнеса код приложения. Если возникает исключение, выходящее за рамки стандартных восьмидесяти процентов, это не означает, что система ломается; вместо этого запускается совместный процесс с командой платформы. Такой подход сохраняет автономность разработчиков, устраняя избыточную рутину и существенно сокращая количество инфраструктурных концепций, которые нужно освоить для выпуска программного обеспечения.
Трансформация управления с помощью Infrastructure as Code и Policy as Code
Автоматизация рабочих процессов — лишь половина дела. Организациям также необходимо поддерживать строгие стандарты безопасности, соответствия требованиям и архитектуры, не замедляя скорость разработки. Исторически управление опиралось на ручные проверки, контрольные точки безопасности и длительные процессы согласования, которые велись в таблицах, PDF-документах или очередях заявок. Такие ручные механизмы создают серьёзные узкие места, когда код ждёт проверки человеком, что полностью подрывает гибкость, которую должны были обеспечить облачные вычисления.
Platform Engineering решает эту проблему, смещая управление влево (shift left) за счёт Infrastructure as Code (IaC) и Policy as Code. Infrastructure as Code превращает управление инфраструктурой из ручных действий в портале в программное обеспечение с контролем версий и возможностью тестирования. Каждое изменение сетевой топологии, вычислительных кластеров или хранилищ отслеживается в git-репозиториях, проходит экспертную проверку и развёртывается через автоматизированные конвейеры. Это обеспечивает полную воспроизводимость и поддерживает безупречный журнал аудита.
Policy as Code делает эту трансформацию ещё на шаг дальше. Вместо того чтобы прятать правила соответствия в статичной документации, которую разработчики редко читают, политики безопасности и соответствия записываются как исполняемый код с использованием таких фреймворков, как OPA, или аналогичных инструментов валидации. Организации могут автоматически обеспечивать требования шифрования данных в покое, строгие правила сетевой сегментации, обязательные политики резервного копирования и стандарты тегирования ресурсов. Когда разработчики отправляют свой Infrastructure as Code, автоматизированные движки политик мгновенно проверяют конфигурацию на соответствие этим ограничениям. Соответствие требованиям перестаёт быть болезненной ретроспективной ручной проверкой и превращается в автоматическую, незаметную страховочную сетку.
Ускорение поставки и возврат продуктивности разработчиков
Сочетание Platform Engineering, продуманных Golden Paths, Infrastructure as Code и Policy as Code — это закономерный этап зрелости современной разработки и доставки ПО. Когда экспертиза по инфраструктуре сосредоточена в отдельной продуктовой команде платформы, разработчики освобождаются от тяжёлого бремени DevOps Tax. Вместо того чтобы днями настраивать манифесты Kubernetes или разбираться с разрешениями в сетевых настройках облака, они могут полностью сосредоточиться на решении бизнес-задач и выпуске функций, которые порадуют клиентов.
Когда управление встроено прямо в автоматизированные процессы, команды безопасности получают беспрецедентную уверенность в том, что базовые требования соответствия выполняются в каждом репозитории, и при этом не должны выступать в роли контролёров. В итоге ПО проходит путь от коммита до продакшена без задержек, удовлетворённость разработчиков заметно растёт, сроки онбординга резко сокращаются, а организации наконец могут эффективно наращивать инженерные мощности.
Чтобы глубже разобраться в этих идеях и послушать реальные примеры того, как platform engineering меняет организационную динамику, обязательно послушайте полный подкаст. Выпуск можно прослушать прямо на сайте, а полные заметки к шоу читайте по ссылке The DevOps Tax: Why Your Platform is Failing. Используйте силу платформ, избавьтесь от когнитивного шума и начните ускорять конвейер доставки уже сегодня!