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
- Conceptual familiarity with Docker Parts 1–2.
🎯 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.