Email marketing firm Constant Contact said it selected Puppet Labs’ Puppet configuration management and automation framework to help scale its environment from a couple hundred servers to several thousand in under two years time.
If all goes as planned, that trend will continue unabated, as the company grows and adds new applications like a Cassandra distributed database cluster.
“We are projecting to grow our server capacity by a third every six months,” said Mark Schena, Constant Contact manager of system automation. “It’s not just an aspirational thing.”
The firm started researching open source configuration management tools about two years ago, when it realized its manual processes could not keep up with its growth. Besides Puppet, it considered the venerable Cfengine and Capistrano, and newcomer Opscode Chef, which Schena said probably wasn’t ready at the time.
Beyond Chef’s immaturity, Schena said that Constant Contact preferred the Puppet language for its simplicity. It helped that it supported more platforms, including traditional Unix flavors like Solaris; Chef at the time was limited to a few Linux distributions. Further, Schena said he felt it was easier to create dependency mappings in Puppet, to ensure that things will happen in the correct order.
Today, all of Constant Contact’s production servers have been ‘Puppetized,’ Schena said, meaning that all changes are applied through an agent running on the client, which works against the Puppet ‘Manifest’ maintained on the central Puppet ‘Master.’
At the same time, implementing Puppet has helped Constant Contact move towards a more DevOps mentality – an evolution of the Agile Development methodology that helps improve communication between developers and operations groups by emphasizing frequent code releases, configuration management, automation and version control.
Traditional notions of development, stage, QA and production “never made sense to me,” said Schena. Under that model, developers toil for months independently of the operations team, and then push their work out to QA and to production. Then, “knock on wood, you hope it works.”
In a DevOps-minded shop, “we all get involved in the beginning, and all the work gets done through Puppet,” complete with version control, such that if a problem is detected, it’s possible to roll back.
Ultimately, adopting Puppet and following DevOps principles helped reduce headcount, time to delivery of new applications, and made deployments go much more smoothly, Schena reported.
Configuration management and the cloud
Generally speaking, configuration management tools are surging in popularity.
Bob Plankers, a system administrator with large midwestern university, said that his shop is rolling out Cfengine-3 as it moves to Red Hat Enterprise Linux (RHEL) 6, and said that many of his peers are as well.
“We’ve been wanting to do it for a while, and [the RHEL 6 migration] was a good time to consider something like this because you can start fresh rather than having to convert existing systems,” Plankers said.
At his shop, the problem Cfengine and config management will solve is largely one of documentation, Plankers said. Because all changes are made through the config management tool, it becomes easy to catch if a change has been made.
“Management has tried to fix the documentation problem for years by requiring us to document everything we do,” he said. “So we have wikis for all our servers, and we love our wikis, but are they authoritative? No.”
Further, config management tools will only get more popular as IT shops move to the cloud, Plankers predicted.
“With virtualization, it was all about hardware and consolidation, but with cloud, it’s all about process,” he said. Combined with cloud, configuration management systems become “a big timesaver, and a way to use the cloud more efficiently.”