Guest article APPUiO: OpenShift on cloudscale.ch
By Tobias Brunner, APPUiO team
The buzzwords of the hour are containers, Docker, Kubernetes. Accordingly, in this guest article we are covering OpenShift – an open-source project based on those same technologies. In this article we would also like to show you that OpenShift is much more than just "Docker and Kubernetes" and give you a short introduction to OpenShift on cloudscale.ch:
- What is OpenShift and why should I use it?
- How do I start with OpenShift?
- Why should I run OpenShift on cloudscale.ch?
What is OpenShift and why should I use it?
OpenShift itself is described as "the most secure and comprehensive enterprise grade container platform based on the industry standards Docker and Kubernetes". But there is much more to it! OpenShift is a complete Kubernetes cluster with many features that round off the product: Integrated build pipelines, Docker registry, application router (load balancer), top security based on SELinux and a RBAC system (role-based access control system), a web-based console for easy access to the platform, central logging system, metrics for each PoD, configuration management with Ansible, source-to-image builds and much more.
A comparison can be made with the Linux kernel: OpenShift is to Kubernetes what a Linux distribution is to the kernel. Thus, OpenShift is a Kubernetes distribution – one of the first of its kind.
OpenShift comes in two different flavors:
- OpenShift Container Platform: The commercial version from Red Hat for installation in your own data center or in the cloud.
- OpenShift Origin: The open-source upstream project of the commercial version with a very active GitHub repository: https://github.com/openshift/origin
With OpenShift, software developers get the possibility to develop and test in shorter iterations. Each commit in Git can automatically trigger the entire process from development to production. For that purpose, OpenShift offers automatic image builds, memory management, deployment, scaling, monitoring, logging and much more. With this system the so-called "time-to-market" can be shortened significantly – that way, hourly or even more frequent deployments are a breeze.
How do I start with OpenShift?
There are many ways to start with OpenShift. A few hints and examples to get you started:
- With the official Ansible playbooks an OpenShift cluster can be installed and configured, e.g. at cloudscale.ch. With these playbooks all aspects, even the smallest details, can be configured. Furthermore, the playbooks help to maintain and update the cluster. These playbooks are documented both directly in the Git repository as well as on the documentation page.
A local OpenShift cluster can be started with Minishift (based on Minikube) or with the simple command "oc cluster up" on your own workstation. Simply download the OpenShift client "oc" from GitHub, unpack it and make it executable. This will launch a complete OpenShift cluster on the local Docker daemon:
% oc cluster up Starting OpenShift using openshift/origin:v3.6.0 ... Pulling image openshift/origin:v3.6.0 Pulled 1/4 layers, 28% complete Pulled 2/4 layers, 83% complete Pulled 3/4 layers, 88% complete Pulled 4/4 layers, 100% complete Extracting Image pull complete OpenShift server started. The server is accessible via web console at: https://127.0.0.1:8443 You are logged in as: User: developer Password: <any value> To login as administrator: oc login -u system:admin % oc new-app https://github.com/appuio/example-php-sti-helloworld.git [...] % oc expose svc example-php-sti-helloworld [...] % curl -s http://example-php-sti-helloworld-myproject.127.0.0.1.nip.io/ | grep title <title>APPUiO PHP Demo</title>
- The APPUiO techlab on GitHub provides a step-by-step guide that explains how to run applications on OpenShift. If you prefer to receive in-person instructions, APPUiO offers you a free half-day hands-on workshop (see https://appuio.ch/techlabs.html for further information and registration).
- A comprehensive documentation on microservices architecture sheds some light on the development and operation of cloud-native applications which run perfectly on OpenShift: APPUiO Microservices Example
The available documentation for OpenShift is already very comprehensive and is being extended constantly. It can be found at https://docs.openshift.com for the OpenShift Container Platform and at https://docs.openshift.org for OpenShift Origin. APPUiO offers its own specific documentation at http://docs.appuio.ch/, which is maintained by the APPUiO team and the community at GitHub.
Why should I run OpenShift on cloudscale.ch?
After the first attempts with OpenShift on our own hardware more than two years ago, we started looking for a Swiss infrastructure partner to host the APPUiO public platform. With cloudscale.ch we have found the perfect partner. Together with the engineers at cloudscale.ch a tailor-made environment was created to meet the requirements of OpenShift.
Some important features that cloudscale.ch offers (among others) are: a private network between virtual servers for the cluster communication, an S3-compatible object storage e.g. for the Docker registry data, Floating IPs for high availability, additional SSD disks for a suitable node partitioning, native IPv6, and much more.
Today, cloudscale.ch is an important pillar for the stable operation of the APPUiO public platform.
APPUiO ‐ the Swiss Container Platform – is a managed OpenShift service offered by Puzzle and VSHN. We run OpenShift on any cloud according to customer requirements – particularly on cloudscale.ch.
Having over two years of experience with OpenShift v3, we are the leading provider in Switzerland with a comprehensive knowledge of the operation of OpenShift. We not only operate dozens of private OpenShift clusters but also a public shared plattform. We have been operating the public platform on the infrastructure of cloudscale.ch since the beginning and have found a reliable partner in them who has always met our specific implementation requirements.
The operation of a complex platform such as OpenShift is not easy – there are many components in a large overall system. For this reason we have developed over 120 cluster checks and over 50 checks per server, which ensure the correct operation of the platform. This includes checks that perform a complete end-to-end test (from building the source code to testing the application over HTTPS) to ensure the functionality of a cluster. Many of our tools and scripts can be found on GitHub under the APPUiO organization. For questions you can reach us in the APPUiO forum or in the APPUiO community chat.