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.
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.
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.
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.
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.
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.
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 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.
We will discuss on different formats and offerings of OpenShift. In the earlier days, OpenShift had three major versions.
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.
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.
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.