Cloud Computing
Cloud computing means renting computers instead of buying them. Instead of purchasing and maintaining your own servers, you use servers owned by companies like Amazon (AWS), Microsoft (Azure), or Google (GCP) and pay only for what you use. Need 100 servers for an hour during a sale? Spin them up, use them, shut them down. No hardware to buy, no data center to cool, no drives to replace.
Cloud computing is the on-demand delivery of IT resources over the internet with pay-as-you-go pricing. Defined by NIST (SP 800-145) with five essential characteristics: on-demand self-service, broad network access, resource pooling, rapid elasticity, and measured service.
Service models:
| Model | You manage | Provider manages | Examples |
|---|---|---|---|
| IaaS (Infrastructure as a Service) | OS, runtime, app, data | Hardware, networking, virtualization | AWS EC2, Azure VMs, GCP Compute |
| PaaS (Platform as a Service) | App, data | Everything below | Heroku, AWS Elastic Beanstalk, Render |
| SaaS (Software as a Service) | Nothing (just use it) | Everything | Gmail, Slack, Salesforce |
| FaaS (Functions as a Service) | Function code | Everything else | AWS Lambda, Cloudflare Workers |
Deployment models:
- Public cloud: shared infrastructure operated by a third party (AWS, Azure, GCP)
- Private cloud: dedicated infrastructure for a single organization (on-prem OpenStack, VMware)
- Hybrid cloud: combination of public and private with workload portability
- Multi-cloud: using multiple public cloud providers to avoid vendor lock-in
Key cloud concepts:
- Regions and availability zones: geographically distributed data centers for redundancy
- Auto-scaling: automatically adjust resources based on demand
- Managed services: databases (RDS), queues (SQS), ML (SageMaker) run by the provider
- Infrastructure as Code: define cloud resources in code (Terraform, CloudFormation)
- Shared responsibility model: provider secures the infrastructure; customer secures their data and configurations
Cloud infrastructure with Terraform (AWS)
# main.tf — provision a web server on AWS
provider "aws" {
region = "us-east-1"
}
resource "aws_instance" "web" {
ami = "ami-0c55b159cbfafe1f0" # Ubuntu 24.04
instance_type = "t3.micro" # 2 vCPU, 1 GB RAM
tags = {
Name = "bytesnation-web"
}
}
resource "aws_security_group" "web_sg" {
ingress {
from_port = 443
to_port = 443
protocol = "tcp"
cidr_blocks = ["0.0.0.0/0"]
}
egress {
from_port = 0
to_port = 0
protocol = "-1"
cidr_blocks = ["0.0.0.0/0"]
}
}
# Deploy: terraform init && terraform apply
# Destroy: terraform destroy Cloud computing has become the default deployment model for most software. AWS alone generates over $100 billion in annual revenue. Startups launch on cloud because there is zero upfront hardware cost. Enterprises migrate to cloud for elasticity (scale up during peak, scale down overnight) and global reach (deploy in 30+ regions worldwide). The BytesNation site itself runs on Render, a PaaS built on cloud infrastructure. The tradeoff is cost predictability: a server running 24/7 for years is often cheaper on-premise or colocated than on cloud. Many organizations adopt a hybrid approach: cloud for variable workloads, on-premise for steady-state compute. Cloud certifications (AWS Solutions Architect, Azure Administrator, GCP Professional Cloud Architect) are among the most in-demand IT credentials.