Микросервисы и API (сокращение от Интерфейсы программирования приложений) стали практически обыденными в устойчивой современной разработке приложений.
API приводят микросервисы (архитектурное решение, структурирующее приложение на небольшие, самодостаточные и управляемые сервисы/части) и определяют, как потребитель (API) может взаимодействовать и использовать базовый сервис.
Для бизнеса и других организаций API стали ядром стратегий цифровой трансформации. Рост использования API привел к увеличению использования разработчиками решений по управлению API для публикации своих API для общественности или внешних разработчиков, внутренних разработчиков, а также других партнеров.
Инструменты управления API могут помочь вам:
- Экспонировать микросервисы как управляемые API.
- Объединять несколько микросервисов для экспонирования как API.
- Применять безопасность к внутренним и внешним микросервисам.
- Экспонировать устаревшие сервисы как современные API.
- Получать бизнес-инсайты из потребления микросервисов и API, и многое другое.
Ищете ли вы открытое API-решение для управления в вашей компании? Тогда этот гид создан специально для вас, продолжайте читать.
Ниже мы поделились 10 лучшими открытыми шлюзами API и решениями по управлению API, которые вы можете использовать в своей ИТ-инфраструктуре. Обратите внимание, что следующий список организован без определенного порядка.
1. Шлюз Kong (OSS)
Шлюз Kong (OSS) – это популярный, открытый и передовой API-шлюз, построенный для облачных нативных приложений, который может работать на любой платформе.
Он написан на языке программирования Lua и поддерживает гибридную и мультиоблачную инфраструктуру, оптимизирован для микросервисов и распределенных архитектур.
В своей основе Kong создан для высокой производительности, расширяемости и переносимости. Kong также легковесен, быстр и масштабируем. Он поддерживает декларативную конфигурацию без базы данных, используя только хранение в памяти, а также нативные CRD Kubernative.

Kong включает балансировку нагрузки (с различными алгоритмами), ведение журнала, аутентификацию (поддержка OAuth2.0), ограничение скорости, преобразования, живое мониторинг, обнаружение служб, кэширование, обнаружение сбоев и восстановление, кластеризацию и многое другое. Важно, что Kong поддерживает кластеризацию узлов и функций без сервера.
Он поддерживает настройку прокси для ваших служб и обеспечивает их по SSL или использует WebSockets. Он может балансировать трафик через реплики ваших служб, контролировать доступность ваших служб и соответственно настраивать балансировку нагрузки.
Kong поставляется с интерфейсом командной строки, который позволяет управлять кластером Kong из командной строки. Кроме того, Kong легко расширяется с помощью плагинов и различных видов интеграций. Его можно управлять с помощью его RESTful API для максимальной гибкости.
2. Tyk
Tyk (произносится Taik) – это мощный, легкий и полнофункциональный API-шлюз с открытым исходным кодом, разработанный с нуля с использованием языка программирования Go. Он облачно-ориентированный и высокопроизводительный с легко расширяемой и подключаемой архитектурой на основе открытых стандартов.
Он может работать независимо и требует только Redis в качестве хранилища данных. Он позволяет пользователям безопасно публиковать и управлять различными службами, включая устаревшие, REST и GraphQL (поддерживает GraphQL из коробки).
Tyk обладает множеством функций, включая различные методы аутентификации, квоты, ограничение скорости, контроль версий, уведомления и события, мониторинг и аналитику. Он также поддерживает обнаружение служб, преобразования на лету и виртуальные конечные точки, а также позволяет создавать API-мокапы перед выпуском.

Tyk поддерживает документацию API и предлагает портал разработчика API, похожий на CMS (система управления контентом), где вы можете публиковать свои управляемые API, а сторонние разработчики могут регистрироваться, записываться в ваши API и управлять своими собственными ключами.
Важно, что существует только одна версия API-шлюза Tyk, и она на 100% является открытым исходным кодом. Независимо от того, являетесь ли вы пользователем Community Edition или предприятием, вы получаете тот же API-шлюз.
Он поставляется со всеми возможными компонентами, необходимыми для полной используемости, без блокировки функций и без черного ящика. С Tyk вы точно знаете, как обрабатываются ваши данные.
3. KrakenD
Также написанный на Go и созданный с учетом производительности, KrakenD является высокопроизводительным открытым исходным кодом, простым и подключаемым API-шлюзом, разработанным с использованием бессостоятельной архитектуры. Он может работать везде и не требует базы данных для работы. У него простая конфигурация и поддерживает неограниченное количество конечных точек и бэкэндов.
KrakenD имеет функции мониторинга, кэширования, квоты пользователей, ограничения по скорости, качества обслуживания (параллельные вызовы, аварийный выключатель и тайм-аут с гранулярными настройками), преобразование, агрегацию (объединение источников), фильтрацию (белый и черный список) и декодирование.
Он предлагает прокси-функции, такие как балансировка нагрузки, преобразование протокола и Oauth; и функции безопасности, такие как SSL и политики безопасности.

