Microsoft Is Mobilizing DevOps

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.

[Click on image for larger view.]
The DevOps cycle.

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.

"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 disrup­tion 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.

Microsoft has been busy burnishing its DevOps infrastructure, rebranding the former Visual Studio Online (VSO) cloud solu­tion 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."

Microsoft's Agile Transformation

Microsoft's mobile DevOps effort takes a lot of cues from Agile programming practices. In fact, the company has aligned much of its development effort around Agile, as Brian Harry, Microsoft corporate vice president for Visual Studio Team Services and Team Foundation Server, recounted last fall when he delivered the keynote address at the Visual Studio Live! conference in Brooklyn, N.Y., which is produced by Redmond's publisher, 1105 Media Inc.

"It's all about this unbelievably rapid rate of pace of change and your ability to connect so directly and immediately with customers," Harry told the audience. "So we're trying to run faster and faster and deliver more capability in smaller intervals, and be responsive to customers. We can't let the quality go into the toilet, so we have to think how we manage quality in that environment."

"It's all about this unbelievably rapid rate of pace of change and your ability to connect so directly and immediately with customers."

To get there, Microsoft radically changed the way it did software. Monolithic release cycles that once spanned nine to 12 months were broken out, reimagined and compressed down to three weeks. "If you really want to get to this world of continuous delivery, continuous customer engagement, you can't do it by taking what you do now and just making it all a little faster. You have to really think about what you're doing."

Harry's team attacked the problem across five areas:

Organizational Management: Microsoft decentralized and flattened its development organization, creating semi-autonomous engineering teams of 10 to 12 people, each run by an engineering manager and a product owner. Each team owns a particular service or functionality and works out of a common room. "People were very, very skeptical when we first started talking to the team room environment. Now that we've done it, I think we've been in the team room for 16 months, I can't find anyone who would ever go back," Harry says.

Release Cadence: Lengthy, months-long release cycles have given way to three-week sprints, each culminating in the release of functional software. The sprints happen in the context of longer-term planning. Major release scenarios are mapped out bi-annually, while an "18-month vision process" defines business priorities and long-term targets for the teams.

Software Quality: Microsoft's Agile approach meant ditching its emphasis on end-to-end automated functional testing. "That's an important philosophical change in how you think about managing quality," Harry says, noting that even a comprehensive test regimen can't mirror a production environment. "Rather than putting a whole lot of energy into trying to detect every bug, I'm going to get really good at fixing bugs when we find them," Harry says.

Automation and Deployment: Microsoft adopted a fully automated deployment process that employs a multi-stage, scaled rollout that ships first to the internal engineering team, then to successively broader and more open audiences. Feature flags are used to turn functionality on and off, as appropriate for each build. At any point in the scaled rollout, the deployment can be frozen and backtracked, so found issues can be addressed.

Monitoring and Telemetry: Once in production, robust telemetry and instrumentation give Microsoft a clear window into software performance and user behavior. Application Insights is used to sort through the tens of gigabytes of field data that arrive daily, enabling engineers to spot large-scale trends and drill down into individual failures.

Mobile Imperative
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.

[Click on image for larger view.]
The Visual Studio Team Services dashboard environment.

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 telem­etry, 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.

Mobile App Dev Balancing Act

When it comes to creating mobile apps, enterprises typically weigh the pros and cons of three mobile app approaches: native, Web and hybrid. Each balances different levels of user reach, app functionality and total cost.

Native: Developers write native code for each supported platform, most frequently iOS and Android. This approach provides top performance and full access to mobile hardware -- including GPS, cameras, microphones and the like -- but requires maintaining multiple code bases at significant expense and time. Apps will not run on unsupported device types, limiting reach.

Web: HTML and JavaScript Web apps and pages can run on almost any device with a Web browser, offering maximum reach and sharply reducing development and maintenance costs. While Web apps can support a broad range of scenarios, limitations in performance, UI and UX are all significant concerns.

Hybrid: Platforms like Apache Cordova let developers write HTML5 and JavaScript apps that reside inside a native container, enabling one code base to serve multiple device targets. The wrapper enables apps to be distributed via vendor app stores just like a native app, and can help optimize UI and performance behavior. But hybrid apps still lag their native counterparts in performance, visual impact and access to device resources.

Xamarin shakes up the equation by enabling developers to write code in C# that's then compiled to run natively on each targeted device platform. The tool allows dev shops to focus skills acquisition on C#, rather than keeping teams of dedicated iOS and Android developers. It also cuts down on code redundancy, yielding reduced maintenance costs.

"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.