Блоги

Интересное в интеграции. Часть 3. CAPI.

Продукты класса API Management уже давно и прочно заняли свою нишу. Все IT аналитики хором говорят о том, что за API будущее и API всё больше становится продуктом, а не только средством унификации доступа к информационным системам. В этой статье я хотел бы представить проект системы для управления API, который разрабатывает пока 1 человек - Rodrigo Coelho. Этот проект примечателен несколькими моментами:

  • Все работы до стадии MVP сделаны одним человеком
  • Технологический стек основан на продуктах Apache - в основе лежит Apache Camel
  • Учтены все современные тенденции - CAPI запускается на Kubernetes или в Docker

Сейчас проект готовится к использованию для внутренних интеграций в администрации ЕС. Давайте более подробно остановимся на некторых деталях продукта.

Проект полностью открытый и находится в Git репозитории. Проект будет оставаться открытым - никаких планов по его закрытию нет. Архитектурная схема продукта выглядит следующим образом:

Все продукты запускаются либо в Kubernetes, либо в Docker.

Для создания и управления API используется Apache Camel - новые API можно добавить через REST API продукта - https://github.com/rodrigoserracoelho/capi-gateway-rest. Слушатель событий сущностей кеша Hazelcast отлавливает добавление нового объекта Api и запускает динамическое создание интеграционного маршрута в Apache Camel - https://github.com/rodrigoserracoelho/capi-gateway/blob/master/src/main/java/at/rodrigo/api/gateway/cache/NewApiListener.java#L59. Построение маршрута происходит в этом классе: https://github.com/rodrigoserracoelho/capi-gateway/blob/master/src/main/java/at/rodrigo/api/gateway/utils/CamelUtils.java#L123 - видно, что в маршрут добавляется вся необходимая обвязка для аутентификации, отправки метрик, троттлинга и трассировки. Управление траффиком происходит ассинхронно через Kafka. Для аутентификации и используется Keycloak. Недавно появилась первая версия портала, но пока с очень ограниченным функционалом - https://github.com/rodrigoserracoelho/capi-ui. 

Инструкция как попробовать CAPI опубликована тут.

Проект выглядит перспективно и, после общения с его автором, есть понимание, что у него много интересных планов по его развитию и это здорово!

Презентация CAPI на Apache Con 2020 доступна по ссылке.

25.12.2020