Kesseract

Personal Blog of Sumit Shatwara. Opinions mentioned here are personal and not of my employer.

Written by Sumit Shatwara

18 Dec 2020

What is OpenShift?

OpenShift is a family of cloud-native and containerization software products developed by Red Hat. It’s core product is the OpenShift Container Platform and other products provide this platform through different models: OKD is a community-driven upstream, OpenShift Online is the platform as a public cloud offering, OpenShift Kubernetes Engine which is an enterprise Kubernetes platform providing a subset of features of OpenShift Container Platform, OpenShift Dedicated is the platform offered as managed services on top of Public clouds (like AWS and GCP), Azure Red Hat OpenShift is the fully managed offering supported jointly by Red Hat and Microsoft, a fully managed platform offerings like Red Hat OpenShift on IBM Cloud & Red Hat OpenShift Service on AWS. I have written about the core product called OpenShift Container Platform in this article.

OpenShift Container Platform has got a long history with Red Hat since it was announced in May 2011. It originated from Red Hat’s acquisition of Makara - an organization offering proprietary Platform-as-a-Service solution based on Linux containers. In OpenShift version 2 up until 2014, technologies like container, container image and container orchestration used custom developed technologies like Gears, Cartridges and Broker Host respectively. This got changed totally in OpenShift version 3 with the adoption of Docker as the container runtime and Kubernetes as the container orchestration technology. OpenShift version 4 has many architectural changes where CRI-O replaced Docker as the container runtime, Red Hat Enterprise Linux CoreOS replaced RHEL as the default Operating System for compute nodes and only operating system for control plane nodes, and Operators for building, packaging and deploying OpenShift cluster. It improves the security and manageability aspects of OpenShift cluster further.

enter image description here

Image Source: [https://www.openshift.com/learn/what-is-openshift]

OpenShift 4 is the culmination of Red Hat’s continued investment in the platform since 2011 and also in Kubernetes since 2015. This release has been focused to solve the most difficult problems to build, integrate and run complex applications on top of Kubernetes platform across all footprints i.e. public cloud, private cloud, physical servers, virtual machines as well as edge computing servers. At the heart of OpenShift Container Platform is a harderned and trusted Kubernetes, which is all built on top of enterprise-proven Red Hat Enterprise Linux (RHEL). For OpenShift 4, the platform boundary is extended beyond just managing application workloads. It now provides full stack automated management of the Kubernetes and the underlying container host OS, RHEL CoreOS. Operating system doesn’t need to be managed separately from the container platform. Instead, everything is installed, updated, and managed right from OpenShift itself.

In cluster services, day-2 operations are automated with the help of kubernetes Operators pattern. Here, Operators are the differentiating factor in how OpenShift is built, packaged and deployed since it is widely adopted in all the layers to manage the lifecycle of cluster services as well as the platform services. It has got an amazing capability called Over the air (OTA) updates which any platform admin would love to have. You can just subscribe to the update channel and within a few clicks OpenShift can be updated seamlessly. It also consists of pre-installed cluster monitoring stack (based on Prometheus & Grafana upstream projects), build-in private container registry, networking services (DNS based on CoreDNS, Software-defined Networking based on options like Open vSwitch and OVN-Kubernetes, HAProxy-based Ingress Controllers), Virtualization solution (based on KubeVirt upstream project), and support for Helm 3.

On top of Kubernetes and the core platform cluster services are three main areas of the product. These include below core services of platform:

  • Platform Services: It offers many of the modern cloud native features to the platform for managing different kinds of workloads. These features tie your workloads into the unique capabilities that platform provides. That include things like a Service Mesh (based on Istio upstream project), Pipelines (based on Tekton upstream project), Serverless capabilities (based on Knative upstream project), Chargeback (as a SaaS), the full stack logging (based on Elasticsearch, Fluentd and Kibana stack) and Builds (Source-to-Image framework and Shipwright upstream project).

  • Application Services: It provides capabilities for building, integrating and running cloud-native applications. This consists of databases, languages, runtimes, integration, and 100’s of certified ISV services.

  • Developer Services: It is targeted at improving developer productivity. OpenShift has got everything out of box which is required by developers to innovate. It consists of developer tools like Developer Console, Developer CLI, Code Ready Workspace (OpenShift and Kubernetes-native IDE), Code Ready Container (standalone OpenShift setup for laptops), IDE plugins and VS Code Extension.

I will write about each of these services in detail with a series of upcoming blogs. Stay tuned!

I would like to have your suggestion of topics on what I should write in my upcoming blogs.

Thanks for reading!

Categories