Application development is continually in the process of moving to new paradigms, either at a high level (mainframe, PC, server, web, mobile, cloud) or a low level, such as the endless succession of web frameworks. While the higher-level trends endure, it’s not always easy to gauge what will survive among the lower-level technologies. In this issue, we examine the high-level trend, containers, and their low-level use, running microservices.
Containers are the natural evolution of virtual machines and will surely endure long-term. The natural fit between containers and the cloud drives the popularity of both technologies. Microservices could well evolve quickly into something else. The benefits of loosely coupled services are balanced by the complexity of coding, testing, debugging, and deploying them. As the trade-offs are better understood and computing needs evolve, microservices could well morph into a refined version of current models—that are still likely to be housed in containers on the cloud.
We start by showing how to develop a microservice and deploy it in Docker containers (page 15). We then examine the DevOps pipeline for containerized apps (page 32). We compare and combine Java modules and OSGi as intra-application containers (page 42), and finally, we look at Wookiee (page 53), a framework that eliminates a lot of the grunt work in developing microservices.
In addition, we examine what’s new in Groovy 3.0 (page 61), continue our series on the mechanics of the JVM (page 73), and look at building an API using Spring (page 81).