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

Управление API Azure
Azure DevOps
Azure Pipelines
GitHub

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

Архитектура

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

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

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

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

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

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

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

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

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

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

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

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

Компоненты

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

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

    • Azure Pipelines — это облачная служба, которая обеспечивает непрерывную интеграцию и непрерывную доставку (CI/CD). В этой архитектуре он автоматизирует тестирование, сборку и развертывание изменений API в экземпляре управления API.

    • Azure Repos — это набор средств управления версиями, включая стандартный Git, который можно использовать для управления кодом. В этой архитектуре хранятся определения, политики и конфигурации API. Он служит единственным источником достоверной информации для всех изменений и обеспечивает аудируемость и совместную работу через pull-запросы.

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

Это решение поддерживает Azure Repos для предоставления функций Git и Azure Pipelines для рабочих процессов CI/CD.

Он также поддерживает GitHub для управления версиями и совместной работы, а также GitHub Actions для автоматизации конвейеров сборки, тестирования и развертывания.

Вы можете использовать любые сопоставимые технологии, обеспечивающие аналогичные возможности управления версиями и CI/CD.

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

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

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

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

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

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

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

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

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

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

Чтобы убедиться, что экземпляры управления API используют лучшие практики безопасности, это решение можно расширить для применения лучших практик API с использованием сторонних инструментов, не относящихся к Microsoft, и модульного тестирования. Команды могут предоставить раннюю обратную связь через проверку PR, если предлагаемые изменения в API или политике не соответствуют стандартам.

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

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

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

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

  • Используйте калькулятор цен Azure для оценки затрат на компоненты Azure в этой архитектуре.

  • Затраты на лицензирование Azure DevOps следует учитывать для команд, реализующих APIOps. Все пользователи, участвующие в процессе APIOps, должны иметь соответствующую лицензию Azure DevOps. Дополнительные сведения см. в разделе Цены Azure DevOps.

    Сведения о ценах и лицензировании при использовании GitHub см. в разделе цены на GitHub и лицензирование GitHub Enterprise.

Операционное превосходство

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

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

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

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

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

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

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

Для получения пошаговых инструкций по настройке конвейеров извлечения данных и публикации, см. документацию APIOps для Azure API Management.

Рабочий процесс развертывания включает:

  • Извлечение конфигураций API из управления API.
  • Создание pull request'ов для ревью.
  • Публикация утвержденных изменений с помощью потоков CI/CD.

Соавторы

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

Основные авторы:

  • Wael Kdouh | Старший главный архитектор решений
  • Ришаха Саха | Старший главный архитектор решений

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

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