Satya Nadella's Microsoft is all about "mobile and the cloud," a more nuanced view of what it means to be a devices and services business. So if day one of its BUILD developer conference was all about the mobile, it's not surprising that day two was all about the cloud -- with Cloud and Server chief Scott Guthrie making 44 separate announcements about Azure in the course of his keynote.
Azure: Blending IaaS and PaaS
Microsoft's Azure cloud service has been the driver for much of the company's recent innovation, with its mix of infrastructure and platform features. Working with Azure has meant working with its web portal every time you wanted to create new virtual machines. Microsoft is streamlining the process for developers, so you can now create a virtual machine straight from Visual Studio. You can also manage your existing VMs, and even remotely debug apps running across devices and the cloud.
Increased automation makes Azure, and the cloud as a whole, more palatable to IT departments. With support for Puppet and Chef, you're now able to automate configuration management across a flexible fabric of virtual servers. By adding open configuration management tooling to Azure Microsoft is making its cloud surprisingly portable -- you can take those configurations and use the same tools to deploy them on other, competing, infrastructure-as-a-service (IaaS) clouds. Microsoft is also using its own tooling to simplify defining and provisioning virtual servers, with its PowerShell scripting environment now supporting a JSON-based template language that can be used to deploy not just servers and applications, but also the low level connections that form the foundations of a cloud application.
Azure's web platform is perhaps the most visible element of its Platform as a Service (Paas) aspect. It's now able to autoscale web sites, helping your apps keep online as loads fluctuate. There's also support for a new Webjobs role, which offloads work to background threads running in any supported language, and tools for handling traffic across Azure's global network of data centers. You can now also use Azure as a development platform for web applications, with private staging sites that can be swapped for live sites at a click of a button.
The other side of Azure's PaaS is its mobile services tooling. Designed to support not just Windows and Windows Phone, but also iOS, MacOS, and Android, Azure Mobile Services handles back end services for mobile apps, with APIs for storage, notifications, and authentication. Microsoft demonstrated it using the new Office 365 APIs announced a couple of weeks ago, linking an app to its cloud Active Directory service and the Office 365 calendar, using one authentication token to open access to both services.
Open source .NET and Xamarin
The other side of Microsoft's cloud developer story is its languages. There's not been much movement there over the last few years, while it's been redesigning its compiler from the ground up. The resulting Roslyn compiler was released -- and open sourced -- on stage by C#'s designer, Anders Hjelsberg.
Roslyn is best thought of as Compiler as a Service, exposing compiler features in the Visual Studio (and other) IDEs. Using Roslyn it's easier to see just what your code is doing, as you get intimate knowledge of how it compiles. That makes it simpler to refactor code, as you can see just what effects code changes will have -- without having to recompile, build, and test your app every time you make a change.
Open sourcing its developer technologies makes a lot of sense for Microsoft, as it means it can continue to work closely with partners like Xamarin to deliver cross-platform solutions. Adding iOS and Android UIs to Windows universal apps will be easier for developers with the release of Xamarin 3.0 which will add support for Windows new shared project model.
Xamarin CTO Miguel De Icaza likes what Microsoft has done with universal apps, telling us, "Shared projects make things easy. It used to be painful, you think how come it didn't work this way before." Adding Xamarin's iOS and Android support to the universal app model makes sense, all you need to learn will be a new API for the UI on alternate platforms.
Supporting the Roslyn compiler will allow Xamarin to put more resources into its IDE for MacOS users, making it, as Icaza says, "A big deal for end user developers". Replacing the Mono compiler with Roslyn wasn't hard, De Icaza told us, "It needed a couple of minimal patches."
De Icaza is enthusiastic about the changes Microsoft is making, and about the changed relationship between the two companies, "It's a change in the dynamics of how we interact with Microsoft, with an active plan to collaborate. We had a wish list of things on both sides, so we're working together, sharing roadmaps and technologies."
One significant outcome of the new relationship was Microsoft taking the time and effort to give Xamarin access to .NET documentation under a Creative Commons license (as De Icaza notes, "Open source developers aren't so good at documentation"). De Icaza sees this donation as a sign of just how important the relationship is to Microsoft.
Microsoft's relationships with companies like Xamarin will be key to the success of the new .NET Foundation. As De Icaza points out, it's got one of the requirements for success, "There's a clear mission, to make .NET the best platform for a wide range of uses". That work will happen inside and outside the foundation, and the release of Roslyn should speed up language development.
Getting the bill
While much of Microsoft's work on redesigning its Azure portal is focused on the growing importance of DevOps, there's a lot there for end-user developers too. Improved debugging and monitoring makes a lot of sense, as does integration of the cloud-based Visual Studio editor. They're all important features, but the real winner is one that adds much needed transparency to the cloud: The ability to see just what it's costing you.
Being able to see how much a cloud-hosted app costs -- from storage to bandwidth to compute -- is vitally important for end-user developers, when it's often their own credit cards on the line, not a corporate account. From the new Azure portal you'll be able to see how different elements of an app add to your total bill, letting you know what parts of an app need tuning, as well as when your budget is about to be exhausted! Knowing that your data costs are high while your bandwidth costs are low makes it easy to reconsider how an app stores data.
Changes all around
BUILD 2014 has been a landmark event for Microsoft -- for both its mobile and cloud aspects. New operating system releases are one aspect of those changes, but it's the deep changes in both technologies and philosophy in the cloud that really show just how much Microsoft has changed. Azure is the heart of the new Microsoft, and in its relationships with companies like Xamarin and Puppet Labs it's showing just how open it has become.
It's an openness that's going to be key to Microsoft's future, as it works with organizations like the .NET Foundation to deliver the tools and technologies its ecosystem needs to BUILD the infrastructure that Nadella's ubiquitous computing and ambient intelligence will require. One thing's clear, though: this is only the start of a massive wave of changes both for and from the folk up in Redmond.