Prior to evaluating a cloud solution it is important to understand the various taxonomies available in the vendor ecosystem today. Without understanding the strengths, weaknesses and targeted mindsets of each taxonomy you may not select the appropriate one to meet your business objectives.
A Cloud Taxonomy is a way of categorizing and comparing cloud solutions based on their degree of control, methods of provisioning and delegation of operations. The three industry accepted taxonomies are known as Infrastructure as a Service (IaaS), Platform as a Service (PaaS) and Software as a Service (SaaS).
In this discussion we will move from left to right with each step typically increasing in agility, reducing cost while reducing control.
IaaS (Infrastructure as a Service)
This taxonomy is geared towards customers that require the ability to stand up virtual machines in the cloud. This is often the taxonomy that comes to mind when customers first start thinking of cloud. This can be an attractive offering when there is no desire to modify code and the end goal of the transition to the cloud is simply to move an existing legacy application off site with as little work as possible.
Although this IaaS has the lowest bar for entry it typically does not exhibit the maximum value proposition of the cloud.
Common business drivers
PaaS (Platform as a Service)
Platform as a Service provides the customer the ability to host solutions in the cloud. These solutions are decomposed into a set of services which can typically be scaled independently. The ability to scale independently exposes a greater degree of control with smaller steps being created in the alignment of capacity and load. The closer one can run the load and capacity levels usually results in a better Total Cost of Ownership (TCO) for the customer. With this taxonomy the mindset is not focused around standing up virtual machines rather around hosting a solution and its services. Arguably when leveraging a PaaS offering one should not think of it in terms of Virtual Machines instead consider it hosting instances of your solution’s services. Typically this mindset will fit very well with any customer already subscribed to the Service Oriented Architecture design methodology.
Platform as a Service is ideal for migrating applications that are at high touch points (rewrites, upgrades or other milestone that requires changes to code) or have business drivers such as improving a solution’s availability, scalability, capacity or reducing cost. The reason these situations are ideal is that in order to take advantage of many of the platform offerings it may take changes to source code. It is important to make use of these additional feature sets as they often provide a very attractive return on investment, improve customer experience or open up the ability to deliver new business streams. Although these platform features are desirable to implement they are typically not required, often allowing the migration of applications from an on-premises solution to cloud with little or no effort.
Common Business Drivers
Software as a Service (SaaS)
Software as a Service provides customers with the ability to provision a new account or configuration on an existing application hosted by the vendor. These applications are typically multitenant providing the customer with a reduced set of control in exchange for a lower level of maintenance and management.
SaaS is a great offering for customers that host applications on-premises that do not align with their core competencies. An example of a Software as a Service offering would be a hosted enterprise messaging system. Very few companies have enterprise messaging as a core competency, rather it is a business support function and therefore it is often well served to move to the cloud.
Where is Azure in this?
Azure is falls square in the Platform as a Service offering with many features that are not available on-premises. Azure has been built from the ground up with scalability and cross platform support in mind. This makes the platform great for most developers whether .NET, Java, PHP and more.
There are many additional features exposed by Azure to support a wide variety of scenarios including automatic scaling, hybrid solutions where Azure reaches back on premise through to connectivity between disperse security realms.
As we move through the next posts we will dig deeper into many of these features.