OpenShift
{{short description|Cloud computing software}}
{{confuse|OpenStack}}
{{Infobox software
| title =
| name = OpenShift
| logo = OpenShift-LogoType.svg
| logo size = 200px
| caption =
| collapsible =
| author =
| developer = Red Hat
| released = {{Start date and age |2011|05|04}}
| discontinued =
| latest release version = 4.17
| latest release date = {{Start date and age|2024|10|07}}{{Cite web|url=https://docs.redhat.com/en/documentation/openshift_container_platform/4.17/html/release_notes/ocp-4-17-release-notes|title=OpenShift Container Platform 4.17 release notes}}
| latest preview version =
| latest preview date =
| programming language = Go, React
| operating system = Red Hat Enterprise Linux or Red Hat Enterprise Linux CoreOS
| platform =
| size =
| language =
| genre = Cloud computing, Platform as a service
| license = commercial
| website = {{Official URL}}
}}
OpenShift is a family of containerization software products developed by Red Hat. Its flagship product is the OpenShift Container Platform — a hybrid cloud platform as a service built around Linux 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 (akin to the way that Fedora is upstream of Red Hat Enterprise Linux), Several deployment methods are available including self-managed, cloud native under ROSA (Red Hat OpenShift Service on AWS), ARO (Azure Red Hat OpenShift) and RHOIC (Red Hat OpenShift on IBM Cloud) on AWS, Azure, and IBM Cloud respectively, OpenShift Online as software as a service, and OpenShift Dedicated as a managed service.
The OpenShift Console has developer and administrator oriented views. Administrator views allow one to monitor container resources and container health, manage users, work with operators, etc. Developer views are oriented around working with application resources within a namespace. OpenShift also provides a CLI that supports a superset of the actions that the Kubernetes CLI provides.
History
OpenShift originally came from Red Hat's acquisition of Makara, a company marketing a platform as a service (PaaS) based on Linux containers, in November 2010.{{cite web|title=Announcing OpenShift|url=https://blog.openshift.com/announcing-openshift-the-platform-as-a-service-for-developers-who-love-open-source-and-cdi/|access-date=2019-09-26|archive-date=2019-09-26|archive-url=https://web.archive.org/web/20190926015515/https://blog.openshift.com/announcing-openshift-the-platform-as-a-service-for-developers-who-love-open-source-and-cdi/|url-status=dead}}{{Cite web |url= https://blog.openshift.com/red-hat-chose-kubernetes-openshift |title= Why Red Hat Chose Kubernetes for OpenShift |date= November 7, 2016 |author= Joe Fernandes |work= Red Hat Blog |access-date= August 2, 2021 }}{{cite web |title= Red Hat acquires Makara|url=https://www.cnet.com/news/red-hat-acquires-makara-for-cloud-platform/ |date= November 30, 2010 |author= Dave Rosenberg |archive-url=https://web.archive.org/web/20190926015511/https://www.cnet.com/news/red-hat-acquires-makara-for-cloud-platform/ |archive-date=2019-09-26 }}
OpenShift was announced in May 2011 as proprietary technology and did not become open-source until May of 2012.{{cite web|title=Announcing OpenShift Origins|url=https://www.redhat.com/en/blog/Announcing-OpenShift-Origin-Open-Source-Code-For-Platform-as-a-Service?source=author&term=2661}} Up until v3, released in June 2015, 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.{{cite web|title=Why Red Hat chose Kubernetes for OpenShift|url=https://blog.openshift.com/red-hat-chose-kubernetes-openshift/}} The v4 product has many other architectural changes - a prominent one being a shift to using CRI-O, as the container runtime (and Podman for interacting with pods and containers), and Buildah as the container build tool, thus breaking the exclusive dependency on Docker.{{cite web|title=Podman and Buildah for Docker users |work= Red Hat Developer Blog |url=https://developers.redhat.com/blog/2019/02/21/podman-and-buildah-for-docker-users |first=William |last=Henry|date=February 21, 2019|publisher=Red Hat |access-date= August 2, 2021 }}
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, "oc", offers a superset of the standard capabilities bundled in the mainline "kubectl" client program of Kubernetes.{{cite book |last1=Caban |first1=William |title=Architecting and Operating OpenShift Clusters: OpenShift for Infrastructure and Operations Teams |date=2019 |publisher=Apress |chapter=Chapter 2 |isbn=978-1-4842-4984-0}} Using this client, one can directly interact with the build-related resources using sub-commands (such as "new-build" or "start-build"). In addition to this, an OpenShift-native pod builds technology called Source-to-Image (S2I) is available out of the box, though this is slowly being phased out in favor of Tekton — which is a cloud native way of building and deploying to Kubernetes. For the OpenShift platform, this provides capabilities equivalent to what Jenkins can do.
Some other differences when OpenShift is compared to Kubernetes:
- The out-of-the-box install of OpenShift comes with an image repository.
- ImageStreams (a sequence of pointers to images which can be associated with deployments) and Templates (a packaging mechanism for application components) 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 (with the value of the label taken from the --name argument) 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 Red Hat’s own offerings but by 2020 supports others like AWS, IBM Cloud, vSphere, and bare metal deployments with OpenShift 4.{{Cite web |title= Kubernetes vs OpenShift: This is What You Need to Know |url= https://thechief.io/c/editorial/kubernetes-vs-openshift-what-you-need-know |archive-url= https://web.archive.org/web/20200920095533/https://thechief.io/c/editorial/kubernetes-vs-openshift-what-you-need-know/ |archive-date= September 20, 2020 |access-date= August 2, 2021 |work= The Chief I/O }}
- OpenShift’s implementation of Deployment, called DeploymentConfig is logic-based in comparison to Kubernetes' controller-based Deployment objects. As of v4.5, OpenShift is steering more towards Deployments by changing the default behavior of its CLI.
- An embedded OperatorHub. This is a web GUI where users can browse and install a library of Kubernetes Operators that have been packaged for easy lifecycle management. These include Red Hat authored Operators, Red Hat Certified Operators and Community Operators.{{citation|title=OpenShift Container Platform 4.15 Documentation|url=https://docs.openshift.com/container-platform/4.15/operators/understanding/olm-understanding-operatorhub.html|website=docs.openshift.com}}
OpenShift v4 tightly controls the operating systems used. The "control plane" components have to be running Red Hat CoreOS. This level of control enables the cluster to support upgrades and patches of the control plane nodes with minimal effort. The compute nodes can be running any Linux OS or even Windows.
OpenShift introduced the concept of routes - points of traffic ingress into the Kubernetes cluster. The Kubernetes ingress concept was modeled after this.{{citation|title=Kubernetes Ingress vs OpenShift Route|url=https://www.openshift.com/blog/kubernetes-ingress-vs-openshift-route}}
OpenShift includes other software such as application runtimes as well as infrastructure components from the Kubernetes ecosystem. For example, for observability needs, Prometheus, Fluentd, Vector, Loki, and Istio (and their dependencies) are included. The Red Hat branding of Istio is called Red Hat Service Mesh, and is based on an opensource project called Maistra, that aligns base Istio to the needs of opensource OpenShift.
Products
= OpenShift Container Platform =
OpenShift Container Platform (formerly known as OpenShift Enterprise{{cite web |title=OpenShift Container Platform 3.3 Release Notes {{!}} Release Notes {{!}} OpenShift Container Platform 3.3 |url=https://docs.openshift.com/container-platform/3.3/release_notes/ocp_3_3_release_notes.html#ocp-33-new-product-name |website=docs.openshift.com |access-date=8 May 2019 |date=27 September 2016}}) is Red Hat's on-premises private platform as a service product, built around application containers powered by CRI-O, with orchestration and management provided by Kubernetes, on Red Hat Enterprise Linux and Red Hat Enterprise Linux CoreOS.{{Cite web |title= OpenShift Container Platform architecture |work= OpenShift 4.11 Documentation |publisher= Red Hat |access-date= August 23, 2022 |url= https://docs.openshift.com/container-platform/4.11/architecture/architecture.html }}
= OKD =
OKD, known until August 2018 as OpenShift Origin{{cite web|url=https://blog.openshift.com/okd310release/|title=OKD: Renaming of OpenShift Origin with 3.10 Release – Red Hat OpenShift Blog|date=3 August 2018}} (Origin Community Distribution) 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, OKD is augmented by application lifecycle management functionality and DevOps tooling. OKD provides an open source application container platform. All source code for the OKD project is available under the Apache License (Version 2.0) on GitHub.{{GitHub|openshift/origin|OpenShift Origin}}{{cite web | url=https://github.com/openshift/okd | title=OKD: The Community Distribution of Kubernetes that powers Red Hat's OpenShift | website=GitHub | date=17 August 2022 }}
= Red Hat OpenShift Online =
Red Hat OpenShift Online (RHOO) is Red Hat's public cloud application development and hosting service which runs on AWS and IBM Cloud.{{cite web|url=https://www.zdnet.com/article/red-hat-opens-new-openshift-platform-as-a-service-public-cloud/|title=Red Hat opens new OpenShift Platform-as-a-Service public cloud – ZDNet|first=Steven J.|last=Vaughan-Nichols|website=ZDNet}}
Online offered version 2{{When|date=October 2016}} of the OKD project source code, which is also available under the Apache License Version 2.0.{{GitHub|openshift/origin-server|OpenShift Origin server}} 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.{{cite web
| url=https://docs.openshift.org/origin-m4/oo_cartridge_developers_guide.html
| title=OpenShift Origin Cartridge Developer's Guide
| date=2016-04-27
| access-date=2016-04-27
| archive-url=https://web.archive.org/web/20160507160549/https://docs.openshift.org/origin-m4/oo_cartridge_developers_guide.html
| archive-date=2016-05-07
| url-status=dead
}} This was deprecated in favour of OpenShift 3,{{cite web|url=https://blog.openshift.com/migrating-your-applications-from-openshift-2-to-3/|title=Migrating Applications from OpenShift v2 to OpenShift 3 – OpenShift Blog|date=18 May 2017}} and was withdrawn on 30 September 2017 for non-paying customers and 31 December 2017 for paying customers.{{cite web|url=https://blog.openshift.com/migrate-to-v3-v2-eol/|title=Get Ready to Migrate to OpenShift Online 3 – OpenShift Blog|date=25 August 2017}}
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.
Red Hat OpenShift 4 for IBM Z and IBM LinuxONE supports on-premise, cloud, and hybrid environments.{{cite web|url=https://developer.ibm.com/tutorials/install-red-hat-openshift-on-ibmz-linuxone/|title=Install Red Hat OpenShift Container Platform 4 on IBM Z and IBM LinuxONE|access-date=2 Nov 2021}}{{cite web|url=https://docs.openshift.com/container-platform/4.8/installing/installing_ibm_z/preparing-to-install-on-ibm-z.html|title=Preparing to install with z/VM on IBM Z and LinuxONE|access-date=2 Nov 2021}}
= OpenShift Dedicated =
OpenShift Dedicated (OSD) 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 (AWS), IBM Cloud, Google Cloud Platform (GCP) marketplaces since December 2016.{{cite web|url=https://www.zdnet.com/article/red-hat-launches-openshift-on-google-cloud/|title=Red Hat launches OpenShift on Google Cloud – ZDNet|first=Steven J.|last=Vaughan-Nichols|website=ZDNet}}{{cite web|url=https://www.redhat.com/en/about/press-releases/red-hat-launches-openshift-dedicated-google-cloud-platform|title=Red Hat Launches OpenShift Dedicated on Google Cloud Platform|website=www.redhat.com|date=8 December 2016 }} A managed private cluster offering is also offered on Microsoft Azure under the name Azure Red Hat OpenShift (ARO).{{Cite web |title=Azure Red Hat OpenShift – Kubernetes PaaS {{!}} Microsoft Azure |url=https://azure.microsoft.com/en-us/services/openshift/ |access-date=2022-07-11 |website=azure.microsoft.com |language=en}}
= OpenShift Data Foundation =
OpenShift Data Foundation (ODF) provides cloud native storage, data management and data protection for applications running with OpenShift Container platform in the cloud,{{Cite web |last=Fritts |first=Harold |title=Red Hat OpenShift Data Foundation Becomes Part of Red Hat OpenShift Platform Plus |url=https://www.storagereview.com/news/red-hat-openshift-data-foundation-becomes-part-of-red-had-openshift-platform-plus |access-date=2022-12-06 |website=StorageReview.com |date=2 February 2022 |language=en-US}} on-prem, and in hybrid/multi-cloud environments.
= OpenShift Database Access =
Red Hat OpenShift Database Access (RHODA) is a capability in managed OpenShift Kubernetes environments enabling administrators to set up connections to database-as-a-service offerings from different providers. RHODA is an add-on service to OSD and Red Hat OpenShift Service on AWS (ROSA). RHODA's initial alpha release included support for MongoDB Atlas for MongoDB and Crunchy Bridge for PostgreSQL.{{cite web|url=https://cloud.redhat.com/blog/simplifying-database-cloud-service-access|title=Simplifying Database Cloud Service Access}}
See also
{{Portal|Free and open-source software}}
References
{{Reflist}}
Further reading
- {{cite book |title=OpenShift in Action |author1=Jamie Duncan |author2=John Osborne |publisher=Manning Publications Co.|date=May 2018 |isbn=978-1-6172-9483-9}}
- {{cite book |title=DevOps with OpenShift |author1=Stefano Picozzi |author2=Mike Hepburn | author3=Noel O'Conner | publisher=O'Reilly Media |date=May 2017 |isbn=978-1-4919-7596-1}}
- {{cite book |title=OpenShift for Developers |author1=Grant Shipley |author2=Graham Dumpleton | publisher=O'Reilly Media |date=August 2016 |isbn=978-1-4919-6138-4}}
- {{cite book |title=Getting Started with OpenShift |author1=Steve Pousty |author2=Katie Miller |publisher=O'Reilly Media |date=May 2014 |isbn=978-1-4919-0047-5}}
External links
- {{Official website|https://www.openshift.com/}}
- {{GitHub|openshift|OpenShift}}
- [https://commons.openshift.org/ OpenShift Commons]
- [https://www.openshift-anwender.de/ OpenShift User Group (German speaking)]
{{Cloud computing}}
{{Red Hat}}
Category:Containerization software
Category:Free software for cloud computing