Application servers once ruled the world of Java application development, but no more, says Red Hat's James Strachan. As application development migrates to container-managed services, the application server is a much smaller and less significant component of the overall dev and deploy process. Docker – ofering a new cloud stack based on containers rather than VMs -- is the main culprit:
One of the big wins of Docker containers is you can spin up as many instances of a container you like on any machine and they work in a repeatable way since they are based on the same reusable immutable image. A container instance can have its own persistent state mounted on a volume; but the code (and possibly configuration) comes from an immutable image.
Docker containers work especially well with microservices architecture, where the focus is on making each process do one thing well. Collections of single-purpose, API-accessible services are gradually replacing the monolithic applications of old. When Docker is at the center of the stack, the application server is still present, but much less central, notes Strachan:
With Docker, the "way to work with Java application servers is to make an immutable image for the application server and the deployment units you wish to run in production." In a Docker world, "there’s really no need to ever hot deploy Java code into a running Java process in production any more."
Read more of James Strachan's "The decline of the Java application server" on Medium ...