Как справляться с неопределенностями при развертывании API?
July 22, 2024
Во время развертывания API могут возникать многочисленные неопределенности. Несмотря на тщательное тестирование и множество профилактических мер, в производственной среде все равно могут возникать непредвиденные проблемы, такие как задержки в сети, сбои в оборудовании или программном обеспечении серверов, ошибки в конфигурации и конфликты версий кода.
Для эффективного устранения этих потенциальных рисков и обеспечения плавного развертывания с минимальным негативным воздействием, необходимо реализовать ряд профилактических и оперативных мер. В этой статье обсуждаются важные роли, которые API7 Enterprise может играть в процессе развертывания API.
Как управлять и различать среды развертывания?
- Группы шлюзов: Распространенный подход к устранению неопределенностей в развертывании API — это принцип неизменности, при котором конфигурация и переменные окружения сервисной среды не могут быть произвольно изменены. В API7 Enterprise пользователи могут создавать несколько групп шлюзов, каждая из которых представляет собой фактическую среду развертывания сервиса, которая может включать несколько экземпляров шлюзов, обрабатывающих трафик.
Пользователям необходимо сначала создать шаблоны сервисов, которые состоят из нескольких маршрутов. Сервис — это абстрактная коллекция, основанная на фактических бизнес-потребностях, таких как сервисы, связанные с заказами. Маршруты в сервисе — это API, например, добавление заказа, запрос заказа, удаление заказа и т.д. Эти маршруты включают пути для сопоставления API и дополнительную логику обработки на шлюзе.
-
Контроль версий: Развертывание шаблона сервиса в группу шлюзов по сути является развертыванием API. При развертывании шаблона сервиса в группу шлюзов необходимо указать уникальный номер версии для текущей группы шлюзов. Строгий контроль версий гарантирует, что каждая развернутая версия сервиса уникальна и неизменна. После развертывания версии сервиса она не должна изменяться. Поэтому API7 Enterprise накладывает операционные ограничения на опубликованные сервисы, предотвращая добавление или изменение маршрутов в опубликованных сервисах; это конфигурация только для чтения. Если изменения необходимы, они должны быть внесены в шаблон, и новая версия должна быть опубликована.
-
Тестовая среда: Перед развертыванием сервисов в группу шлюзов можно провести тестирование в тестовой среде. Пользователи могут сначала развернуть созданные шаблоны сервисов в тестовую группу шлюзов, где они могут протестировать такие функции, как конфигурация маршрутов, управление доступом и ограничение скорости, а также убедиться, что бизнес-логика выполняется правильно.
Кроме того, пользователи могут намеренно вводить задержки и ошибки, чтобы протестировать поведение API в аномальных условиях, используя плагин fault-injection. После тестирования сервис в тестовой среде может быть синхронизирован с производственной средой, что гарантирует, что все конфигурации, за исключением окружения, остаются неизменными.
Как обрабатывать операционные ошибки в системе?
Для развертывания API, хотя решения могут требовать консенсуса всей команды, в конечном итоге будут некоторые исполнители для выполнения развертывания. Инженеры, ответственные за развертывание, могут быть важной частью процесса. Обычно развертывание API должно выполняться доверенными и опытными инженерами, которые знакомы с архитектурой системы и средой развертывания, что гарантирует, что они смогут спокойно справляться с проблемами во время развертывания.
-
Политики IAM: В реальных операциях системы действия, влияющие на стабильность производства, не ограничиваются развертыванием. От включения/отключения сервисов, настройки правил сопоставления маршрутов до изменения настроек в реестре вышестоящих сервисов, каждый шаг может быть потенциальным риском. Чтобы обеспечить безопасность и контроль развертывания API и последующих операций, реализация детализированных конфигураций разрешений имеет решающее значение. API7 Enterprise предлагает политики IAM, которые помогают организациям точно контролировать, кто может получить доступ к каким ресурсам, минимизируя права каждого пользователя и предотвращая несанкционированные действия с чувствительными ресурсами.
-
Аудит логов: Все операции в системе могут быть просмотрены в логах аудита, включая время, место и способ их выполнения. Если в системе возникает ошибка, можно быстро определить конкретного исполнителя, время выполнения и метод, что предоставляет сильные доказательства для отслеживания проблем и распределения ответственности. Это не только помогает своевременно исправлять ошибки и предотвращать их дальнейшее развитие, но и устанавливает эффективный механизм надзора внутри организации, побуждая каждого участника более осторожно относиться к своим операционным правам и обязанностям.
-
Откат версий: Откат версий является неотъемлемой частью развертывания API, гарантируя, что при возникновении проблем с новой развернутой версией можно быстро и безопасно вернуться к предыдущей стабильной версии. API7 Enterprise предлагает функциональность отката версий. Пользователям достаточно выбрать историческую версию, к которой они хотят вернуться, и выполнить операцию отката. Система автоматически заменит версию сервиса в группе шлюзов на указанную историческую версию. В этом процессе все конфигурации и переменные окружения будут восстановлены до состояния исторической версии, что обеспечивает стабильность и согласованность сервисной среды.
Что делать, если количество запросов API внезапно возрастает после развертывания?
-
Механизм плагинов: API7 Enterprise предлагает богатый набор плагинов, которые могут помочь вам эффективно предотвращать и реагировать на внезапные всплески запросов API. Например, плагины ограничения скорости (
limit-reqиlimit-count) контролируют скорость и количество запросов, чтобы предотвратить перегрузку сервиса, плагины разрыва цепи (api-breaker) автоматически прекращают запросы при сбое вышестоящих сервисов для защиты стабильности системы, а плагины кэширования (proxy-cache) кэшируют часто запрашиваемые данные, чтобы снизить нагрузку на вышестоящие сервисы. Вы можете настроить плагины на уровне группы шлюзов или маршрута сервиса в зависимости от конкретных бизнес-потребностей, и плагины будут активироваться по мере прохождения трафика запросов. -
Балансировка нагрузки: API7 Enterprise поддерживает балансировку нагрузки для экземпляров шлюзов и вышестоящих узлов. Балансировка нагрузки распределяет большое количество сетевых запросов между несколькими серверами или кластерами серверов для достижения сбалансированной нагрузки, повышения общей производительности системы и улучшения отказоустойчивости. API7 Enterprise Edition поддерживает различные стратегии балансировки нагрузки, обеспечивая стабильную работу системы в условиях высокой нагрузки.
-
Проверка состояния: Проверка состояния необходима для обеспечения нормального состояния вышестоящих узлов сервиса. Регулярно проверяя состояние вышестоящих узлов, шлюз автоматически помечает узлы как нездоровые и прекращает пересылку запросов на них, если зонды обнаруживают аномалии. Одновременно система перенаправляет трафик на другие здоровые узлы в соответствии с настроенной стратегией балансировки нагрузки, избегая прерывания сервиса.
-
Мониторинг и оповещения: API7 Enterprise предоставляет комплексные функции мониторинга и оповещений. Мониторинг ключевых показателей производительности API и данных в реальном времени, таких как скорость запросов, время отклика и частота ошибок, позволяет быстро понять состояние работы API и своевременно выявить потенциальные проблемы. Когда производительность API отклоняется от нормы или достигает предустановленных порогов, система активирует уведомления через электронную почту или Webhook, что позволяет соответствующим сотрудникам оперативно реагировать и устранять проблемы. Этот механизм мониторинга и оповещений в реальном времени помогает сократить время реагирования и повысить стабильность и доступность системы.
Как минимизировать неопределенности и ошибки при ручном развертывании?
-
Открытые API: API7 Enterprise предлагает полный набор открытых API и соответствующую документацию, включая объяснения каждого параметра запроса API, примеры запросов, права IAM, связанные с API, и информацию об ошибках, соответствующую различным кодам состояния ответа, что помогает быстро понять и интегрировать API в автоматизированные рабочие процессы.
-
Инструменты декларативной конфигурации: Если вы используете GitOps, подход к декларативной конфигурации API на основе кода, вы также можете использовать инструмент декларативной конфигурации ADC (APISIX Declarative CLI), предоставляемый API7.ai, для достижения возможностей GitOps, интегрированных в ваш CI/CD конвейер.
Итог
API7 Enterprise предлагает комплексные и эффективные решения для неопределенностей в процессе развертывания API благодаря мощному управлению несколькими группами шлюзов, контролю версий, проверке тестовой среды, а также полному управлению правами и механизмам отката версий, помогая предприятиям достичь эффективного, стабильного и безопасного развертывания и управления сервисами API.
