Infrastructure
Docker
Docker is a system which uses operating system level virtualisation to package software into isolated containers. This facilitates a microservices architecture where a complex application can be divided into several containers, each of which specialises in the implementation of one feature of the application.
Kubernetes
Kubernetes is an open source container orhestration system that is commonly used with Docker containers to facilitate distributed applications, the major benefits being that such applications are highly scalable and fault tolerant.