Introduction of 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. This tutorial will help you understand OpenShift and how it can be used in the existing infrastructure. All the examples and code snippets used in this tutorial are tested and working code, which can be simply used in any OpenShift setup by changing the current defined names and variables.
Red Hat OpenShift is available in four models:
- OpenShift Container Platform
- OpenShift Online
- OpenShift Dedicated
Though the implementations and locations on which they run and the pricing models differ, the actual underlying OpenShift code and functionality are identical.
OpenShift Container Platform
Known as OpenShift Enterprise until a June 2016 name change, OpenShift Container Platform is a private platform as a service (PaaS) for organizations that deploy and manage OpenShift on their own on-premises hardware or on the infrastructure of a certified cloud provider.
OpenShift Container Platform is implemented as an assemblage of Docker-based application containers managed via Kubernetes orchestration, all running on an operating system foundation of Red Hat Enterprise Linux (RHEL).
Introduced in 2011, OpenShift Online is for individual developers or teams that access OpenShift as a public cloud service. OpenShift Online is implemented as an on-demand consumption model hosted on public cloud platforms, including Amazon Web Services (AWS).
The latest version of OpenShift Online, released in May 2017, provides a container-based platform that developers can access from any web browser, IDE and command line. It also provides support for local development, enabling programmers to deploy a functional OpenShift cluster on their local workstations, and it supports port forwarding, which enables developers to use remote services as if they were running locally.
OpenShift Online was built with the same code as OpenShift Container Platform, and it is the deployment platform for OpenShift.io.
OpenShift Dedicated offers organizations the ability to run a single-tenant OpenShift environment on a public cloud managed by Red Hat while incorporating Docker and Kubernetes orchestration technologies.
At the time of its launch in December 2015, OpenShift Dedicated ran only on AWS. Support for Google Cloud Platform was added in December 2016. As of July 2017, support for Microsoft Azure is not offered.
Announced in May 2017, OpenShift.io is a free, open source supplement to OpenShift Online. Together, they offer an integrated approach to DevOps that incorporates tools for development teams to create and deploy microservices-based applications.
OpenShift.io also provides a Linux container environment and a machine learning system that assist developers with design decisions. OpenShift.io encompasses several open source development technologies, including fabric8, Eclipse Chef, Jenkins, OpenJDK, Performance Co-Pilot, WildFly Swarm, Eclipse Vert.x and Spring Boot.
Why use Red Hat OpenShift
As container use increases in app development and production, services such as OpenShift offer ways to manage and automate a large amount of containers. Doing so frees up developers from the manual management of containers.
Also, OpenShift can help IT organizations bridge legacy servers supporting traditional applications and modern, microservices-based work. These features feed into a mobile-first approach for companies that want to produce smartphone and tablet apps quickly.
Finally, OpenShift’s options promote continuous app development and common tools for development and operations teams. This approach is a cornerstone of DevOps efforts.
How Red Hat OpenShift works
According to Red Hat, the key to OpenShift lies in the combination of Docker containers and Kubernetes orchestration, both built on RHEL.
By using Docker at its model, OpenShift enables any app created with it to run anywhere else that Docker containers are supported.
After developers push code to OpenShift either through software version control or continuous integration/continuous delivery (CI/CD) systems, OpenShift orchestrates how and when the apps run. It also enables dev teams to fix, fine tune and scale those apps as quickly as needed.
Containers associated with OpenShift can serve as web frameworks or stateful services, according to Red Hat.
In addition to enabling developers to create their own containers, OpenShift provides an online container catalog with contributions from Red Hat and third parties. Some popular categories include container management, mobile application development, operating systems, programming languages, logging and monitoring, and database management.
Benefits of OpenShift
Pods — Pods are one or more containers deployed together on one host. Each pod is allocated CPU, memory, disk, and network bandwidth. Use a single pod to create an entire web app, complete with a private database instance. Use multiple pods to create multiple apps.
Pod autoscaling — OpenShift enables cloud elasticity by providing automatic horizontal pod scaling as application load increases. This eliminates the need for Operations to manually increase the number of application instances.
High availability — OpenShift is architected with a control plane (Kubernetes masters), persistent storage of REST API objects (etcd), and application hosting infrastructure (Kubernetes nodes). Each piece of the platform can be configured with multiple redundancy for fail-over and load-balancing scenarios to eliminate the impact of hardware or infrastructure failure.
Choice of cloud infrastructure — OpenShift provides customers with the choice to run on top of physical or virtual, public or private cloud, and hybrid cloud infrastructure. This gives IT the freedom to deploy OpenShift in a way that best fits within your existing infrastructure.
What Are the Layers?
The Docker service provides the abstraction for packaging and creating Linux-based, lightweight container images. Kubernetes provides the cluster management and orchestrates containers on multiple hosts.
OpenShift Container Platform adds:
- Source code management, builds, and deployments for developers
- Managing and promoting images at scale as they flow through your system
- Application management at scale
- Team and user tracking for organizing a large developer organization
- Networking infrastructure that supports the cluster
What Is the OpenShift Container Platform Architecture?
OpenShift Container Platform has a microservices-based architecture of smaller, decoupled units that work together. It runs on top of a Kubernetes cluster, with data about the objects stored in etcd, a reliable clustered key-value store. Those services are broken down by function:
- REST APIs, which expose each of the core objects.
- Controllers, which read those APIs, apply changes to other objects, and report status or write back to the object.
Users make calls to the REST API to change the state of the system. Controllers use the REST API to read the user’s desired state, and then try to bring the other parts of the system into sync. For example, when a user requests a build they create a “build” object. The build controller sees that a new build has been created, and runs a process on the cluster to perform that build. When the build completes, the controller updates the build object via the REST API and the user sees that their build is complete.
The controller pattern means that much of the functionality in OpenShift Container Platform is extensible. The way that builds are run and launched can be customized independently of how images are managed, or how deployments happen. The controllers are performing the “business logic” of the system, taking user actions and transforming them into reality. By customizing those controllers or replacing them with your own logic, different behaviors can be implemented. From a system administration perspective, this also means the API can be used to script common administrative actions on a repeating schedule. Those scripts are also controllers that watch for changes and take action. OpenShift Container Platform makes the ability to customize the cluster in this way a first-class behavior.
To make this possible, controllers leverage a reliable stream of changes to the system to sync their view of the system with what users are doing. This event stream pushes changes from etcd to the REST API and then to the controllers as soon as changes occur, so changes can ripple out through the system very quickly and efficiently. However, since failures can occur at any time, the controllers must also be able to get the latest state of the system at startup, and confirm that everything is in the right state. This resynchronization is important, because it means that even if something goes wrong, then the operator can restart the affected components, and the system double checks everything before continuing. The system should eventually converge to the user’s intent, since the controllers can always bring the system into sync.
Features of OpenShift
There are numerous features maintained 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
— — — — — — — — — — — — — — — — — — — — — — — — — — — — — — —
Thanks for reading.