Perhaps a SOA cloud in PaaS?

Now I am on the drawing board of a new cloud of services that we are building with the help of a service-oriented architecture. The idea is this:

  • Cloud, say 10, services.
  • 3 completely different levels of business logic (BL) that are free to mix and match these services.
  • BL processes authorization and access control, only services receive and respond.
Question: if this installation is possible using PaaS (preferably Heroku or Google App Engine), the main problem is the presence of several services that are not publicly available but at the same time accessible from different applications (BL).

Basically: how to protect services from open access (preferably without authorization and tokens), but at the same time let some of my applications reach them?

enter image description here

+6
source share
2 answers

You may need to check the WSO2 Cloud. It consists of an application cloud and an API cloud. For your scenario, you can isolate the service cloud with the WSO2 API cloud. You can expose a cloud of services with a cloud of WSO2 APIs and provide some APIs only to your tenant domain. In the WSO2 App Cloud, you can deploy your public applications that can consume the cloud services APIs that are isolated from your domain.

In addition, the WSO2 App Cloud solution is not only a hosting, but also a development platform. You can develop services and applications from scratch. It provides you with building capabilities, providing databases, an editor, etc.

Both of the above clouds have the ability to automatically scale (you do not need to worry about this). The application cloud provides you with a development, testing and production environment for managing the life cycle of applications / services. WSO2 API not only allows you to create, manage, and publish your APIs to the developer community, but also allows you to share them in the cloud

More information can be found at https://docs.wso2.com/display/AppCloud/WSO2+App+Cloud+Documentation https://docs.wso2.com/display/APICloud/WSO2+API+Cloud+Documentation

Please note that WSO2 Cloud is currently a beta service.

Disclaimer: I work in the WSO2 cloud.

+2
source

For SOA in App Engine, I would look at https://cloud.google.com/appengine/docs/python/microservices-on-app-engine .

In GAE, people use either completely different projects, or different β€œmodules” within the project, which are services, and they can have different β€œversions” for things like AB testing and easier rollbacks.

The module and its different versions have separate URLs and say HTTP.

Using modules means that you get a common global database, you should remember that do not structure things in such a way that you end up with a β€œ common database architecture ”, for example, each service library should be the only way to access the service data (try not get to the level of the http / data access interface directly into the services database, as you can).

The same goes for other things, such as task queues, you will have the opportunity for modules to use each other's queues, and you should be vigilant and use different namespaces for each module queue.

with Heroku, I assume that you can have a similar choice using completely different Heroku projects that use a common library that is configured with environment variables to talk to another joint heroku project with different code or one big heroku project. Heroku should be http://12factor.net/ pretty strong and well configured to use other peoples' microservers with add-ons .

+1
source

Source: https://habr.com/ru/post/956071/


All Articles