DevOps Speeds Application Development
An emerging concept known as DevOps will be the major theme at this year's Usenix LISA (Large Installation System Administration) conference, to be held in Boston the week of Dec. 4.
"LISA is always on the cutting edge of system administration, and DevOps is really capturing the spirit of all the new best technologies in system administration," said Tom Limoncelli, a co-chairman for the conference.
The Usenix conference will feature a number of talks that explore the concept of DevOps, including a keynote on the topic by Ben Rockwood, the director of systems engineering at cloud services provider Joyent.
In a nutshell, DevOps is the practice of aligning an organization's developmental environment more closely with its operational environment, so developers will better know what changes to make to an application, based on performance metrics and feedback from administrators.
While such an idea may appear obvious, large organizations have tended to keep their developers apart from the operational folks who use the software. "Years ago, developers would make software, shrink-wrap it, and system administrators were left alone to figure out how to effectively deploy it, upgrade it and scale it," Limoncelli said.
This approach can lead to a number of issues, however. Most notably, if the software works more slowly than expected, the debugging process can be slow, because the issue is always volleyed back and forth between developers and administrators, with each party assuming the other's work is at fault. Also, the features that a developer thinks a program should have are not always the ones that administrators, or users, might actually find useful.
DevOps tightens the feedback loop between developers and operations, allowing developers to make changes more quickly and organizations to speed the refinement of their code. With the DevOps approach, "The system administrators are involved from the very beginning of software redesign, so reliability and scalability are built in," Limoncelli said. "By being collaborative, you get a higher velocity of change, better uptime and better scalability."
The rise of DevOps at this time perhaps could be attributed to the emergence of large-scale Internet services, such as Google, Amazon and Twitter, all of which have embraced the principles behind DevOps, Limoncelli said. Such companies are fiercely competitive and so they need to implement new features as rapidly as possible. Such companies also tend not to use prepackaged software from third-party software vendors, and instead rely on open-source programs that their in-house developers and engineers can expand upon and tweak for their own specific environments.
One adherent to DevOps principles is the online e-commerce shop Etsy. At the O'Reilly Web 2.0 Expo, held in New York in October, Mike Brittain, director of both the engineering and infrastructure teams at Etsy, explained how Etsy used DevOps-like principles.
Etsy is a rapidly growing Internet exchange site for handcrafted and vintage goods. In 2010, the site hosted transactions for more than US$300 million in goods. To keep the site fresh, Etsy employs about 90 engineers who each day make and test about 40 code changes to the site.
A newly hired developer at Etsy will deploy code to the site by the end of his or her first day of work, Brittain said. The organization has set up a work environment that makes it easy for developers to deploy code to the site quickly, and get feedback once their changes are embedded in the production code.
Such rapid deployment, a hallmark of the DevOps methodology, does not intimidate Brittain. "Failure is inevitable, whether we push code or not," Brittain said. "The trick is to test frequently, and make only small, incremental changes."
While such rapid changes to the website may sound risky, Etsy has put a number of measures in place to catch potential problems before the code goes live, Brittain said. New code is reviewed by multiple engineers before it goes live. Code can be rolled out to a small percentage of users at first, around 10 percent to 20 percent, so problems can be caught before they affect the entire site.
One surprising -- and unusual -- source of feedback for the company has been the help forums, Brittain said. When a new feature doesn't work as expected, users will quickly complain, and the number of reports being filed will tip off engineering staff that something is not working correctly.
Another DevOps technique that Etsy uses is to make the performance metrics as widely available as possible. Such metrics are not just accessible to administrative staff, but are graphically displayed on monitors within the company's offices, so all can see them. If there is a degradation in service, due to, say, thread contention, or overloaded databases, anyone can see the problem and potentially offer a fix.
"It's not unusual to see something happened as you are walking down the hall," Brittain said. "The sooner we can detect the problem, the sooner it can be fixed."