Автоматизация развертываний API с помощью APIOps

Cлужба управления Azure API
Azure DevOps
Azure Pipelines

APIOps — это методология, которая применяет концепции GitOps и DevOps к развертыванию API. Как и DevOps, APIOps помогает участникам команды легко вносить изменения и развертывать их в итеративном и автоматизированном режиме. Эта архитектура демонстрирует, как улучшить весь жизненный цикл API и качество API с помощью APIOps.

Архитектура

Схема архитектуры для автоматизированных развертываний API с помощью APIOps в Azure.

Скачайте файл Visio для этой архитектуры.

Рабочий процесс

  1. Операторы API запускают конвейер средства извлечения для синхронизации репозитория Git с экземпляром Управление API и заполняют репозиторий Git Управление API объектами в требуемом формате.

  2. Если в экземпляре Управление API обнаружено изменение API, создается запрос на вытягивание (PR) для проверяемых операторов. Операторы объединяют изменения в репозиторий Git.

  3. Разработчики API клонируйте репозиторий Git, создайте ветвь и создайте определения API с помощью спецификации OpenAPI или средств их выбора.

  4. Если разработчик отправляет изменения в репозиторий, для проверки создается pr.

  5. Pr может быть автоматически утвержден или проверен в зависимости от требуемого уровня управления.

  6. После утверждения и объединения изменений конвейер публикации развертывает последние изменения в экземпляре Управление API.

  7. Операторы API создают и изменяют политики Управление API, диагностика, продукты и другие соответствующие объекты, а затем фиксируют изменения.

  8. Изменения проверяются, и они объединяются после утверждения.

  9. После объединения изменений конвейер публикации развертывает изменения с помощью процесса определения API.

Компоненты

  • Служба "Управление API Azure" создает совместимые современные шлюзы API для внутренних служб. Помимо вызовов API маршрутизации к серверным концам, эта платформа также проверяет учетные данные, применяет квоты использования и метаданные журналов.

  • Azure DevOps — это служба для управления комплексным жизненным циклом разработки, включая планирование и управление проектами, управление кодом и продолжение сборки и выпуска.

  • Azure Pipelines позволяет непрерывной интеграции (CI) и непрерывной доставке (CD) тестировать и создавать код и отправлять его в любой целевой объект.

  • Azure Repos — это набор средств управления версиями, включая стандартный Git, который можно использовать для управления кодом.

Альтернативные варианты

Это решение использует Azure Repos для предоставления функциональных возможностей Git, а Azure Pipelines предоставляет конвейеры. Вы можете использовать любые сопоставимые технологии.

Подробности сценария

APIOps использует управление версиями для управления API и создания аудита изменений в API, политиках и операциях.

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

Эта архитектура APIOps использует Azure Управление API в качестве платформы управления API. Azure DevOps упорядочивает управление API. Azure Repos предоставляет функциональные возможности Git, а Azure Pipelines создает конвейер CI/CD.

Потенциальные варианты использования

  • Любая организация, разрабатывающая и управляющая API
  • Строго регулируемые отрасли: страхование, банковское дело, финансы, правительство

Рекомендации

Эти рекомендации реализуют основные принципы платформы Azure Well-Architected Framework, набор руководящих принципов, которые можно использовать для улучшения качества рабочей нагрузки. Дополнительные сведения см. в статье Microsoft Azure Well-Architected Framework.

Безопасность

Безопасность обеспечивает гарантии от преднамеренного нападения и злоупотребления ценными данными и системами. Дополнительные сведения см. в разделе "Общие сведения о компоненте безопасности".

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

Чтобы убедиться, что экземпляры Управление API используют рекомендации по обеспечению безопасности, это решение можно расширить для применения рекомендаций ПО API с помощью сторонних средств и модульного тестирования. Teams может предоставить ранние отзывы через проверку pr, если предлагаемые изменения в API или политике нарушают стандарты.

Помимо задачи настройки разрешений репозитория, рассмотрите возможность реализации следующих мер безопасности в репозиториях Git, которые синхронизируются с Управление API экземплярами:

  • Проверка запроса на вытягивание (PR): используйте ветви и защитите ветви, представляющие состояние экземпляров Управление API от изменения, отправленные им напрямую. Требовать от PR по крайней мере одного рецензента для применения принципа четырех глаз.
  • Неизменяемый журнал. Можно разрешить только новые фиксации поверх существующих изменений. Неизменяемый журнал особенно важен для аудита.
  • Многофакторная проверка подлинности. Требуется, чтобы пользователи активировали двухфакторную проверку подлинности.
  • Подписанные фиксации. Разрешить только подписанные фиксации, которые не могут быть изменены после факта.

Оптимизация затрат

