1.1 Definition and characteristics of cloud computing
7 min read•august 20, 2024
has transformed how organizations access and manage IT resources. It offers on-demand, scalable services that can be quickly provisioned and released with minimal effort. This model provides flexibility and cost-efficiency, allowing businesses to focus on their core competencies.
The National Institute of Standards and Technology (NIST) defines cloud computing through five essential characteristics: , , , , and . These features distinguish cloud computing from traditional IT models and drive its widespread adoption.
Cloud computing overview
Cloud computing revolutionized how computing resources are provisioned and consumed, shifting from traditional on-premises infrastructure to a more flexible, scalable, and cost-effective model
The National Institute of Standards and Technology (NIST) provides a widely accepted definition of cloud computing that outlines its essential characteristics, service models, and deployment models
Understanding the key aspects of cloud computing is crucial for organizations to make informed decisions when adopting and leveraging cloud technologies in their IT strategies
NIST definition of cloud computing
Top images from around the web for NIST definition of cloud computing
CEH (XX): Cloud Computing – Binary Coders View original
Is this image relevant?
1 of 3
NIST defines cloud computing as a model for enabling ubiquitous, convenient, on-demand network access to a shared pool of configurable computing resources (networks, servers, storage, applications, and services)
These resources can be rapidly provisioned and released with minimal management effort or service provider interaction
The NIST definition emphasizes the essential characteristics that distinguish cloud computing from traditional computing models
Essential characteristics of cloud computing
On-demand self-service: Users can provision computing resources automatically without requiring human interaction with the service provider
Broad network access: Services are accessible over the network using standard mechanisms, supporting heterogeneous client platforms
Resource pooling: Provider's computing resources are pooled to serve multiple consumers, with different physical and virtual resources dynamically assigned and reassigned according to consumer demand
Rapid elasticity: Capabilities can be rapidly and elastically provisioned, giving the appearance of unlimited resources available for scaling
Measured service: Resource usage is automatically controlled, optimized, and reported, providing transparency for both the provider and consumer
On-demand self-service
Cloud computing enables users to provision computing resources, such as virtual machines, storage, and applications, automatically without the need for human interaction with the service provider
Users can access a self-service portal or API to request and manage resources on-demand, eliminating the need for manual provisioning processes
Provisioning computing resources automatically
On-demand self-service allows users to instantly provision the required computing resources through automated processes
Users can specify the desired configuration, such as the number and type of virtual machines, storage capacity, and network settings
The cloud platform automatically allocates and configures the requested resources, making them available for immediate use
Eliminating need for human interaction
Traditional IT provisioning often involves manual processes and approvals, leading to delays and inefficiencies
On-demand self-service eliminates the need for users to interact with IT staff or raise service requests for resource provisioning
Users have the autonomy to provision resources as needed, reducing the time and effort required to obtain the necessary computing resources
Broad network access
Cloud computing services are designed to be accessed over the network using standard protocols and mechanisms
Users can access cloud services from various devices and locations, as long as they have network connectivity
Accessing services over the network
Cloud services are accessible through the internet or dedicated network connections, allowing users to connect from anywhere
Users can access cloud services using web browsers, APIs, or client applications, depending on the service and user preferences
Network access enables users to leverage cloud resources remotely, without the need for physical proximity to the infrastructure
Support for heterogeneous client platforms
Cloud services are designed to support a wide range of client platforms, including desktops, laptops, tablets, and smartphones
Users can access cloud services using different operating systems (Windows, macOS, Linux) and device types
Cloud providers offer client libraries, SDKs, and APIs that enable developers to build applications that integrate with cloud services across various platforms
Resource pooling
Cloud providers pool their computing resources, such as servers, storage, and network, to serve multiple consumers simultaneously
Resources are dynamically assigned and reassigned based on consumer demand, optimizing utilization and efficiency
Serving multiple consumers from pooled resources
Cloud providers maintain a large pool of computing resources that can be shared among multiple consumers or tenants
Each consumer is allocated a portion of the pooled resources based on their requirements and service level agreements (SLAs)
Resource pooling enables cloud providers to achieve economies of scale and efficiently manage their infrastructure
Dynamic resource assignment and reassignment
Cloud platforms dynamically assign resources to consumers based on their workload demands and usage patterns
Resources can be reassigned from one consumer to another as needed, ensuring optimal utilization and performance
Dynamic resource assignment allows cloud providers to accommodate fluctuating workloads and scale resources up or down based on consumer requirements
Rapid elasticity
Cloud computing enables the rapid scaling of resources, both vertically (increasing the capacity of individual resources) and horizontally (adding more instances of resources)
Resources can be quickly provisioned and released to match the changing demands of applications and workloads
Quickly scaling resources up and down
Cloud platforms provide mechanisms to rapidly scale resources based on workload requirements
Users can easily increase or decrease the number of virtual machines, storage capacity, or network bandwidth as needed
Scaling can be automated based on predefined rules or triggered manually by users or administrators
Appearance of unlimited resource availability
Cloud computing gives the impression of having unlimited resources available for scaling
While resources are not truly unlimited, cloud providers maintain large resource pools and can dynamically allocate additional resources as needed
The ability to quickly scale resources creates a sense of on-demand availability and reduces the need for upfront capacity planning
Measured service
Cloud computing provides automatic control and optimization of resources through metering and monitoring capabilities
Resource usage is transparently monitored, controlled, and reported, enabling both the provider and consumer to have visibility into the consumed services
Automatic control and optimization of resources
Cloud platforms automatically control and optimize resource allocation based on the measured usage and performance metrics
Resources are dynamically adjusted to ensure optimal performance and cost-efficiency
Automatic control mechanisms help prevent over-provisioning or under-utilization of resources
Usage monitoring and reporting for transparency
Cloud providers monitor and track resource usage at a granular level, capturing metrics such as CPU utilization, storage consumption, and network traffic
Detailed usage reports and analytics are provided to consumers, enabling them to understand their resource consumption patterns and costs
Transparency in usage monitoring and reporting helps consumers make informed decisions about resource allocation and cost optimization
Service models
Cloud computing offers different service models that define the level of control and responsibility shared between the provider and consumer
The three main service models are , , and
Infrastructure as a Service (IaaS)
IaaS provides consumers with fundamental computing resources, such as virtual machines, storage, and networks
Consumers have control over the operating systems, storage, and deployed applications, while the provider manages the underlying infrastructure
Examples of IaaS include Amazon Web Services (AWS) EC2, Microsoft Azure Virtual Machines, and Google Compute Engine
Platform as a Service (PaaS)
PaaS provides consumers with a platform to develop, run, and manage applications without the complexity of building and maintaining the underlying infrastructure
Consumers have control over the deployed applications and possibly the hosting environment configurations
Examples of PaaS include AWS Elastic Beanstalk, Microsoft Azure App Service, and Google App Engine
Software as a Service (SaaS)
SaaS provides consumers with access to software applications running on a cloud infrastructure, accessible through a web browser or API
The provider manages the entire application stack, including the underlying infrastructure, middleware, and software
Examples of SaaS include Salesforce, Microsoft Office 365, and Google Workspace
Deployment models
Cloud computing offers different deployment models that determine the ownership, control, and accessibility of the cloud infrastructure
The four main deployment models are public, private, community, and hybrid clouds
Public vs private clouds
Public clouds are owned and operated by third-party service providers, making resources available to the general public over the internet
Private clouds are dedicated to a single organization, either managed internally or by a third-party provider, offering greater control and security
Public clouds offer scalability and cost-efficiency, while private clouds prioritize data sovereignty and customization
Community vs hybrid clouds
Community clouds are shared among several organizations with common concerns, such as security, compliance, or jurisdiction
Hybrid clouds combine two or more distinct cloud infrastructures (public, private, or community) that remain unique entities but are bound together
Community clouds enable collaboration and resource sharing among organizations with similar requirements
Hybrid clouds allow organizations to leverage the benefits of both public and private clouds, enabling workload portability and flexibility
Key Terms to Review (24)
Broad network access: Broad network access refers to the ability to access cloud services and resources over the internet from various devices such as laptops, smartphones, and tablets. This characteristic enhances user flexibility and promotes a seamless experience as individuals can connect to cloud-based applications and data from virtually anywhere, using any device with an internet connection. It plays a vital role in enabling remote work and collaboration, making information and services available at users' fingertips.
Cloud Architecture: Cloud architecture refers to the design and structure of cloud computing systems, including the components and relationships that allow for efficient service delivery. It encompasses the cloud's physical infrastructure, software applications, and the processes that manage these resources, ensuring scalability, reliability, and security. This architecture is crucial for leveraging cloud computing's benefits, such as on-demand resource availability and cost-effectiveness.
Cloud computing: Cloud computing is the delivery of various services over the internet, allowing users to access and store data on remote servers instead of local devices. This technology provides on-demand access to a shared pool of configurable computing resources, enabling flexibility and scalability for users. By leveraging virtualization and distributed computing, cloud computing facilitates efficient data processing and analytics, particularly in the context of edge-to-cloud environments where data is processed closer to the source for improved performance.
Community Cloud: A community cloud is a cloud computing environment that is shared by multiple organizations with similar interests, such as security requirements or compliance standards. This type of cloud is designed to meet the specific needs of the participating organizations, allowing them to share resources while benefiting from increased collaboration and reduced costs. Community clouds foster a sense of partnership among users, allowing them to share best practices and tailor the cloud infrastructure to fit their unique requirements.
Data encryption: Data encryption is the process of converting plaintext information into a coded format that can only be read by someone who has the appropriate decryption key. This technique is crucial in securing sensitive data, especially when it is stored or transmitted over networks, making it an essential aspect of cloud computing.
Horizontal scaling: Horizontal scaling, also known as scaling out, is the process of adding more machines or resources to a system to handle increased load or demand. This approach allows for distributing workloads across multiple servers, which enhances performance and ensures availability, making it a crucial aspect in the design and management of cloud environments.
Hybrid Cloud: A hybrid cloud is a cloud computing environment that combines both public and private cloud infrastructures, allowing data and applications to be shared between them. This model provides greater flexibility, scalability, and control over resources while enabling organizations to keep sensitive data secure in a private cloud while leveraging the vast resources of public clouds for less sensitive operations.
Identity and Access Management: Identity and Access Management (IAM) is a framework of policies and technologies that ensures the right individuals access the right resources at the right times for the right reasons. IAM is crucial in establishing user identities, controlling access to sensitive data, and maintaining security across cloud environments, which plays a significant role in defining cloud computing characteristics, protecting data privacy, ensuring compliance with governance policies, and managing permissions within Function-as-a-Service platforms.
Infrastructure as a Service (IaaS): Infrastructure as a Service (IaaS) is a cloud computing service model that provides virtualized computing resources over the internet, allowing users to access and manage servers, storage, and networking without the need for physical hardware. This model offers flexibility and scalability, enabling organizations to adjust resources according to demand, making it an essential part of cloud computing's capabilities.
ISO/IEC 27001: ISO/IEC 27001 is an international standard that outlines the requirements for establishing, implementing, maintaining, and continuously improving an information security management system (ISMS). This standard helps organizations manage the security of their information assets and is crucial for protecting sensitive data in various environments, including cloud computing. It emphasizes risk management and controls that are essential for achieving compliance, maintaining trust, and ensuring security in dynamic digital landscapes.
Latency: Latency refers to the delay before data begins to transfer after a request is made. In the cloud computing realm, it’s crucial because it directly affects performance, user experience, and overall system responsiveness, impacting everything from service models to application performance.
Load Balancing: Load balancing is the process of distributing network or application traffic across multiple servers to ensure no single server becomes overwhelmed, enhancing reliability and performance. It plays a crucial role in optimizing resource utilization, ensuring high availability, and improving the user experience in cloud computing environments.
Measured Service: Measured service refers to the ability to monitor and control cloud computing resources, allowing for precise billing based on actual usage. This characteristic of cloud computing ensures that users pay only for what they consume, promoting efficiency and flexibility. It is essential for both providers and consumers, as it allows for better resource management and cost control while enabling customers to scale services according to their needs.
NIST Cloud Computing Standards: The NIST Cloud Computing Standards are a set of guidelines and best practices established by the National Institute of Standards and Technology to provide a framework for cloud computing systems. These standards help ensure the interoperability, security, and efficiency of cloud services, enabling organizations to effectively deploy and manage cloud-based solutions. By defining essential characteristics and key components of cloud computing, these standards contribute to a better understanding and adoption of cloud technologies across various sectors.
On-demand self-service: On-demand self-service refers to the ability of users to automatically provision computing resources, such as servers or storage, without requiring human interaction with the service provider. This characteristic allows users to quickly and efficiently access resources as needed, enhancing flexibility and efficiency. It aligns with the overall goal of cloud computing to provide scalable and convenient access to IT resources tailored to individual user requirements.
Platform as a Service (PaaS): Platform as a Service (PaaS) is a cloud computing model that provides a platform allowing customers to develop, run, and manage applications without the complexity of building and maintaining the infrastructure. PaaS simplifies the process of application development by offering built-in software components, development tools, and database management, allowing developers to focus on coding and deployment rather than hardware management.
Private cloud: A private cloud is a cloud computing environment exclusively used by a single organization, offering enhanced control, security, and customization compared to public clouds. It allows organizations to host their applications and data on dedicated resources, ensuring that sensitive information remains protected while still benefiting from cloud capabilities.
Public Cloud: A public cloud is a computing model where services and resources are made available to the general public over the internet by a third-party provider. This model allows multiple customers to share the same infrastructure, offering scalability and flexibility for businesses without the need for significant capital investment in hardware or software.
Rapid Elasticity: Rapid elasticity refers to the ability of cloud computing resources to automatically scale up or down based on demand. This characteristic ensures that users can quickly provision and de-provision resources, which enhances efficiency and cost-effectiveness in resource management. It ties into key features such as on-demand self-service and resource pooling, allowing organizations to respond dynamically to varying workloads without manual intervention.
Resource Pooling: Resource pooling refers to the ability of cloud computing providers to combine their resources, such as storage, processing power, and network bandwidth, to serve multiple customers efficiently. This model allows providers to dynamically allocate resources based on demand, enabling them to optimize resource utilization and reduce costs while offering scalability and flexibility to users. It creates a shared resource environment where multiple clients can access a variety of services without needing dedicated physical resources.
Software as a Service (SaaS): Software as a Service (SaaS) is a cloud computing model that delivers software applications over the internet, allowing users to access and use the software without needing to install or manage it on local devices. This model offers users flexibility, scalability, and convenience by providing automatic updates and maintenance through the service provider. SaaS connects to various aspects of cloud computing, including definitions and characteristics, different service models, benefits and challenges, data management, shared responsibilities, and cloud-native design principles.
Throughput: Throughput refers to the rate at which data is successfully processed or transmitted over a system, often measured in units such as requests per second or bits per second. It's a critical performance metric that indicates how efficiently resources are utilized in various computing environments, influencing overall system performance and user experience.
Vertical Scaling: Vertical scaling, also known as 'scaling up', refers to the process of adding more resources, such as CPU, RAM, or storage, to an existing server or system to enhance its performance. This approach is essential in cloud computing as it allows applications to handle increased loads without the need for complex architecture changes, thus ensuring a seamless user experience and maintaining high availability.
Virtualization: Virtualization is the process of creating a virtual version of a physical resource, such as a server, storage device, or network, allowing multiple instances to operate independently on the same hardware. This technology optimizes resource utilization and enables the efficient delivery of services in cloud computing, enhancing scalability and flexibility while reducing costs and physical space requirements.