[Анализ и проектирование систем, Облачные вычисления, API, Облачные сервисы, Serverless] Облачные Gateway API: зачем нужны подобные сервисы и чем они отличаются у разных платформ

Автор Сообщение
news_bot ®

Стаж: 6 лет 9 месяцев
Сообщений: 27286

Создавать темы news_bot ® написал(а)
19-Май-2021 18:32


Добро пожаловать в современный интернет, где большая часть взаимодействия приходится на интерфейсы прикладного программирования — API. На API держится цифровой бизнес: с ними стало возможным предоставлять и получать услуги через приложения и подключённые к Сети устройства. Платёжные системы? Работают через API. Интерактивная карта, показывающая, как добраться от метро до офиса? Снова API. Даже бэкенд строится на API. Похоже, мы окружены — значит, придётся разбираться. Что такое API, на Хабре уже рассказывали, а я предлагаю рассмотреть поподробнее реализацию API Gateway на облачных платформах.Зачем вообще нужны Gateway APIПри работе с микросервисной архитектурой рано или поздно приходится столкнуться с проблемой, которой нет у монолитных систем, — с необходимостью получать и обрабатывать данные из нескольких источников для обслуживания одного-единственного запроса.Представьте себе: у вас есть интернет-магазин по продаже реплик молота Тора. Для удобства пользователя имеется как сайт под десктоп и мобильные устройства, так и приложения для Android и iPhone, которые взаимодействуют с сервером через REST API.Чтобы на странице товара отображались верные данные, нам нужно обратиться к нескольким службам: в одной учитывается наличие молота, в другой записаны материал, вес и длина ручки, в третьей сохраняются отзывы клиентов, а цена вообще указана в четвёртой. API Gateway позволяет обойтись одним запросом.API Gateway выполняет множество задач: принимает, обрабатывает и распределяет запросы, контролирует трафик, осуществляет мониторинг и контроль доступа. В микросервисной архитектуре паттерн API Gateway появился в качестве службы, обеспечивающей единую точку входа для веб-приложений и API, эдакой «серверной части для клиентской части». В чём польза именно для микросервисов? Например — возможность повторного использования компонентов, упрощение бэкенда приложения, обеспечение доступа к статическим веб-страницам и документам, удобная проверка авторизации и подбор оптимального для каждого типа клиента API — как это делает Netflix API Gateway.Что такое облачные API GatewayОблачные структуры заимствуют многие паттерны микросервисов — в том числе API Gateway и необходимость в их применении. API Gateway упрощает интеграцию приложения с сервисами облачной платформы и позволяет в полной мере использовать её возможности. Классический API Gateway представляет собой шлюз между пользователями и любым количеством сервисов (API), выполняющий функцию обратного прокси, как Nginx и HAProxy. В то же время облачная версия API Gateway — уже полноценный сервис для разработчиков, который простым в исполнении не назовёшь. Основная задача та же самая — приём и обработка запросов от клиентов к службам, а также управление доступом приложения к данным, бизнес‑логике или функциональным возможностям сервисов.Только облачные API Gateway на этом не останавливаются и предлагают множество дополнительных услуг: быстрое масштабирование, интеграцию с облачными сервисами, контроль доступа и настройку безопасности, создание и публикацию API, мониторинг API и тому подобное. Гораздо проще, чем создавать API Gateway с нуля, — да и знаний требуется гораздо меньше.Как облачные API Gateway облегчают жизньИтак, в разработке всё чаще применяются облачные технологии — и закономерно возникает вопрос об облачных шлюзах API, их особенностях и преимуществах. Стоит ли их применять или лучше как-нибудь по старинке?Для чего разработчики вообще выбирают облачные API Gateway?
  • Чтобы сократить время разработки — API Gateway создаётся в несколько кликов, а интеграция с облачными сервисами выбранной платформы занимает пару минут.
  • Чтобы обеспечить минимальную задержку ответа на запрос — об этом позаботится система автоматического масштабирования.
  • Чтобы лучше контролировать трафик — к примеру, с помощью ограничения нагрузки на количество запросов в секунду для каждого HTTP‑метода. А при необходимости можно сформировать кеш с настраиваемыми ключами и указанием жизненного срока в секундах.
  • Чтобы отлаживать API встроенными средствами — меньше головной боли.
  • Чтобы генерировать клиентские SDK.
  • Чтобы одновременно использовать нескольких версий одного API, а также управлять стадиями выпуска от альфы до релиза.
  • Чтобы контролировать доступ к API и управлять его жизненным циклом от создания до публикации.
  • Чтобы уведомление приходило от сервиса, а не от разозлённого клиента, если что-то идёт не так.
  • Чтобы настраивать авторизацию удобным методом — с помощью средств Lambda или токенов OAuth.
  • Чтобы отслеживать показатели — к примеру, количество запросов, задержку вызова и количество ошибок — на удобной панели мониторинга с визуальным интерфейсом.
  • Чтобы платить только за количество запросов в месяц — или пользоваться сервисами бесплатно, если не выходить за рамки определённой цифры.
