OpenShift on the IBM Cloud
OpenShift is a Kubernetes distribution which comes with additional capabilities for developers and operators to make building and running cloud-native applications easier. For example it comes with a catalog of services providing a self service experience for developers. I also like that OpenShift comes with lot’s of necessary components like container registries and pipelines out-of-the-box, so that these tools don’t have to be installed or integrated separately. This article describes the differences between Kubernetes and OpenShift.
In addition to managed Kubernetes clusters, the IBM Cloud also offers now managed OpenShift clusters which leverage a lot of the same infrastructure as the Kubernetes clusters with all its benefits like the vulnerability advisor for containers. The tutorial Creating an IBM Cloud Red Hat OpenShift Container Platform cluster explains how to create OpenShift clusters and how to deploy first applications.
OKD is the open source upstream Kubernetes distribution embedded in OpenShift. At this point Red Hat OpenShift on IBM Cloud supports OpenShift version 3.11, which includes Kubernetes version 1.11. With Minishift the 3.x versions of OKD can be run locally for free. All you need is a modern notebook. In my experience you need at least 16 GB of RAM with 8 GB RAM set aside for Minishift.
Sample Microservices Application
My colleague Harald Uebele and I have developed and open sourced an end-to-end sample application that helps developers to get started with developing microservices and deploying them to Kubernetes. Recently we’ve added documentation and scripts how to deploy the same application to Minishift and to OpenShift on the IBM Cloud.
The repo describes how to build cloud-native applications with Java, MicroProfile, Kubernetes and Istio. It demonstrates how to develop resilient applications, how to do traffic management, how to invoke microservices and much more. Check out these instructions for how to run the application on Minishift and OpenShift:
Developing and deploying Microservices
There are various options to deploy microservices to OpenShift. Some of these options require Dockerfiles, some don’t. Some use standard Kubernetes tooling (kubectl), some additional OpenShift functionality. I’ve tried some of these options and blogged about them.
- How to develop Open Liberty Microservices on OpenShift
- Source to Image Builder for Open Liberty Apps on OpenShift
- Deploying Open Liberty Microservices to OpenShift
More useful Resources
When running OpenShift on the IBM Cloud, it might also make sense for certain scenarios to leverage other IBM Cloud services. For example, as far as I know, OpenShift doesn’t come with a source control system. I’ve written an article Accessing private GitLab Repositories from OpenShift that explains how to access Git repos on the IBM Cloud from OpenShift.