Skip to main content

Containerization

Containers are packages of software that contain all the necessary elements of an application so that it runs in any environment. Software containers solve migration problems that can occur when an application moves from one environment to another environment.  

Containers encapsulate an application as a single bundle and other related binaries, libraries, configuration files, and any dependencies that are required for its execution. You can use containers to run a small microservice to large application.  

Common use cases for containers include: 

  • Existing applications that can be lifted and shifted into the latest cloud architectures.  
  • Repetitive jobs and tasks, which can be quickly handled with new containers.  

As a Pega LSA, you should be aware of this container technology, as per Pega platform support guide, over next few releases, the Pega platform will be moving away from a virtual-machine deployment to a docker container deployment in Kubernetes.  

The following list shows examples of popular container engine software: 

  • Docker  
  • AWS (Amazon Web Services) Fargate  
  • LXC Linux Containers   
  • CoreOS rkt (pronounced as rocket)
  • Apache Mesos  

Docker

The Docker engine is an open-source containerization technology for building and containerizing applications. Docker takes away repetitive, mundane configuration tasks throughout the development life cycle for fast, easy, and portable application development.

You can use the Docker engine for fast and consistent delivery of applications, deployment, scaling, and running more workloads on the same hardware.  

The Docker engine uses client-server architecture with a Docker client and Docker daemon (Docker Host) that uses REST API communication. The Docker registry (Docker Hub) stores public and private docker images.

 

DockerImage

Diagram of Docker containerization is talking about three parts. The first part is Client, second part is Docker Host, and third part is Docker Hub. We have Docker Images in this diagram as part of Docker Hub. A Docker image is a file used to execute code in a Docker container. Docker images act as a set of instructions to build a Docker container, like a template. This diagram shows communication between these three parts. Communication starts with the user issuing commands from the client to perform build, pull, push, and other Docker actions to the Docker daemon. If the Docker image on the local disc is not the most recent, the Docker daemon pulls Docker images from Docker Hub; otherwise, it pulls a local Docker image from the disc and builds container images as requested by the client. 

When you install Pega Platform™, it requires a web server and database server if you deploy in a Docker container. Each of these servers runs on its own containers: one for the application server and another for the database server. The database server, the necessary libraries, and other components are in their first container. The Tomcat application server and a database driver library file for database connection are installed in the second container.  

In the Pega Platform installation example, you can see the following benefits when using containers such as Docker: 

  • Scale up or down web servers automatically based on balancing workloads. 
  • Automatically create a new web server when the existing running server fails. 
  • Monitor the health of the container.

Container orchestration

Container orchestration comes into play when the number of containers in a pipeline grows, notably in the continuous integration and continuous delivery (CI/CD) pipeline. Container orchestration is a method to manage, schedule, load-balance, network, and monitor containers that are automated. 

Popular container orchestration tools include: 

  • Kubernetes 
  • Docker Swarm 
  • Apache Mesos 

Kubernetes

Kubernetes is an open-source container orchestration engine that automates the deployment and scaling management of containers. The Cloud Native Computing Foundation (CNCF) hosts the open-source project. 

The orchestration of Pega Platform starts with pods. A pod is the smallest execution unit in Kubernetes, and a pod encapsulates one or more applications as defined by their Docker images. You can specify the logical set of pods and the policy to access them using Kubernetes. You can also manage external access by using an ingress. Kubernetes also supports the configuration changes using the ConfigMap, which can utilize XML-based objects such as prconfig.xml. 

Check your knowledge with the following interaction: 


This Topic is available in the following Module:

If you are having problems with your training, please review the Pega Academy Support FAQs.

Did you find this content helpful?

Want to help us improve this content?

We'd prefer it if you saw us at our best.

Pega Academy has detected you are using a browser which may prevent you from experiencing the site as intended. To improve your experience, please update your browser.

Close Deprecation Notice