Cloud Computing is not a new name to us anymore and almost every person in both IT & non-IT industry knows what is Cloud Computing and its uses at the high-level. But if you try to dig deeper then you will endup having more questions on Cloud Computing characteristics and models, you might have different types of definitions and examples for the Cloud Computing based on different cloud services that are available today. So i would like to review the standard definition of Cloud Computing, Cloud Characteristics and Cloud Service Models from NIST documentation before we go deeper into Cloud technologies.
NIST is National Institute of Standards and Technology is a non-regulatory agency who defines standards & measurements for technology innovations. As per NIST publication 800-145,
“Cloud computing is a model for enabling ubiquitous, convenient, on-demand network access to a shared pool of configurable computing resources (e.g., networks, servers, storage, applications, and services) that can be rapidly provisioned and released with minimal management effort or service provider interaction.”
In common language, Cloud Computing is the way of providing easy access to a shared pool of Compute, storage, network and application services via common network channels like public internet and these cloud resources or Cloud services should be easily provisioned and managed by minimal efforts & automation.
Cloud Computing Essential Characteristics
NIST standards provides 5 essential characteristics which defines Cloud Computing. Any so called service which calls themselves as cloud service should fulfill these 5 characteristics.
- On-Demand Self-Service:
- As per NIST standards, On-Demand Self-Service characteristics is defined as “a cloud service which a consumer or user can unilaterally provision computing capabilities, such as server time and network storage, as needed automatically without requiring human interaction with each service provider.”
- In simpler terms, cloud computing should give users the freedom and control to set up and manage their own IT infrastructure – including compute power, network resources, and storage – on their own terms. This can be done whenever they need it (on-demand) and through easy-to-use tools and automation that minimize manual steps.
2. Broad network access:
Broad network access is a key characteristic of cloud computing, as defined by the National Institute of Standards and Technology (NIST). It signifies that cloud services must be accessible through standard network protocols (like HTTP, HTTPS, SSH, VPN, etc.) and available over any network, not just dedicated connections. This enables users to access their cloud resources from diverse devices and locations, including mobile phones, tablets, laptops, and workstations, regardless of their operating system or type.
To be considered a true cloud service, accessibility over public networks is primary. However, some providers may offer customizable access through private networks, still using standard protocols. Direct access to the cloud provider’s data center or internal network is not a requirement and, in fact, disqualifies a service from being considered cloud-based.
In essence, cloud services should be:
- Available over standard networks (public or private, depending on the offering).
- Accessible from various devices using standard protocols.
- Independent of the user’s physical location or device type.
3. Resource pooling:
- As per NIST standards, Resource pooling is defined as the Cloud service provider’s computing resources are pooled to serve multiple consumers using a multi-tenant model, with different physical and virtual resources dynamically assigned and reassigned according to consumer demand.
-
Users typically have no control or knowledge over the exact location of their resources within the pool, although they may be able to specify geographic preferences at a higher level (e.g., country, state, or region). This approach allows cloud providers to offer scalability and cost-efficiency, as resources can be efficiently shared among various users.
-
In simpler terms, cloud service providers allow users to deploy their IT resources in preferred regions without needing to know the exact physical location of the underlying data centers. These resources are drawn from a pool containing various physical and virtual components and are dynamically adjusted to meet the needs of multiple users.
4. Rapid elasticity:
As per NIST standards, Cloud Computing capabilities can be elastically provisioned and released, in some cases automatically, to scale rapidly outward and inward commensurate with demand. To the consumer, the capabilities available for provisioning often appear to be unlimited and can be appropriated in any quantity at any time.
This is the most important benefit and characteristics of Cloud computing. Cloud service providers should empower users to design their applications to auto-scale, meaning they automatically adjust their resource utilization based on system load and demand. This is often perceived by users as unlimited scaling, as resources appear readily available when needed.
A classic example of this characteristic in action is with e-commerce websites like Amazon and Alibaba. During peak seasons like holidays, their resource usage automatically scales up to handle increased traffic, and then scales down again during quieter periods. This ensures optimal resource use and cost-efficiency.
In simpler terms, cloud computing allows users to access resources as needed, automatically adjusting their usage based on demand, creating the impression of an infinite resource pool. This enables dynamic scaling and cost optimization, making it a crucial benefit of cloud computing.
5. Measured service:
Cloud Service providers should be able to allow their users to measure, monitor & report the usage of cloud resources and users should be able to control and the usage of resources whenever they need.
-
Resource Utilization and Metering:
- In cloud computing, resource utilization (such as CPU, memory, storage, and network) is automatically managed by the cloud service provider.
- Metering capabilities allow tracking and measuring resource usage at different levels of abstraction. For example:
- Storage: The amount of data stored (in gigabytes or terabytes).
- Processing: The number of virtual machine instances or CPU cycles used.
- Bandwidth: The data transfer rate (in megabits per second).
- Active User Accounts: The number of concurrent users.
- This metering data provides transparency to both the provider and the consumer of cloud services.
-
User Control and Decision-Making: Users should also be able to measure the cost incurred by the usage of cloud resources in terms of hours and minutes so that the appropriate decisions can be taken on the returns on investment.
- Users can monitor their resource usage and make informed decisions:
- Measurement: Users can measure how much of each resource they are consuming.
- Monitoring: Real-time monitoring helps track resource usage patterns.
- Reporting: Detailed reports show historical usage trends.
- Users can control resource allocation:
- Scaling: Increase or decrease resources based on demand (e.g., adding more virtual machines during peak hours).
- De-provisioning: Release resources when no longer needed.
- Cost Management:
- Users can track the cost associated with resource usage.
- Cloud providers often offer pricing models (e.g., pay-as-you-go, reserved instances) to help users optimize costs.
- By understanding the cost in terms of hours and minutes, users can make decisions about resource allocation and return on investment.
- Users can monitor their resource usage and make informed decisions:
In summary, cloud service providers enable users to manage resources efficiently, monitor usage, and make data-driven decisions while maintaining cost transparency.
Cloud Computing Service Models
There are many Cloud Computing Service Models available today but NIST defines the following service models as these are the primary and commonly used services by any Cloud service providers.
On-prem DC vs Hosted DC
-
Traditional On-Premises Data Centers:
- In the traditional on-premises model, a company owns and operates its own data center. This data center encompasses all components, starting from the physical facilities (such as buildings, power, cooling, and security) to the application layer.
- The company is responsible for ensuring high availability, scalability, and maintenance of all these components. This includes managing servers, storage, networking equipment, and applications.
- The IT department handles everything—from hardware procurement and installation to software configuration and ongoing management. This approach provides complete control but requires significant investment in infrastructure and expertise.
-
Hosted Data Center Scenarios:
- In hosted data center scenarios, the company outsources certain aspects of data center management. Specifically:
- Facilities Outsourcing: The physical facilities (building, cooling systems, racks, and cabling) are managed by a third-party hosting provider. This provider can host infrastructure for multiple clients or organizations.
- Responsibility Division: While the hosting provider handles the physical components, everything else—networking, compute, storage, and applications—is the responsibility of the company’s IT department.
- In hosted data center scenarios, the company outsources certain aspects of data center management. Specifically:
-
- This model allows companies to focus on their core business without the burden of managing facilities. It offers flexibility and scalability, as the hosting provider can allocate resources as needed. However, companies still need to configure and maintain their IT infrastructure within the hosted environment.
Differences between IaaS (Infrastructure as a Service), PaaS (Platform as a Service), and SaaS (Software as a Service):
-
IaaS (Infrastructure as a Service):
- Focus: IaaS provides fundamental infrastructure components, such as virtual machines, storage, and networking.
- User Control: Users have control over operating systems, applications, and configurations within the virtualized environment.
- Responsibilities:
- Users manage their applications and data.
- Cloud providers handle the underlying physical infrastructure (data centers, servers, networking hardware).
- Example Use Cases:
- Hosting virtual servers.
- Storing data in the cloud.
- Network setup and management.
-
PaaS (Platform as a Service):
- Focus: PaaS offers a development platform and tools for building, deploying, and managing applications.
- Abstracts Infrastructure Details: Developers focus on writing code without worrying about underlying infrastructure.
- Responsibilities:
- Users develop and deploy applications.
- Cloud providers manage the platform, runtime, and infrastructure.
- Example Use Cases:
- Web application development.
- Mobile app backends.
- Database management.
-
SaaS (Software as a Service):
- Focus: SaaS delivers fully functional software applications over the internet.
- Ready-to-Use Applications: Users access software directly without installation or maintenance.
- Responsibilities:
- Users use the software.
- Cloud providers handle everything (infrastructure, updates, security).
- Example Use Cases:
- Email services (e.g., Gmail).
- Collaboration tools (e.g., Microsoft 365).
- Customer relationship management (CRM) systems.
Read: Cloud Computing Basics and Fundamentals
In summary:
- IaaS: Infrastructure building blocks.
- PaaS: Development platform.
- SaaS: Ready-to-use software applications. Each model caters to different needs and levels of control for users and organizations
Cloud Computing Deployment Models
NIST provides 4 different types of Cloud computing Deployment models which are commonly offered by any cloud service providers. The most popular Cloud Computing Service providers which offers various cloud service types and cloud deployment models are
- Amazon Web Services (AWS)
- Microsoft Azure
- Google Cloud Platform
- Oracle Cloud
- IBM Cloud
- Alibaba Cloud
It is very important for a Cloud Architect to understand the differences between these cloud deployment models to properly design and architect a Cloud platform architecture. Often people confuse with private cloud vs hybrid cloud, so lets clarify what these are
Public cloud
- NIST defines Public Cloud as “The cloud infrastructure is provisioned for open use by the general public. It may be owned, managed, and operated by a business, academic, or government organization, or some combination of them. It exists on the premises of the cloud provider.
- So in order to call a service as public cloud service, the service has to fulfill the 5 cloud characteristics which we discussed previously and these services should be available to be use by general public via internet and should be hosted in the cloud service provider datacenter.
-
Major cloud service providers offer various public cloud services in three main categories:
- Network: Services related to networking infrastructure, like virtual networking, firewalls, and load balancing.
- Compute: Services related to computing resources, like virtual machines, containers, and serverless computing.
- Storage: Services related to data storage, like object storage, block storage, and file storage.
These services are accessible through the internet by the general public, and all underlying infrastructure management is the sole responsibility of the cloud provider.
Private cloud:
- NIST defines Private Cloud as “The cloud infrastructure is provisioned for exclusive use by a single organization comprising multiple consumers (e.g., business units). It may be owned, managed, and operated by the organization, a third party, or some combination of them, and it may exist on or off premises.
- So Private Cloud is the dedicated cloud service which fulfills the 5 essential characteristics of Cloud Computing and which can be provisioned in a customer data center instead of Cloud service provider datacenter. This will give greater level of flexibitliy, control and security for managing the infrastructure and applications and at the same time leveraging the cloud computing benefits as they are hosted in customer data center.
- AWS Outposts, Azure Stack and Google Anthos are the best private cloud examples. They offer fully managed cloud service that offers the same cloud infrastructure, cloud services, APIs, and tools to virtually any datacenter, co-location space, or on-premises facility for a truly consistent private and hybrid cloud experience.
Community cloud:
As per NIST standards, The community cloud infrastructure is provisioned for exclusive use by a specific community of consumers from organizations that have shared concerns (e.g., mission, security requirements, policy, and compliance considerations).
It may be owned, managed, and operated by one or more of the organizations in the community, a third party, or some combination of them, and it may exist on or off premises.
This Cloud deployment is similar to private cloud where dedicated cloud services are made available but designed to host sensitive data, regulated workloads, and address the most stringent government security and compliance requirements.
AWS GovCloud (US) is the best example for the community cloud. This cloud deployment model gives government customers and their partners the flexibility to architect secure cloud solutions that comply with the common regulated compliance like FedRAMP High baseline; the DOJ’s Criminal Justice Information Systems (CJIS) Security Policy; U.S. International Traffic in Arms Regulations (ITAR); Export Administration Regulations (EAR); Department of Defense (DoD) Cloud Computing Security Requirements Guide (SRG) for Impact Levels 2, 4 and 5; FIPS 140-2; IRS-1075 etc.
Hybrid cloud:
- NIST defines Hybrid Cloud as “The cloud infrastructure which is a composition of two or more distinct cloud infrastructures (private, community, or public) that remain unique entities, but are bound together by standardized or proprietary technology that enables data and application portability (e.g., cloud bursting for load balancing between clouds).”
- This is most commonly misunderstood Cloud deployment by many people. Hybrid cloud model is the combination of one or more cloud deployment models, these combinations can be as follows
- Public Cloud & Private Cloud
- Public Cloud & Hybrid Cloud
- Hybrid Cloud & Private Cloud
It’s important to understand that simply connecting an on-premises network to a public cloud using a VPN or other technologies does not create a true hybrid cloud. Such a setup would be considered a hybrid environment or a hybrid network, but it lacks the key characteristics necessary for a hybrid cloud.
Read: Data Replication Techniques
For a deployment to qualify as a genuine hybrid cloud:
- Both the public cloud services and the services in the on-premises datacenter (converted to a private cloud) must adhere to the five essential characteristics of cloud computing as defined by NIST:
- On-demand self-service
- Broad network access
- Resource pooling
- Elasticity
- Measured service
- Traditional on-premises data centers, if simply connected to a public cloud, do not automatically fulfill these characteristics. They lack the inherent capabilities like resource pooling, elasticity, and self-service provisioning that are fundamental to cloud computing.
- In order to create a hybrid cloud deployment model, you need to implement private cloud model in onprem datacenter and then integrate with public cloud so that you may leverage cloud benefits in both the locations.
Multi-Cloud
- NIST document does not provide the standard definition for Multi cloud. However, Multi cloud deployment model is widely used by many organizations to prevent themselves for vendor lockins and also to leverage the various capabilities offered by differnet cloud service providers.
- Multi cloud deployment model allows their users to integrate with other cloud services to architect and scale applications across multiple cloud services from multile vendors in order to achieve high availability and performance and at the same time leverage the best of the two or more clouds.
- Often these type of deployments use a 3rd party cloud deployment tools which act as an abstraction layer to provide a single pane of glass to deploy and manage the workloads across multiple clouds. These 3rd party tools will become a single point of interface to mange the resources in the multiple cloud environments.