Skip to main content

RED HAT OpenShift

Red Hat OpenShift is a multifaceted, open source container application platform from Red Hat Inc. for the development, deployment and management of applications.

Red Hat OpenShift combines Kubernetes components with security features and productivity necessary for large enterprises and is especially useful in hybrid cloud scenarios.

What is OpenShift?

OpenShift is a cloud development Platform as a Service (PaaS) developed by Red Hat. It is an open source development platform, which enables the developers to develop and deploy their applications on cloud infrastructure. It is very helpful in developing cloud-enabled services. OpenShift can manage applications written in different languages, such as Ruby, Node.js, Java, Perl, and Python. One of the key features of OpenShift is extensible, which helps the users support the application written in other languages. OpenShift helps organizations move their traditional application infrastructure and platform from physical, virtual mediums to the cloud.

History of OpenShift

  • OpenShift originally came from Red Hat's acquisition of Makara. It is a company with a proprietary PasSsolution based on Linux containers.
  • 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 Docker's adoption as the container technology, and Kubernetes as the container orchestration technology.
  • The v4 product has many other architectural changes, such as 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 complete dependency on Docker.

OpenShift - Architecture

OpenShift is a layered system wherein each layer is tightly bound with the other layer using Kubernetes and Docker cluster. The architecture of OpenShift is designed in such a way that it can support and manage Docker containers, which are hosted on top of all the layers using Kubernetes. Unlike the earlier version of OpenShift V2, the new version of OpenShift V3 supports containerized infrastructure. In this model, Docker helps in creation of lightweight Linux-based containers and Kubernetes supports the task of orchestrating and managing containers on multiple hosts.

Why use OpenShift?

OpenShift provides a common platform for enterprise units to host their applications on cloud without worrying about the underlying operating system. This makes it very easy to use, develop, and deploy applications on cloud. One of the key features is, it provides managed hardware and network resources for all kinds of development and testing. With OpenShift, PaaS developer has the freedom to design their required environment with specifications.

OpenShift provides different kind of service level agreement when it comes to service plans.

  • Free − This plan is limited to three years with 1GB space for each.

  • Bronze −This plan includes 3 years and expands up to 16 years with 1GB space per year.

  • Sliver −This is 16-year plan of bronze, however, has a storage capacity of 6GB with no additional cost.

Other than the above features, OpenShift also offers on-premises version known as OpenShift Enterprise. In OpenShift, developers have the leverage to design scalable and non-scalable applications and these designs are implemented using HAproxy servers.

Features

There are multiple features supported by OpenShift. Few of them are −

  • Multiple Language Support
  • Multiple Database Support
  • Extensible Cartridge System
  • Source Code Version Management
  • One-Click Deployment
  • Multi Environment Support
  • Standardized Developers’ workflow
  • Dependency and Build Management
  • Automatic Application Scaling
  • Responsive Web Console
  • Rich Command-line Toolset
  • Remote SSH Login to Applications
  • Rest API Support
  • Self-service On Demand Application Stack
  • Built-in Database Services
  • Continuous Integration and Release Management
  • IDE Integration
  • Remote Debugging of Applications

OpenShift Types

OpenShift came into existence from its base named OpenShift V2, which was mainly based on the concept of gear and cartridges, where each component has its specifications starting from machine creation till application deployment, right from building to deploying the application.

  • Cartridges − They were the focal point of building a new application starting from the type of application the environment requires to run them and all the dependencies satisfied in this section.

  • Gear −It can be defined as the bear metal machine or server with certain specifications regarding the resources, memory, and CPU. They were considered as a fundamental unit for running an application.

  • Application −These simply refer to the application or any integration application that will get deployed and run on OpenShift environment.

In the earlier days, OpenShift had three major versions.

  • OpenShift Origin :This was the community addition or open source version of OpenShift. It was also known as upstream project for other two versions.

  • OpenShift Online :It is a pubic PaaS as a service hosted on AWS.

  • OpenShift Enterprise :is the hardened version of OpenShift with ISV and vendor licenses.

