Using Exceptions to Write Robust Software for Stable Production
A study shows that the cause for almost all critical faults is bad error handling. I can back this up with my own experience in various projects: the feature is implemented and there are tests in place...
View ArticleHow to deploy Spring Boot applications to OpenShift
Spring Boot is a framework which helps to get applications up and running as quickly as possible. OpenShift is a Platform as a Service (PaaS) product which makes it easy for developers to deploy...
View ArticleTesting S2I Images
Source-to-Image (S2I) is part of the OpenShift tool chain. It is built on Docker and abstracts how applications are built and run in OpenShift. For this, S2I images contain some logic in the form of...
View ArticleAutomatic Testing of Logstash Configuration
In the second half I show how you can test your Logstash configuration. However first I want to show why automatic tests for configuration files are important. Feel free to skip this part if you...
View ArticleContinuous Delivery Patterns: Building your application inside a Docker...
Let me be clear: This post is not about building a Docker container for your application – it is about building your application inside a container specially designed for exactly doing that – building...
View ArticleRunning Spring Boot Apps on Windows with Ansible
There are times you have to use a Windows box instead of your accustomed Linux machine to run your Spring Boot app on. Maybe you have to call some native libraries, that rely on an underlying Windows...
View ArticleRunning Spring Boot Apps on Docker Windows Containers with Ansible: A...
This is a crazy world. It´s not only possible to make Ansible provision Windows machines. No! There are Docker Windows Containers out there and if we need to run our Spring Boot Apps on Windows, we...
View ArticleScaling Spring Boot Apps on Docker Windows Containers with Ansible: A...
Provision a Docker Windows Container with Ansible? No Problem! But wasn´t Docker meant for more than one Container?! Don´t we wanna have many of these tiny buckets, scaling them as we need?! And what...
View ArticleDatabase design using Anchor Modeling
Anchor modeling offers agile database design, immutable data storage, and enables temporal queries using regular relational database. This catchy excerpt certainly spiked my interest two years ago at...
View ArticleTaming the Hybrid Swarm: Initializing a Mixed OS Docker Swarm Cluster Running...
We successfully scaled our Windows Docker containers running on one Docker host. But what if we change our focus and see our distributed application as a whole, running on multiple hosts using both...
View ArticleAgile, oven-fresh documentation. Part 1: JBake
In software development, one question that constantly arises is how the current project can be comprehensively documented. The most common way to do this is to use Confluence or some other wiki. But...
View ArticleAgile, oven-fresh documentation. Part 3: Tested requirements with JBake
In the first two parts of this blog series, I introduced JBake and discussed the integration of PlantUML. In this post, I will move on to test automation and documentation, integrating Spock into the...
View ArticleA Lovely Spring View: Spring Boot & Vue.js
It´s time to shed some light on the integration of Vue.js with the popular Java Enterprise framework Spring Boot! Both frameworks are shining stars in their respective domain – but how could they be...
View ArticleA Complete Setup of GitLab CI & Docker Using Vagrant & Ansible: HTTPS/Let’s...
Tired of Jenkins? Always keeping an eye on all those new kids on the block with their super cool and simple Continuous Integration Pipeline files? Here´s a guide on how to fire up a fully functional...
View ArticleNon-Breaking Lambda Deployments for Alexa Skills using Versions and Aliases
Let’s say we have a certified Amazon Alexa Skill that has an endpoint pointing to an AWS Lambda function. We want to update the Lambda function but the update contains breaking changes for the current...
View ArticleContinuous Delivery on AWS with Terraform and Travis CI
Introduction At codecentric we use Terraform extensively to automate infrastructure deployments. If you are aiming at true continuous delivery, a high degree of automation is crucial. Continuous...
View ArticleTest-driven infrastructure development with Ansible & Molecule
So you´re doing Infrastructure-as-Code? Sure. But have you ever heard of test-driven development (TDD)? It´s that dev team thing, right? Hell no! It should be equally important to infrastructure...
View ArticleMaking a React application container environment-aware at Kubernetes deployment
Motivation This blog is based on the use case of a React web application that is supposed to be deployed to a Kubernetes cluster. To give more context and a better introduction to the problem to be...
View ArticleContinuous Infrastructure with Ansible, Molecule & TravisCI
The benefits of Test-driven development (TDD) for infrastructure code are undeniable. But we shouldn´t settle there! What about executing these tests automatically and based on a regular schedule?...
View ArticleContinuous cloud infrastructure with Ansible, Molecule & TravisCI on AWS
By implementing Test-driven development and Continuous Integration for infrastructure code with Ansible and Molecule, we’ve done a huge step towards the right direction. But we should not exclude our...
View Article