10 лучших инструментов управления API

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

Большинство продуктов управления API предоставляют общий набор функций: маршрутизацию и прокси, преобразование данных и URL-адресов, панели мониторинга и аналитику, политики и ограничения, а также инструменты разработчика, такие как генераторы документации. Здесь мы рассмотрим 10 популярных инструментов управления API - проекты с открытым исходным кодом, коммерческие продукты, облачные сервисы и их сочетания - которые предлагают все, от полнофункционального пакета для API до специализированных инструментов для конкретных сценариев.

3 шкала

Первоначально продукт с закрытым исходным кодом, 3scale был приобретен Red Hat и получил открытый исходный код после примерно двух лет работы. Проект с открытым исходным кодом можно свободно использовать под лицензией Apache, в то время как Red Hat предлагает коммерчески поддерживаемую реализацию SaaS.

Функции 3scale соответствуют другим предложениям в этом обзоре. Вы найдете управление версиями API, контроль доступа и ограничение скорости, средства управления безопасностью и аналитику. 3scale также предлагает удобные для разработчиков функции, такие как портал для разработчиков и CMS для создания документации для собственных API. 3scale также предлагает собственные инструменты для монетизации API, такие как выставление счетов и интеграция с платежными сервисами.

Если вы собираетесь самостоятельно установить 3scale для производства, вам потребуются Oracle Database и OpenShift. Учитывая, что даже для минимальной установки 3scale для тестирования требуется Minishift, одноузловой кластер OpenShift, вам может быть лучше всего использовать бесплатную 90-дневную пробную версию 3scale, если вы хотите начать работу как можно быстрее.

Версия Pro начинается с 750 долларов в месяц за 5000 учетных записей разработчиков, 500000 вызовов API в день и до трех API. Версия Enterprise (цена доступна по запросу) снимает большинство этих ограничений.

Посол

Ambassador - это система управления API с открытым исходным кодом, созданная для работы с Kubernetes. Посол реализован поверх прокси-сервера Envoy, который обрабатывает абстракцию сети для микросервисов, поэтому большая часть тяжелой работы выполняется Envoy и Kubernetes.

Набор функций Ambassador соответствует большинству других инструментов управления API: переопределение URL-адресов и маршрутизация запросов, фильтрация, аутентификация и контроль доступа, ограничение скорости и тайм-ауты, а также интеграция с инструментами ведения журнала, устранения неполадок и видимости.

Однако большинство функций Ambassador сосредоточены на управлении средой выполнения и интеграции с Kubernetes и другими инструментами Kubernetes (например, Prometheus). Амбассадор оставляет полностью пользователю дизайн и декларативную конфигурацию API. Такие функции, как управление версиями API, изначально не поддерживаются; вы должны справиться с такими вещами самостоятельно. Благодаря этому Ambassador лучше всего подходит для работы с API в рамках развертывания Kubernetes, а не в качестве общего решения для управления API.

Апиман

Apiman - ранее «JBoss Apiman» - это проект Red Hat с открытым исходным кодом, построенный на Java. Хотя он все еще поддерживается Red Hat, большая часть активных разработок Red Hat в области управления API, похоже, переместилась в ее продукт 3Scale.

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

Apiman может устанавливать политики для API в отношении безопасности, ресурсов (например, ограничения скорости), преобразования данных, кэширования и регистрации. Политики настраиваются через JSON, поэтому их могут читать и редактировать как люди, так и машины. Политики безопасности могут применяться в зависимости от личности или роли пользователя, а API-интерфейсы могут контролироваться слабо или жестко. Вы можете публиковать API с идентификатором версии в URL-адресе и без контракта, связанного с их использованием; или вы можете потребовать ключ API и тщательно контролировать их версионность.

Вы несете ответственность за все, что выходит за рамки основ. Например, хотя ряд подключаемых модулей для Apiman доступен, они обычно представляют собой небольшие расширения функциональности Apiman, предоставляемые разработчиками основного проекта.

DreamFactory

Платформа управления DreamFactory API построена на платформе Laravel на PHP. DreamFactory доступен как бесплатное предложение с открытым исходным кодом или с различными уровнями коммерческой поддержки (цены не разглашаются). Это естественный выбор для разработчиков, уже вложивших средства в PHP и желающих углубиться в реализацию с открытым исходным кодом. DreamFactory также предлагает интеграцию сценариев на стороне сервера с Node.js и Python.

Функция «Datamesh» DreamFactory, доступная «из коробки» во всех ее воплощениях, позволяет объединять результаты нескольких гетерогенных вызовов базы данных, в том числе к различным продуктам баз данных, и возвращать результаты в виде одного вызова API. Точно так же обновления таблиц в нескольких базах данных можно объединить в один вызов API.

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

Kong

Kong - один из самых известных инструментов управления API, первоначально созданный Mashape (переименованный в Kong) для поддержки собственного продукта торговой площадки API. Kong доступен в версии с открытым исходным кодом или в виде коммерческого предложения корпоративного уровня (цены не раскрываются) с дополнительными функциями управления, мониторинга и разработки. Корпоративная версия может работать как локально, так и в облачной службе по выбору. Документация как для продуктов с открытым исходным кодом, так и для корпоративных продуктов обширна и подробная.

