What Is OpenShift?

What Is OpenShift?

OpenShift is a platform that allows developers and operations engineers, or even DevOps professionals, to run containerized applications and workloads. Under the hood, it’s powered by Kubernetes, but there’s an additional architectural layer that makes life simpler for DevOps teams. OpenShift is from enterprise software specialist Red Hat and provides a range of automation options and lifecycle management, regardless of where you choose to run your applications.

Definition of OpenShift

OpenShift is best described as a cloud-based container orchestration platform, although it is possible to obtain an “on-prem” version. Red Hat’s OpenShift comes in a few different “flavors,” as IBM likes to call them. There’s an open-source version powered by OKD or Origin Key Distribution. Payable versions of OpenShift come with dedicated support, although only within the version lifecycle. For example, OpenShift 4.12 went live on January 17, 2023, and is supported until January 2025.

OpenShift architecture runs in any environment. The OS is usually Linux, but it also can use Centos. On top of that is the standard Kubernetes layer. However, there’s also an additional layer transforming Kubernetes into OpenShift. 

OpenShift supports application development, deployment, and scaling, while also protecting the development infrastructure and providing a high level of security. Considering cyberattacks increased by 38% across the world in 2022, that’s a key benefit for many developers.

How OpenShift differs from other container orchestration platforms

Other container orchestration platforms are aimed at everyone from individual developers to SMEs, but OpenShift is marketed toward large enterprises. The platform includes features designed to facilitate faster deployment plus a suite of services, including OpenShift Dedicated and OpenShift on IBM Cloud. 

OpenShift empowers businesses to shift to cloud-native development and thoroughly embrace continuous integration and delivery (CI/CD). Various levels of automation make day-to-day tasks simpler and free up DevOps to spend time on other tasks.

OpenShift provides a range of enterprise-ready services straight out of the box. There are plenty of other container orchestration services available, such as Amazon EKS or the Google Kubernetes Engine (GKE). But with any of these, there are often multiple additional services that businesses need to invest in to make them useful as a full deployment and delivery solution. 

OpenShift is a more desirable solution for enterprises that want to be able to build, deploy, and scale fast using a single platform.

Key features of OpenShift

OpenShift utilizes image streams to shift container images to the cluster. Image streams allow changes to occur via automation. Basically, as soon as any alteration occurs in the source code, an image stream allows a developer to push those changes through with minimal application downtime.

Because OpenShift is cloud-based, it works on any infrastructure, which is ideal for multi-platform development. Developers don’t have to constantly shift how they code to match different ecosystems.

OpenShift includes upstream Kubernetes and Linux CoreOS straight out of the box, so it’s a one-stop solution.

New features for OpenShift 4.12 include the inclusion of IBM Secure Execution, the ability to install OpenShift Container Platform to a pre-existing VPC, and enabling feature sets when installing a cluster.

Scaling with OpenShift

Scalability can be a challenge as apps acquire larger user bases or need to perform additional tasks. OpenShift supports the deployment of large clusters or additional hosts and even provides recommended best practices to assure persistent high performance even as applications grow. For example, the default cluster network is:

cidr 10.128.0.0/14

However, this network only allows clusters of up to 500 nodes. OpenShift documentation explains how to switch to one of the following networks:

10.128.0.0/12 or 10.128.0.0/10

These networks support the creation of clusters with more than 500 nodes.

OpenShift allows developers to create “stacks” of containers without reducing performance or speed.

OpenShift also utilizes other tools in its tech stack to support scaling, such as Ansible Playbooks. Ansible is an open-source tool for infrastructure automation, also initially developed by Red Hat. By taking advantage of Ansible Playbooks, OpenShift allows developers to speedily create a new host and bring it into the cluster, making scaling up or down simpler than ever.

OpenShift use cases

OpenShift is ideal for modernizing existing apps as well as creating new ones. It transforms the deployment of upgrades and changes and allows for effortless scaling. Because OpenShift runs on any cloud, it effectively future-proofs applications while ensuring they remain secure and stable. Use cases include:

  • Lifting and shifting existing web apps into containerized environments
  • Developing cloud-native applications
  • Creating apps via distributed microservices
  • Quickly add a new service or feature to an existing app

This last point is a key feature of continuous integration and continuous delivery (CI/CD) and is vital for retaining an engaged user base. For example, a Peruvian financial institution, Caja Municipal Ica, used OpenShift to regularly increase the number of services available to users so they didn’t have to visit their bank for every transaction. This reduced all transition costs by 3%.

Implementing continuous integration and delivery (CI/CD)

CI/CD is a growing development approach that uses automation to ensure updates and adjustments to apps happen as quickly as possible with minimal downtime. Containerized development environments already support continuous integration—the rapid testing and deployment of small code changes—by allowing tests to occur in isolation prior to deployment. OpenShift makes CI/CD pipelines even more efficient by reducing the risk of human error thanks to its simplified interface and helping developers maintain consistent processes.

Research shows that even though the benefits of CI/CD are clear, not all organizations are confident of their ability to make this shift. OpenShift could help businesses maximize their digital transformation efforts by empowering developers to embrace the CI/CD culture and get apps to users faster.

OpenShift provides templates for objects and utilizes Jenkins jobs and pipelines to improve automation and promote CI/CD for all application development and deployment.

How to set up and deploy using an OpenShift cluster

Firstly, a developer or DevOps professional needs to get access to OpenShift. You can download and manage the free version yourself, but the fully managed version needs to be purchased from Red Hat. When you subscribe to a hosted version of OpenShift, you’ll get secure credentials that you’ll require in order to deploy using the OpenShift environment. 

The simplest way to interact with OpenShift is via the web console. There is also an oc command-line tool. 

Before you can deploy an application of any type, you must create a “project.” This contains everything relating to the application.

At this point, you can also use the web console to add collaborators.

You can deploy applications to OpenShift clusters via various methods, including:

  • Using an existing container image hosted outside the OpenShift cluster
  • Using an existing container image imported into an image registry inside the OpenShift cluster
  • Using source code from a Git repository hosting service

OpenShift also provides templates to simplify the deployment of apps with multiple components. Set your own parameters within the template to exercise complete control over the deployment process. Use the “Add to Project” function in the console to access these. There’s a whole section here dedicated to CI/CD. 

Use the “Deploy Image” tab in the console or “oc new-app” in the CLI to enter image stream tags. From here, you can monitor or even scale up by adding more instances of that container image. Red Hat provides many free resources for anyone interested in OpenShift deployment. It’s clear that, for plenty of enterprises, OpenShift could make the app development and delivery process exponentially more reliable and efficient.