An initiation into infrastructure automation tools and methods
A comprehensive collection of articles, videos and more, hand-picked by our editors
DevOps traditionally favors developers, but with tool updates and vendor partnerships, operations is creeping up the stack.
There are plenty of ways to get developers to think like IT operations managers --adding them to the on-call list for the 2:00 a.m. app launch ought to do the trick --but sharing tools between both sides of the house will keep everyone on the same page throughout the respective application's lifecycle.
By submitting your personal information, you agree that TechTarget and its partners may contact you regarding relevant content, products and special offers.
Havoc ensues if applications don't function the way that they should, said Colin Brisson, manager of the IT operations center at PJM Interconnection. The company runs a day-ahead power market in the northeastern U.S. If its application doesn't close out buying for every customer at the same time, the market isn't fair.
"You have to know when these applications are having problems," Brisson said, adding that one can't discover all the problems in development. Wait until six major programs are running at once on the same infrastructure -- complex interactions occur, he noted.
The right tools
Sharing a DevOps tool isn't as easy as it sounds -- "release," "deploy" and "automate" have different meanings for both sides.
"Between Dev and Ops there's a whole language barrier, not a dialect," said Ronni Colville, a Gartner Inc. analyst, during the 2014 IT Infrastructure and Operations Management Summit.
Workload automation and streamlined management are essential to fast-changing business applications, so choosing the right DevOps tool has as much effect on application performance as the underlying hardware.
However, this decision is difficult, in part because DevOps tool feature sets are not one size fits all; you can't just install DevOps. "Understand the unique context that each tool provides at each stage of the application lifecycle," Colville said. Find a tool that can adapt from development and test through production.
The app lifecycle
At the beginning of the application lifecycle, developers reign supreme. Then the focus turns to pre-production deployment tasks, then shifts to monitoring the production systems that host the software. If the app's value grows, production usage -- how the app works, how it helps the company grow and what changes best serve the architecture -- becomes the focal point.
For applications to scale and update easily, development needs baked-in automation. Chef, a long-standing DevOps workflow management tool, is integrated with the containerization platform Docker to turn app updates into automated image provisioning. Container hosts are lightweight virtual machines with isolated runtime and shared kernels.
Docker containerization replaces the traditional package installation step of application deployment and updates with a methodology that rapidly exchanges switches from development to production.
Chef automates the creation of a Docker image based on existing server templates. The image lives in a repository, similar to Git, another open-source tool. The DevOps team chooses where and when it is deployed and makes bidirectional configuration changes, if, for example, the database server's address isn't included in the initial image.
Teams rely on DevOps tools, such as Chef or its competitor, Puppet, to automate the conversation as code shuttles back and forth between developers and production administrators.
Another vendor, JumpCloud, brings its code automation platform to this exchange, allowing the IT team to use its preferred scripting language. This opens applications up to the expertise of operations staffers who speak a different language than developers, according to JumpCloud executives.
Log-based DevOps tools also bring operations further up the chain into development. Tools like Splunk and Logentries, along with various open-source options, track log events and parse the data to help with analysis and troubleshooting. This provides different teams with a shared language to facilitate conversation about code. Teams can funnel in additional data from other sources, including server or app performance monitoring tools.
The goal is for application and operations teams to see the performance impact of a code update or troubleshoot a utilization problem with configuration changes at the app or lower levels, as dictated by the situation.
Logentries added annotations to its DevOps tool dashboards, enabling different members of the IT team to include contextual information and knowledge within a log event.
"Log an event description and resolution, and that intelligence will save another group four hours of work," said Trevor Parsons, chief scientist at the company.
Because different products offer better features at the development, quality assurance, test, pre-production or production stages, don't be averse to investing in a mix of DevOps tools. You may also need a suite of tools because different applications follow different lifecycles, and cloud-based applications may necessitate a different DevOps tool set than those hosted on physical or virtual machines in house.
How to build a DevOps team
DevOps tools run counter to IT regulatory compliance