Core Concepts of Openshift:
- Containers and images
- Pods and Users
- Projects and Users
- Builds and Image Streams
- Deployments
- Routes
- Templates
- Orchestration
Containers
(basic units of openshift)
Containers aims to create portable software which should run from local environment to production in a same way.
Containers wrap the software in a customised operating system. This minimizes the chance of saying that application works in local & not working in UAT or works in non-prod & not working in production
So containers are actually a light weight operating system which host one or more software applications. But typically each container will host only one application which we used to call “Micro Service”
Images
It is a binary includes all requirements to run a single container. Metadata describing its needs and capabilities. You can think of war/jar packaging.
Containers are create from images that specify their precise contents. Image is a definition of the container where it used to run.
On a simple note, image is just a war/jar + Some Infra details(like os details, jdk version etc)
Orchestration
It is about how you manage the containers & automate the management. Below are the few process to manage the containers
Spin up the number of containers from three to five & scale down to two. You can spin up five containers on five five different hosts.
Zero down time deployments. Spin up the containers running the new code. Once it is fully up, redirect the user traffic from old container to this new container. So it is zero or near to zero down time deployment.