Антипаттерн: управление ресурсами Edge без использования системы управления версиями

Вы просматриваете документацию по Apigee Edge.
Перейдите к документации по Apigee X.
Информация

Apigee Edge предоставляет множество различных типов ресурсов, каждый из которых выполняет определенную функцию. Некоторые ресурсы можно настраивать (создавать, обновлять и/или удалять) только с помощью интерфейса Edge, API управления или инструментов, использующих API управления, а также пользователям с необходимыми ролями и разрешениями. Например, настраивать эти ресурсы могут только администраторы организации, принадлежащие к определенной организации. Это означает, что конечные пользователи не могут настраивать эти ресурсы через порталы для разработчиков или любым другим способом. Например, в нем можно узнать:

  • Прокси API
  • Общие потоки
  • Продукты API
  • Кеш
  • KVM
  • Хранилища ключей и доверенных сертификатов
  • Виртуальные хосты
  • Целевые серверы
  • Файлы ресурсов

Хотя доступ к этим ресурсам ограничен, если авторизованные пользователи вносят в них изменения, старые данные просто перезаписываются новыми. Это связано с тем, что эти ресурсы хранятся в Apigee Edge только в текущем состоянии. Основными исключениями из этого правила являются прокси API и общие потоки.

Прокси API и общие потоки под контролем версий

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

Хотя прокси API и общие потоки управляются с помощью версий, если в существующую версию вносятся какие-либо изменения, выполнить откат невозможно, поскольку старые изменения просто перезаписываются.

Аудит и история

В Apigee Edge есть функции Аудит и История API, продуктов и организации, которые могут быть полезны при устранении неполадок. Эти функции позволяют просматривать информацию о том, кто и когда выполнил определенные операции (создание, чтение, обновление, удаление, развертывание и отмену развертывания) с ресурсами Edge. Однако если с каким-либо ресурсом Edge выполняются операции обновления или удаления, аудит не сможет предоставить вам более старые данные.

Антипаттерн

Управление ресурсами Edge (перечисленными выше) напрямую через интерфейс Edge или API управления без использования системы контроля версий.

Существует заблуждение, что Apigee Edge может восстановить ресурсы до их предыдущего состояния после изменений или удаления. Однако Edge Cloud не позволяет восстановить ресурсы в их предыдущем состоянии. Поэтому пользователь должен обеспечить управление всеми данными, связанными с ресурсами Edge, с помощью системы контроля версий, чтобы старые данные можно было быстро восстановить в случае случайного удаления или необходимости отменить изменения. Это особенно важно для рабочих сред, где эти данные необходимы для трафика во время выполнения.

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

Пример 1. Удаление или изменение прокси-сервера API

Если прокси-сервер API удален или в существующую версию внесены изменения, восстановить предыдущий код невозможно. Если прокси-сервер API содержит код на Java, JavaScript, Node.js или Python, который не управляется системой управления версиями (SCM) за пределами Apigee, может быть потеряно много результатов разработки.

Пример 2. Определение прокси API с помощью определенных виртуальных хостов

Срок действия сертификата на виртуальном хосте истекает, и этот виртуальный хост необходимо обновить. Если прокси API много, может быть сложно определить, какие из них используют этот виртуальный хост для тестирования. Если прокси API управляются в системе управления конфигурацией (SCM) за пределами Apigee, то поиск в репозитории будет простым.

Пример 3. Удаление хранилища ключей или доверенных сертификатов

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

Результат

  • Если какой-либо ресурс Edge будет удален, восстановить его и его содержимое из Apigee Edge будет невозможно.
  • Запросы API могут завершаться сбоем из-за непредвиденных ошибок, что приводит к перебоям в работе, пока ресурс не будет восстановлен до предыдущего состояния.
  • В Apigee Edge сложно искать взаимосвязи между прокси API и другими ресурсами.

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

  • Используйте любую стандартную систему управления конфигурацией в сочетании с конвейером непрерывной интеграции и непрерывного развертывания (CI/CD) для управления прокси API и общими потоками.
  • Используйте любую стандартную систему управления конфигурацией для управления другими ресурсами Edge, включая продукты API, кеши, хранилища пар "ключ-значение", целевые серверы, виртуальные хосты и хранилища ключей.
    • Если существуют какие-либо ресурсы Edge, используйте API управления, чтобы получить сведения об их конфигурации в виде полезной нагрузки JSON/XML и сохранить их в системе управления версиями.
    • Управляйте всеми новыми изменениями этих ресурсов в системе управления версиями.
    • Если вам нужно создать новые ресурсы Edge или обновить существующие, используйте подходящую полезную нагрузку JSON/XML, хранящуюся в системе управления исходным кодом, и обновите конфигурацию в Edge с помощью API управления.

* Зашифрованные пары "ключ-значение" нельзя экспортировать в виде обычного текста из API. Пользователь должен самостоятельно вести учет значений, которые вводятся в зашифрованные KVM.

Дополнительные материалы