Cloud Computing - Understanding Service Models
In the post
Cloud computing 101: Service models we started looking the basics of the cloud service models. It’s important to think of them as a logical model. Infrastructure sits at the bottom, platform in the middle and software at the top of the stack. Let’s take a look at these in more depth.
What is Infrastructure as a Service (IaaS)?
The first major layer is Infrastructure as a Service, or IaaS and is may also be called Hardware as a Service. With IaaS, you are outsourcing your hardware needs to someone else. IaaS companies provide off-site server, storage, and networking hardware, which you rent and access over the Internet. This helps to free companies from maintenance costs and wasted office space, companies can run their applications on this hardware and access it anytime from anywhere.
Infrastructure as a Service is the basic cloud service model and providers of IaaS offer computers that allow either physical or virtual machines. Pools of usually hypervisors with the cloud vendor support large numbers of virtual machines and offer the ability to scale services up and down according customers’ varying requirements. Typically, to deploy an application cloud users install operating system images and their application software on the cloud infrastructure. In this model, the cloud users provider typically bill IaaS services on a utility basis. This is where costs reflect the amount of resources allocated and consumed.
Key characteristics of iaaS:
-
Resources are distributed as a service
-
Allows for dynamic scaling
-
Has a variable cost, utility and pricing model
-
Generally includes multiple users on a single piece of hardware
Where IaaS makes sense:
-
Where computing demand is volatile. This means where there are significant peaks and valleys in terms of demand on the infrastructure.
-
For new organizations without capital to invest in hardware
-
Where the organization is growing rapidly and scaling hardware would be problematic.
-
For organizations looking to limit capital expenditures and to move to a more of operating based expenditure.
Where IaaS may not be the best option
-
Where regulatory compliance makes offshoring or outsourcing of data is a problem.
-
Where extreme performance levels are required, and on-premise or dedicated hosting infrastructure has the capacity to meet the organizations needs
What is Platform as a Service (PaaS)?
The middle layer of the cloud is known as Platform as a Service, or PaaS. This cloud service model, deliver a computing platform that includes operating system, programming language execution environment, and database and web server. Application developers can develop and run their software solutions on a cloud platform without the cost and complexity of buying and managing the underlying hardware and software layers.
PaaS is typically charged on a pay per use model. This provides instant scalability and reliability at a cost. Companies looking to invest in PaaS need to be able to estimate the demand of their applications which is not always an exact science. This means Application architecture becomes more of a factor. PaaS provides the ability to create technology building blocks in the cloud.
Characteristics of PaaS:
-
Services to develop, test, deploy, host and maintain applications in the same integrated development environment.
-
Web based user interface creation tools to create, modify, test and deploy different UI scenarios.
-
Mutili-tenant architecture where multiple concurrent users utilize the same development application
-
Built in scalability of deployed software including load balancing and failover
-
Support
Where PaaS makes sense
-
Paas is extremely useful in any situation where multiple developers will be working together or where external parties are needed to interact with the development project. The growth of agile software development has been a strong driver helping to drive the adoption of PaaS.
-
PaaS is also extremely useful where businesses are looking to automate testing and deployment services.
Where PaaS may not be the best option:
-
Where the application need to be highly portable for hosting.
-
Where proprietary languages or approached would impact the development process
-
Where a proprietary language prevent the movement to another provider.
-
Where the application performance requires the customization of the underlying hardware and software.
What is Software as a Service (Saas)?
The top layer of the cloud architecture is Software as a Service, or SaaS. This layer is the one you’re probably already interact with today, and it is almost always accessible through a web browser. Any application hosted on a remote server that can be accessed over the Internet is considered a SaaS. In this model, cloud providers install and operate application software in the cloud and cloud users access the software from the cloud clients. SaaS eliminates the need to install and run the application on the cloud user’s own computers and will hopefully simplify the maintenance and support. Keep in mind that cloud applications are different from other applications in their scalability. One of the major benefits of the cloud is that this process is transparent and users see a single access point. Many times a cloud application can be multitenant. This is any machine serves more than one cloud user organization.
The pricing model for SaaS applications is typically a monthly or flat per user fee, but price may scalable based on usage characteristics like bandwidth.
Characteristics of SaaS
-
Web access to commercial software
-
Software is managed from a central location
-
Users not required to handle software upgrades and patches
-
Application Programming Interfaces (APIs) allow for integration between different pieces of software
Where Saas Makes Sense
-
Software that is used for a short term need
-
Vanilla offerings where the solution is largely undifferentiated.
-
Applications where there is a significant interaction between the organization and the outside world
-
Application that have a significant need for web or mobile access
-
Software where demand may spike significantly over the course of time
Where SaaS may not be the best option
-
Applications where regulatory rules prevent the storing of data hosted externally.
-
Applications where extremely fast processing of real time data is required
-
Applications where an existing on-premise solution fulfills all of the organizations needs