Existing AWS tutorials and books focus too much on AWS itself, glossing over details, and the console. This
series focuses on the principles underlying software design for cloud-based systems. You will come away with
a deeper understanding and a few end-to-end examples under your belt.
By the end of this series you will be able to:
- Design, implement, deploy, and operate AWS-based software systems.
- Evaluate trade-offs between different managed services with respect to a given software architecture.
- Reduce unknown unknowns when it comes to relying on managed services.
Table of contents
-
Tutorial - Personal Todo List on AWS
Infrastructure as code, compute, storage, monitoring, deployments. -
Case Studies
Two services with different focuses. -
Design - Compute
Cattle not pets, latencies: cold vs. warm vs. hot, scalability vs. elasticity. -
Design - Storage
Myth of the single solution, access patterns, latency, availability, consistency and idempotency, caching. -
Events, Messaging, and Workflows
Queues and work, events and notifications, workflows - how hard can they be? -
Security
Asset-centric threat modeling, attack modeling, the bare essentials. -
Reliability
Fault tolerance, replication, cells -
Change and Operations
Change is a continuum, deployment types, monitoring production, faking customers, testing in production. -
Performance and Cost Efficiency
Latency vs. throughput, types of performance, opex vs. capex, capacity and scaling planning. -
Appendix - Principles and Values
Documentation, tutorials, small experiments, asking questions the right way. -
Appendix - How to Research a Managed Service
Tutorials, docs, experiments, scalability, limits and edge cases, deployments and changes. Example using SQS.