Вы можете настроить поведение API-шлюза вручную или с помощью KrakenDesigner, графического интерфейса, который позволяет вам визуально проектировать своё API с нуля или возобновить существующее. Кроме того, расширяемая архитектура KrakenD позволяет добавлять дополнительные функциональности, плагины, встроенные скрипты и промежуточное программное обеспечение без изменения его исходного кода.
4. Платформа API Gravitee.io
Gravitee.io – это платформа управления API с открытым исходным кодом на языке Java, простая в использовании, которая помогает организациям обеспечить безопасность, публикацию, анализ и документирование своих API.

Она поставляется с тремя основными модулями:
- Управление API (APIM): открытое, простое, но мощное, гибкое, легковесное и быстрое решение для управления API (APIM), разработанное для того, чтобы ваша организация имела полный контроль над тем, кто, когда и как получает доступ к вашим API.
- Управление доступом (AM): гибкое, легковесное, универсальное и простое в использовании решение для управления идентификацией и доступом с открытым исходным кодом. Оно основано на протоколах OAuth2/OpenID Connect и действует как посредник по идентификации. Он предоставляет централизованный сервис аутентификации и авторизации для обеспечения безопасности ваших приложений и ваших API.
- Система оповещений (AE): модуль, который позволяет пользователям настраивать оповещения и получать уведомления для легкого и эффективного мониторинга их платформы API. Он поддерживает многоуровневые уведомления, обнаружение подозрительного поведения и многое другое.
Gravitee.io поставляется с Cockpit, инструментом, который помогает вам проектировать ваши API и публиковать их на всех ваших средах с полной поддержкой многопользовательских систем.
Он позволяет масштабировать ваше развертывание Gravitee.io прямо с платформы. А graviteeio-cli, простой инструмент командной строки, используемый для управления экосистемой Gravitee.io.
5. Gloo Edge
Также с открытым исходным кодом и основанный на Go, Gloo Edge – это функционально насыщенный контроллер входа Kubernetes (построенный на основе Envoy Proxy) и облачный шлюз API нового поколения, поддерживающий устаревшие приложения, микросервисы, а также серверное выполнение. И он интегрируется с вашим окружением, позволяя выбирать ваши любимые инструменты для планирования, хранения и безопасности.
Он предлагает мощное маршрутизирование на функциональном уровне (которое позволяет интегрировать устаревшие приложения, микросервисы и серверное выполнение) и разработан для поддержки гибридных приложений, построенных с использованием различных технологий, архитектур и протоколов, работающих в различных облаках.

Gloo Edge поддерживает функции шлюза API, такие как ограничение скорости, разрыв цепи, повторы, кэширование, внешняя аутентификация и авторизация. Он также поддерживает преобразование, интеграцию сети служб, полностью автоматизированное обнаружение и безопасность.
Gloo Edge использует ведущие проекты с открытым исходным кодом, такие как GraphQL, gRPC, OpenTracing, NATS и другие, чтобы предоставить высококачественные функции. Кроме того, он поддерживает интеграцию с проектами с открытым исходным кодом, которые могут появиться в будущем.
6. Apache APISIX
Apache APISIX – это динамичный, высокопроизводительный и масштабируемый API-шлюз, разработанный для обеспечения беспрепятственного соединения между клиентами и микросервисами. Построенный на прочном фундаменте Nginx, APISIX обладает гибкой архитектурой, позволяющей пользователям легко настраивать и расширять его функциональные возможности.
Он поддерживает несколько протоколов, таких как HTTP, HTTPS, TCP и UDP, обеспечивая разнообразные сценарии использования. С помощью удобной панели инструментов и RESTful API управление конфигурациями API становится простым.

