I was inspired to write on the topic of services as a platform after reading a blog from James Urquhart, “Enough PaaS vs. IaaS: The cloud is really about Services as a Platform.”
One of the key challenges with public cloud, as far as perception is concerned, is the multi-tenancy problem regarding security, reliability and data privacy.
Of course, the definition of multi-tenancy in a cloud platform itself is confusing. Is something multi-tenant at the application, platform, or virtual infrastructure? Multi-tenancy at the application, platform or virtual infrastructure has potential benefits and concerns depending on customer requirements. And depending on those specific requirements, it may be possible to run parts of the service using multi-tenant infrastructure at an application level (e.g. DNS, e-mail), but run other parts in a single tenant infrastructure (e.g. the database or web server).
Realistically no customer just wants IaaS with the intention of running all the services on top themselves. They want one consistent platform (i.e. a collection of tools and services) through which they can consume services in a utility like manner. This is something service providers just starting to roll out IaaS need to wise up to fairly quickly.
The challenge until now has been that if you want to run anything in an application level single tenanted manner, you have to build and deploy the application yourself on top of a raw infrastructure platform. So to remove the (perceived or otherwise) risks of multi-tenancy, you unfortunately remove some of the benefits around scalability, risk management, knowledge required, etc.
What happens if you need to run a database, but lack the skills/time/willpower to deploy it, but equally don’t want to use a completely multi-tenant shared service (DBaaS)?
What if there was a third way a ‘Service as a Service’ if you pardon the pun? For example, the ability to deploy, upon demand, a single tenant application e.g. Hadoop, MySQL or a load balancer, which you could then consume as a service with your specified security, privacy or performance settings based on your business. You could do all this without having to worry about either the management overhead or multi-tenancy problem. You could then combine/compose multiple sets of these services into a platform upon which to build your application.
This is a step above existing virtual application deployment capabilities, as the management responsibility is shifted to the service provider (or a trusted third party of the service provider), which truly enables it to be delivered ‘as a service’.
This shouldn’t be mistaken as managed services delivered on top of an existing IaaS, but rather like your ability to deploy the right infrastructure to roll out single-tenant services including DBaaS, LBaaS or PaaS. In fact, you could still see the database just as a ‘connector’, without having to think of scalability, reliability or simply maintenance, but with the assurance that none of those services are shared with somebody else.
image provided by: kirstyhall