Kong предоставляет контроллер Ingress для интеграции Kubernetes и сервисную сетку, позволяющую «внедрить» функции Kong в существующее развертывание сервисов. Корпоративная версия предлагает портал для разработчиков, предназначенный для упрощения создания новых API и ознакомления новых разработчиков с базой кода API.

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

KrakenD

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

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

Экземпляры KrakenD можно кластеризовать для обеспечения высокой доступности. Для этого не требуется никакого дополнительного программного обеспечения, только сам KrakenD. Вы также можете развернуть KrakenD в кластере Kubernetes без особых дополнительных усилий. Ассортимент стороннего промежуточного программного обеспечения можно получить из репозитория KrakenD GitHub.

Корпоративная поддержка, включая консультации и обучение, доступна от создателей KrakenD, хотя цены не разглашаются.

Платформа MuleSoft Anypoint

Платформа Anypoint от MuleSoft задумана как комплексное предложение - она ​​охватывает проектирование API, создание, размещение, управление, интеграцию и поддержку разработчиков в рамках единого коммерческого продукта. 

С Anypoint вы можете разрабатывать API-интерфейсы с нуля или повторно использовать существующие соединители и интеграции, созданные другими клиентами MuleSoft и опубликованные в Anypoint Exchange. Соединители доступны для общих протоколов (доступ к файлам, HTTP, электронная почта), языковых модулей для преобразования данных (Java, JavaScript), облачных сервисов (Amazon AWS), коммерческих приложений (Salesforce, SAP) и приложений с открытым исходным кодом (MongoDB).

Для тех, кто создает API-интерфейсы, которые будут использоваться партнерами или общественностью, Anypoint предоставляет API Community Manager для создания веб-интерфейсов - то, что MuleSoft называет «порталами» - для этих API. Интерактивная документация, персонализация (включая такие функции, как настройка вывода на основе геолокации пользователя) и аналитика использования API включены.

Anypoint предлагает три тарифных плана: Gold, Platinum и Titanium, которые различаются в зависимости от уровня поддержки клиентов и корпоративных функций. Все три плана включают неограниченное количество API-интерфейсов и дополнительную плату за соединители «премиум-класса» (например, соединитель мэйнфрейма IBM AS / 400).

Netflix Zuul

Zuul, проект с открытым исходным кодом, созданный инженерами Netflix, был создан собственными силами для обработки запросов маршрутизации к сервисам потокового видео Netflix. Коммерческого предложения Zuul нет - по крайней мере, от Netflix - поэтому вам придется раскручивать Zuul и управлять им самостоятельно.

Zuul написан на Java и использует стандартные инструменты Java - Gradle, Ivy, Maven - для начала работы. Zuul предлагает относительно минимальный набор функций по сравнению с другими системами управления API, фокусируясь на фильтрации и диспетчеризации входящих запросов между сервисами. Zuul действительно предоставляет функции обнаружения сервисов, балансировки нагрузки, объединения пулов и отладки («паспорт запроса»), но не имеет более сложных функций, таких как адаптация разработчика и автоматическая документация.

Zuul - активный проект, в будущих версиях которого запланировано много новых функций. Предстоящий «фильтр аварийного отключения», например, отключит определенные функции, чтобы освободить процессор в периоды высокой активности.

Тык

Tyk по умолчанию включает в себя очень многое: шлюз API, инструменты аналитики, портал разработки и панель управления. Он также включает в себя функции имитации API перед их официальным выпуском, встроенное кеширование запросов (которое может быть включено непосредственно в определение API) и шаблоны ответов для различных кодов ошибок HTTP.

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

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

Облачные и мультиоблачные выпуски, доступные для множества популярных облачных сервисов, предоставляют Tyk как размещенную услугу. Базовая версия с одним облаком, поддерживающая 1000 вызовов API в день, доступна бесплатно (не считая суммы, которую взимает ваш поставщик облачных услуг); планы профессионального уровня начинаются с 450 долларов в месяц.

Диспетчер API WSO2

WSO2 API Manager - это продукт с открытым исходным кодом, созданный на Java. Продукт доступен для локального или облачного развертывания с коммерческой поддержкой или в виде облачной службы.

Различные варианты развертывания позволяют реализовать ряд различных сценариев управления. Например, локальное развертывание WSO2 может иметь свои политики и другую конфигурацию, применяемую через облачный портал разработчика, при этом изменения либо синхронизируются между облаком и помещением, либо периодически отправляются из облака (для сред, которые должны быть заблокирована).

WSO2 имеет около 200 коннекторов, которые можно использовать для подключения внешних сервисов. Многие из них используются разработчиками: Slack, Splunk, Kafka, Redis, Amazon S3 и так далее.

Другая функция WSO2, «микрошлюз API», обеспечивает дополнительную безопасность и меньшую задержку для определенных типов вызовов. Например, таким образом можно обрабатывать вызовы, используемые для управления шлюзом, или вызовы, маршрутизируемые между микросервисами.

Новое дополнение к WSO2 добавляет интеграцию с сервисной сеткой Istio для Kubernetes. Istio не управляет API-интерфейсами, предоставляемыми микросервисами, которыми он управляет, поэтому WSO2 интегрируется с прокси-сервером Envoy, используемым Istio для этого.

Цены на коммерческие предложения WSO2 начинаются с бесплатной двухнедельной пробной версии с до одного миллиона вызовов API, продолжаются от 550 долларов в месяц за 20 миллионов вызовов, а затем увеличиваются до индивидуальных конфигураций.