As microservices architectures continue to evolve, no one is absolutely certain what kind of functions eventually will wind up running where. For example, application logic most likely will be deployed as a container. But the degree to which management software needs to be deployed in a container remains to be seen.
Nevertheless, Puppet Labs has decided to test those waters by making Docker images available for Puppet Server, PuppetDB and Puppet agent software that will be easier to port between environments and, theoretically at least, easier to maintain. The immediate goal, says Tim Zonca, director of Product Marketing for Puppet Labs, is to make it possible to better isolate the libraries needed by different services to provide a more consistent run-time experience.
Because these Puppet modules can be deployed as a Docker image, Puppet infrastructure—including Puppet agents—now can run on any host capable of running Linux containers regardless of Puppet Labs’ level of support. At the same time, those modules now can be invoked via cluster managers such as Kubernetes, Rancher, DC/OS or Docker Swarm.
IT organizations also can create a local instance of Puppet using Docker Machine, or the recent Docker for Mac and Windows beta. These tools can make it easier to test a new version of Puppet, experiment with the recent release of the Puppet Query Language or build something against the PuppetDB API.
Zonca admits that Puppet Labs is not entirely certain how these images will get deployed. This effort is essentially a Puppet Labs experiment to find out how developers might use these modules within the context of a container application.
The one thing that is for certain: As the line between application development and management continues to blur, many developers are being asked to take over responsibility for managing their applications. The assumption is that if developers must support the code they develop, their incentive to write better code dramatically increases. The issue with containers, however, is that over time developers could easily find themselves supporting hundreds of applications. For that reason, IT automation tools that can be more easily embedded within those applications, such as Puppet, might prove crucial.
In the meantime, Puppet clearly views containers as a natural extension of its framework for automating IT operations. To that end the company recently launched a Project Blueshift initiative, under which it will make it possible to apply its IT automation framework to Docker, Kubernetes and Mesos technologies. The expectation is that most IT organizations will have to manage multiple instances of container management frameworks alongside existing virtual machine environments from VMware, Microsoft and various flavors of the OpenStack cloud management framework. Arguably, at the end of the day, the one common component across all those deployment frameworks might end up being the Puppet automation framework.
Of course, who within the IT management team will be managing what elements of those disparate architectures also will be equally fluid. After all, as the day of the IT specialist gives rise to IT generalists armed with IT automation tools, management of various IT components has never been more fluid.