OpenShift for Absolute Beginners
OpenShift is a cloud development Platform as a Service (PaaS) which was assembled around a core of docker container packaging and Kubernetes container along with cluster management. This is powered by Red Hat. It provides developers and IT organizations with an auto-scaling, cloud application platform for deploying new applications on secure, scalable resources with nominal configuration and management overhead.
OpenShift is easy to use, develop, and deploy applications on cloud because of these features:
- It can run on Windows, LInux and other platform easily and hence not dependent on underlying operating system.
- It also has a present of OpenShift community which helps developers and testers quickly build, deploy, and scale containerized applications on the public cloud.
- Automatic Application Scaling aka Pod Scaling in OpenShift Language.
- Responsive Web Console and rich command-line tools.
- Provide support for remote SSH login to application.
- Rest API Support as RESTful APIs are easily accessible via HTTP(s) on the OpenShift Container Platform targeting authority or master servers.
- Provides support for continuous integration and release management via Red Hat OpenShift Pipelines channel.
- Extensible Cartridge System meaning a cartridge provides the required libraries, source code, connection logic, routing logic etc. to run the components of your applications.
- Cartridge system is important but has some disadvantage so from a packaging perspective, an image theory was rather chosen, as this performs more tasks than a cartridge, and provides better encapsulation and flexibility
- Once the setup and deployment process is ready next developers or testers job is as easy as one-click Deployment, which is turn saves a whole lot of time and money for a company.
- Multi Environment Support as this can run parallely in Dev, Test and Production environment with different versions running independently of each other.
- At the time of writing I have seen that remote debugging of Java Applications is easily possible using VisualVM to the forwarded ports and attaching Java Debugger. I sure believe that other programming language such as Python, .Net also has these feature ready to go.
- Built-in Database Services for multiple database and language support.
- IDE Integration such as JetBrains IntelliJ Red Hat OpenShift extension provides debug support for OpenShift components.
- Standardized Developers and Testers workflow, as they can stop worrying about infrastructure which gives them freedom to write and test the code in their own efficient way.
- Self-service on Demand Application Stack meaning you can chose languages and tools you want along with pre-created container images and templates that allow you to build and deploy your favorite application.
- It also has private cluster offering which is available on the Amazon Web Services (AWS: You can now acquire Red Hat OpenShift licensing through AWS, and then quickly deploy managed OpenShift clusters in your account.) and Google Cloud Platform (GCP : Helps with service account creation that provides authentication and authorization to access data in the Google APIs) bazaars.
Some of the OpenShift specific terms:
It is a way to externalize the services by providing externally reachable hostname. In OpenShift routes are created using routers developed by admin.
In Source-to-image strategy source code is downloaded and compiled and deployed in same container.
It is a collection of containers and its storage inside a node of a Kubernetes cluster. It is possible to create a pod with multiple containers inside it.
Enables pods to be stopped and restarted while retaining the same network address and storage attached to them.
A deployment strategy is a way to change or upgrade an application.
A rolling deployment typically waits for new pods to become ready via a readiness check before scaling down the old components.
This is meant for absolute beginners.For more information please follow the Red Hat Documentation.