Оптимизация затрат заключается в сокращении ненужных расходов и повышении эффективности работы. Дополнительные сведения см. в разделе Обзор критерия "Оптимизация затрат".

  • Для оценки затрат используйте калькулятор цен Azure.

  • Управление API предлагает следующие уровни: потребление, разработчик, базовый, стандартный и премиум.

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

Эффективность работы

Оперативное превосходство охватывает процессы операций, которые развертывают приложение и продолжают работать в рабочей среде. Дополнительные сведения см. в разделе "Общие сведения о принципах эффективности работы".

APIOps может повысить производительность DevOps для разработки и развертывания API. Одним из наиболее полезных функций является возможность использовать операции Git для быстрого отката изменений, которые ведут себя неожиданно. Граф фиксации содержит все фиксации, поэтому он может помочь в анализе после смерти.

Операторы API часто управляют несколькими средами для одного набора API. Обычно это несколько этапов API, развернутых в разных экземплярах Управление API или в общем экземпляре Управление API. Репозиторий Git, который является единым источником достоверных данных, показывает, какие версии приложений в настоящее время развернуты в кластере.

Когда кто-то делает PR в репозитории Git, оператор API знает, что у них есть новый код для просмотра. Например, когда разработчик принимает спецификацию OpenAPI и создает реализацию API, они добавляют этот новый код в репозиторий. Операторы могут проверить pr и убедиться, что API, который был отправлен для проверки, соответствует рекомендациям и стандартам.

Оптимизация производительности

Уровень производительности — это способность вашей рабочей нагрузки эффективно масштабироваться в соответствии с требованиями, предъявляемыми к ней пользователями. Дополнительные сведения см. в разделе "Общие сведения о эффективности производительности".

APIOps имеет много преимуществ, но по мере роста ландшафтов Управление API поэтому сложность управления ими. Это решение позволяет решить такие проблемы и задачи:

  • Обзор всех сред и Управление API экземпляров.
  • Отслеживание критически важных изменений в API и политиках.
  • Создание тропы аудита для всех развернутых изменений.

Развертывание этого сценария

Развертывание этого решения включает следующие действия.

  • Разработайте API на портале или внесите изменения в спецификацию OpenAPI с помощью выбранного средства.

    • При внесении изменений на портале можно запустить средство извлечения для автоматического извлечения всех API и других соответствующих политик, операций и конфигураций из Управление API. Эти сведения можно синхронизировать с репозиторием Git.

    • При необходимости используйте интерфейс командной строки Azure DevOps для создания нового запроса на вытягивание.

  • Рабочий процесс извлечения включает следующие действия.

  • В нашем сценарии конвейер, скачивающий изменения на портале, на экземпляр Управление API имеет следующие этапы: средство извлечения сборки, создание артефактов на портале и создание ветви шаблона.

    • Средство извлечения сборки

      На этом этапе создается код средства извлечения.

    • Создание артефактов на портале

      На этом этапе выполняется средство извлечения и создаются артефакты, похожие на структуру репозитория Git, как показано на следующем снимке экрана:

      Снимок экрана: APIM-automation, в котором показаны apim-экземпляры и иерархия папок.

      • Создание ветви шаблона

        После создания артефакта на этом этапе создается pr с изменениями, извлеченными командой платформы для проверки.

        При первом запуске средства извлечения извлекает все данные из репозитория Git. Созданный pr-интерфейс будет иметь все API, политики, артефакты и т. д.

        Более поздние извлечения имеют только изменения, внесенные до извлечения в PR. Иногда изменения могут быть только в спецификации API, что относится к следующему примеру PR.

        Снимок экрана: пример запроса на вытягивание после извлечения, в котором показаны предлагаемые изменения в файле с именем

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

    Снимок экрана: пример запроса на вытягивание, в котором отображаются изменения содержимого в policy.xml и изменения только пробелов в других файлах.

  • После утверждения pr он активирует другой конвейер, который публикуется из Управление API на портал. В нашем примере он содержит следующие этапы: создатель сборки, терминатор сборки и публикация экземпляров APIM.

    Снимок экрана: этапы в APIM-publish-to-portal, конвейер.

    • Этап создателя сборки обрабатывает создание новых API.
    • Этап конца сборки обрабатывает любые удаления.
    • Этап публикации экземпляров APIM публикует изменения в Управление API экземпляре.

    Снимок экрана: задания в примере выполнения APIM-publish-to-portal конвейера.

    После успешного выполнения этого конвейера публикует изменения в экземпляре Управление API.

Соавторы

Эта статья поддерживается корпорацией Майкрософт. Первоначально он был написан следующими участниками.

Автор субъекта:

Чтобы просмотреть недоступные профили LinkedIn, войдите в LinkedIn.

Следующие шаги