This document discusses microservices and containers. It begins with an introduction to microservices and the key challenges they address in monolithic architectures. It then discusses how containers, specifically Docker, help address these challenges through lightweight isolation, portability and other features. The remainder of the document discusses how Kubernetes can be used to orchestrate containers and microservices through features like replication, load balancing, service discovery and monitoring.