This document discusses design patterns for cloud architecture. It begins with an introduction to software design patterns and their history. It then covers the evolution of cloud architecture from physical infrastructure to virtual machines to containers and serverless computing. Various common design patterns are presented for each layer including three-tier apps, singleton, sidecar, ambassador and event-driven patterns. The document emphasizes that infrastructure can be treated as code with reusable patterns and provides resources for further learning.