Openshift- What, Why, How, Who
What is Redhat OpenShift?
Redhat OpenShift is a cloud development Platform as a Service (PaaS) developed by Red Hat. It is an open-source development platform, which enables developers to develop and deploy their applications on cloud infrastructure. It is very helpful in developing cloud-enabled services.
It is a supported distribution of Kubernetes using Docker containers and DevOps tools for accelerated application development. Open Shift also allows you to have highly available, self-healing, and auto-scaling applications without any of the manual setup that would typically need to be done in a traditional environment whether they’re on-premise or in the public cloud. OpenShift includes a full complement of open-source programming languages giving polyglot choice to developers.
Redhat OpenShift History :
OpenShift was first launched in 2011 and relied on Linux containers to deploy and run user applications. When OpenShift was born in 2011, it relied on Linux containers to deploy and run user applications. OpenShift V1 and V2 used Red Hat’s own platform-specific container runtime environment and container orchestration engine as the foundation.
However, the story of OpenShift began sometime before its launch. Some of the origins of OpenShift come from the acquisition of Makara, announced in November of 2010. That acquisition provided software as an abstraction layer on top of systems and included runtime environments for PHP and Java applications, Tomcat or JBoss application servers, and Apache web servers.
Early OpenShift used “gears”, which were a proprietary type of container technology. OpenShift nodes included some kind of containerization. The gear metaphor was based on what was contained. OpenShift called the isolated clusters gears: something capable of producing work without tearing down the entire mechanism. An individual gear was associated with a user. To make templates out of those gears, OpenShift used cartridges, which were acquired from Makara.
OpenShift itself was not open source until 2012. In June 2013, V2 went public, with changes to the cartridge format.
Redhat OpenShift Features :
- Persistent Storage.
• Container Native Storage (CNS / SDS).
• Log Aggregation and Analysis.
• Monitoring | Telemetry.
• Capacity Management.Software-Defined Network.
• Egress Routing for Enterprise integration.
• Router Sharding.
• Full Stack Support.
• System Certifications and Patching.
It is evident from the above points that Openshift has a very high demand globally. Before we dive into Openshift it is important to know what is Containerization, Orchestration, PAAS, and DevOps.
- A container image is a lightweight, stand-alone, executable package of a piece of software that includes everything needed to run it: code, runtime, system tools, system libraries, settings. Linux containers are key building blocks for the modern platform.
- Today, the most popular Linux container format to build a robust DevOps environment is based on the Docker project. Docker is an open-source software container platform that makes the deployment of application easier and also run applications using containers.
- Containerization based on virtualization allows any application bundled in a container that can be run without the hassles of any dependency like libraries.
- They are a kind of isolated partition inside a single operating system.
- While containers are effective at the heavy lifting while instantiating an image or application component on a single hosting environment, most modern applications are comprised of many components that span multiple hosts that in turn could be in various geographic regions. This is where orchestration and management become a question.
- • Applications generally are built up of individually containerized components/microservices that must be managed for the application to perform as expected.
- • Container orchestration is the process of managing or organizing multiple containers in this fashion. For example Docker Swarm, Kubernetes, Mesos, and Marathon
- • Kubernetes is an open-source platform initially developed by engineers at Google, which automates container operations. It allows you to build application services that span multiple containers, schedule those containers across a cluster, scale those containers, and manage the health of those containers over time.
- Kubernetes handles container deployments and orchestration as a cluster manager by using a declarative model that enables the user to define their application needs.
- DevOps help organizations respond in a more agile manner to changing business requirements by:
- Automating and monitoring the process of software creation, from integration, testing, releasing to deploying and managing it.
- Reducing the development cycles.
- Increasing the frequency of deployment.
- Streamlining the development and release pipeline. E.g.: Docker, Puppet, Kubernetes, Ansible, Chef, and so on.
PAAS : (Platform-as-a-Service)
- The real benefit of Cloud computing is the operational agility provided by the Cloud platform in which we don’t have to worry about IT infrastructure and we can just focus on building our apps.
- In PAAS the capability provided to the consumer is to deploy applications created using programming languages, libraries, services, and tools supported by the provider onto the cloud infrastructure.
- The consumer does not manage or control the underlying cloud infrastructure including network, servers, operating systems, or storage, but has control over the deployed applications and possibly configuration settings for the application-hosting environment.
- PAAS originated from a shared IT service model wherein multiple tenants ran applications on shared systems.
- Containerization is an ability to virtualize the Operating System (OS) resources instead of the underlying hardware while it sits directly on top of the bare metal. For Example Azure’s Cloud Services, Amazon Web Services (AWS)’s Elastic Beanstalk, Google’s App Engine.
Benefits of Redhat OpenShift :
- Provides a container management platform for your complex IT infrastructure.
- Kubernetes is the industry-leading open-source container orchestration framework and Red Hat OpenShift Container Platform is the leading enterprise distribution of Kubernetes.
- Enables your development team to focus on designing and testing applications rather than spending excessive time in managing and deploying containers.
- It includes containerization for multitenancy, automatic provisioning, automatic application scaling, continuous integration, and self-service for developers.
- Accelerate application development, test that application throughout the IT architecture without being hindered by conflicts of the framework, any deployment issue, or language inconsistencies.
OVERVIEW OF REDHAT ARCHITECTURE
OpenShift Container Platform is a set of modular components and services built on top of Red Hat Enterprise Linux, Docker, and Kubernetes. OpenShift adds capabilities such as remote management, multitenancy, increased security, application life-cycle management, and self-service interfaces for developers. In the above figure, going from bottom to top, and from left to right, the basic container infrastructure is shown, integrated, and enhanced by Red Hat:
- The base OS is Red Hat Enterprise Linux (RHEL).
- Docker provides the basic container management API and the container image file format.
- Kubernetes manages a cluster of hosts (physical or virtual) that run containers. It works with resources that describe multi-container applications composed of multiple resources, and how they interconnect.
- Etcd is a distributed key-value store, used by Kubernetes to store configuration and state information about the containers and other resources inside the OpenShift cluster.
THE WORKING OF REDHAT OPENSHIFT
An OpenShift cluster is a set of node servers that run containers and are centrally managed by a set of master servers. A server can act as both a master and a node, but those roles are usually segregated for increased stability.
Master: The master runs OpenShift core services such as authentication and provides the API entry point for the administration.
Nodes: The nodes run applications inside containers, which are in turn grouped into Pods. This division of labor comes from Kubernetes, which uses the term ‘minions’ for nodes.
Pods: The Kubernetes scheduling unit is the Pod, which is a grouping of containers sharing a virtual network device, internal IP address, TCP/UDP ports, and persistent storage. A Pod can be anything from a complete enterprise application, including each of its layers as a distinct container, to a single microservice inside a single container. Kubernetes manages replicas to scale pods. A replica is a set of pods sharing the same definition.
ETCD: OpenShift masters run the Kubernetes master services and etcd daemons, while the nodes run the Kubernetes kubelet and Kube-proxy daemons. Scheduler and management/Replication in the figure are Kubernetes master services, while Data Store is the Etcd daemon.
Networking: Docker creates a virtual kernel bridge and connects each container network interface to it. Docker itself does not provide a way to allow a pod on one host to connect to a pod on another host or to the external world. Kubernetes service and route resources need external help to perform their functions.
A service needs software-defined networking (SDN) which will provide visibility between pods on different hosts, and a route needs something that forwards or redirects packets from external clients to the service internal IP. OpenShift provides an SDN based on Open vSwitch, and routing is provided by a distributed HAProxy farm.
Storage: Kubernetes recognizes a persistent Volume resource, which can define either local or network storage. A pod resource can reference a PersistentVolumeClaim resource in order to access storage of a certain size from a Persistent Volume.
HA: High Availability (HA) on an OpenShift Container Platform cluster has two distinct aspects: HA for the OpenShift infrastructure itself (that is, the masters); and HA for the applications running inside the OpenShift cluster. OpenShift provides a fully supported native HA mechanism for masters by default.
Project: A project groups Kubernetes resources so that the access rights can be assigned to users. A project can also be assigned a quota, which limits its number of defined pods, volumes, services, and other resources.
Images: The Source-to-Image (S2I) process in OpenShift pulls code from an SCM repository, automatically detects what kind of runtime that source code needs, and starts a pod from a base image specific to that kind of runtime. Inside this pod, OpenShift builds the application the same way that the developer would. If the build is successful, another image is created, layering the application binaries over its runtime, and this image is pushed to an image registry internal to OpenShift.
A new pod can then be created from this image, running the application. S2I can be viewed as a complete CI/CD pipeline already built into OpenShift. OpenShift resources, such as images, containers, pods, services, builders, templates, and others, are stored on Etcd and can be managed by the OpenShift CLI, the web console, or the REST API. These resources can be viewed as JSON or YAML text files and shared or retrieved on an SCM system like Git or Subversion.
Why We Use Openshift?
OpenShift accelerates application development by including the tools that companies need to be agile and efficient. With OpenShift, your business can deploy applications quickly, become less siloed, be more interactive, and increase collaboration. You’ll be able to go from concept to production faster and ahead of your competition.
With OpenShift, developers have access to a self-service platform that allows them to create, modify, and deploy applications on-demand with the click of a button. These new applications are packaged up in containers which makes them extremely lightweight and portable. Plus, applications on OpenShift can be created in virtually any language/framework/DB and best of all, run at that same operational cost.
OpenShift allows both Dev and Ops to work together without having to sacrifice their individual concerns. We’ve already gone over how developers can create, modify, and deploy applications on-demand and use the languages they prefer, but Operations needs to be able to maintain those applications easily and have them run at the appropriate scale.
OpenShift brings consensus to your IT organization. Meaning that your organization can be more strategic as well as nimble and can deliver applications to market while maintaining them over their lifecycle with the scalability and stability necessary to win.
IT organizations need a vendor that can enable them through the entire stack, not just one aspect of it. Having a PaaS environment that’s coupled together with supported IaaS services and middleware services, means better agility and interoperability. With our solution, you can incorporate OpenStack, JBoss Middleware, Red Hat Mobile, and others. All of which is backed and supported by Red Hat, whose products and solutions power 50% of the world’s trading volume.
Being able to deliver that next big idea is one thing, being able to run it at scale is another. OpenShift leverages the power of containers and an incredibly powerful orchestration engine to make that happen. Containers make sure that applications are packed up in their own space and are independent from the OS, this makes applications incredibly portable and hyper scalable.
This means that your team spends less time in the weeds and keeping the lights on, and more time being innovative and productive. OpenShift is more than a PaaS, it’s a robust distributed application system that increases operational efficiency while still being able to handle the external load created by your customers.
The data of your organization is one of your most valuable assets so why trust that with just anyone? In fact, 100% of U.S. government executive departments (DOD, DHS, DOT, etc.) use Red Hat solutions. We know how valuable data is and we understand the importance of protecting it from harm. OpenShift is built on those same principles and applications running on OpenShift have their own “container” allowing for the code and data to be separated from each other by default.
Openshift CI/CD Pipeline:
With Red Hat OpenShift Pipelines, you can create a customized CI/CD solution to build, test, and deploy your application.
To create a full-fledged, self-serving CI/CD Pipeline for an application, you must perform the following tasks:
- Create custom Tasks, or install existing reusable Tasks.
- Create and define the delivery Pipeline for your application.
- Create a PersistentVolumeClaim attached to the Workspace to provide the volume or filesystem for Pipeline execution.
- Create a PipelineRun to instantiate and invoke the Pipeline.
- Add Triggers to capture any events in the source repository.
Advantages Of Redhat Openshift :
- OpenShift allows a variety of options to deploy application source codes.
- They are available in 3 forms, namely:
• OpenShift Online
• OpenShift Enterprise
• OpenShift Origin
- OpenShift is developed and supported by Red Hat with Kubernetes at its core. So, from a vendor support perspective, enterprises are on solid ground with OpenShift.
- OpenShift has the edge in management and automation whereas other container management platforms shine with broad application support and ease of use.
CASE STUDY OF LENOVO WITH REDHAT OPENSHIFT
“Lenovo achieves digital transformation with agile cloud services”
With a PaaS [Platform-as-a-Service] built on the RedHat OpenShift Container Platform, along with our automated management tools, we can provide efficient and agile cloud services internally and externally.
Zhenyu Yao, Executive director, Integrated Technology Service, Lenovo
Lenovo, a multinational technology manufacturer, wanted to transform digitally to meet business demand and gain a competitive advantage. The company needed agile and cloud capabilities to launch applications more efficiently. Using a Red Hat® Platform-as-a-Service (PaaS) solution, Lenovo decreased system deployment time and improved productivity through greater automation and increased support for collaborative DevOps work.
Challenge: Accelerate change to transform digitally
Lenovo wanted to achieve a rapid digital transformation to improve its capabilities and meet the business’s demands faster. However, this transformation required frequent updates and changes to the company’s entire IT environment, and some legacy systems could not keep up. As a result, the team faced major challenges in quickly developing and delivering resources. Lenovo needed a comprehensive solution that could support agile application delivery, increase productivity, and improve internal support for DevOps.
Solution: Move to cloud computing with a PaaS solution
To meet its requirements, Lenovo decided to implement cloud computing with a PaaS solution. “We chose PaaS as the preferred solution to gain efficient and agile support for our business team,” said Zhenyu Yao, executive director, Integrated Technology Service at Lenovo. Building on its strong relationship with Red Hat, Lenovo chose the Red Hat OpenShift Container Platform as its PaaS solution.
Results: Increase automation and DevOps collaboration for greater productivity
With its new solution, Lenovo has fully automated its development and production processes, helping developers become more efficient and productive. Its unified PaaS environment lets developers and operations staff collaborate, leading to faster deployment time and increased competitive advantage. IT staff can now build a new IT infrastructure in minutes instead of a week. “With a PaaS built on Red Hat OpenShift Container Platform, along with our automated management tools, we can provide efficient and agile cloud services internally and externally,” said Yao.
Red Hat’s innovative and open culture is the cornerstone of our partnership. … This is a relationship with common goals and a common vision. We believe such a relationship can last for the long term.
Zhenyu Yao, Executive director, Integrated Technology Service, Lenovo
In this article, we’ve learned how Lenovo achieved a rapid digital transformation to improve its capabilities and meet the business’s demands faster. What features and benefits OpenShift Container Platform provides enterprises to solve their problems and much more,
So, we also learned that how Company’s like Lenovo Group uses Redhat OpenShift to solve the challenges of software development operations.