Meeting the demands of mobility with DevOps best practices
by Colin Steele
More companies are turning to DevOps to help develop, provision and manage mobile applications, but a solid DevOps strategy can be challenging.
DevOps is a disruptive trend in enterprise IT, particularly in the data center. As enterprise mobility grows, more businesses are turning to DevOps for help improving app dev and management.
By bringing together developers and operations staff, automating manual processes and promoting continuous delivery, DevOps best practices can help organizations more efficiently build, manage and scale their server-based applications. The reasons for its emergence in enterprise mobility aren't surprising. Many of DevOps' principles -- multi-platform testing and development, rapid release cycles, tight integration between development and management -- are key tenets of successful mobile initiatives.
Still, this emerging concept of mobile DevOps faces its fair share of challenges. Skeptical business leaders, old-school security mindsets and a shortage of development skills can all stop adoption in its tracks.
"DevOps is fundamentally a change in process," said Andi Mann, vice president in the CTO's office at CA Technologies. "It's very much a cultural difference. It's challenging for large enterprises to do that sort of transformation."
Manually monitoring and managing physical, virtual and cloud infrastructures becomes difficult, if not impossible, at a certain scale. The same holds true for testing and developing the applications that run on these infrastructures -- especially when that development process can take months and involve hundreds of feature updates.
Pioneered late last decade, DevOps aims to solve the problems that have arisen as enterprise computing has grown more complex. It tackles development and IT operations as a whole, not separate departments with separate staff using separate processes. It promotes the use of coding to automate tasks. And it relies on continuous delivery, an ongoing cycle of developing, testing and deploying applications with incremental feature updates.
With user ratings, developers see stars
If continuous delivery sounds familiar, that's because it's a common approach to mobile app development. It's very different than traditional enterprise application development, which favors large, infrequent updates packed with fixes and new features. In the mobile era, developers don't have the luxury of taking that much time. With the advent of app stores and user ratings, developers must respond quickly to feedback from users.
If it takes a few months to respond to users' complaints and suggestions, app ratings will go down and abandonment rates will go up, said Jeffrey Hammond, vice president and principal analyst at Forrester Research. That's where mobile DevOps comes in.
"You want to get feedback as quickly as possible, and then you want to act on that feedback as quickly as possible," Hammond said. "It's really hard to increase that speed without DevOps principles."
With DevOps best practices, IT can open the door to more information about user satisfaction and activity within an app -- not only through reviews and other forms of direct feedback, but through in-app analytics as well. Developers can build monitoring into apps and get real-time information about crashes, user behavior and more. The wealth of information such analytics can provide would be impossible to collect manually, especially when there are different versions of a mobile app built for multiple operating systems, OS versions and devices. Android alone has thousands of permutations of OS versions and devices currently in use, Hammond said.
"I see a lot of pressure for DevOps in the mobile space," he said. "It starts with the premise that you can't possibly test all the mobile applications on all the platforms they will be released on."
Getting ops in line
DevOps doesn't stop with the user-facing features of an application. It's also an important part of tying apps into back-end infrastructure, data repositories and management systems. By building these hooks into an app during the development process, organizations can realize faster deployment times and adapt more easily to infrastructure modifications, such as the addition of a new storage location or a change in how network traffic is handled between the app and the back end.
"Ops has to be in line with the product development cycle," said Carl Caum, a technical marketing manager at Puppet Labs, a vendor of IT automation software.
Puppet lets engineers write code that represents certain attributes of their infrastructure. When building an app, developers can simply include that code instead of writing the back-end infrastructure integration from scratch. If the infrastructure tie-in needs to change, they just swap out the old code for new code.
Mobile DevOps roadblocks
It's easy to view mobile DevOps through rose-colored glasses, but it does face some significant challenges.
Business buy-in: Some of the problems mobile DevOps solves -- such as increased demand on back-end services -- have yet to materialize, which can make it hard to demonstrate its value.
"It's easy to view mobile DevOps through rose-colored glasses, but it does present some significant challenges."
"DevOps is not a tool," Caum said. "You can't buy it. You can't hire for it. The company itself has to buy into it."
But it's not always an easy sell, said Marty Resnick, a mobile strategist at a large global enterprise. In response, he and his team have focused on specific aspects of mobile DevOps that can show immediate return on investment. One example is automated quality assurance testing, which saves time over manual testing.
Lack of skills: Mobile apps are written in different languages and with different design principles than traditional enterprise applications. About two-thirds of Hammond's clients use outside firms to build their apps because they can't do it themselves, he said.
"Basic development skills are in extremely short supply," he said.
Corporate culture: This is perhaps the most daunting obstacle to the adoption of mobile DevOps -- and DevOps in general. Organizations can be hesitant to change their tried-and-true development processes or integrate their traditionally separate development and operations staffs.
"One of the biggest challenges we see as an industry is just getting companies to acknowledge the need to tear down these siloes," Caum said.
Security: Breaking down the wall between security and DevOps can be even more difficult than getting development and operations on the same page.
"A lot of security pros see themselves as a logical roadblock," Mann said. "A lot of them, though, are starting to be a little bit more progressive and seeing themselves as enablers of business."
Involving security in DevOps pays dividends by enabling policy-driven development, Caum said. For example, the security team can write a policy that governs what an app can and can't do with the data it accesses. The DevOps team can then write code that automatically tests if an app complies with this policy -- as it's being built, not afterward.
Mobile as a DevOps test bed
DevOps is a disruptive trend, as is enterprise mobility. Embracing both at the same time may seem like more than a business can handle, but proponents say it's more efficient.
"It's definitely easier, because you're ripping the Band-Aid off," Mann said. "You're doing it all in one hit."
In fact, mobility is a logical starting point for a DevOps initiative, because it's new and unencumbered by legacy systems and processes, Mann said.
Plus, in organizations that are just starting to go mobile, the mobility team is usually fairly small. That means they have more leeway to experiment and learn what works and what doesn't, Resnick said.
"Mobile in general can be used as a test bed for other things," he said.