Cloud Computing
The National Institute of Standards and Technology (NIST) defines cloud computing as a model for providing on-demand network access to computing resources that can be rapidly provisioned and released.
Core Concepts
- On-demand access: Users can provision resources like virtual machines and storage as needed, typically paying only for what they use.
- Resource pooling: Cloud providers maintain large pools of resources (servers, storage, etc.) that are shared among many users for efficiency.
- Elasticity: Cloud services can automatically scale resources up or down to match demand.
- Pay-as-you-go pricing: Users are billed based on actual resource usage, which avoids large upfront costs for hardware.
Cloud Service Models
Service models define the level of management and control you have over your cloud resources.
- Infrastructure as a Service (IaaS): Provides virtualized computing resources like virtual machines, storage, and networking. You manage the operating system and applications.
- AWS Examples: EC2, S3, VPC.
- Platform as a Service (PaaS): Offers a platform to build, deploy, and manage applications without handling the underlying infrastructure.
- AWS Examples: AWS Lambda, Elastic Beanstalk, RDS.
- Software as a Service (SaaS): Delivers ready-to-use software applications over the internet via subscription.
- General Examples: Microsoft 365, Netflix, Slack.
- Function as a Service (FaaS) / Serverless: Allows you to run code in response to events without provisioning or managing servers.
- AWS Example: AWS Lambda.
Cloud Deployment Models
Deployment models define where the cloud infrastructure is located and who has access to it.
- Public Cloud: Services are owned by a third-party provider (like AWS) and delivered over the public internet to any user.
- Private Cloud: The infrastructure is dedicated to a single organization, providing greater control and security. It can be hosted on-premises or by a third party.
- Hybrid Cloud: Combines public and private clouds, allowing organizations to run workloads in the most appropriate environment. This is often used for disaster recovery or handling peak demand.