Облако SOA в PaaS возможно?

В настоящее время я нахожусь на чертежной доске нового сервисного облака, которое мы создаем с сервисно-ориентированной архитектурой. Идея такова:

  • Облако, скажем, 10 сервисов.
  • 3 совершенно разных уровня бизнес-логики (BL), которые могут свободно смешиваться и сочетаться с этими сервисами.
  • BL занимается авторизацией и управлением доступом, сервисы только получают и отвечают.

Вопрос в том, возможна ли такая установка с PaaS (предпочтительно Heroku или Google App Engine), при этом основная проблема заключается в наличии нескольких служб, которые не являются общедоступными, но в то же время доступны из разных приложений (BL).

В основном: Как защитить сервисы от публичного доступа (желательно без авторизации и токенов), но в то же время позволить любому из моих приложений добраться до них?

введите здесь описание изображения


person gust1n    schedule 16.10.2013    source источник


Ответы (2)


Возможно, вы захотите проверить WSO2 Cloud. он состоит из облака приложений и облака API. Для вашего сценария вы можете изолировать свое облако сервисов с помощью WSO2 API Cloud. Вы можете открыть доступ к облаку служб через WSO2 API Cloud и предоставить некоторые API только вашему домену клиента. В облаке приложений WSO2 вы можете развернуть свои общедоступные приложения, которые могут использовать API-интерфейсы облака служб, которые изолированы от вашего домена.

Более того, решение WSO2 App Cloud — это не только хостинг, но и платформа для разработки. Вы можете разрабатывать сервисы и приложения с нуля. Он предоставляет вам средства для сборки, подготовку базы данных, редактор и т. д.

Оба вышеупомянутых облака имеют возможность автоматического масштабирования (вам не нужно об этом беспокоиться). Облако приложений предоставляет вам среду разработки, тестирования и производства для управления жизненным циклом ваших приложений/сервисов. WSO2 API Cloud позволяет вам не только создавать, управлять и публиковать ваши API в сообществе разработчиков, но также позволяет вам делиться ими в облаке.

Дополнительную информацию можно найти по адресу https://docs.wso2.com/display/AppCloud/WSO2+App+Cloud+Documentation https://docs.wso2.com/display/APICloud/WSO2+API+Cloud+Documentation

Обратите внимание, что WSO2 Cloud на данный момент находится в стадии бета-тестирования.

Отказ от ответственности: я работаю в WSO2 Cloud.

person Rajith Siriwardana    schedule 27.09.2014

Для SOA в App Engine я бы проверил https://cloud.google.com/appengine/docs/python/microservices-on-app-engine.

В GAE люди используют либо совершенно разные проекты, либо разные «модули» внутри проекта, которые являются службами, и они могут иметь разные «версии» для таких вещей, как тестирование AB и более простые откаты.

Модуль и его различные версии имеют отдельные URL-адреса и используют HTTP.

Использование модулей означает, что вы в конечном итоге получите общую глобальную базу данных, вам нужно помнить, что нельзя структурировать вещи таким образом, чтобы в итоге вы получили "общая архитектура базы данных" например, каждая сервисная библиотека должна быть единственным способом доступа к этим данным служб (постарайтесь не выходить за уровень http-интерфейса/доступа к данным прямо в базу данных служб, потому что вы сможете это сделать).

То же самое относится и к другим вещам, таким как очереди задач, у вас будет возможность для модулей использовать очереди друг друга, и вы должны быть бдительны и использовать разные пространства имен для каждой очереди модулей.

с Heroku я полагаю, что у вас может быть аналогичный выбор либо с использованием совершенно разных проектов Heroku, которые используют общую библиотеку, настроенную с переменными среды для взаимодействия с другим общим проектом heroku с другим кодом, либо с одним большим проектом heroku. Heroku довольно сильно следует за http://12factor.net/ и хорошо настроен для использования микросервисов других людей с дополнения.

person lee penkman    schedule 08.11.2013