APISIX выделяется в балансировке нагрузки, управлении трафиком и обеспечении безопасности, улучшая общую устойчивость системы. Как проект с открытым исходным кодом в рамках Фонда Apache Software Foundation, APISIX дает разработчикам возможность создавать устойчивые и эффективные API-экосистемы.
7. WSO2 API Microgateway
WSO2 API Microgateway – это открытый облачный, разработчицкий и децентрализованный API-шлюз для микросервисов. В основном построенный с использованием Java, он упрощает процесс создания, развертывания и обеспечения безопасности API в распределенных архитектурах микросервисов.
WSO2 API Microgateway – это легкий контейнер без сохранения состояния с низкими затратами памяти, который поддерживает композицию нескольких микросервисов через единый API, а также поддерживает обнаружение служб времени выполнения. Он позволяет преобразовывать устаревшие форматы API (как запросы, так и ответы) в современные, чтобы предоставить к ним доступ современным приложениям потребителей.

Поскольку WSO2 API Microgateway использует OpenAPI Specification (OAS), это позволяет разработчикам сотрудничать в создании API, а затем тестировать их независимо. Более того, он обладает высокой масштабируемостью, так как может работать изолированно без зависимости от других компонентов.
Он включает в себя ограничение скорости, обнаружение служб, преобразование запросов и ответов, балансировку нагрузки, отказоустойчивость и разрыв цепи, а также безшовную интеграцию с Docker и Kubernetes, среди прочего. Он обеспечивает аутентификацию и авторизацию на основе OAuth2.0, API-ключей, Basic Auth и взаимного TLS.
8. Fusio
Fusio – это открытое программное обеспечение на основе PHP для управления API, используемое для создания и управления REST API. Это платформа управления API в том смысле, что она позволяет разрабатывать конечные точки API, которые могут запрашивать и преобразовывать данные из базы данных. Он предоставляет все необходимые инструменты не только для быстрого создания API из различных источников данных, но и для создания полностью настраиваемых ответов.
Он используется для предоставления бизнес-функциональности, микросервисов, приложений на JavaScript и мобильных приложений, предлагая такие функции, как ограничение скорости, авторизация, поддержка RPC, проверка, аналитика и управление пользователями.

Fusio поддерживает генерацию OpenAPI и SDK, и поставляется с уровнем подписки, чтобы помочь вам построить публикацию/подписку для вашего API, а также простую платежную систему для взимания платы за определенные маршруты.
Fusio содержит клиент командной строки, который позволяет вам взаимодействовать с API напрямую и разворачивать конкретные файлы конфигурации YAML. Fusio-CLI включен автоматически в каждую установку Fusio, но вы также можете запустить клиент CLI автономно. В экосистеме Fusio есть еще несколько других инструментов.
9. Apiman
Apiman – это инструмент управления API с открытым исходным кодом, основанный на Java, который поставляется с богатым слоем проектирования и конфигурации API с быстрым временем выполнения. Это автономная система, которая может быть запущена как отдельная система или встроена в существующие фреймворки и платформы.

Его основные особенности – гибкость и управление временем выполнения на основе политики для API, богатый уровень управления и полностью асинхронный режим. Он поддерживает ограничение и квоты, централизованную безопасность, биллинг и метрики, а также множество других функций.
10. API Umbrella
API Umbrella – это решение управления API с открытым исходным кодом, построенное в основном с использованием Ruby. Это прокси, который находится перед вашими API, позволяя создать единую общедоступную точку входа для всех ваших API и микросервисов независимо от их расположения. Он предлагает функционал, такой как ключи API, ограничение скорости, аналитика и кэширование.
Он поддерживает мультиарендность и поставляется с администратором для управления всеми аспектами API Umbrella, такими как конфигурация маршрутизации API, управление пользователями, просмотр аналитики и многое другое. Под API Umbrella весь административный функционал также доступен через REST API.

Вывод
Это пока всё! В этой статье мы рассмотрели 10 решений управления API и шлюзов с открытым исходным кодом, которые вы можете использовать на сервере Linux в вашей инфраструктуре. Не стесняйтесь сообщить нам о любых других решениях, с которыми вы столкнулись и которые мы пропустили в этой статье.
Source:
https://www.tecmint.com/open-source-api-gateways-and-management-tools/