fotogestoeber - Fotolia
Just a quick perusal of the enterprise architecture agenda at DockerCon 2016 reveals telling microservices-centric session titles: "The Golden Ticket: Docker Microservices," "Microservices + Events + Docker = A Perfect Trio," and "Making Friendly Microservices with Docker."
So, what is it about the pairing between modular development and software containers that makes the creation of Docker microservices such a hot topic in the industry?
Iron.io has been promoting stateless, microservices-based architectures long before it was even fashionable, so we decided to get in touch with CEO Chad Arimura and ask him about this symbiotic coupling between containers and microservices.
"They both have benefits in their own right. So, each technology will advance in parallel. But the pairing of the two is very nice, because they fit really well together," Arimura said.
Microservices: Independent and focused
The key to microservices is they are, by definition, small and self-contained. A well-architected microservice will be singular in purpose and, as such, will likely have fewer dependencies on external services than similar, SOA-based systems that would be deployed to an ESB or take advantage of a traditional, monolithic, service-oriented architecture-based stack.
By being so modular and relatively free of external dependencies, packaging microservices in a container is greatly simplified, as the services and low-level plumbing that must be delivered is minimal.
As a result, individual microservices can easily be packaged within a container. Whereas previous enterprise systems were made out of various services deployed to an ESB, the sea change is now toward the development and deployment of hundreds of Docker microservices.
Software development and Docker adoption
Of course, the benefits of using containers and creating Docker microservices go beyond simply the ability to create and deploy portable applications.
The entire manner in which applications are developed, tested, monitored and stress tested has undergone a revolution.
The benefits of using containers and creating Docker microservices go beyond simply the ability to create and deploy portable applications.
"It is very important for development, because it really reduces your impedance mismatch between dev, test and staging environment," said Java Champion Arun Gupta. It's not unusual for software to work in a development environment, but fail in preproduction or even full-scale production. In such cases, developers end up just throwing their hands in the air and telling the operations team they have no idea why code would work locally on a Windows laptop, but not run on an Ubuntu server.
"Your Docker image is the source of truth. It is the exact same Docker image that is going from dev to staging and to production, and that is a big deal," Gupta said.
So, not only do containers lend themselves well to the packaging and deployment of microservices as portable applications, but they help simplify the entire software development lifecycle, in which applications are tested for usability, performance and overall software quality.
It's no wonder, at a time when so many SOA-based architectures are switching to the development of microservices, that more and more organizations are recognizing the benefits of matching their development efforts with the ongoing adoption of Docker containers.
How have Docker containers assisted in your development of microservices? Let us know.
What are the implications of microservices and containers on enterprise IT?
Virtualization containers bring a consolidation comeback
How to move beyond the virtualization tool with DevOps containers