+
Вход

Въведи своя e-mail и парола за вход, ако вече имаш създаден профил в DEV.BG/Jobs

Забравена парола?
+
Създай своя профил в DEV.BG/Jobs

За да потвърдите, че не сте робот, моля отговорете на въпроса, като попълните празното поле:

111+14 =

+
Забравена парола

Въведи своя e-mail и ще ти изпратим твоята парола

Сравнение на Google Apigee и Azure API Management платформите за управление на API услуги

*Автор на текста: Евгени Дюлгеров, Senior .NET Developer

В тази статия ще разгледаме особеностите на Google Apigee и Azure API Management платформите за управление на API услуги, техните компоненти, характеристики, предимства и недостатъци, като първо ще изясним няколко термина, като:

• Управление на API услуги
• Платформи за управление на API услуги
• Компоненти на платформа за управление на API услуги

Какво представлява управлението на API услуги?

Управлението на API услуги е централизиран начин за разработка и преизползване на уеб услуги, споделяне на документация и предпазване на уеб услуги от неоторизиран достъп. Когато използваме множество API услуги за дигитализиране на даден бизнес или микросървис архитектури, ни е нужно да управляваме целия жизнен цикъл на тези услуги, което включва задачи като:

• Дефиниране на структурата на API услугите и публикуването ѝ;
• Защита на достъпа до API услугите;
• Контролиране на трафика от заявки към API услугите;
• Проследяване на грешките, възникващи при работата на API услугите;
• Анализиране на потребителското ползване на услугите, и подобряването им;
• Запознаване на новите потребители с предоставените услуги.

За какво са полезни платформите за управление на API услуги?

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

Платформите също предоставят справки за броя заявки към уеб услугите и техния източник, като тези справки са от основно значение за формулиране на правилната стратегия за справяне с периодите на повишен трафик към API услугите.

Примерна архитектура на една платформа за управление на API услуги може да се разгледа на по-долната картинка:

Някои платформи за управление на API услуги предоставят портал за разработка, където програмистите могат да се сдобият с или да споделят API услуга, която би била полезна за създаването на дадено приложение.

Какви са компонентите на една платформа за управление на API услуги?

Основните компоненти на една платформа за управление на API услуги включват:

• API Gateway
• API Portal

API Gateway

API Gateway е архитектурен слой, който е разположен между потребителите и backend услугите, които приемат заявки, като той пренасочва тези заявки към правилните услуги и връща на потребителя агрегиран резултат.

Сред основните функции на API Gateway компонента са:

• Автентикация и контролиране на трафик – API Gateway компонентът поддържа автентикация, проверка на потребителска информация, и валидация на token-и, за да осигури оторизиран достъп. Също следи какво количество заявки е позволено за дадена API услуга, контролирайки това количество чрез ограничения и политики.

• Кеширане – използвайки политики за кеширане, API Gateway компонентът може да кешира определени типове съдържание.

• Трансформация на заявки и резултат от заявки – API Gateway компонентът може да извършва леки трансформации на данни между клиентското приложение и backend-a, (например преименуване на header-и).

• Агрегиране на резултат от множество заявки – компонентът позволява обединението на резултата от заявки към няколко API услуги, в един единствен резултат, който ще се върне към крайния клиент.

• Пренасочване на потребители към специфични версии на услугите – когато не сме сигурни в качеството на работа на по-новите версии на дадена услуга, можем да пренасочим част от потребителския трафик към по-стара и по-стабилна версия на дадената услуга.

• Конфигуриране на политики – компонентът позволява конфигурирането на политики, използвайки потребителски или команден интерфейс.

Developer portal

Developer порталът е място, където потребителите на дадена API услуга могат да научат повече за нея. Там се пази документацията за дадената услуга и предоставя следните функционалности:

• API каталог – позволява да научим, кои API услуги вече са разработени, така че да не дублираме бизнес логика;

• Автоматично генериране на документация – платформите за управление на API услуги обикновено поддържат по-популярните методи за API спецификация (OpenAPI, WSDL, JSON и XSD) и автоматично създават, и обновяват тази документация, използвайки правилните метаданни;

• Брандиране – можем да използваме различни шаблони, за да брандираме портала по начин, който ще е по-приятен за използване от нашата организация, да променим структурата на сайта и да добавим, и премахнем някои елементи;

• Колекциониране на данни – порталът позволява колекциониране на различни типове данни за извършване на анализ върху тях, относно „средно време за връщане на отговор”, „големина на заявките”, „трафик”, „грешки със заявките” и др.;

• Мониторинг – порталът предоставя актуална информация за работата на API услугите, както и за грешки, възникващи по време на тяхната работа (предоставяйки също и потенциални решения на тези грешки). Предоставя и възможност за известяване в случай, че даден параметър премине поставените му ограничения.

На картинката по-долу е показано примерно мониторинг табло за Apigee платформата:

• Къстъмизиране на табла – порталът предоставя възможност да се използват вече предоставени шаблони за табла или да се използва drag and drop функционалност за създаване на собствени табла с подбрани елементи, в зависимост от интересите на потребителите на таблата.

Azure API Management платформа за управление на API услуги

Примерна архитектура на Azure API Management платформата за управление на API услуги, може да се разгледа на по-долната картинка:

Azure API Management платформата за управление на API услуги се състои от следните няколко компонента:

• API Gateway – Всички заявки от клиентските приложения достигат първо до API Gateway компонента, който играе роля на „фасада” към backend услугите, позволявайки на API разработчиците да разграничат API имплементацията от backend архитектурата. API Gateway компонентът предоставя конфигуриране на пренасочване, защита и кеширане на заявки;

