Standard Cloud Taxonomies and Windows Azure
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
- Improving IT agility
- Moving capital expenditures to operating expenditures
- Reducing IT spend to deliver business aligned solutions
- Increasing business agility through improved speed of provisioning new environments
- Providing capacity that may not be available in the on-premises counterpart
Strengths
- Low bar of entry to move applications into the cloud
- High degree of control over the applications and guest environment
- Faster provisioning than on-premises systems
- Capacity that typically exceeds what is available in the on-premises environment
- The mindset of standing up virtual machines is familiar to customers that leverage virtualization on-premises
- Delegates the responsibility for hardware, physical networking and network storage to a vendor
Weaknesses
- Responsibility associated with a large portion of the overall stack remains with the customer
- Adherence to operational practices and procedures for the virtualized stack remain with the customer
- Patching and maintenance of the guest operating system remains the responsibility of the customer
- The middleware and runtimes associated with the platform are the responsibility of the customer
- Typically there are fewer framework and application building blocks than found in the Platform as a Service offering
- Typically the customer is still responsible for the licensing as it relates to the guest operating system and above
- Stepped addition of capacity mimics that of on-premises systems making most applications less capable of tightly coupling the load and capacity, although in some scenarios it may be possible (the step is equivalent to the resources provided by a single server)
- Developers are still expected to have knowledge of Operating System management and security instead of focussing on writing software
Opportunities
- Migration of applications that are not at high touch points can provide a cost benefit by saving virtual machine provisioning times and costs
- Application scenarios that have unpredictable capacity requirements can be handled through hypothesising the required capacity, provisioning the machines and then scaling up or back based on the application usage
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
- Improving IT agility
- Moving capital expenditures to operating expenditures
- Reducing IT spend to deliver business aligned solutions
- Increasing business agility through improved speed of provisioning new environments
- Providing capacity that may not be available in the on-premises counterpart
- Increasing the speed in which custom solutions can be brought to market
- Reducing security related concerns surrounding hosted environments
- Reducing IT’s requirement for knowledge of custom solution adoption rates
Strengths
- Simplified deployment of custom solutions
- Higher degree of control over the customer solutions than in a SaaS environment
- Reduced level of IT knowledge required by developers
- Less operational burden on the customer
- Elastic scaling reduces the requirement for business to exactly gauge uptake of new custom solutions
- Smaller segment of the stack remains the responsibility of the customer
- Automated patching of the platform helps to improve overall security
- Focus on hosting solutions rather than standing up virtual machines allows developers to focus on developing great software
- Fast scaling with ability to fully automate scaling
- Typically faster provisioning than IaaS
- Capacity that typically exceeds what is available in the on-premises environment
- Delegates the responsibility for hardware, physical networking, network storage to a vendor and well guest OS
Weaknesses
- Migration of applications that will take advantages to full PaaS feature sets often require application modifications
- Less control than IaaS with reduced control over the guest Operating System
- Targeted at custom applications with support for packaged software
Opportunities
- Migration of applications that are at high touch points can provide a better ROI and reduced TCO than the IaaS counterpart
- Savings in both time and cost for the provisioning of application platform may improve the time to market of custom applications
- Reduces the requirements for the developers to know the operating system, instead they can focus on developing software
- Reduces IT required involvement provides the ability for IT to focus on improving existing or introducing new services to align with key business drivers
- The ability to scale in line to the demand providing a great platform for micro sites and start-up applications where the adoption and demand level may not be known in advance
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.
Common Business Drivers
- Improving IT agility
- Removing responsibility for management of systems that are not core business capabilities
- Moving capital expenditures to operating expenditures
- Reducing IT spend to deliver business aligned solutions
- Providing capacity that may not be available in the on-premises counterpart
- Reducing IT’s requirement for knowledge of application adoption rates
Strengths
- Simplified deployment of applications
- Less operational burden on the customer
- Elastic scaling reduces the requirement for business to exactly gauge uptake
- The vendor manages most aspects of the application, typically leaving the customer with application and subscription management
- Automated patching of the platform helps to improve overall security
- Typically includes automated scaling
- Typically the fastest provisioning model out of the cloud taxonomies
- Capacity that typically exceeds what is available in the on-premises environment
Weaknesses
- Less control than the other taxonomies
- Typically little ability to customize applications
Opportunities
- Migration of purchased applications that do not align with the businesses core competencies
- Savings in both time and cost for the provisioning of the application
- Can improve new account provisioning turnaround
- Reduces IT required knowledge and involvement providing them the ability to focus on improving existing or introducing new services to align with key business drivers
- The ability to scale in line to the demand
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.