Skip to content
cloud fundamentals

Cloud Computing

cloud aws azure gcp infrastructure
Plain English

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.

Technical Definition

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:

ModelYou manageProvider managesExamples
IaaS (Infrastructure as a Service)OS, runtime, app, dataHardware, networking, virtualizationAWS EC2, Azure VMs, GCP Compute
PaaS (Platform as a Service)App, dataEverything belowHeroku, AWS Elastic Beanstalk, Render
SaaS (Software as a Service)Nothing (just use it)EverythingGmail, Slack, Salesforce
FaaS (Functions as a Service)Function codeEverything elseAWS 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
In the Wild

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.