Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
APIOps — это методология, которая применяет концепции GitOps и DevOps к развертыванию API. Как и DevOps, APIOps помогает участникам команды легко вносить изменения и развертывать их в итеративном и автоматизированном режиме. Эта архитектура демонстрирует, как улучшить весь жизненный цикл API и качество API с помощью APIOps.
Архитектура
Скачать файл Visio этой архитектуры.
Рабочий процесс
Операторы API запускают конвейер извлечения для синхронизации репозитория Git с экземпляром службы управления API и заполнения репозитория Git объектами управления API в требуемом формате.
Если в экземпляре API Management обнаружено изменение API, создается запрос на вытягивание (PR) для проверки операторами. Операторы объединяют изменения в репозиторий Git.
Разработчики API клонируют репозиторий Git, создают ветвь и создают определения API с помощью спецификации OpenAPI или инструментов на их выбор.
Если разработчик отправляет изменения в репозиторий, для проверки создается pr.
Pr может быть автоматически утвержден или проверен в зависимости от требуемого уровня управления.
После утверждения и объединения изменений конвейер публикации развертывает последние изменения в экземпляре управления API.
Операторы API создают и изменяют политики управления API, диагностики, продукты и другие соответствующие объекты, а затем применяют изменения.
Изменения проверяются, и они объединяются после утверждения.
После объединения изменений конвейер публикации развертывает изменения с помощью процесса определения 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, войдите в свою учетную запись.
Следующие шаги
- APIOps для Azure API Management
- CI/CD для управления API с помощью шаблонов Azure Resource Manager
- Обзор GitOps