description | resourceType |
---|---|
Learn about Openshift with a more technical perspective. |
Documentation |
OpenShift is a platform to help you develop and deploy applications to one or more hosts. These can be public facing web applications, or backend applications, including micro services or databases. Applications can be implemented in any programming language you choose. The only requirement is that the application can run within a container.
In terms of cloud service computing models, OpenShift implements the functionality of both a Platform as a Service (PaaS) and a Container as a Service (CaaS).
Using OpenShift as a CaaS, you can bring a pre-existing container image built to the OpenShift Container Initiative (OCI) Image Specification (image-spec) and deploy it.
The PaaS capabilities of OpenShift build on top of the ability to deploy a container image, by providing a way for you to build in OpenShift your own container image direct from your application source code and have it deployed.
The application source code can include a Dockerfile
with instructions to build a container image. Or, you can use a Source-to-Image (S2I) builder, which takes your application source code and converts it into a container image for you, without you needing to know how to write instructions for building a container image.
Kubernetes implements a system for automating deployment, scaling and management of containerized applications. It is often referred to as being a Container as a Service (CaaS).
Kubernetes alone does not provide any support for building the container image it runs. You need to run a build tool to create your application image on a separate system and push that to an image registry from which it can be deployed. This is because CaaS focuses on just running containers.
OpenShift builds on top of Kubernetes to implement a Platform as Service (PaaS) environment which is more friendly to developers, as well as provide the additional tools and services needed by operations to implement a comprehensive container application platform.
A container platform is an application platform that uses containers to build, deploy, serve, and orchestrate the applications running inside it. OpenShift uses two primary tools to serve applications in containers: a container runtime (docker) to create containers in Linux and an orchestration engine (kubernetes) to manage a cluster of servers running containers.
- A container runtime works on a Linux server to create and manage containers. Containers hold everything required for the applications inside them to function.
- A container orchestration engine, Kubernetes, employs a master/node architecture. Kubernetes master servers maintain the information about the server cluster, and nodes run the actual application work-loads.