Запуск WSO2 API Manager на платформе Openshift Container Platform

Компания WSO2 со своей линейкой продуктов регулярно занимает лидирующие позиции в различных номинациях Gartner и Forrester. Не исключением является и WSO2 API Manager. Как и другие продукты компании WSO2 API Manager основывается на ядре Carbon и имеет аналогичные веб-интерфейс и систему администрирования. Один раз познакомившись с каким-нибудь продуктом можно быть уверенным, что порог вхождения в другие будет минимальным. Все API Manager, де-факто, представляют примерно одинаковый набор возможностей, в которые входит:

  • Разработка API
  • Публикация API
  • Управлением жизненным циклом API
  • Версионирование API
  • Троттлинг
  • Безопасность
  • Магазин API
  • Аналитика

В отличие от других продуктов этого класса в WSO2 API Manager можно обогатить прохождение пакетов при помощи полноценной маршрутизации на Apache Synapse.

Перейдём к тонкостям запуска продукта на платформе Openshift. Итак, по пунктам:

  • Использовать персистентное хранилище - по-умолчанию APIM запускается на HSQLDB - для тестового проекта я использовал MySQL. Настройка внешней БД описана тут. Обратите внимание, что для MySQL 5.7 есть отдельные скрипты.
  • При использовании MySQL не рекомендуется использовать коннектор 8-й версии - с ним проблемы. У меня всё заработало, когда я перешёл на 5-й.
  • В процессе разработки шаблона для single-node модели разворачивания столкнулись с проблемой рестарта - сохранённые API корректно отображались в веб, но при попытке их редактирования или вызова получалась ошибка. Проблема в том, что при создании API появляется не только запись в БД, но и файлы с описанием маршрутов Apache Synapse. Для решения этой проблемы создаётся Persistent Volume Claim и монтируется $WSO2_HOME/repository/deployment/server. Перед стартом продукта не забудьте наполнить эту папку первоначальными данными, которые есть в zip архиве APIM.
  • Для инициализации БД потребуется использовать хуки деплоймента. Об этом описано тут.
  • Столкнулись с проблемой неверной ссылки при тестировании вызовов API из магазина - поможет исправление <GatewayEndpoint> repository/conf/api-manager.xml
  • Ещё одна проблема со ссылками - переход из приложения публикатора в магазин упорно вёл на localhost (см. рисунок ниже). Помогает исправление в файле repository/conf/api-manager.xml по пути <APIStore> -> <URL>.

Как итог всех упражнений - запущенное в Openshift приложение WSO2 API Manager, использующее БД MySQL.

 

26.12.2018