Docker is a tool that uses OS-level virtualization to deliver software in packages called containers. Containers make it easy to create, deploy, and run applications. Containers are isolated from one another and bundle their software, libraries, and configuration files. They can communicate with each other through well-defined channels.
Docker benefits system administrators as it provides flexibility and reduces the number of systems needed because of its small footprint and lower overhead. Access Manager containers can be deployed quickly on your on-premises Kubernetes or Kubernetes services provided by AWS and Azure, thereby reducing downtime. Access Manager containers are also highly scalable to meet your requirements.
Kubernetes is a container orchestration engine for Docker. Access Manager is deployed on Kubernetes clusters to automate the manual processes of deploying and managing Access Manager containers.
Figure 10-1 Access Manager Deployment on Kubernetes Cluster
Enterprise software built as Docker containers is easier to assemble and maintain. Some of the parameters that Docker containers enable are:
Isolation
Portability
Composability
Orchestration and Scaling
Isolation: Docker container isolates the applications from one another, and also from the primary system. This makes the software stack clean, and it becomes easier to monitor an application's usage of system resources, such as CPU, memory, and networking.
Portability: Docker containers can run on any system that supports the container’s runtime environment. Access Manager containers can be moved from an on-premises system to a cloud environment easily.
Composability: Access Manager contains many components, Docker makes it possible to compose these components into a functional unit. Each component can be part of different containers, which can be maintained, updated, and swapped independently.
Orchestration and Scaling: You can deploy many Access Manager containers on a single system as the containers are lightweight. You can also have multiple systems with containers. Containers can also be used to scale Access Manager components across clusters of systems when required.