Почему шлюзы API?
APIS являются движущей силой многих больших и маленьких приложений. Будь вы публикуете публичный API или создаете новый рынок интеграций, API становятся тем, как бизнес делается. Точно так же, как у веб -эры были HTTP -серверы для обслуживания этих веб -сайтов в производстве, API имеют шлюзы API для обслуживания API в производстве. Можно использовать шлюзы API, чтобы помочь предоставить API с учетом высокой доступности вашим клиентам и партнерам. Они представляют собой тип прокси -сервера, который находится перед вашим API и выполняет функциональность, такую как аутентификация, ограничение скорости, маршрутизация общедоступных конечных точек для соответствующих микросервиса, балансировка нагрузки во многих внутренних службах, среди прочего.
Историческое прошлое
Предприятие Интеграция Промежуточное программное обеспечение
Исторически, необходимость в шлюзах API выросла из задач интеграции. Перед REST и API GRAPHQL компании создавали API на основе SOAP и XML, состоящие из структурированных или неструктурированных данных. Шлюзы API могут предоставить унифицированный интерфейс и соединить несколько устаревших приложений вместе. В таких вариантах использования шлюзы API могут получить унаследованную службу SOAP, применить преобразование данных в API, такие как преобразование из мыла в отдых и Json к XML ) Этот тип преобразований обычно не является автоматическим. Например, RESTFUL API имеют очень разные основные принципы чем мыло, и, следовательно, это не так просто, как преобразование XML в JSON.
Разбивая монолит
Микросервисная архитектура является стратегией создания и развертывания независимых услуг для составления более крупного приложения. Pro и Cons для микросервиса против монолитной архитектуры выходят за рамки этой статьи. С высокого уровня архитектура микросервиса становится способом создания API. Это позволяет нескольким независимым командам работать над крупным приложением, не переходя друг на друга и не занимаясь длительным временем развертывания.
Помимо микросервисов, существуют еще меньшие единицы вычислений, такие как наносервисы и неверные вычисления. Из -за сложности управления сотнями или тысячами услуг и требований для предоставления унифицированного интерфейса или контракта вашим клиентам, шлюзы API становятся обычным местом в архитектурах, где используются микросервисные и без серверных вычислений.
Преимущества шлюзов API
Независимо от того, используете ли вы MicroServices или Server Server Computing или ваш API внутренне используется или общедоступно, есть много преимуществ для использования шлюзов API:
- Развязка : Если ваши клиенты, с которыми вы не контролируете непосредственно со многими отдельными услугами, переименование или перемещение этих услуг, могут быть сложными, поскольку клиент связан с базовой архитектурой и организацией. API Gateways позволяет вам маршрутизировать на основе пути, названия хоста, заголовков и другой ключевой информации, позволяющей вам отделить общедоступные конечные точки API от базовой архитектуры микросервиса.
- Уменьшить круглые поездки : Некоторые конечные точки API могут потребоваться присоединиться к данным по нескольким службам. Шлюзы API могут выполнить эту агрегацию, чтобы клиенту не нуждались в сложной цепочке вызовов и уменьшали количество круглых поездок.
- Безопасность : API -шлюзы предоставляют централизованный прокси -сервер для управления ограничением скорости, обнаружения ботов, аутентификации, CORS, среди прочего. Многие шлюзы API позволяют настройку данных, например, Redis для хранения информации о сеансе.
- Прокрестные проблемы : Регистрация, кэширование и другие перекрестные проблемы могут быть обработаны в централизованной технике, а не развернуты на каждом микросервисе. На самом деле, Moesif предоставляет плагины Для многих шлюзов API, таких как Kong и Tyk, вы можете получить современную аналитику клиентов и API без установки SDK.
Дополнительные преимущества для платформ API
Помимо преимуществ, перечисленных выше, существуют дополнительные преимущества для компаний, которые создают общедоступные API для клиентов и партнеров. Такие платформы API построены первыми компаниями API, такими как Stripe или Twilio, а также компании с платформами разработчиков, такими как Github или Twitter. В наши дни для компаний B2B становятся гораздо более важными для перехода на платформы, поскольку клиенты и партнеры требуют большей настройки и интеграции.
Дополнительные преимущества с использованием шлюзов API:
- Управление ключами API для разработчиков, включая обеспечение постоянного способа разрешения и аутентификации
- Ограничение ставок и выставление счетов, которые могут основываться на квоте или использовании.
- Предоставление портала разработчиков для клиентов и партнеров для создания токенов API, защиты токенов и т. Д.
Что такое Moesif? Moesif является самой продвинутой платформой API Analytics, используемой более чем 2000 организациями, чтобы понять, что ваши самые лояльные клиенты делают с вашими API, как они получают доступ к ним и откуда. Moesif есть плагины для популярных шлюзов API, таких как Конг , Тайк и более .
Переменные для сравнения
Сложность развертывания
Это одно узловое устройство или для шлюза требуется запуск множества типов узлов, чтобы начать работу и настройку базы данных? Некоторые шлюзы требуют нескольких типов баз данных.
С открытым исходным кодом против запатентованного
Что происходит, когда вы хотите расширить шлюз с дополнительной функциональностью. Есть плагины? Если да, то плагины с открытым исходным кодом?
На предпосылке против облака размещен
Нанятие может добавить дополнительное время для планирования развертывания и обслуживания. Тем не менее, облачные решения могут добавить кусочки задержки из -за дополнительного перехода и могут снизить доступность вашего сервиса, если поставщик снизится.
Функции
Некоторые шлюзы представляют собой более модифицированные HTTP -сервер HTTP -сервер для обслуживания API. В то время как другие включают весь пакет, включая порталы разработчиков, безопасность и многое другое. Если шлюз включает в себя такие функции, такие функции, как портал разработчиков, имеют хороший пользовательский опыт и дизайн или позволяют настроить дизайн в соответствии с вашими потребностями.
Сообщество
Разработчики строят дополнительную функциональность на вершине шлюза? Точно так же, как Apache Tomcat и Nginx имеют огромное количество с открытым исходным кодом. Некоторые из шлюзов API имеют большие сообщества разработчиков, строящие сценарии, вопросы, отвечающие на переполнение стека и т. Д.
Цена
Если вы маленький запуск, есть ли у них хороший бесплатный уровень или версии с открытым исходным кодом? Принимая во внимание, что если вы устоявшееся предприятие, есть ли у компании нужную вам поддержку.
Основные игроки в пространстве API Gateway
Конг
Конг — это Gateway API с открытым исходным кодом Это строится сверху ( nginx .), который является очень популярным прокси -сервером с открытым исходным кодом. Несмотря на то, что Kong открыт, Konghq Предоставляет лицензии на обслуживание и поддержку для крупного предприятия. В то время как основные функции имеются с версией с открытым исходным кодом, некоторые функции, такие как пользовательский интерфейс Admin, Security и Developer Portal, доступны только с корпоративной лицензией.
Развертывание. Одним из самых больших преимуществ Kong является широкий спектр вариантов установки, с предварительно изготовленными контейнерами, такими как Docker и Vagrant, так что вы можете быстро работать развертывание. Nginx является самым популярным HTTP -сервером после Apache и IIS, а также очень высоким показателем даже при высоких показателях запросов. У Nginx есть огромное сообщество сценариев и расширений Lua, поэтому вы не останетесь в пыли при поиске некоторой настройки. У Конга есть умеренная сложность, когда дело доходит до развертывания. Это требует запуска Cassandra или Postgres. Некоторые плагины, такие как ограничивающие скорость, опционально требуют дополнительных хранилищ данных, таких как Redis. Тем не менее, развертывание производства не так сложно, как Apigee.
Полность функции: Kong Out Box предоставляет много ожидаемых функций управления API, таких как создание клавиш API, маршрутизация в несколько микросервисов и т. Д. У него не так много слоя трансформации (в основном преобразование на основе HTTP, без мыла или XML). Однако, если у вас нет много унаследованных приложений, вам, вероятно, не нужен дополнительный вес слоев преобразования данных в любом случае. Несмотря на то, что он имеет ограничение ставок, у него нет биллинговых интеграций. Задача администрирования и управления может быть выполнена с помощью CLI или Curl Commands для API REST, что облегчает интеграцию управления в ваши существующие пьесы DevOps.
У Конга есть концепция Услуги , Маршруты и Потребители которые обеспечивают большую гибкость при работе с сотнями микросервисов, которые составляют ваш API и различные типы потребителей, называющих ваши API. Это позволяет подключать плагины и преобразования к определенному маршруту или даже к одному потребителю.
У Конга есть большое сообщество общинных плагинов, они запущен Kong Hub В 2018 году, и у него уже есть десятки плагинов. Moesif — один из плагинов там Анкет
Конг — один из наших рекомендуемых шлюзов. Если вам не нужен устаревший багаж и вы хотите популярного API -шлюза с открытым исходным кодом, вы не ошибетесь с Конгом. Он современный, предназначен для управления современными микросервисами, а не просто добавление фасада преобразования в устаревшие монолиты, и имеет растущее сообщество плагинов.
Tyk.io
Как Конг, Тайк тоже Открытый исходный код , но он находится под лицензией MPL, которая менее разрешает, чем лицензия Apache 2.0 от Kong. В то же время пользователь Tyk’s Enterprise использует точно тот же шлюз, что и пользователь сообщества. Вам не нужно платить дополнительно за определенные функции предприятия. Вместо того, чтобы полагаться на дополнительные плагины и сценарии Lua, Tyk — это скорее батареи включены API Gateway. Схемы аутентификации, такие как OIDC, OAuth2, Token Bearer, Basic Auth, Mutual TLS, HMAC, все поддерживаются из коробки, не требуя плагинов. Он также имеет поддержку XML-> JSON, JSON-> XML, валидация схемы JSON.
Тайк построен на Golang, который, как язык системы, предназначен для высокой пропускной способности и параллелизма. Компания, стоящая за этим, Tyk.io Предоставляет облачную версию и лицензии на профессиональную поддержку. В отличие от LUA Kong/Nginx, некоторые могут найти Golang более современным и немного проще программировать. Помимо Голанга, у Тайка есть переводчики для запуска плагинов на других языках, таких как JavaScript и Lua. Имейте в виду, что в отличие от локальной версии, которая может быть развернута на том же VNET, что и ваши внутренние сервисы, облачная версия потребует разоблачения некоторых ваших услуг непосредственно в Интернет.
Развертывание: Tyk предлагает как облачное решение SaaS, или развернуто в помещении. Вы можете развернуть экземпляры на Heroku или AWS. Их веб -сайт предлагает Учебное пособие о том, как Анкет Версия с открытым исходным кодом относительно проста в развертывании и требует только REDIS, тогда как Kong требует управления как Cassandra, так и Postgres Clusters.
У TYK есть такие функции, как управление ключами, квоты, предел ставки, версия API, управление доступом, но без интегрированных платежных функций. У Tyk есть как API REST, так и веб -панель для выполнения административных задач. Пока у них есть Список расширения , Тайк не имеет такого большого количества сообщества или центров плагинов, который есть в Конге. Тем не менее, они сохраняют свои ворота хорошо спроектированными и пытаются сохранить его наклонение.
Апигей
Apigee является самым старым шлюзом API, указанным в этой статье. Он был основан в 2004 году и приобретен Google в 2016 году. Это не открытый исходный код и построен на Enterprise Java. Первоначально они начинались как приложение XML/SOA, но повернулись к пространству управления API. Apigee был разработан, чтобы превратить Legacy Monoliths в API, которые могут быть поглощены третьими лицами. Они меньше внимания уделяют микросервисам и внутренним API.
Поскольку Apigee имеет сложную архитектуру нескольких узлов, развертывание имеет гораздо более высокий уровень сложности по сравнению с шлюзами API с открытым исходным кодом. Apigee Edge требует, чтобы запустить минимум на 9 узлов локально и включает в себя запуск Cassandra, Zookeeper и Postgres, вынуждающие развертывание, которое планируется централизованной инфраструктурной командой, тратила много месяцев планирование развертывания.
В то время как большинство клиентов Apigee используют локальную версию, после присоединения к Google, они представили облачное решение. Тем не менее, он ближе к IAAS и должен быть развернут в конкретном центре данных Google Cloud, а не к чистому SaaS. Как и другие размещенные версии, размещенная прокси -версия добавит задержку и требует защиты собственных услуг.
При использовании размещенных шлюзов API, если только они не находятся в том же центре обработки данных, что и ваши услуги вверх по течению, это может добавить немного больше задержки.
В отличие от других, Apigee поддерживает Конец до конца интегрированный биллинг Для непосредственного монетизации ваших API. Портал управления построен на вершине Drupal. Зависит от вашей точки зрения, Apigee может показаться либо раздутой функцией, либо быть полным решением. В то же время, будучи собственно, у него нет большого сообщества разработчиков, вносящих плагины или расширения.
Amazon AWS API Gateway
Amazon AWS , как самый большой поставщик облаков, также имеет AWS API Gateway . Это вариант только в облаке. Если вы уже используете AWS Lambda или EC2, вы можете развернуть API API Gateway в том же регионе центра обработки данных, что и ваши вышестоящие услуги, чтобы дополнительная задержка была менее проблемой. API API Gateway полностью управляется и может быть развернут с помощью нескольких кликов на портале AWS.
При использовании в сочетании с AWS Lambda, API API Gateway предоставляет хорошее решение для Серверный Апис Serverless — это как микросервисы на стероидах и требует безупречного управления вашими конечными точками API для маршрутизации входящих вызовов API в соответствующую без серверную функцию.
Помимо AWS Lambda, API API Gateway имеет лучшие решения в одном клике для маршрутизации входящих вызовов API в другие услуги AWS, такие как Amazon Kinesis и Amazon Dynamodb. Кроме того, вы можете использовать свою существующую инфраструктуру IAM, чтобы обеспечить аутентификацию API без особых накладных расходов.
Особенностью, это сопоставимо с Kong. Тем не менее, AWS API Gateway не имеет большого сообщества разработчиков, написанных расширениями или плагинами. Одной из самых больших проблем с использованием API API Gateway является блокировка продавца.
Другие
Выше не исчерпывающий список, вот краткое изложение некоторых других:
Azure API Gateway очень похож на предложение AWS. Конечно, более подходящее, если вы используете Microsoft Azure и имеют хорошую поддержку функций Azure.
Express API Gateway это новая входная сборка по Lunchbadger , это полностью открытый исходный код и основан на чрезвычайно популярном Node.js Express Framework Анкет Их философия дизайна состоит в том, чтобы сохранить его минимальным и декларативным. Если вы создаете большую часть своей основной инфраструктуры на node.js и знакомы с экспресс -промежуточным программным обеспечением, стоит посмотреть.
Krakend также продукт с открытым исходным кодом, построенный в Голанге. Мы еще не использовали это. Если у вас есть какие -либо отзывы, дайте мне знать.
Резюме
Ниже приводится краткое изложение выводов в табличном формате:
Одиночный узел | Много узлов с разными ролями | Одиночный узел | Сложность развертывания | Поставщик облаков Паас | Поставщик облаков Паас | Гибкий |
Кассандра или постгрес | Cassandra, Zookeeper и Postgres | Редис | Требуются хранилища данных | Поставщик облаков Паас | Поставщик облаков Паас | Редис |
Да, Apache 2.0 | Нет | Да, MPL | Открытый источник | Нет | Нет | Да, Apache 2.0 |
Nginx/lua | Джава | Голанг | Основные технологии | Не открыто | Не открыто | Node.js Express |
Да | Да | Да | На предпосылке | Нет | МО | Да |
Большой | Нет | Середина | Сообщество/расширения | Нет | Нет | Небольшой |
Да | Да | Да | Авторизация/Ключи API | Да | Да | Да |
Да | Да | Да | Ограничение скорости | Да | Да | Да |
Http | Да | Http | Преобразование данных | Нет | Нет | Нет |
Нет | Да | Нет | Интегрированный биллинг | Нет | Нет | Нет |
Использование шлюзов API будет только увеличиваться, поскольку все больше компаний развертывают более сложные архитектуры MciroService и без серверов. Кроме того, все больше и больше компаний запускают свои собственные программы разработчиков, увидев ранний успех таких компаний, как Twilio, Salesforce и Stripe.
Мы очень рады видеть, как развиваются экономика API и платформы разработчиков, и рады внести свой вклад.
Moesif является самой продвинутой платформой API Analytics, поддерживающей Rest, GraphQL, с плагинами для Kong, Tyk и многое другое. Тысячи команд, управляемых API, обрабатывают миллиарды вызовов API через Moesif для Deep Insights. Учить больше
Оригинал: «https://dev.to/moesif/how-to-choose-the-right-api-gateway-for-your-platform-comparison-of-kong-tyk-apigee-and-alternatives-4oh6»