Skip to main content

Introduction to cloud deployment — Heroku, AWS, and friends

Docker produces portable images; clouds provide fleet orchestration—load balancers, autoscaling policies, IAM, VPC networking, observability pipelines. Lesson goal: contextualize mainstream options without prescribing a vendor winner.


📚 Prerequisites


🎯 What you'll learn

  • Contrast Platform-as-a-Service (PaaS) vs Infrastructure-as-a-Service (IaaS).
  • Enumerate chores every Python deploy shares regardless of vendor.

Heroku-style PaaS

Platforms as a Service accept git pushes or container registries and manage dynos, routing, HTTPS certificates, horizontal scaling sliders. Strength: speed. Trade-off: fewer low-level knobs, potentially higher recurring cost vs self-managed VMs.

AWS-centric stacks

Elastic Beanstalk, ECS/Fargate, EKS trade increasing control for complexity: you configure clusters, ingress controllers, IAM roles, RDS networking. Strength: hyperscale elasticity + rich adjacent services (SQS, KMS, Secrets Manager).

Twelve-factor echoes

Across vendors you still configure:

  • Stateless processes + externalized config (DATABASE_URL).
  • Disposable instances (crash-only design).
  • Log streams aggregated off-box.

💡 Key takeaways

  • Choose platforms based on team expertise and compliance constraints—not trend cycles.

➡️ Next steps

Automate pipelines with CI/CD using GitHub Actions.