Diving into DevOps
Microservices and Docker: The PB&J of Modern App Delivery
Electric Cloud CTO previews upcoming talk at the DevOps Enterprise Summit.
- By John K. Waters
How can IT enable Dev and Ops to use Docker for both microservices and traditional application releases? That's one of the questions Anders Wallgren, CTO of Electric Cloud, will be answering during his session at the DevOps Enterprise Summit, which runs Nov. 7-9 in San Francisco. Wallgren calls microservices on Docker the "PB&J" of modern app delivery.
"They're just natural companions," he said. "They are both aimed at doing one thing well, and those things are complimentary. And what you need to learn to be good at one translates well to the other. Together they form the foundation for modern application delivery."
Electric Cloud specializes in DevOps Release Automation with solutions designed to help organizations developing enterprise Web/IT, mobile and embedded systems to deliver better software faster. The company's flagship product, ElectricFlow, uses a model-driven approach to automate and accelerate the build, deployment and release processes at scale.
The Docker containerization platform, which was originally used mostly for build and test, has evolved into a platform used for production deployments, Wallgren noted. At the same time, microservices, which had been used primarily for greenfield Web services, have gained ground in the enterprise as organizations begin to explore ways to "decompose their monolith to support faster release cycles." The result is increased complexity that can be mitigated by a containerization platform like Docker.
"With microservices you now need to deploy, coordinate, and run, many, many services -- dozens to hundreds -- whereas before you might have had a more traditional three-tier/monolithic architecture," he said. "This is true both in development and in Ops. Containers help with this complexity, because they make it easy and fast to deploy services in containers."
Also, microservices make it easier to scale, because each service can scale independently of other services (you don't have to scale everything to scale something), he said. And platforms like Docker provide the essential mechanisms for scaling containers up and down easily.
"What brings people to microservices is a promise that you can make an end run around the mythical man-month restrictions," he said. "Microservices is essentially a divide-and-conquer approach, where you split your application into incredibly independent and self-sufficient services. And by doing that you are able to develop, deploy, and test those services almost completely independently."
"The fact that a microservice almost by definition focuses on the idea of doing one thing and doing it well dovetails very neatly with containers," Wallgren added. "That's really what a container is: run one process, isolated and with as little overhead as possible. Docker especially provides this kind of layered file-system approach, so Docker images are quite a bit more efficient and shareable than virtual machine images. Those two things kind of go together. So I think the predominant approach to how you deploy microservices is containers and will continue to be containers. It's almost like they were made for each other."
This divide-and-conquer approach is how microservices enable continuous improvement, which is a DevOps cornerstone. "You don't have to chip away at the monolith," Wallgren said. "You can pick something that has a problem, make a change, and quickly re-deploy that service without having to take everything down. It allows you to iterate much more quickly; cycle time and lead time are vitally important concepts in DevOps."
"One of the main things we've learned about DevOps is that smaller teams are more effective," Wallgren added. "Microservices allow you to interpose a large problem on a smaller problem, which allows you to use smaller teams to solve those individual problems and get more done more quickly. You deliver better quality software to your customers, which is fundamentally what DevOps is about."
John has been covering the high-tech beat from Silicon Valley and the San Francisco Bay Area for nearly two decades. He serves as Editor-at-Large for Application Development Trends (www.ADTMag.com) and contributes regularly to Redmond Magazine, The Technology Horizons in Education Journal, and Campus Technology. He is the author of more than a dozen books, including The Everything Guide to Social Media; The Everything Computer Book; Blobitecture: Waveform Architecture and Digital Design; John Chambers and the Cisco Way; and Diablo: The Official Strategy Guide.