This document provides an overview of microservices, containers, scheduling and orchestration. It defines microservices as small, autonomous services that work together with bounded contexts. Containers provide operating system-level virtualization and isolation for microservices. Container cluster managers like Docker Swarm, Kubernetes and Mesosphere DC/OS provide scheduling, service discovery, load balancing and other orchestration capabilities for containers. The document examines characteristics of moving from monolithic to microservice architectures and different deployment patterns using containers, VMs and hardware virtualization.