OpenShift is a family of containerization software developed by Red Hat. Its flagship product is the OpenShift Container Platform—an on-premisesplatform as a service built around Docker containers orchestrated and managed by Kubernetes on a foundation of Red Hat Enterprise Linux. The family's other products provide this platform through different environments: OKD serves as the community-driven upstream, OpenShift Online is the platform offered as software as a service, and Openshift Dedicated is the platform offered as a managed service. The Openshift UI has various functionalities, allowing one to monitor the container resources, container health, the nodes the containers reside on, IP addresses of the nodes, etc. The key store can be accessed via the Secrets in Openshift. The OC CLI command line tool also offers similar functionalities.
History
OpenShift originally came from Red Hat's acquisition of Makara - a company with a proprietary PaaS solutionbased on Linux containers. Even though OpenShift was announced in May 2011, it was proprietary technology and did not become open-source until May of 2012. Up until v3, the container technology and container orchestration technology used custom developed technologies. This changed in v3 with the adoption of Docker as the container technology, and Kubernetes as the container orchestration technology. The v4 product has many other architectural changes - a prominent one being a shift to using CRIO as the container runtime, and as the container build tool, thus breaking the exclusive dependency on Docker.
Architecture
The main difference between OpenShift and vanilla Kubernetes is the concept of build-related artifacts. In OpenShift, such artifacts are considered first class Kubernetes resources upon which standard Kubernetes operations can apply. OpenShift's client program, known as "oc", offers a superset of the standard capabilities bundled in the mainline "kubectl" client program of Kubernetes. Using this client, one can directly interact with the build-related resources using sub-commands. In addition to this, an OpenShift-native pod build technology called Source-to-Image is available out of the box. For the OpenShift platform, this provides capabilities equivalent to what Jenkins can do. Some other differences when OpenShift is compared to Kubernetes:
The v4 product line uses the CRI-O runtime - which means that docker daemons are not present on the master or worker nodes. This improves the security posture of the cluster.
The out-of-the-box install of OpenShift comes included with an image repository.
ImageStreams and Templates are unique to OpenShift and simplify application deployment and management.
The "new-app" command which can be used to initiate an application deployment automatically applies the app label to all resources created as a result of the deployment. This can simplify the management of application resources.
In terms of platforms, OpenShift used to be limited to Redhat’s own offerings but now supports others like AWS, IBM Cloud and vSphere with OpenShift 4.
OpenShift’s implementation of Deployment, called DeploymentConfig is logic-based in comparison to Kubernetes' controller-based Deployment objects.
OpenShift introduced the concept of routes - points of traffic ingress into the Kubernetes cluster. The Kubernetes ingress concept was modeled after this. OpenShift also provides value adds by bundling various software solutions - application runtimes as well as infrastructure components from the Kubernetes ecosystem. For example, for observability needs, Prometheus, Hawkular, and Istio are included out of the box. The console UI includes an "Operator Hub" serves as a marketplace from where publicly provided operator-based solutions can be downloaded and deployed.
Products
OpenShift Container Platform
OpenShift Container Platform is Red Hat's on-premises private platform as a service product, built around a core of application containers powered by Docker, with orchestration and management provided by Kubernetes, on a foundation of Red Hat Enterprise Linux and Red Hat Enterprise Linux CoreOS.
OpenShift Origin
OpenShift Origin, also known since August 2018 as is the upstream community project used in OpenShift Online, OpenShift Dedicated, and OpenShift Container Platform. Built around a core of Docker container packaging and Kubernetes container cluster management, Origin is augmented by application lifecycle management functionality and DevOps tooling. Origin provides an open source application container platform. All source code for the Origin project is available under the Apache License on GitHub.
Red Hat OpenShift Online
Red Hat OpenShift Online is Red Hat's public cloud application development and hosting service which runs on AWS and IBM Cloud. Online offered version 2 of the Origin project source code, which is also available under the Apache License Version 2.0. This version supported a variety of languages, frameworks, and databases via pre-built "cartridges" running under resource-quota "gears". Developers could add other languages, databases, or components via the OpenShift Cartridge application programming interface. This was deprecated in favour of OpenShift 3 and was withdrawn on 30 September 2017 for non-paying customers and 31 December 2017 for paying customers. OpenShift 3 is built around Kubernetes. It can run any Docker-based container, but Openshift Online is limited to running containers that do not require root.
OpenShift Dedicated
OpenShift Dedicated is Red Hat's managed private cluster offering, built around a core of application containers powered by Docker, with orchestration and management provided by Kubernetes, on a foundation of Red Hat Enterprise Linux. It is available on the Amazon Web Services, IBM Cloud, Google Cloud Platform and Microsoft Azure marketplaces since December 2016.