Microsoft Is Mobilizing DevOps
How a focus on DevOps is helping Microsoft win the loyalty of incumbent dev shops as they move increasingly to mobile app development.
Delivering apps in the enterprise can be an exercise in grenade throwing. Developers throw their code over the wall to testers, who toss it back for updates to developers, who pitch it over another wall to operations for deployment and maintenance. The process can be inexact, unrefined and fraught with conflict. But with the rapid shift toward mobility, cloud and consumerized IT, enterprises find they must be more responsive to constituencies and customer bases. From governments and schools to businesses of every kind, the focus on agility has prompted an effort to bring IT operations and developer organizations together, through a model described as DevOps.
Over the past two years, Microsoft has urged organizations to join it in shifting to a DevOps model. The company has been -- to repeat a phrase used by Redmond over the years -- eating its own dogfood as it applies DevOps practices to the development of products such as Windows, Office 365, Azure, SharePoint and its Visual Studio developer tools. Now the effort is extending to mobile, as Microsoft aims to persuade organizations to center their cross-platform, mobile app development and management activities around Microsoft tooling and practices.
The push comes as mobile apps emerge as an area of strategic concern for enterprise IT organizations. In the Enterprise Mobility Suite (EMS), Microsoft has delivered a well-regarded tool for cross-platform, mobile device and app management, with the company claiming the product as its fastest-growing offering ever. Another shoe dropped earlier this year on Feb. 24, when Redmond announced an agreement to buy cross-platform tools and platform maker Xamarin for $400 million -- a deal that drew a collective cry of "What took you so long?"
That's what Eric Shapiro, founder and CEO of ArcTouch, now a unit of global media agency Grey Advertising, said back in March (bit.ly/1sN8ihb). "I've been predicting for over a year this would happen," said Shapiro, whose mobile creative design and app development shop builds apps for large consumer brands such as Audi of America, CBS, Salesforce.com Inc. and Yahoo! Inc.
After all, Microsoft had long encouraged Xamarin in its effort to provide software for developers using the Microsoft C# programming language, enabling native code that can run conveniently across Windows, Mac OS X and iOS, Android, and Linux. The acquisition was an urgently needed win for Microsoft in the mobile app arena. The company's Windows Phone platform has languished behind Apple iOS and Google Android, with Microsoft just last month writing off its $7.2 billion acquisition of the Nokia handset business in 2014. The struggles risk eroding Microsoft's dominance in the businesses sector, as growing ranks of mobile programmers targeting iOS and Android learned to live life completely free of Microsoft.
That changed when Xamarin came on board.
"Microsoft smartly recognized the role of mobile in the software development process and saw that it is becoming strategic," says Al Hilwa, program director for Software Development Research at research firm IDC. "It is interesting that the very weakness of [its] own mobile platform could result in early traction in [the company's] cross-platform approach."
"The reality is that DevOps is still in the early stages of adoption in large enterprises."
Al Hilwa, Program Director,
Software Development Research, IDC
Microsoft was quick to strike while the iron was hot. At the Build conference in San Francisco in March, Scott Guthrie, executive vice president of the Microsoft Cloud and Enterprise Group, announced that Xamarin would be made available for free in every version of the Visual Studio integrated development environment (IDE). He also announced that access to the Xamarin Studio IDE, used by many incumbent Xamarin developers, would be included with Visual Studio license subscriptions. The move eliminated one of the top barriers to entry for the Xamarin tool suite -- its cost.
The DevOps Directive
Analysts expect the acquisition to lift Microsoft's profile among mobile programmers, particularly in IT shops where traditional client and server development is aligned with the Microsoft .NET Framework and C# programming language. Just as important, the Xamarin buy completes the Microsoft DevOps tool chain that allows organizations to manage the flow of work, code and assets during software development, from initial planning to distribution of applications and beyond.
DevOps, of course, is short for developer/operations and describes the effort to improve software development and delivery by redefining the relationship between development, IT and end customers. Steeped in Agile practices that value decentralized organization and iterative processes informed by constant feedback, DevOps leverages tooling, practices and cultural alignment to speed and improve software delivery. It may sound like a mouthful, but DevOps is taking off.
Research firm Gartner Inc. targets 2016 as the year when DevOps goes from niche movement to mainstream, with one-quarter of Global 2000 organizations expected to adopt DevOps practices. An earlier 2014 Gartner report projected strong growth in the DevOps tool sector, with spending set to rise more than 20 percent from $1.9 billion in 2014 to $2.3 billion last year.
A key driver of the uptake: rising infrastructure complexity and the heightened pace of work enabled by cloud services and business models. Software assets that in the past were updated once or twice a year, and packaged for distribution to users, now are being updated on monthly or weekly schedules and automatically pushed to client systems. Traditional waterfall processes, with their emphasis on extensive pre-planning and scripted action, are poorly matched to the new cadence.
Now, says IDC's Hilwa, enterprises are starting to incorporate DevOps into mobile app scenarios.
"We are seeing increased initiatives in larger enterprises, which show that they have begun to take mobile development more strategically and approach it more systematically," he says. "The reality is that DevOps is still in the early stages of adoption in large enterprises, with most of them practicing it only in new projects and with Center of Excellence or Transformation Center teams often set up to handle the disruption they're expecting."
The tooling that enables DevOps reflects the nascent character of the sector. IT organizations often assemble tool chains from a mix of commercial and open source point solutions. Promising startups and incumbent pure-play vendors vie for market share as large providers fill out their portfolios with timely acquisitions.
"It is early days, in fact, very early days, in the DevOps end-to-end tooling world. I think companies like Microsoft and IBM have made great investments, but there are other strong players that have strong holds on other parts of the space and are actively investing," says Hilwa.
Plumbing the Microsoft DevOps Stack
The Microsoft DevOps story is supported via the twin suites of Visual Studio Team Services (VSTS), which is cloud-based, and Team Foundation Server (TFS), which is on-premises. These solutions provide a collaboration hub that comprises the end-to-end tool chain, from management of the code base to the release and monitoring of finished applications. IT organizations have the option of swapping in specific point solutions, for instance replacing Team Foundation Version Control (TFVC) with Git, or the integrated Xamarin Test Cloud device testing service with Perfecto Mobile.
What goes into an end-to-end DevOps tool chain on the Microsoft stack?
- Source/Version Control: Provides a managed repository for program code, where assets can be stored, tracked, accessed, managed and restored as needed. On the Microsoft stack, this functionality is core to cloud-based VSTS and on-premises TFS environments.
- Test: Supports a variety of automated tests, including unit testing, integration testing, UI testing and device/platform testing. Integrated cloud-based services such as Xamarin Test Cloud and Perfecto Mobile (via VSTS extension) allow dev shops to automate UI and platform testing against ranks of provider-hosted mobile hardware.
- Build: Enables frequent, automated builds to ensure that updated code validates and successfully compiles at each check-in. Cross-platform support extends to native Windows, OS X, iOS, Android, and Linux environments and languages, while third-party CI/CD tools like Jenkins are also supported.
- Deploy/Distribute: Streamlines staged delivery of native mobile apps to public and private app stores. The integrated HockeyApp tool in VSTS manages delivery of pre-release builds directly to testers' mobile hardware, while CodePush sends updates of HTML-bound Cordova and React Native mobile apps straight to user devices.
- Monitor: Enables instrumented, mobile app telemetry to provide detailed reports on app installs, events, crashes, usage patterns, performance metrics and more. Microsoft AppInsights is the primary tool for monitoring the app back-end, while HockeyApp reports on app behavior.
Microsoft has been busy burnishing its DevOps infrastructure, rebranding the former Visual Studio Online (VSO) cloud solution as VSTS and establishing feature parity between VSTS and the on-premises TFS suite. The company has also worked to extend support beyond the .NET Framework to enable full cross-platform coverage.
Donovan Brown is a DevOps senior program manager at Microsoft. He says the focus of the VSTS and TFS teams can be boiled down to four words: "Any language, any platform."
"Any language, any platform. I literally say that every day of my life, because I want to make sure that everything that we produce works for any language and for any platform."
Donovan Brown, DevOps Senior Program Manager, Microsoft
"I literally say that every day of my life, because I want to make sure that everything that we produce works for any language and for any platform," Brown says. "And any platform includes iOS, Android, Windows Phone, Xbox, you name it. If you can write for it, I want to make sure Visual Studio Team Services is the best tool and the best product to get you there."
That commitment can require some gymnastics. Developers targeting Mac OS and iOS, for instance, have no choice but to build and compile their applications on Macintosh hardware. To address the limitation, IT shops must register Mac OS systems as build agents inside the VSTS environment.
"When we identify we're building an iOS or Xamarin application targeting iOS, we are able to then use that Mac to go perform the compilation for it, and then distribute that using HockeyApp," Brown explains. "As soon as we go to build it, that's the first time you realize that, OK, this is a special scenario, different from any other type of development, because I might need to use a specific piece of hardware to perform that compilation."
Mobile DevOps must contend with a pair of specific challenges: device proliferation and distribution headaches. On the device side, IT organizations might need their software to run on hundreds or even thousands of individual device models and versions. Validating software in this scenario can go beyond the resources of almost any enterprise. No less challenging are the distribution challenges that crop up with mobile devices tethered to vendor app stores.
Recent Microsoft acquisitions in the DevOps space specifically address these two sticking points. The December 2014 purchase of tool maker HockeyApp targets the distribution challenge, enabling VSTS to automatically manage distribution of builds directly to targeted groups of devices. The tool makes it possible to stage releases, so that early alpha builds are released to a small, select team, while later beta builds might be sent to increasingly broad audiences. More important, HockeyApp eliminates reliance on vendor app store infrastructure to streamline releases and gives IT organizations full control over distribution.
HockeyApp also includes robust app monitoring and telemetry, and provides channels for users to provide input and reports about app behavior and quality. The result: an optimized distribution channel that serves the DevOps cycle by feeding vital performance data back into the loop.
The purchase of Xamarin, finalized in March, brings into the VSTS fold the Xamarin Test Cloud service, which IDC's Hilwa calls a "killer feature." Test Cloud enables automated device and platform testing against ranks of cloud-hosted Android and iOS devices. Testers can filter and select devices by form factor, OS, manufacturer and model, and can even focus testing on the most popular device SKUs. Integration with VSTS allows updated builds to be automatically sent to Xamarin Test Cloud. Testers can drill down into reported failures, going so far as to view and replay screen activity of an affected device.
"We literally bought mobile DevOps," says Brown. "We bought everything we needed to make sure that we had the right solution. And now we have the entire pipeline. And that nobody else can say."
In fact, the impact of the Xamarin purchase extends beyond mobile DevOps. With more than 15,000 customers and 1.3 million unique developers, Microsoft gains access to a large, dynamic and very important developer community, including many developers that haven't previously been engaged with Microsoft.
One example is ArcTouch, which first started using Xamarin for cross-platform development three years ago and now uses it on one-third of its projects -- a figure Shapiro says is likely to swell to one-half.
"It promotes the whole infrastructure and ecosystem of the .NET world and keeps the developers who have been doing this for years on that platform, so you won't lose people over to having to learn Objective C [where] they are no longer Windows developers," Shapiro says. "It ensures that Windows developers who have been around for years are going to continue to be around for years even as they move to mobile."
Hilwa says that Microsoft has made impressive strides with its DevOps tool stack, but cautions that it's still early days for the sector.
"This is a super-hot area right now across both mobile and cloud in terms of startups and new open source technologies," Hilwa says. "I expect the market to take a good five years before it settles down, but in the meantime it does appear that Microsoft is making all the right moves assembling its troops."
For too long, the relationship between IT operations and development has been an exercise in grenade throwing. For many IT organizations, those days may be coming to an end.