Как используют облачные API GatewayВиртуальная доскаПростое приложение, состоящее из двух конечных точек — POST для записи сообщений и GET для извлечения трёх последних сообщений. Реализовано с помощью AWS Gateway, AWS DynamoDB, AWS Serverless Application Model и Lambda. Голосовой сервиcРецепт сервиса записи к врачу и регистрации в поликлинике, разработанный коммуникационной платформой Voximplant и Yandex.Cloud.Бот для телеграмаЗапуск бота на Python внутри одного из облачных сервисов, а именно — Yandex.Cloud.Трекер пульсометрииОдин из вариантов решения для сбора данных пульсовой оксиметрии для нескольких пользователей, отслеживания этих данных и обмена ими. Фронт написан на VueJS, бэкенд реализован с применением Amazon API Gateway. Статический сайт в облакеПошаговая инструкция по деплою статического сайта в облако, прикрутке к нему сертификата Let’s Encrypt, домена второго уровня и настройке API-шлюза в системе Yandex.Cloud.БлогИ снова приложение на микросервисах — реализация клиентской части на VueJS, взаимодействие настроено через REST API и gRPC, а в качестве базы данных используется MongoDB.Реализация на разных облачных платформахСервис API Gateway предлагают несколько облачных платформ — и все они предоставляют более-менее схожий пакет услуг. Так в чём же разница?Azure API ManagementПлатформа гибридного кросс-облачного управления через API Позволяет в том числе самостоятельное размещение шлюза в своей среде и управление им через API Azure. Мультиклауд — для отважных.Amazon API GatewayAmazon API Gateway — пожалуй, самый известный сервис, предназначенный для создания, публикации, обслуживания, мониторинга и обеспечения безопасности API в любых масштабах.Документация включает подробные инструкции — от развёртывания RESTful API при создании бессерверного веб-приложения до работы с HTTP API, поэтому не придётся искать примеры по всей Сети, чтобы разобраться.Особенности:
  • Создание API RESTful при помощи API HTTP или API REST.
  • Интерфейсы API WebSocket для разработки приложений, которым требуется двусторонняя связь в режиме реального времени.
  • Частная интеграция с AWS ELB и AWS Cloud Map.
  • Ключи API для сторонних разработчиков.
  • Генерирование клиентских SDK на многих языках, включая JavaScript, iOS и Android.
  • Внедрение подписи четвёртой версии для API REST и API WebSocket при авторизации и проверке запросов API к другим сервисам AWS API Gateway.
  • Авторизация с помощью AWS Lambda.
  • Amazon API Gateway можно пользоваться бесплатно целый год — пока ваши потребности не превышают один миллион вызовов API, полученных для API REST, один миллион вызовов API, полученных для API HTTP, и один миллион сообщений и 750 000 минут подключения для API WebSocket в месяц.
  • Обучение с помощью пошаговых учебных пособий, а также доступ к более чем 500 бесплатным онлайн-курсам.
Oracle API GatewayСервис Oracle API Gateway стал доступен любому пользователю в конце 2019 года и уже пытается активно конкурировать с Amazon API Gateway. Получится ли у него отвоевать хотя бы часть аудитории у AWS, нам только предстоит увидеть… а сравнивать всегда интереснее на собственном опыте. Почитать про создание своего Gateway API можно вот в этой статье.Особенности платформы:
  • RESTful API в комбинации с Oracle Functions, а также возможностями Kubernetes и Compute.
  • Каждая служба в облачной инфраструктуре Oracle интегрируется с IAM для аутентификации и авторизации (консоль, SDK или CLI и REST API).
  • Интеграция с системой управления доступом Oracle Cloud Infrastructure.
  • Бесплатный период длительностью в тридцать дней, чтобы опробовать возможности широкого спектра сервисов Oracle Cloud, в том числе к Databases, Analytics, Compute, Container Engine for Kubernetes и т. д.
  • Платформа Oracle Cloud позиционирует себя как более экономичное решение, чем AWS, и в качестве примера упоминает, что соотношение цены и производительности в 2 раза выше, а стоимость исходящей пропускной способности составляет только 1/4 от стоимости у AWS.
