Cloud computing has commonly been referred to as a “stack” because it typically encompasses many different types of services which have been built on top of each other under a “cloud”. Cloud computing has been defined by the NIST (National Institute of Standards and Technology) as a model that enables on-demand access to a shared resource pool consisting of servers, networks, applications, services and cloud storage which can be rapidly deployed with minimal management efforts. There are three different types of cloud computing services namely Platform as a Service or PaaS, Software as a Service or SaaS and Infrastructure as a Service or IaaS.

Who uses cloud services?

Almost everyone uses cloud services at least on customer bases. Nearly every online application uses cloud services in a direct or indirect manner. Companies are on the way to pushing every aspect of their business operations to the cloud and into the services-oriented methodology. If you use GitHub to manage your code lifecycle or you provision servers on the cloud service providers then you are using cloud services.

Benefits of using a Cloud Computing Stack

The advantages of using a cloud stack for your application are:

  • Resources are available on-demand, pacing the go-to-market methodology.

  • Focusing on the actual business improves the productivity of the development teams.

  • The knowledge of running the components is handled by the vendor with expertise

Cloud Computing Stack Diagram

              

Users can make use of bulk resources which can be obtained quickly whenever there are demands. NIST has also stated some features as being essential for services to be regarded as cloud hosting services:

On-demand services that end users can sign up for and obtain without delays.
Wide network access because users can access such services through multiple platforms like laptops, desktops and mobiles.
Measured services because users will pay according to what they use; so, billing is offered as a utility service.
Elasticity and scalability to cope with increases in demand.

The SaaS applications have been designed for end users and they are offered across the Internet. The PaaS refers to sets of tools or services designed for coding and implementing the applications efficiently. IaaS refers to the software and hardware which powers it, such as, servers, networks, storage, and operating system.

What is SaaS?

Software as a Service or SaaS is software deployed over the web and a SaaS application can be licensed by a vendor to clients as on-demand service. This is made possible through subscription according to a pay-as-you-use model or free of cost where there are chances of generating revenues from channels like advertisements. SaaS offers internet access to commercial software and it managed from a central point. It is software that is offered through a “one-to-many” model and users do not have to be worried about patches and software upgrades. When businesses want to shift their operations to the cloud, they need to understand which applications should be shifted. For instance:

“Vanilla” offerings wherein solutions are largely undifferentiated; for example, emails where competitors often use the same software as this basic technology is needed to conduct business but does not on its own provide a competitive advantage.
Applications which demand Internet access like sales management software.
Applications which involve interplay between the outside world and an organization like software for an email newsletter campaign.
Software which sees frequent demand spikes like tax software or billing software
Software which is needed for a short term like collaboration software for some project.

SaaS should not be deployed for applications which need fast processing of real-time data or for applications where laws do not allow the data to be hosted externally or applications having an on-site solution that can cater to all organizational requirements.

What is PaaS?

PaaS refers to a computing model which allows for the fast and easy creation of applications without buying or maintaining software and infrastructure for them. Unlike SaaS which is software delivered across the web, PaaS is the platform for creation of such software. It refers to:

Services which develop, test, implement and maintain applications in an integrated development setting.
Web-based interface creation tools for creating, altering, testing and deploying different user interfaces.
Tools for handling billing
Built-in scalability of software that includes failover and load balancing
Integration with databases and web services through common standards
Multitenant architecture where multiple users are using the same applications.
Supporting development team collaborations; some PaaS solutions have project planning tools.

PaaS is mainly used when many developers are working on one project and when outside parties have to communicate with development processes. It is useful for those that have existing data sources and are keen to build applications for leveraging that data. PaaS should not be sued where the application must be portable, or when proprietary languages can affect the development, or when application performance demands hardware and software customization etc.

What is IaaS?

Infrastructure as a service or IaaS refers to cloud computing infrastructure in terms of servers and storage, operating systems and network. Instead of buying these, the client will buy the resources as an on-demand service. The public cloud refers to infrastructure which comprises shared resources that are deployed on self-service basis across the Internet, while private cloud refers to infrastructure which offers resources through a private network. Some providers even offer a combination of both these networks to produce a hybrid cloud. In IaaS, resources get distributed as services and it allows dynamic scaling. IaaS has variable costs because it follows a utility pricing model.

You can use the IaaS when demands are changing, or for new businesses which do not have much capital for investing in hardware, or when an organization is growing very fast and scaling the hardware is challenging. IaaS is also beneficial when organizations face pressures to reduce capital costs and shift to operational costs and also for specific business needs or short-term infrastructure needs. IaaS should not be used where data storage outsourcing can become difficult with regulatory compliance or where on-site infrastructure can cater to an organization’s needs.

IaaS vs PaaS vs SaaS

The 3 main cloud computing stack or cloud software stack is different from each other in many senses. But the main base at which they are differentiated is the control and the cost. 

When you have SaaS as your cloud software stack you lose a little control over the applications. This is because of the control of not only the applications but also of OS, storage as well as networking shifts to your vendor. Hence, if you are the owner of a small enterprise then SaaS as a cloud technology stack is the most suitable for you.

Whereas with PaaS one gets the privilege of controlling their applications and data more than the vendor. The vendor is more responsible for managing OS, runtime, etc. Therefore, PaaS is better when it comes to cost. It is more suitable for enterprises that are into app development but do not keep their employees engaged in networking or running servers. 

Last but not least IaaS stack cloud computing gives you control on both applications as well as over the infrastructure. The best part of IaaS is that the vendor will spending on physical servers, networking, and storage. It is a bit costlier than the other cloud stack in cloud computing.

Interesting Topic To Read: Platform as a Service