Web Architecture, Java Ecosystem, Software Craftsmanship

Microservices

Don’t Share Libraries among Microservices

Posted on Apr 17, 2016

Don’t Share Libraries among Microservices

Extracting common code to a library seems to be developer’s best practice. Reuse boosts the development, doesn’t it? However, in a microservice architecture shared libraries tightly couples microservices together. You lose a huge benefit of microservices: independence. In this post I like to point out why shared libraries are not a good idea and present alternatives.

Tutorial: Continuous Delivery with Docker and Jenkins

Posted on Nov 7, 2015

Tutorial: Continuous Delivery with Docker and Jenkins

Introducing Continuous Delivery means to automate the delivery process and to release our application frequently. This way, we improve the reliability of the release process, reduce the risk and get feedback faster. However, setting up a Continuous Delivery pipeline can be difficult in the beginning. In this step by step tutorial I will show you how to configure a simple Continuous Delivery pipeline using Git, Docker, Maven and Jenkins.

Building a Dropwizard Microservice with Docker and Maven

Posted on Sep 20, 2015

Building a Dropwizard Microservice with Docker and Maven

Dropwizard produces a fat jar containing every dependency your microservice needs to run. This includes a web server. This way, no web server needs to be installed and configured on the target machine. However, there is some infrastructure left (like the JRE) which still has to be installed before the deployment. That’s where Docker enters the stage. With Docker we can produce an artifact containing really everything we need to run our microservice. In this post, we take a look at how we can integrate Docker into our Maven build, run our tests against the container and push the image to a repository.

Microservices in a Nutshell. Pros and Cons.

Posted on Apr 11, 2015

Microservices in a Nutshell. Pros and Cons.

Microservices are an interesting approach for achieving modularization of an application. An application is built as a set of services. These services can be independently developed, tested, built, deployed and scaled. However, microservices are not suitable for every use case. This post discusses the benefits and drawbacks of microservices.