In the first part I discussed about IaaS – highlights and challenges. In this part I will try to do the same for PaaS.
Platform as a Service – PaaS, offers all the benefits of IaaS and much more. If you recollect the mapping we saw in the first part, PaaS maps to the Framework layer, but also offers runtime and infrastructure for running the application.
Let’s look at some of the major components involved in a PaaS, (However, please note that not all PaaS vendors need to support all the below components)
Infrastructure – PaaS vendors take care of the infrastructure portion, which is what an IaaS offers to you. In some cases the PaaS vendors are also open to use any other Infrastructure of your choice.
Framework – This provides the basic plumbing layer addressing the framework level components like logging, security, exception management, etc. This helps the user to straight away focus on building the functionality instead of worrying about the design or internal building block details.
Components/Functionality – These are out of the box ready to use components or some even provide functionality that can be directly consumed by your application. Ex: Force.com provides a set of CRW functionalities that can be directly consumed from the salesforce.com platform.
Database – PaaS vendors offer a wide variety of storage options ranging from No SQL Database to SQL Database to BLOB Storage. In some cases the user may not even be aware of what backend is being used(ex: Force.com).
Language/Runtime – There is a mixed set of support here. Some PaaS vendors support standard language/technology. For example: Azure supports .NET runtime and all the .net languages. On the other hand Force.com has its own scripting language called Apex, and it’s own runtime that can understand this language. There are also cases like GAE(Google App Engine) that supports multiple runtime environments – Go, Java and Pyton.
Development Studio – Many PaaS vendors offer a development environment where you can design and build your application. For example, Force.com offers Visual Force Development Studio that can be used by the users to build their application. You can access Visual Force online right from a web browser, which means you don’t have to even install any software in your machine (a big boon for power/business users). On the other hand, Azure allows you to use Visual Studio to build applications and later deploy them in the PaaS runtime.
Application Life cycle management – This refers to the capability to completely manage the application deployment, upgrades, patches, testing (sand box), etc.
As you could notice, all of the above is aimed towards simplifying the overhead of an application developer, which is the biggest differentiator from IaaS where you still have to take care of everything related to software.
Gartner’s report indicates that by 2012 around 66% of the software will be build/delivered using a PaaS solution. This is primarily because of the ease at which you can design/build/deploy and manage applications in a PaaS.
Unlike the IaaS case PaaS has few variations in the vendors primarily driven by the support of the above mentioned features. We will take a look at these details in the next section. Be ready to face few more abbrevations…
- Why enterprises should standardize Digital Application Management - July 17, 2017
- Top 10 Critical NFR for SaaS Applications – Part 2 - May 26, 2016
- Top 10 NFR in Software Architecture – Part 1 - April 29, 2016