Что такое системы API Management
Зачем они нужны и какие функции они выполняют.
Всем привет! Меня зовут Антон, я – инженер команды, отвечающей за развитие централизованных IT-сервисов, которыми пользуются продуктовые команды в X5 Retail Group.
В этой статье я расскажу о системах класса API Management и в частности о APIM Gravitee (https://www.gravitee.io), том, что это за класс систем, как они используются для обеспечения потребностей команд разработки. Статья не погружает в технические аспекты, но может быть полезна архитекторам и менеджерам, которые думают о том, чтобы попробовать использовать данный класс систем, но не знают, подойдут ли они для их задач, а также разработчикам, которые могут открыть для себя новые инструменты для удобной работы с API.
Что такое системы API Management
Определение
В данных вариантах определения понятия «API Management» мы видим, что это процессы и системы позволяющие публиковать внутренние API сервисов, прописывать им определенные политики обработки запросов и ответов, контролировать доступ и анализировать статистику использования и производительности. Также рядом могут располагаться несколько подсистем, которые организуют выполнение необязательных функций, но интересных с точки зрения других подразделений, например монетизация API.
Зачем еще один огород городить?
Архитектура сервиса
В архитектуру сервиса API Management обычно входят (см. рис. 1):
Management Core: ядро системы, которое отвечает за формирование политик, планов, работу точками входа и выхода, настроек API Gateways и API, настройку CORS, Failover, Healthcheck, формирование запросов на отображение статистики использования API и логов.
Web/Development Portal: отвечает за UI, отображение настроек, статистики использования API, healthcheck и логов, а также позволяет общаться разработчикам, администраторам и владельцам API.
API Gateways: шлюзы или прокси, они отвечают за обработку запросов от клиентов сервиса согласно установленных настроек и политик, ведение логов запросов и ответов, а также запуск healthcheck по Backend API.
Backend API: отвечает за обработку запросов согласно бизнес-логике конечного сервиса.
Databases: в части сервиса API Management, хранят данные по настройке API, API Gateways, логи запросов клиентов и ответы backend, healthcheck, данные мониторинга практически всех компонентов API Management.

Плюсы и минусы систем API Management
У данных систем есть несколько преимуществ:
Абстракция: система упрощает сложность сервисов под ним и предоставляет клиентам единый опыт.
Аутентификация: система позволяет пройти аутентификацию, в том числе и через сторонние службы, например Keycloak.
Управление трафиком: система регулирует входящий и исходящий трафик API.
Мониторинг API: система может помочь в мониторинге запросов/ответов клиента.
Преобразования: система позволяет преобразовать запросы/ответы API.
К минусам можно отнести:
Увеличение Latency: шлюзу необходимо время для обработки запросов/ответов согласно настроенным политикам.
TCO: Совокупная стоимость владения для всей цепочки поставки ценности, естественно будет больше, чем просто установить nginx и выставить его наружу.
API Gateways
API Gateways работают как единая точка входа в ЦОД (центр обработки данных), группу распределенных служб или сервисов (см. рис. 2). Также API Gateways могут использоваться для связи между двумя продуктами/сервисами, развернутыми в одном ЦОД. API Gateways принимают вызовы от клиентов, обрабатывают их согласно политикам/правилам и направляют их в соответствующие сервисы. Чтобы API Gateways могли максимально быстро обрабатывать запросы от клиентов их делают максимально легковесными, с использованием асинхронных фреймворков. API Gateways, как правило, работают только на седьмом уровне (L7) модели OSI.

Типы API Gateways
С точки зрения расположения есть два места установки API Gateways:
Local API Gateways работают как шлюз для сервисов внутри организации.
DMZ API Gateways работают как шлюз для внешних потребителей и клиентов сервисов.
Что такое системы API Management
Зачем они нужны и какие функции они выполняют.
Всем привет! Меня зовут Антон, я – инженер команды, отвечающей за развитие централизованных IT-сервисов, которыми пользуются продуктовые команды в X5 Retail Group.
В этой статье я расскажу о системах класса API Management и в частности о APIM Gravitee (https://www.gravitee.io), том, что это за класс систем, как они используются для обеспечения потребностей команд разработки. Статья не погружает в технические аспекты, но может быть полезна архитекторам и менеджерам, которые думают о том, чтобы попробовать использовать данный класс систем, но не знают, подойдут ли они для их задач, а также разработчикам, которые могут открыть для себя новые инструменты для удобной работы с API.
Что такое системы API Management
Определение
В данных вариантах определения понятия «API Management» мы видим, что это процессы и системы позволяющие публиковать внутренние API сервисов, прописывать им определенные политики обработки запросов и ответов, контролировать доступ и анализировать статистику использования и производительности. Также рядом могут располагаться несколько подсистем, которые организуют выполнение необязательных функций, но интересных с точки зрения других подразделений, например монетизация API.
Зачем еще один огород городить?
Архитектура сервиса
В архитектуру сервиса API Management обычно входят (см. рис. 1):
Management Core: ядро системы, которое отвечает за формирование политик, планов, работу точками входа и выхода, настроек API Gateways и API, настройку CORS, Failover, Healthcheck, формирование запросов на отображение статистики использования API и логов.
Web/Development Portal: отвечает за UI, отображение настроек, статистики использования API, healthcheck и логов, а также позволяет общаться разработчикам, администраторам и владельцам API.
API Gateways: шлюзы или прокси, они отвечают за обработку запросов от клиентов сервиса согласно установленных настроек и политик, ведение логов запросов и ответов, а также запуск healthcheck по Backend API.
Backend API: отвечает за обработку запросов согласно бизнес-логике конечного сервиса.
Databases: в части сервиса API Management, хранят данные по настройке API, API Gateways, логи запросов клиентов и ответы backend, healthcheck, данные мониторинга практически всех компонентов API Management.
рис. 1 Архитектура сервиса API Management
Плюсы и минусы систем API Management
У данных систем есть несколько преимуществ:
Абстракция: система упрощает сложность сервисов под ним и предоставляет клиентам единый опыт.
Аутентификация: система позволяет пройти аутентификацию, в том числе и через сторонние службы, например Keycloak.
Управление трафиком: система регулирует входящий и исходящий трафик API.
Мониторинг API: система может помочь в мониторинге запросов/ответов клиента.
Преобразования: система позволяет преобразовать запросы/ответы API.
К минусам можно отнести:
Увеличение Latency: шлюзу необходимо время для обработки запросов/ответов согласно настроенным политикам.
TCO: Совокупная стоимость владения для всей цепочки поставки ценности, естественно будет больше, чем просто установить nginx и выставить его наружу.
API Gateways
API Gateways работают как единая точка входа в ЦОД (центр обработки данных), группу распределенных служб или сервисов (см. рис. 2). Также API Gateways могут использоваться для связи между двумя продуктами/сервисами, развернутыми в одном ЦОД. API Gateways принимают вызовы от клиентов, обрабатывают их согласно политикам/правилам и направляют их в соответствующие сервисы. Чтобы API Gateways могли максимально быстро обрабатывать запросы от клиентов их делают максимально легковесными, с использованием асинхронных фреймворков. API Gateways, как правило, работают только на седьмом уровне (L7) модели OSI.
рис. 2
Типы API Gateways
С точки зрения расположения есть два места установки API Gateways:
Local API Gateways работают как шлюз для сервисов внутри организации.
DMZ API Gateways работают как шлюз для внешних потребителей и клиентов сервисов.
Сведения об Управлении API
Управление API (APIM) позволяет создавать согласованные и современные шлюзы API для существующих внутренних служб.
Управление API помогает организациям публиковать API для внешних пользователей, партнеров и собственных разработчиков, раскрывая таким образом потенциал своих данных и услуг. Компании по всему миру стремятся расширить свои операции в виде цифровой платформы, создать новые каналы, найти новых потребителей и выстроить прочные отношения с ними. Служба управления API предоставляет базовые возможности для успешного выполнения программы API за счет привлечения разработчиков, бизнес-аналитики, анализа, безопасности и защищенности. Службу управления Azure API можно использовать для запуска полноценной программы API на основе любого внутреннего сервера.
В этой статье рассматриваются распространенные сценарии с использованием APIM. Также здесь приводятся краткие сведения об основных компонентах системы APIM. Далее можно ознакомиться с более подробным обзором каждого компонента.
Обзор
Для использования API Management администраторы создают API. Каждый API состоит из одной или более операций, и каждый API может быть добавлен в один продукт или более. Для использования API разработчики подписываются на продукт, который содержит этот API, и затем могут вызвать операцию API, на которую могут воздействовать какие-либо политики использования. Ниже приведены распространенные сценарии:
Система состоит из следующих компонентов.
Шлюз API – конечная точка, которая:
Портал Azure — это административный интерфейс, предназначенный для настройки программы API. Он используется, чтобы:
Портал разработчика — это основная веб-платформа для разработчиков, которая позволяет:
Дополнительные сведения см. в технической документации (в формате PDF) Управление API в облаке: реализация потенциала API. В ней приводятся основные сведения о службе управления API. Исследование CITO Research охватывает следующие темы.
API и операции
API является основой экземпляра службы API Management. Каждый API включает набор операций, доступных разработчикам. Каждый API содержит ссылку на фоновую службу, которая реализует API, и его операции сопоставляются с операциями, реализуемыми фоновой службой. Операции в API Management широко настраиваемые, с управлением через сопоставление URL-адресов, параметров запроса и пути, содержимого запроса и ответа и кэширование ответа операций. Ограничение скорости, квоты и политики ограничения IP-адресов могут быть реализованы на уровне API или индивидуальной операции.
Дополнительную информацию см. в инструкциях по созданию API и добавлению операций в API.
Продукты
Для разработчиков API видны через продукты. Продукты в API Management имеют один или несколько API и настраиваются по имени, описанию и условиям использования. Продукты могут быть открытыми или защищенными. Прежде чем можно будет использовать защищенные продукты, на них необходимо подписаться, а открытые продукты могут использоваться без подписки. Когда продукт будет готов к использованию разработчиками, его можно опубликовать. После публикации продукта разработчики могут его увидеть (и если это защищенный продукт, то подписаться на него). Утверждение подписки настраивается на уровне продукта и может требовать утверждения администратором или быть утверждено автоматически.
Группы используются для управления видимостью продуктов для разработчиков. Продукты предоставляют видимость группам, и разработчики могут просматривать и подписываться на продукты, видимые для групп, к которым они принадлежат.
Группы
Группы используются для управления видимостью продуктов для разработчиков. Служба управления API включает несколько неизменяемых системных групп.
Помимо системных групп администраторы могут создавать пользовательские группы или использовать внешние группы в связанных с ними клиентах Azure Active Directory. Чтобы обеспечить разработчикам видимость и предоставить доступ к продуктам API, пользовательские и внешние группы можно использовать вместе с системными группами. Например, можно создать одну пользовательскую группу для разработчиков, связанных с конкретной партнерской организацией, и предоставить им доступ к интерфейсам API в продукте, содержащем только соответствующие интерфейсы API. Пользователь может входить в несколько групп.
Дополнительные сведения см. в разделе Как создать и использовать группы.
Разработчики
Разработчики представляют учетные записи пользователей экземпляра службы API Management. Разработчики создаются или приглашаются администраторами. Также они могут зарегистрироваться через портал разработчика. Каждый разработчик является членом одной или нескольких групп и может быть подписан на продукты, которые предоставляют видимость этим группам.
Когда разработчики подписываются на продукт, им предоставляется первичный и вторичный ключи для продукта. Этот ключ используется для совершения вызовов к API продукта.
Политики
Политики — это мощная функция управления API, которая позволяет издателю изменять поведение API с помощью настройки. Политика — это коллекция правил, которые выполняются последовательно над запросом или ответом API. Часто используемые правила включают преобразование формата из XML в JSON и ограничение скорости вызовов, позволяющее ограничить число входящих вызовов от разработчика; доступны и другие политики.
Выражения политики можно использовать в качестве значений атрибутов или текстовых значений в любой политике управления API, если в ней не указано иное. Некоторые политики (в том числе Поток управления и Задание переменной) основаны на выражениях политики. Дополнительную информацию см. в документации по расширенным политикам и выражениям политики.
Полный список политик службы управления API см. в справочнике по политикам. Дополнительную информацию об использовании и настройке политик см. в статье о политиках управления API. Инструкции по созданию продукта с ограничением скорости и политиками квот см. в статье о создании и настройке дополнительных параметров продукта.
Портал разработчика
Портал разработчика — это место, где разработчики могут изучить API, просмотреть и вызвать операции и подписаться на продукты. Потенциальные потребители могут посетить портал разработчика, просмотреть API и операции и подписаться. URL-адрес портала разработчика указан на панели мониторинга на портале Azure для экземпляра службы управления API.
Можно настроить вид и дизайн портала разработчика, добавив произвольное содержимое, изменив стили и реализовав корпоративный дизайн.
API управления и экономика API
Дополнительные сведения о службе управлении API см. в следующей презентации с конференции Microsoft Ignite 2017.
Дальнейшие действия
Изучите следующее краткое руководство и приступите к использованию службы управления API Azure:
API Management
Manage & Monetize your APIs
Stay on top of customer support
Semper curabitur ullamcorper posuere nunc sed. Ornare iaculis bibendum malesuada faucibus lacinia porttitor. Pulvinar laoreet sagittis viverra duis. In venenatis sem arcu pretium pharetra at. Lectus viverra dui tellus ornare pharetra.
Better understand your customers
Semper curabitur ullamcorper posuere nunc sed. Ornare iaculis bibendum malesuada faucibus lacinia porttitor. Pulvinar laoreet sagittis viverra duis. In venenatis sem arcu pretium pharetra at. Lectus viverra dui tellus ornare pharetra.
Everything you need
Ac euismod vel sit maecenas id pellentesque eu sed consectetur. Malesuada adipiscing sagittis vel nulla nec.
Invite team members
You can manage phone, email and chat conversations all from a single mailbox.
You can manage phone, email and chat conversations all from a single mailbox.
You can manage phone, email and chat conversations all from a single mailbox.
You can manage phone, email and chat conversations all from a single mailbox.
Find what you need with advanced filters, bulk actions, and quick views.
Find what you need with advanced filters, bulk actions, and quick views.
Find what you need with advanced filters, bulk actions, and quick views.
Find what you need with advanced filters, bulk actions, and quick views.
Pricing
The right price for you, whoever you are
Lorem ipsum dolor sit, amet consectetur adipisicing elit. Velit numquam eligendi quos odit doloribus molestiae voluptatum.
Hobby
Pariatur quod similique
Sapiente libero doloribus
Vel ipsa esse repudiandae
Growth
Quia rem est sed impedit magnam
Dolorem vero ratione voluptates
Qui sed ab doloribus voluptatem dolore
Laborum commodi molestiae id et fugiat
Nam ut ipsa nesciunt culpa modi dolor
Scale
Pariatur quod similique
Sapiente libero doloribus
Vel ipsa esse repudiandae
Frequently asked questions
Ready to dive in? Start your free trial today.
Ac euismod vel sit maecenas id pellentesque eu sed consectetur. Malesuada adipiscing sagittis vel nulla nec.
From the blog
Lorem ipsum dolor sit amet consectetur, adipisicing elit. Ipsa libero labore natus atque, ducimus sed.
Boost your conversion rate
Lorem ipsum dolor sit amet consectetur adipisicing elit. Architecto accusantium praesentium eius, ut atque fuga culpa, similique sequi cum eos quis dolorum.
How to use search engine optimization to drive sales
Lorem ipsum dolor sit amet consectetur adipisicing elit. Velit facilis asperiores porro quaerat doloribus, eveniet dolore. Adipisci tempora aut inventore optio animi., tempore temporibus quo laudantium.
Improve your customer experience
Lorem ipsum dolor sit amet consectetur adipisicing elit. Sint harum rerum voluptatem quo recusandae magni placeat saepe molestiae, sed excepturi cumque corporis perferendis hic.
Sign up for our newsletter
Anim aute id magna aliqua ad ad non deserunt sunt. Qui irure qui Lorem cupidatat commodo. Elit sunt amet fugiat veniam occaecat fugiat.
We care about the protection of your data. Read our Privacy Policy.
Практики успешной монетизации API на базе Azure API Management
Всем привет!
Сегодня хотим обсудить тему управления API. Когда имеет смысл открывать свой API, кто имеет возможность монетизировать свой API и как внедрить систему API менеджмента, чтобы затраты, как на начальное внедрение, так и на его эксплуатацию были минимальны.
Мы хотим поделиться своим опытом разработки системы управления API на базе Azure API Management. Давайте начнем с самого начала.
1. ЛИКБЕЗ. КОГДА НУЖНО УПРАВЛЯТЬ API
1.1. Когда открывать API?
Если вы понимаете, что ваши данные, контент или уникальная бизнес-логика могут быть полезны другим компаниям и людям – API можно открывать.
Как только вы понимаете, что ваши API помогают развитию бизнеса ваших пользователей – можно предлагать доступ к API за плату.
Если у вас немного пользователей, вы можете предоставлять доступ и собирать плату вручную. А если много, вам скорее всего понадобится API Management система. (API Management system).
2. НЕ ВСЕ API MANAGEMENT СИСТЕМЫ ОДИНАКОВО ПОЛЕЗНЫ
Наш заказчик — крупная метеорологическая компания, большая доля бизнеса которой состоит в платном предоставлении данных, получаемых с метеорологических станций. Несколько лет назад она одной из первых в отрасли решила также открыть и предоставлять платно свои API. И на данный момент предлагает клиентам 14 видов API продуктов, отличающихся тем, какие наборы API включены в продукт, и какой лимит на использование сета продуктов установлен.
Для понимания масштаба проекта, на текущий момент API заказчика используют 4200 разработчиков, 2400 компаний.
Наша совместная история – это уже третья попытка заказчика реализовать API менеджмент систему для успешной монетизации своих сервисов. Первый раз было решение на основе Mashery, второй раз Apigee, а затем Azure API Management. Как водится, в русской традиции, с третьего раза, обычно, все удается. Тут получилось именно так.
2.1. А что было не так с первыми двумя?
Нужно начать с того, что компания оба раза выбирала лидеров рынка – Mashery и Apigee. И после года использования уходили от каждого из них. Звучит как-то странно. Это же лидеры?!
2.2. Стоимость пользования
Схема монетизации Mashery не позволяла заранее получить предсказуемую оценку затрат, и они очень быстро стали зашкаливающе высокими.
Стоимость использования Apigee со встроенной платежной системой была сразу просто космической и по сути забирала все доходы от продажи API.
Надо сказать, у Azure APIM нет встроенной платежной системы. На первый взгляд кажется, что это огромный минус, однако после негативного опыта со встроенными платежными системами, которые оказались дороги в обслуживании, заказчик оценил, это как безусловный плюс.
2.3. UX
Кроме того, заказчики признались, что посчитали UI Apigee слишком сложным и запутанным. Для сравнения приводим логические архитектуры Apigee и Azure API Mаnagement:


Как видите, архитектура Azure API Management более проста. В ней меньше объектов. Следовательно, она более проста для понимания как администраторам, так и пользователям.
3. АРХИТЕКТУРА НАШЕГО РЕШЕНИЯ
Архитектура нашего решения выглядит так:
3.3. Блок APIM позволяет безболезненно мапить пользователей из EM c пользователями в Azure.
3.4. Отдельно выделен универсальный блок обработки платежей – Payments, который пока поддерживает в том числе и повторяющиеся платежи (Recurring Payments). Пока он интегрирован только с PayPal. В будущем, планируется сюда же подключить Apple Pay и Google Pay
Пользователь и разработчики из его организации получают доступ на Developers Portal, на котором есть документации и примеры использования API.
4. КОГДА НУЖНА КАСТОМНАЯ АВТОМАТИЗАЦИЯ?
Давайте скажем честно – любая “готовая” платформа при встрече с реальным бизнесом обычно требует доработки. Хотя функциональность “из коробки” предоставляет все необходимые базовые инструменты, которые можно и нужно использовать для проверки своих бизнес-идей.
5. ИТОГО
Если вы только задумываетесь о том, стоит ли предоставлять платный доступ к вашим API сервисам, подписочная схема Azure API Management позволяет быстро и без капитальных вложений проверить вашу бизнес-концепцию.








