Предоставление разработчикам возможности самостоятельного обслуживания с помощью guardrails

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

С самообслуживанием с guardrails команды разработчиков сохраняют автономию, чтобы независимо принимать решения о разработке. Автоматизация и политика помогают заинтересованным лицам обеспечить правильное управление безопасностью, соответствием, операциями, стандартами и затратами. Включение этой автоматизации требует совместной работы между командами, чтобы разработчики, операторы и специалисты могли сделать больше, не жертвуя необходимым управлением. Затем разработчики могут сосредоточиться на предоставлении бизнес-ценности как можно быстрее.

[Мы говорим разработчикам,] не беспокойтесь о том, как все работает, просто переключите их на или выключите, заполните его, поместите строку в любое нужное действие, и это в основном самообслуживание в этом отношении, где у них есть файл чтения, и они имеют входные данные, выходные данные и они могут поместить в любом из них. - Даниэль, облачная инженер, Компания Media Fortune 500

Цель предоставления самообслуживания для ваших проложенных путей заключается в сокращении нагрузки разработчика, а также обеспечении видимости для команд разработки, операций и управления. Идея заключается в том, что вы создаете интерфейс для данной задачи, которая имеет минимальную кривую обучения, благодаря отчасти ее базовым возможностям автоматизации и агрегирования данных. Помимо таких действий, как подготовка инфраструктуры, эти возможности могут обеспечить доступ к критически важным возможностям для наблюдения, политики, управления инцидентами и т. д. Идея распространяется на обнаружение и совместное использование внутренних API, пакетов SDK, а также общих средств и служб. Эти возможности снижают нагрузку, чтобы команды разработчиков могли сосредоточиться на том, чтобы сделать все возможное.

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

Внутренние платформы разработчиков предоставляют аналогичные возможности для цифровых магазинов бизнес-бизнеса. Цифровые магазины по сути предназначены для самостоятельного обслуживания своих клиентов. Они могут обрабатывать больше пропускной способности, чем традиционные фронты магазина, потому что они предоставляют способы обнаружения и выполнения предметов, которые интересны без необходимости говорить с кем-либо. Используя эту аналогию, разработчики являются клиентом и внутренней платформой разработчиков предоставляют аналогичные возможности самообслуживания. Так же, как розничный магазин, операторы, инженеры платформы и другие роли, а затем настройка каталога элементов разработчиков могут запрашивать, которые предназначены для размещения организационных охранников.

Например, вы можете подумать о разработчике, запрашивающего доступ к новому инструменту, как если бы они делали цифровой заказ на магазин. Как и заказ, после отправки запроса разработчик хочет иметь возможность отслеживать ход выполнения и знать, когда оно завершено. За кулисами запрос должен автоматически направляться в правильный поставщик выполнения, чтобы удовлетворить потребность. Вы можете рассматривать одну из систем непрерывной интеграции и доставки (CI/CD) в качестве одного поставщика выполнения, средства GitOps или предварительной платформы приложений как секунду, а также средства автоматизации рабочих процессов для ручных процессов в качестве третьего. Во всех случаях разработчик может самостоятельно обслуживать элементы из четко определенного каталога так же.

Использование всего в качестве шаблона кода

Использование инфраструктуры в качестве кода (IaC) с помощью конвейеров непрерывной доставки (CD) и средств GitOps является важной частью включения самообслуживания. IaC с CD позволяет использовать Bicep, Terraform, Helm диаграммы и другие средства для создания и уничтожения облачных ресурсов по требованию. Так как конфигурация облачной инфраструктуры управляется так же, как код в репозитории исходного кода, вы можете применить все преимущества репозитория Git, такие как безопасность и аудит.

Подготовка общей инфраструктуры и инструментов не является единственным преимуществом подхода IaC. Вы можете адаптировать шаблон кода в качестве кода для других сценариев, включая безопасность как код и политику в виде кода (с помощью таких средств, как Политика Azure и агент Open Policy). Следуя этому методу, файл конфигурации, обычно YAML или JSON, отправляется в репозиторий, в какой момент рабочий процесс активируется, обрабатывающий файл. Эти файлы могут быть репозиторием приложений, например dependabot.yml или CODEOWNERS, или они могут храниться в отдельном центральном репозитории. Вы даже можете расширить это в собственных сценариях, чтобы действительно сделать все как код (EaC) реальностью.

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

Создание правильных шаблонов запуска и обеспечение правильного управления

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

Мы создадим модули для наших [разработчиков]... поэтому вместо того, чтобы писать или беспокоиться о любой серверной части, все, что им нужно сделать, это беспокоиться о коде приложения. - Даниэль, облачная инженер, Компания Media Fortune 500

Объедините IaC, EaC и шаблоны приложений в специально разработанное решение как код (EaC), которое распространяется на другие действия, такие как создание репозитория исходного кода, создание примера кода или предоставление конфигурации и пример кода для рекомендуемых средств наблюдения. Затем эти шаблоны приложений IaC, EaC и приложения могут храниться или ссылаться из центрального защищенного расположения, например репозитория, каталога в средах развертывания Azure (ADE) или Реестр контейнеров Azure (ACR) для облачного собственного облака.

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

Рисунок проектирования платформы начинается правильно и остается правильным обзором шаблона.

Шаблоны упрощают разработку с помощью автоматизированных, безопасных методик

Используйте шаблоны приложений для начальной загрузки определенных проложенных путей для нескольких ключевых решений и действий, которые разработчики принимают в ходе проекта. Запустите правильные шаблоны, создайте безопасные, управляемые методики разработки и позволяет разработчикам быстро приступить к работе, обеспечивая автоматизацию, которая предоставляет доступ к необходимым средствам, настраивает конвейеры CI/CD, подготавливает инфраструктуру и стек приложений и настраивает репозиторий с исходным кодом, который включает необходимые пакеты SDK или ссылки на API.

Если эти шаблоны приложений ссылаются на другие централизованные шаблоны (например, IaC), каждая из этих отдельных стандартных блоков становится правильными шаблонами собственных. Эти шаблоны являются центральными для обеспечения самостоятельного взаимодействия, так как они не только определяют выходные данные, но и доступные варианты, которые разработчики выбирают.

Шаблоны обеспечивают управление, безопасность и оптимизацию затрат

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

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

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

Диаграмма собственного пути

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