What is OpenShift?

OpenShift is a cloud development Platform as a Service (PaaS) hosted by Red Hat. It's an open-source, cloud-based, user-friendly platform used to create, test, and run applications, and finally deploy them on the cloud.

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.

OpenShift supports a huge variety of applications, quickly developed and deployed on the OpenShift cloud platform. OpenShift supports three kinds of platforms for developers and users.

1. Infrastructure as a Service (IaaS)

In this format, the service provider provides hardware-level virtual machines with some pre-defined virtual hardware configuration. There are multiple competitors in this space, starting from Rackspace, AWS Google Cloud, Rackspace, and many more.

The main drawback of having IaaS after a lengthy setup and investment procedure is that one is still responsible for installing and maintaining the operating system and server packages, managing the network of infrastructure, and taking care of the basic system administration.

2. Software as a Service (SaaS)

With SaaS, one has the least worry about the underlying infrastructure. It is as simple as plug and play, wherein the user has to sign up for the services and start using it.

The main drawback of this setup is that one can only perform a minimal amount of customization, which the service provider allows.

Gmail is the most common example of SaaS, where the user needs to login and start using it. The user can also make some minor modifications to his account. However, it is not very useful from the developer's point of view.

3. Platform as a Service (PaaS)

It can be considered as a middle layer between SaaS and IaaS. PaaS evaluation's primary target is for developers in which the development environment can be spin up with a few commands.

These environments are designed in such a way that they can satisfy all the development needs, right from having a web application server with a database.

The OpenShift Console has developer and administrator oriented views. Administrator views allow one to monitor the container resources, container health, manage users, work with operators, etc.

History

  • 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.

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 to 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 create lightweight Linux-based containers, and Kubernetes supports the task of orchestrating and managing containers on multiple hosts.

What is OpenShift

The main difference between OpenShift and 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, known as oc, offers a superset of the standard capabilities bundled in the mainline kubectl client program of Kubernetes. Using this client, one can directly interact with the build-related resources using sub-commands.

In addition to this, an OpenShift-native pod build technology called Source-to-Image (S2I) is available out of the box.

Why Use OpenShift?

OpenShift provides a common platform for enterprise units to host their applications on the cloud without worrying about the underlying operating system. This makes it very easy to use, develop, and deploy applications on the cloud.

One of the key features is that it provides managed hardware and network resources for development and testing. With OpenShift, PaaS developer has the freedom to design their required environment with specifications.

OpenShift provides a 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.
  • Silver: This is a 16-year plan of bronze; however, it has a storage capacity of 6GB with no additional cost.

Other than the above features, OpenShift also offers an 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.

OpenShift Types

OpenShift came into existence from its base named OpenShift V2, mainly based on gear and cartridges. Each component has its specifications starting from machine creation until application deployment, right from building to deploying it.

  • 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 bare metal machine or server with individual specifications regarding the resources, memory, and CPU. They were considered as a fundamental unit for running an application.
  • Application: These refer to the application or any integration application that will get deployed and run on the OpenShift environment.

We will discuss on different formats and offerings of OpenShift. 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 an upstream project for the other two versions.
  • OpenShift Online: It is a pubic PaaS as a service hosted on AWS.
  • OpenShift Enterprise: It 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 Kubernetes manage orchestration and administration.

OpenShift brings Docker and Kubernetes together to the enterprise level. It is container platform software for enterprise units to deploy and manage applicants in their choice infrastructure. 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 from development until deployment to the 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.

Features of OpenShift Dedicated

OpenShift dedicated offers customized solution application platform on the public cloud, inherited from OpenShift 3 technology.

  • Extensible and Open: This is built on Docker's open concept and deployed on the cloud because it can expand itself as and when required.
  • Portability: As it is built using Docker, the applications running on Docker can easily be shipped from one place to the other, where Docker is supported.
  • Orchestration: With OpenShift 3, one of the key features of container orchestration and cluster management is supported using Kubernetes, which came into an offering with OpenShift version 3.
  • Automation: This version of OpenShift is enabled with source code management, build automation, and deployment automation, making it very popular in the market as a Platform as a Service provider.

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.


Next TopicWhat is Vagrant




Latest Courses