• API Management – API разработчиците използват API Management компонента, за да достъпват и конфигурират API услугата, която разработват. Достъпът може да се извършва и чрез Azure инструменти като Azure порталът, Azure PowerShell, Azure CLI, разширение на Visual Studio и др.;

• Message Queuing (Управление на съобщенията) – Azure предоставя Azure Service Bus услугата за управление на съобщения, като също така предоставя Azure Service Bus Relay услугата за хибридни имплементации (cloud и on-premises). Необходимо е да разпределим трафика от съобщения към множество опашки за съобщения, за да приоритизираме и по-лесно да управляваме обработката им;

• Event Engine (Управление на събитията) – Azure предоставя Azure Event Grid услугата за управление на събития, като Azure Event Grid може да филтрира и препраща събития към редица други Azure услуги, сред които Azure Automation, Azure Functions, Event Hubs, Logic Apps, Microsoft Flow, Queue Storage, WebHooks (HTTP/S) и др. Освен като получатели на съобщения, много от тези услуги могат да играят ролята и на изпращачи на съобщения;

Днес те питаме…

Как се справяте с бърнаута?
Loading ... Loading …

• Orchestration – Azure Logic Apps позволява да автоматизираме и управляваме изпълнението на задачи, бизнес процеси и работни потоци, когато трябва да интегрираме приложения, данни, системи и услуги, част от различни организации.

Google Apigee платформа за управление на API услуги

Примерна архитектура на Google Apigee платформата за управление на API услуги може да се разгледа на по-долната картинка:

Google Apigee платформата за управление на API услуги се състои от следните няколко компонента:

• API Gateway – или Cloud Endpoints е олекотена NGINX-базирана дистрибутирана платформа за управление на API услуги, осигуряваща висока производителност и скалируемост. Използвайки Open API спецификацията, тази платформа предоставя необходимите инструменти за управление на разработката на дадена API услуга, както и информация за работата на услугата, използвайки инструменти като Google Cloud Monitoring, Google Cloud Logging и Google Cloud Trace;

• API Management – или Apigee е цялостно решение за управление, разработка и анализ и защита на API услуги. Подобно на Azure API Gateway, всички заявки от клиентските приложения достигат първо до Apigee компонента, играещ ролята на „фасада” към backend услугите, позволявайки на API разработчиците да разграничат API имплементацията от backend архитектурата;

• Message Queuing (Управление на съобщенията) и Event Engine (Управление на събитията) – Google предоставя обединено решение за управление на съобщения и събития. Cloud Pub/Sub услугата поддържа както комуникация тип „точка до точка”, така и “publish/subscribe” комуникация. Предоставя скалируема serverless среда, която обаче не поддържа FIFO (First In First Out) опашки и дупликиране на данни, което е често срещана грешка.

• Orchestration – Google предоставя Cloud Composer услугата, която се използва за оркестрация и управление на работните потоци и е разработена върху Appache Airflow и може да се конфигурира чрез програмния език Python.

Сравнение на Azure API Management и Google Apigee платформите


По-долу ще разгледаме таблично сравнение между услугите, предоставени от Azure API Management и Google Apigee платформите, на базата на различни характеристики:

Сравнение на API Gateway и API Management услугите

Сравнение на услугите за управление на съобщения

Сравнение на услугите за управление на събития

Сравнение на услугите за управление на работни потоци

Заключение

По-долу ще обобщим накратко различните предимства и недостатъци на Azure API Management и Google Apigee платформите на база на разгледаните характеристики и функционалности:

Предимства на Azure API Management

Azure API Management платформата предоставя добро решение за репликиране на данни, автоматично генериран API каталог, документация, редица примери с код за използване на различните функционалности, JSON Web Token (JWT) валидация и IP филтриране, автоматично управление и интегриране, използвайки REST и PowerShell. Може да се интегрира с редица други услуги и решения.
Платформата е подходяща за разработка на облачни решения, които включват множество интеграции с други облачни услуги на Microsoft или 3rd party доставчици и изискват високо качество на обработка на данните.

Недостатъци на Azure API Management

Azure API Management платформата не предоставя API Monetization и Real Time Analytics функционалности. Някои от услугите, които участват в Azure API Management платформата, не са serverless базирани, защото не са първоначално разработени за облака, а са интегрирани в Azure на по-късен етап.

Предимства на Google Apigee

Google Apigee платформата позволява бърза и лесна разработка на API услуги, използване на gRPC, като всички услуги част от Google Apigee платформата са serverless базирани. Apigee предлага както cloud базирано, така и on-premises решение, и позволява използването на редица програмни езици за разработка. Предоставя добра support документация.

Платформата е подходяща за решения, използващи максимално предимствата на облачните архитектури, като скалируемост и др., и предоставя възможност за разработка на цялостни serverless базирани решения. Също е подходяща за решения, изискващи бърза разработка и предоставяне на API услугите за използване от крайния клиент.

Недостатъци на Google Apigee

Apigee има някои функционалности, които не работят напълно добре, а също така не поддържа интегриране с някои услуги. Платформата не поддържа FIFO опашки и не предоставя репликиране на данни в реално време. Също така не е ценово ефективна и изисква значително количество ресурси, поради което цената на on-premises инстанция е доста висока. Не предоставя гъвкавост и възможности за къстъмизация.

Евгени Дюлгеров

За автора:

Евгени Дюлгеров работи като Senior .NET Developer в Digitall.

Завършил е бакалавър “Компютърни системи и технологии” в ТУ-София, магистратура “Управление на ресурси в предприятията” в английския факултет на ТУ-София и магистратура “Управление на проекти по информационни технологии” към департамент „Информатика“ в Нов Български Университет.

Хобитата му са четене на научна литература, фитнес и инвестиране.

Интересите му също са разнообразни – изучаване на разнообразни нови технологии и писане на проекти с тях, писане на статии, водене на лекции и др.