Google API GatewayСервис перешёл на стадию публичного бета-тестирования 18 сентября 2020 года, так что пока о нём известно довольно мало — и тем интереснее пронаблюдать за его развитием.Сейчас Google API Gateway позволяет управлять API других сервисов облачной платформы — Cloud Functions, Cloud Run, App Enginе, Compute Engine и Google Kubernetes Engine. Настроить работу с Cloud Run, к примеру, можно всего за несколько минут.Особенности:
  • Оплачиваются только вызовы к инфраструктурным службам. Стоимость зависит от количества вызовов, а входящий трафик всегда бесплатен.
  • До 2 миллионов запросов в месяц — бесплатно.
  • Наличие пробной версии. Google Cloud предоставляет виртуальный кредит в размере 300 долларов, который необходимо потратить в течение последующих трёх месяцев. После окончания бесплатного периода оплата не начинает взиматься автоматически — на платный тариф необходимо перейти вручную.
SberCloud API GatewaySberCloud API Gateway использует наработки Huawei, а информации об особенностях применении в Сети можно найти немного, но здесь вам поможет Хабр: после недавнего хакатона один из участников рассказал о впечатлениях от SberCloud и сравнил функциональность с более известным AWS. Особенности:
  • Доступ к облачным продуктам для физических лиц возможен только с помощью входа/регистрации через Сбер ID.
  • Управление квотами и регулирование запросов пользователей.
  • Встроенный инструмент отладки.
  • Визуализированная панель мониторинга API.
  • Создание каналов VPC для доступа к бэкенд-сервисам в сети VPC и управления нагрузкой путём отправки API-запросов на различные серверы.
  • Цифровая подпись, которая вступает в силу только после привязки к API.
  • Никакой минимальной или предварительной платы — оплачивается только фактическое использование.
  • Возможность монетизации API.
Yandex API Gateway23 сентября 2020 года к четырём сервисам платформы Yandex.Cloud прибавились ещё два — Yandex API Gateway и база данных Yandex Database в режиме Serverless. Yandex API Gateway интегрирован с другими сервисами платформы, благодаря чему возможна отправка HTTP-запросов с помощью функций Yandex Cloud Functions, доступ к статическим данным осуществляется Yandex Object Storage напрямую из хранилища, а запуск произвольных HTTP-сервисов в облаке возможен с помощью Yandex Managed Service for Kubernetes. Так что спектр применения широк — к примеру, внутри облака можно запустить приложение на Express.js.К слову, до октября 2021 года на бессерверные решения действуют специальные тарифы, которые позволяют создавать и размещать небольшие сайты и сервисы бесплатно.Особенности:
  • Наличие расширений для спецификации, которые можно использовать для интеграции с другими облачными платформами.
  • Поддержка OpenAPI 3.0.
  • Обработка запросов только по протоколу HTTPS. Сервис автоматически перенаправляет все запросы к API-шлюзам по протоколу HTTP на их HTTPS-версии.
  • Интеграция с системой управления доменами сервиса Certificate Manager. Для обеспечения TLS-соединения используется привязанный к домену сертификат.
  • Система квот и лимитов. Максимальный размер спецификации — 3,5 МБ. Количество API-шлюзов в одном облаке — 10, но, в отличие от максимального размера спецификации, меняется по запросу в техническую поддержку.
Тарификация по количеству запросов к созданным API-шлюзам и исходящему трафику. При этом запросы к API-шлюзам до 100 000 запросов в месяц не тарифицируются. Как, кстати, и входящий трафик, а также передача данных между сервисами Yandex.Cloud. Больше подробностей можно узнать в сообществе Serverless в Telegram: Yandex Serverless Ecosystem. Мы регулярно встречаемся в виртуальном пространстве и похоже созревает потребность в очной встрече.
===========
Источник:
habr.com
===========

Похожие новости: Теги для поиска: #_analiz_i_proektirovanie_sistem (Анализ и проектирование систем), #_oblachnye_vychislenija (Облачные вычисления), #_api, #_oblachnye_servisy (Облачные сервисы), #_serverless, #_serverless, #_api, #_cloud, #_aws, #_yandex_cloud, #_azure, #_gateway, #_analiz_i_proektirovanie_sistem (
Анализ и проектирование систем
)
, #_oblachnye_vychislenija (
Облачные вычисления
)
, #_api, #_oblachnye_servisy (
Облачные сервисы
)
, #_serverless
Профиль  ЛС 
Показать сообщения:     

Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы

Текущее время: 22-Ноя 09:15
Часовой пояс: UTC + 5