I am currently looking at deploying an SOA style Application into a PAAS on the cloud.
I am evaluating a number of PAAS providers Including Cloud Foundry, Heroku and Jelastic.
At the moment, for simplicities sake, I just have a grails app and a single service jar file with an embedded Jetty server. This will expand to be multiple services and web front ends, with a service ate way in the middle all communicating via a mixture of rabbit mq and http.
I am struggling at the moment to understand the topology of how these would be deployed onto a PAAS.
My questions are:
Do all services and web apps have to be deployed as top level "applications" within the PAAS (for instance can dynos be used In Heroku?)
If so, can access to the services be restricted so that requests can only be made to them from the webapp (gateway eventually).
Do they need to exist as a top level app in order to benefit from load balancing (and auto scaling) as there may be several instances of each service.
If each service was to have its own datastore, I presume again this would require it to be an app?
If there is a way to achieve this without using a full app for each service, how are the nodes individually addressable? Can they register themselves with some kind of directory service?
Thanks!
I will answer for CloudFoundry as this is what I'm most proficient in (and what I'm paid for :)
Preamble: CloudFoundry has the concepts of applications (pieces of code that run, which may or may not be exposed to the outside world i.e. there is a standalone
runtime) and services (datastores and the like, RabbitMQ falls into that category). You deploy apps and bind them to zero or more services.
Hope this makes sense :)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With