Red Hat Openshift is essentially an opinionated Kubernetes distribution that comes with a large number of features such as CI/CD and container registry built-in; for a full list of differences look at the Red Hat OpenShift vs. Kubernetes. Openshift comes in a number of versions, some commercial and some open source. The naming history of Openshift is particularly confusing. That's why I wrote this blog post where I attempt to list most Openshift versions and variants and outline their main differences.
Openshift Container Platform
Openshift Container Platform is the core commercial offering of Red Hat Openshift. As other Red Hat product it is built on top of Red Hat Enterprise Linux or RHEL. The Openshift Container Platform Plus is an enhanced version that includes additional tools. Those tools are particularly useful in big Openshift deployment. An Openshift Container Platform in the highly-available setup typically includes nine nodes. Three nodes are workers, three are control nodes and three are infrastructure nodes. The workers run the actual containerized workloads. The control nodes do the orchestration. The infrastructure nodes provide additional services like CI/CD and the container registry. In general you would set up Openshift Container Platform in the same places as a traditional Kubernetes cluster.
The subscription price of self-hosted Openshift Container Platform does not seem to available publicly. You can ask Red Hat for a quota. Alternatively yo ucan guess by checking subscription prices for ROSA, for example. Overall Openshift Container Platform is more expensive to deploy that Kubernetes. However, given all the things it is bundled with Openshift Container Platform is probably compelling to many customers.
Red Hat markets a single-node Openshift as Openshift Edge or to be more precise, Openshift at the Edge. Openshift Edge is just Openshift trimmed down to run on a single node without huge overhead. As the name implies, Openshift Edge is mean for having Openshift running at the edge. An example is a site where the application running in Openshift requires low latency. In that case reaching out to a centralized Openshift cluster is not possible. You can install Openshift (at the) Edge with the normal Openshift installer as described here.
In our opinion edge computing is a pretty narrow use-case for Openshift Edge. Another reasonable use-case is running workloads that you'd traditionally run in standalone virtual machines, such as simple web applications. It is unlikely to perform worse than, say, docker-compose or plain docker force-fitted into the production use-case. You can install Openshift Edge with the normal Openshift assisted installer.
Red Hat Openshift Service on AWS
Red Hat Openshift Service on AWS or "ROSA" for short, is the official, managed Openshift Container Platform version on AWS. ROSA is very pricey, so forget about it unless you have real need for it. If you don't need it yet run it, you should enjoy burning money as your pastime. That said, any form of Kubernetes gets quite expensive to run. However, much of the cost comes from the very high infrastructure prices in big public Cloud. To make matters worse Kubernetes and in particular Openshift Container Platform require tons of servers to even run.
All this said ROSA is definitely not that much more expensive given its feature set. ROSA includes support from both Red Hat and AWS.
Red Hat OpenShift Kubernetes Engine
Red Hat OpenShift Kubernetes Engine provides the basic features of OpenShift Container Platform for an entry-level price. You can build a proper cluster on top of OpenShift Kubernetes Engine and you can even expand its feature set to closely match OpenShift container Platform. However, you may lose official Red Hat support if you do that. The features that are missing compared to OpenShift Container Platform are listed here.
OKD is the community version of Openshift. It runs on top of CentOS Linux distribution. It has most of the features of Openshift Container Platform: what is lacking is primarily support and certification.The CentOS operating system is only community-supported and changes more rapidly than in RHEL. That said, it seems possible to run OKD on more stable community distributions like Rocky Linux 8. There is no official edge version of OKD, but you can create one yourself with some effort.
Microshift is a project that optimizes OpenShift Kubernetes for small form factor and edge computing. It is essentially a single-node community Openshift distribution. What k3s is to Kubernetes, Microshift is to Openshift.
Openshift Local is the currently kosher way to run Openshift 4.x on a developer workstation. Think of it as Minikube, but for Openshift instead of vanilla Kubernetes. It is a successor to Codeready Containers (see below).
Codeready Containers is an older way to run Openshift 4.x on a developer workstation. Somewhat surprisingly Red Hat has the same name for the upstream open source project. Red Hat discontinued Codeready containers and created Openshift Local as its successor.
Minishift is a community project that allows running running Openshift 3.x on a developer workstation. You should not be using Minishift unless you need it to support existing Openshift 3.x installations.
In the distant past Red Hat called the community version of Openshift Openshift Origin. At some point Red Hat renamed the community project as OKD and that name has stuck, so far. You can still see the name "origin" in the repositories of Openshift organization on GitHub, for example in origin-server. It looks like Red Hat stopped using the name "Origin" when it transitioned from Openshift 2 to Openshift 3.
Openshift versions: our advise
When you look at Openshift versions take particular care in the supported Openshift version: is it Openshift 2.x, 3.x or 4.x. You should keep any versions prior to 4.x at an arms length. Then you can only pray that Red Hat does not make any more breaking changes or worse, invent new names for Openshift to confuse you.
If you think you need the features of a full-blown OpenShift and can afford the price then that is the best bet. Using a managed service like ROSA (on AWS) is certainly the most straightforward approach as you don't need to worry about the underlying OpenShift cluster management.
If you want a Red Hat supported OpenShift version but don't want to spend tons of money, you should look into Red Hat OpenShift Kubernetes Engine. It is actually quite affordable and you can extend its features at the potential cost of losing official Red Hat support if you take it too far.
If you don't want or can't pay subscription fees to Red Hat you should go with the open source OKD. The downside is you are running what is essentially beta-quality software: it probably works fine, but sometimes it might break.
If you are not afraid of getting your hands dirty and want a "real" OpenShift cluster then you can spin one up in a el cheapo Cloud like Hetzner Cloud and save a lot of money (and lose a lot of time).
And folks: remember to use infrastructure as code tools to manage your Openshift clusters.