Docker is a popular technology for creating runtime environments for servers and entire systems. Docker images are easily distributed, deployed and started. But especially distribution benefits from slim images - large images take time to transmit, especially when done frequently this could have a real impact on the development speed. In this article I'll write about some best practices for reducing or optimizing the image size.
When developing micro services with the Vert.x framework I stumbled more than once over the question how to organize Verticles and achieve a modular design. Vert.x is unopinionated allowing various ways of accomplishing this. In this article I'd like to discuss two options for building modular services.
Integration Testing is the second-most important phase in Continuous Integration and Delivery. It's the first time, multiple components interact with each other. The current trend towards microservice software-architectures require a new thinking regarding integration testing of distributed systems. In this article I want to reflect on the challenges for testing those architectures. In monolithic applications, components or parts are tightly bundled. Incompatibilities can often be detected already during compilation. Components interact with each other through messages that are transmitted locally, i.