Kubernetes & OpenShift for Java Engineers with Roland Huß and Tobias Schneck

Bastian Klein
Java User Group Thüringen
4 min readJun 10, 2018

On June 7th, we had the pleasure to welcome Roland Huß (Red Hat GmbH) and Tobias Schneck (ConSol Consulting & Solutions Software GmbH) to our joint Meetup with Softwerkskammer Jena at Salesforce.com Germany GmbH in Jena.

The evening dealt with currently still upcoming and growing topics in the Java world, Kubernetes and OpenShift. The Agenda consisted of three major topics:

Meetup Flyer, Speaker and Orga Picture

In the beginning, there was a short introduction talk (slides) to inform about upcoming events at our JUG Thüringen, as well as an informative talk (slides) by our partner Softwerkskammer Jena, presenting their upcoming events including Devoxx4Kids Thüringen (slides).

Oliver Reißig kicked off the actual event introducing Salesforce and their Demandware origins in Jena. He explained the benefits of developing and maintaining a Software-as-a-Service solution.

The first talklet Kubernetes Patterns by Roland Huß (slides) included a brief introduction on the concepts of Kubernetes and the benefits it offers. The used patterns were categorized as follows:

  • Foundational Patterns
  • Structural Patterns
  • Configurational Patterns
  • Advanced Patterns

Furthermore, Roland described that Kubernetes mostly is a collection of patterns, identified by Google in the past and combined within an Open Source tool (Foundational Patterns). Therefore, native Kubernetes patterns were the first to be introduced:

  • Pod
  • Replication Set
  • Service
  • Deployment
  • Rollout strategies
Roland explaining the sidecar

Besides the basic patterns, Roland continued to present more sophisticated patterns:

  • Sidecar
  • Configuration Template
  • Operator

To wrap this up: Kubernetes offers a vast amount of features helping to maintain the cluster and its applications. There are many patterns, which are already widely used and there seem to be more arising in the future.

After a short break with pizza and drinks, Tobias Schneck continued with his talklet OpenShift-Build-Pipelines: Build -> Test -> Run! (slides). OpenShift, based on Kubernetes, offers a lot of additional features. In his talk he focused mostly on the CI/CD Build Pipelines embedded in OpenShift. At first, he gave an overview of the general staging process.

For the build stage OpenShift offers two possible ways:

  • Regular Builds (S2I and Docker native build)
  • CI Pipelins build (with Jenkins)

Once all unit tests were executed successfully, the built image is pushed to the OpenShift registry (if necessary, it can also be pushed to other registries).

The next stage consists of automated integration testing, in his example done using the Citrus Framework (Open Source by ConSol). The following stage used End-2-End tests with the Sakuli Framework (OpenSource by ConSol). These UI tests can be run within a Docker Container and project the resulting picture as a live stream outside the container on a website. Therefore, if required, a QA-Engineer is able to monitor the test.

Once all test stages are passed, the Production deployment will be started and the software change is rolled out.

Tobias presenting his demo

During his presentation Tobias continuously presented a sample pipeline within an OpenShift environment. The code for this demo can be found at https://github.com/toschneck/openshift-example-bakery-ci-pipeline.

Eventually Tobias mentioned that Jenkins has not been designed to run with/for containers, but also presented alternatives like Gitkube or DroneCI.

The last Meetup prior to our Summer Break on June 26th will be again a joint Meetup in cooperation with Softwerkskammer Jena, Devoxx4Kids Thüringen, THAK, ThEx, KrämerLoft, Freistaat Thüringen and Webmontag Erfurt. Valentina Kerst (Staatssekretärin im Wirtschaftsministerium) will be opening the evening with a panel discussion and many interesting presentations about psychology within our digital economy and communication for Software-Engineers and others.

--

--