1. OpenShift Online

OpenShift Online offers the OpenShift community to quickly build, deploys, and scale containerized applications on the public cloud.

It is Red Hat's public cloud application development and hosting platform, which enables automated provisioning, management and scaling of application, which helps the developer focus on writing application logic.

2. OpenShift Container Platform

OpenShift container platform is an enterprise platform which helps multiple teams such as development and IT operations team to build and deploy containerized infrastructure. All the containers built in OpenShift uses a very reliable Docker containerization technology, which can be deployed on any data center of publically hosted cloud platforms.

OpenShift container platform was formally known as OpenShift Enterprises. It is a Red Hat on-premise private platform as service, built on the core concept of application containers powered by Docker, where orchestration and administration is managed by Kubernetes.

In other words, OpenShift brings Docker and Kubernetes together to the enterprise level. It is a container platform software for enterprise units to deploy and manage applicants in an infrastructure of own choice. For example, hosting OpenShift instances on AWS instances.

OpenShift container platform is available in two package levels.

  • OpenShift Container Local − This is for those developers who wish to deploy and test applications on the local machine. This package is mainly used by development teams for developing and testing applications.

OpenShift Container Lab −This is designed for extended evaluation of application starting from development till deployment to pre-prod environment.

3. OpenShift Dedicated

This is another offering added to the portfolio of OpenShift, wherein there is a customer choice of hosting a containerized platform on any of the public clouds of their choice. It gives the end-user a true sense of multi-cloud offering, where they can use OpenShift on any cloud which satisfies their needs.

This is one of the newest offerings of Red Hat, where the end-user can use OpenShift to build, test, deploy and run their application on OpenShift, which is hosted on the cloud.

4. OKD

Origin Community Distribution or OKD 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.

Kubernetes Vs. OpenShift

Both Kubernetes and OpenShift feature robust and scalable architecture that enables rapid and large-scale application development, deployment, and management. They both run on the Apache License 2.0. But that’s just about where the similarities end. Here are just a few of the many ways OpenShift and Kubernetes differ.

  • Deployment

Kubernetes offers more flexibility as an open-source framework and can be installed on almost any platform — like Microsoft Azure and AWS — as well as any Linux distribution, including Ubuntu and Debian. OpenShift, on the other hand, requires Red Hat’s proprietary Red Hat Enterprise Linux Atomic Host (RHELAH), Fedora, or CentOS. This narrows options for many businesses, especially if they're not already using these platforms.

  • Security

OpenShift has stricter security policies. For instance, it is forbidden to run a container as root. It also offers a secure-by-default option to enhance security. Kubernetes doesn’t come with built-in authentication or authorization capabilities, so developers must create bearer tokens and other authentication procedures manually.

  • Support

Kubernetes has a large active community of developers who continuously collaborate on refining the platform. It also offers support for multiple frameworks and languages. OpenShift has a much smaller support community that is limited primarily to Red Hat developers.

  • Releases and Updates

Kubernetes has an average of four releases each year, while OpenShift trails with around three. Similarly, Kubernetes supports several concurrent and simultaneous updates, while OpenShift DeploymentConfig does not.

  • Networking

Kubernetes lacks a networking solution but lets users employ third-party network plug-ins. OpenShift, on the other hand, has its out-of-the-box networking solution called Open vSwitch, which comes with three native plug-ins.

  • Templates

Kubernetes offers Helm templates that are easy to use and provide a generous amount of flexibility. OpenShift templates are nowhere near as flexible or user-friendly.

  • Container Image Management

OpenShift lets developers use Image Streams to manage container images, while Kubernetes doesn’t offer container image management features.

Both Kubernetes and OpenShift are popular container management systems, and each has its unique features and benefits. While Kubernetes helps automate application deployment, scaling, and operations, OpenShift is the container platform that works with Kubernetes to help applications run more efficiently.

REFERENCES :-