This lab was designed to introduce the student to the world of Microservices, Containers, and Container Orchestration systems and how they can be tied into a traditional data center network. The lab will use Docker, Contiv, and ACI to create multi-container applications. Docker Swarm will manage the containers, schedule them over a cluster of Docker Hosts, and then configure the ACI fabric with a whitelist policy to ensure security.
Docker containers and the Docker Swarm orchestration system are cutting edge infrastructure technologies that are almost purpose built to support Microservices. Microservices are the latest generation of application architecture. The concept behind Microservices is to break up a large monolithic application into small independent functional components. The benefits of this architecture are many, small functional Microservices that can be scaled independently, written in different languages, and updated independently.
While Microservices offer many benefits to the application, they can create several challenges for the network. A single monolithic application may have used only a handful of IP addresses that were relatively static. Microservices running in containers may consume hundreds or thousands of IP addresses. The containers may scale up/down in response to demand. This is the challenge Contiv was created to solve. Contiv is integrated with Container Orchestration systems including Docker Swarm and Kubernetes. Contiv provides an abstraction of the network and offers built in service discovery and service routing.
Each POD contains two Centos Virtual Machines (VMs) that are being managed by a vCenter Cluster. Each VM has two interfaces, one for the management network and the other interface connects to the ACI leaf. Below is the a logical diagram on the VMs are connected in the lab.