Introduction to Contrail Microservices Architecture


With Contrail 4.0, Contrail started moving to an architecture of containers for major system components. Each container encapsulates the services needed for that container. The first phase of Contrail containers were characterized as fat containers, where multiple processes run within the container.

Starting with Contrail Release 5.0, more components are being containerized, and the fat containers are being decomposed into thin containers with microservices. The microservices are still encapsulated in their respective containers, however, only the essential functions relative to each container’s functions are present as microservices. This enables a more agile system, avoiding monolithic containers.

What is Contrail Microservices Architecture?

Nothing is changing with regard to Contrail functionality, however, employing microservices provides a number of benefits, including the ability to deploy patches without updating the entire Contrail deployment, offering better ways to manage the lifecycles of containers, and improving user experiences with Contrail provisioning and upgrading. The microservices architecture enables provisioning with minimum information provided, and enables every feature to be configurable, Utilizing microservices also simplifies application complexity by implementing small, independent processes.

The containers and their processes are grouped as services and microservices, and are similar to pods in the Kubernetes open-source software used to manage containers on a server cluster.

Figure 1 shows how the Contrail containers and microservices are grouped into a pod structure upon installation.

Figure 1: Contrail Containers, Pods, and Microservices
Contrail Containers, Pods, and Microservices

Installing Contrail with Microservices Architecture

Procedures have been developed to simplify the installation and management of Contrail with microservices architecture. Refer to the following topics for installation for the operating system appropriate for your system: