Part two of my "Cloud are you ready" series focuses in on Platform as a Service or more commonly abbrieviated as PaaS. Now one has disclaimers with part 2 and 3, and that is I am an Infrastructure guy, I am not skilled and greatly knowledgeable on application architecture, that withstanding I am aware of emerging trends and strategy which is present in most of the cloud based technology and the emerging strategy from vendor PaaS offerings. Hopefully you won't be disapointed that this will not focus as much on cloud readiness as Part 1 as it will focus on fast facts picked up during research activity on current PaaS solutions and strategy. I wouldnt want to blog about something as a little knowledge has potential to be dangerous, I merely provide running views and opinions gathered.
Myself like many Infrastructure bods are seriously having to learn a lot about PaaS and SaaS strategy extremely FAST, this certainly shows that the Infrastructure bods which used to just be only concious of the bottom of the stack need to focus and diversify on alternate datacentre strategies and methods for delivery of core services. I am mightily interested and also quite concerned by the potential power of PaaS and SaaS to change the model for how Infrastructure delivery methods work. I am concerned if I don't get a grip on the basics of PaaS and SaaS I will be left out in the cold and app teams will start to scale environments and supportive IaaS which with "Cloud" simplifying strategy I am very skeptical this won't turn into the same as issues that occur in common architectural strategy by app bods doing this in todays world.
Now PaaS i've heard of that...
PaaS is growing exceptionally fast and has large volumes of industry interest, one of these reasons is mainly due to PaaS having app development at its heart still and the fact that coders beaver at code and they can still code happily away with PaaS. New PaaS strategy means there isnt "as" a initial massive shift compared to say changes that have occured in IaaS on how things get delivered.
Key advantages with Hosted PaaS cloud solutions for developers is they can code anywhere with anyone through central repositarys across the internet, example PaaS cloud providers include Microsoft Azure (currently in beta) and Google Appengine, you also have the PaaS purpose built frameworks such as Adobe Air and MS Silverlight, additionally some charateristics of PaaS include;
- PaaS development frameworks are used to build components and services presented at the SaaS layer, examples include .Net, PHP, Java etc,
- PaaS applications have potential improved intelligence capability to interact with the IaaS layer and provide developers with more statistic, I will emphasise more on this later in the post,
- PaaS is built with more openness, PaaS providers are building platforms (and this is more not a complete u Turn) with SDK's and frameworks that support a cross range of different frameworks, even Microsoft with Azure are doing this with things like a Java SDK.
The potential areas and intelligence for PaaS developers to exploit within its architecture is immense, for example if you take a PaaS built application the developers in almost real time can interogate and investigate every intricate detail on what consumers or users of the application are doing and what they want from applications, this is mainly due to the fact that the PaaS services hosting the SaaS applications are running across the internet and across various service buses.
From a security standpoint this is very important to consider if you are considering using a public PaaS cloud provider such as Microsoft Azure or Google Appengine, in theory cloud providers have the ability to obtain complete knowledge on any data stream that goes through the Platform that is hosting your SaaS built applications, I compare this in simplistic terms to them having full access to rummaging through your Private databases. I guess that certain laws prohibit this and to succeed in the world of compliance they wouldn't, but this is certainly one issue in regards to security and cloud that is not completely acknowledged and known and the hatchet buried.
Death of the OS?
Last comments from an Infrastructural viewpoint is the fact a lot of peeps believe that PaaS will be one of the strategies in Cloud that kill the current generation of OS as we currently know it. My sceptical view is first incarnations of PaaS will most certainly not replace the OS, to succeed it will need an underlying platform able to be compatible with current dev frameworks. Additionally we mostly do not have programming frameworks which are capable of not completely being able to run without using resource management features in the typical OS to scale.
Longer term prediction for the next 2-3 years we will possibly see PaaS applications being hosted as with current datacentre services upon JeOS or Tailored cut down type OS's like Ubuntu JeOS and in some respects Oracle Unbreakable Linux (The below diagram provides depicts this), these provide the bare minimal footprint required to start just limited services and supportive services such as Apache or the relevant proprietory app/db and are finely tuned.
The "Just Enough" operating system strategy certainly leads to some interesting thoughts on what will emerge and how architecture like this will affect the underlying IaaS model. Google as an example of this appear to be concentrating more on Dev Framework and API, they see the OS and Virtualisation as a barrier to achieve more for scalability of Cloud based applications and for certain application workload thats scales out such as Web apps I agree with this. Web based services scale horizontally, and growth of this at the scale being demanded even with streamlined approaches to Infrastructure delivery within IaaS can still be a problem, however if you remove the dependancy on the OS this means that speed and agility is less of an issue for the application but at what cost in other areas of the datacentre? that is the question and maybe something to discuss in further posts.
So there is my partial view on PaaS and what I believe it will shape to be (no sniggering please), my advice is if you are serious about looking into using PaaS and strategy similarily internally I seriously recommend you talk and discuss strategy with your incumbent Application Architects/Gurus. Emerging trends like Microsoft Azure are now being pushed by the industry marketing machine, this means that you will suddenly start to find a massive sideways approach to adoption by current application teams adopting without you even knowing which will leave the complete department at a quandary.