Microservices is a modern take on software architecture, in which complex applications are composed of small, independent processes communicating with each other using APIs. These services are small, highly decoupled and focus on doing a small task. The rise of Docker, the proliferation of third party developer tools and the increasing reliance on the cloud all play into the growth of microservices.