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

I. Cloud Computing Stack Overview

1. Cloud Service Models:

               

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. 

Certainly! Below is a table that provides a concise comparison of Infrastructure as a Service (IaaS), Platform as a Service (PaaS), and Software as a Service (SaaS) based on various key attributes:

Attribute

IaaS

PaaS

SaaS

Overview

Provides virtualized computing resources over the internet.

Offers a platform for developers to build, deploy, and manage applications without dealing with the underlying infrastructure.

Delivers software applications over the internet without the need for installation or maintenance.

Responsibility

Users manage applications, data, runtime, middleware, and OS.

Platform provider manages runtime, middleware, OS, and infrastructure. Users focus on application development and data.

Everything, including application, runtime, data, middleware, OS, and infrastructure, is managed by the service provider.

Scalability

Highly scalable with the ability to add or remove resources as needed.

Offers automatic scalability based on demand. Users don't need to worry about infrastructure scaling.

Scalability is entirely managed by the service provider. Users typically have limited control over scaling.

Flexibility

Users have control over the entire infrastructure stack, providing high flexibility.

Offers a predefined platform, limiting flexibility compared to IaaS.

Least flexibility as the entire application is provided as a service. Customization options are minimal.

Development Time

Longer development time as users need to manage various infrastructure components.

Shorter development time since infrastructure management is abstracted. Developers focus on coding and application logic.

Shortest development time as users only need to configure and use the software.

Example Providers

Amazon Web Services (AWS), Microsoft Azure, Google Cloud Platform (GCP).

Heroku, Google App Engine, Microsoft Azure App Service.

Salesforce, Google Workspace, Dropbox, Microsoft Office 365.

This table provides a quick reference for understanding the differences between IaaS, PaaS, and SaaS based on key attributes. Keep in mind that the choice between these models depends on the specific needs and preferences of the users or organizations.

2. Cloud Deployment Models:

  - Public Cloud: Services are provided over the internet and shared among multiple customers.

  - Private Cloud: Operated solely for a single organization, offering greater control and customization.

  - Hybrid Cloud: Combination of public and private clouds, facilitating data and application portability.

3. Cloud Computing Components:

  - Compute: Virtual machines, containers, and serverless computing.

  - Storage: Object storage, block storage, and file storage solutions.

  - Networking: Connects various components and enables communication.

  - Databases: Managed database services for various data storage needs.

  - Security: Identity and access management, encryption, and compliance features.

  - Management Tools: Monitoring, logging, and resource management utilities.

II. Cloud Computing Statistics

1. Market Trends:

  - The global cloud computing market is projected to reach $1 trillion by 2026 (Source: Gartner).

  - Public cloud spending is expected to grow at a CAGR of 16.7% from 2021 to 2026 (Source: IDC).

2. Adoption Rates:

  - Approximately 94% of enterprises are using some form of cloud service (Source: Flexera).

  - Hybrid cloud adoption increased to 58% in 2021, showing a rising trend (Source: Flexera).

3. Popular Cloud Providers:

  - Amazon Web Services (AWS) leads the market with a 32% share, followed by Microsoft Azure (20%) and Google Cloud Platform (9%) (Source: Synergy Research Group).

4. Security Concerns:

  - 66% of IT professionals view security as their top concern in cloud adoption (Source: Cybersecurity Insiders).

  - Cloud-based DDoS attacks increased by 967% in the last year (Source: Neustar).

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.

III. Conclusion

Understanding the cloud computing stack is essential for making informed decisions in adopting cloud services. As the industry continues to evolve, staying updated on trends and statistics will be crucial for businesses aiming to leverage the benefits of cloud computing. If you found this overview helpful, feel free to share it with others who might benefit from a clearer understanding of the cloud computing landscape.

Interesting Topic To Read: Platform as a Service