Microsoft Build 2017 is scheduled for May 10-12. This is Redmond’s big developer conference, and it’s also where Microsoft tends to make major announcements about its technology stacks.
(The other “big announcement” event is Microsoft Ignite, scheduled in the fall. Linux Academy will be in attendance, and hopefully so will I.)
For example, at Build 2016 Microsoft announced Azure Functions, its serverless offering; Service Fabric, which is basically a container technology for microservices; the free availability of Xamarin, a cross-platform mobile development toolset; native support in Windows 10 for bash scripting over Ubuntu; significant improvements to IoT Hub; the Bot Framework, which is designed to host automated chat responses; and more.
So what will be announced at Build 2017? I’m not sure, but I have some guesses:
Azure App Service on Linux will become generally available. App Service is Azure Resource Management’s Platform as a Service (PaaS) offering, replacing the Cloud Service “worker roles” of the Azure Service Management, or “classic,” version.
For those new to the concept, PaaS instances are basically virtual machines with an anonymous, generalized guest OS. That is, every single PaaS instance has an operating system and environment configuration that is identical to any other PaaS instance.
This allows Azure to quickly scale-and-fail the workloads deployed on these instances. Basically, your code is saved in anonymous storage; if your instance fails, Microsoft retrieves your code, installs it on a new instance, and points traffic to that new instance. And if you need to scale out to meet demand, Azure does the same thing with the new instances and dynamically applies load balancing.
Until last fall, these anonymous operating systems were all versions of Windows. But at Ignite 2016, Microsoft announced Linux support was in public preview.
That means Redmond has had about six months to shake out the kinks with providing Linux OS support to App Service apps. My guess is that’s enough time to put them into production, so I would actually be surprised if App Service on Linux doesn’t become GA on Wednesday. I don’t think Microsoft wants to wait until Ignite to announce that GA.
And so will SQL Server on Linux. SQL Server 2017 went to Community Technical Preview version 2.0 in April, and SQL Server 2016 Service Pack 1 came out back in November 2016. I realize Microsoft’s versioning-speak is Greek to most of the readers of this blog, but “Community Technical Preview 2.0” is basically saying this pregnancy is well into the third trimester, and it’s been six months since the last service pack was released.
I find it hard to believe that Microsoft would release another SQL Server 2016 service pack, but it might be that SQL Server 2017 isn’t ready for prime time yet. In that case, I would expect Microsoft to release SQL Server 2017 RC, or “release candidate,” at Build, which basically means it’s launched, but there are know bugs. And I would expect that version to run on Linux natively.
I base that guess on the fact that Microsoft is as serious as a heart attack about getting SQL Server to run in Linux since that opens a massive new market for what is arguably one of its top 5 workload products. And they’re equally as serious about making Azure a premiere platform for Docker containers; running SQL Server in Docker is instrumental to that goal.
Machine Learning and Cognitive Services will appear in several new regions. Azure started its life with big data; HDInsight, which is Microsoft’s implementation of Hadoop, and Batch, which is used for massive parallel computing, were among its first offerings.
But right now Machine Learning, Microsoft’s predictive analytics service, is only available in three US regions, two Europian regions, and two Asian regions. That’s seven of 26 total publicly available regions outside of China, which isn’t enough.
The core Cognitive Services – Microsoft’s branding of its big-data based predictive APIs – are globally available: Bing Search, Bing Speech, Bing Spell Check, Translator Speech, and Translator Text. But most of its other services, including face recognition, content moderation, and other interpretive services that are of huge help to people trying to program semantic solutions, are only available in West US.
This being a developer conference, I would expect that if Microsoft is in a position to announce an expansion of these services, they will do so at Build.
IoT Hub and IoT Suite will become available in several new regions, if not GA. IoT Hub is Microsoft’s advanced solution for device management and telemetry ingestion. IoT Suite is a set of preconfigured services designed to help people build common Internet of Things solutions, such as a PowerBI panel that shows real-time telemetry captured from several monitoring devices.
Working with some of Microsoft’s IoT professionals, my collegue Shahan Karim has has developed two Linux Academy courses on Azure and IoT: Azure IoT Essentials and Azure IoT for the Enterprise. The latter was completed specifically to be ready for Build, so hint-hint, something involving IoT is probably going to be announced.
A .NET Core major release will be announced in technical preview, and it will close a lot of the gap with .NET Framework, in terms of functionality. Let me be clear: .NET Core is the best thing to happen to .NET developers since ASP.NET 1.1. It probably doesn’t feel like it to people who are used to programming in the .NET Framework, however.
To clarify: .NET Core is a cross-platform implementation of .NET, Microsoft’s primary platform for development. The .NET Framework is a Windows-specific implementation of .NET.
Experienced .NET Framework users have noted two things are true of .NET Core:
- Creating a solution is more complex — in the .NET Framework, much scaffolding and service management is built into prepackaged Visual Studio projects, but in .NET Core you have to do much of that configuration yourself.
- .NET Core is unable to support many assemblies that are supported in .NET Framework, especially newer assemblies, and often ones that are critical to a program’s operations, limiting what can be built in .NET Core.
The former of those concerns is by design, but the latter – missing or broken support for core assemblies – is certainly on Microsoft’s mind.
.NET Core is approaching one year old, having been released in June 2016. Its last major update was version 1.1.1, released alongside Visual Studio 2017 in March. That ought to have given enough time for .NET Standard, which provides interoperability APIs between the various implementations of .NET, to have ported more namespaces and assemblies into .NET Core.
Again, if there is anything new to say about .NET Core – and there had better be – then I would expect it to be front and center at Build 2017.
A major Azure feature will be unveiled – possibly, Azure Stack becoming available. Azure Stack is Microsoft’s on-premises version of Azure, aka a “private cloud”. Basically, it allows you to replicate the services and features available in Azure, but in your own datacenter.
This is especially attractive to enterprise customers and those with unusual security requirements. They’d love to be able to easily implement the high availability, scalability, disaster recovery, and business continuity features of Azure, but they face technical and legal challenges, often in the form of contractual or legal obligations, secure networking limitations, enterprise workload limitations and the like, which limit their ability to go straight to the public cloud.
Stack went into Technical Preview 3 in March. That basically means the fundamentals are sound, and the next step is at least a limited beta release, if not an open beta release. So the timing seems right, but that may be too bold a prediction. Since Ignite is the event that’s aimed more at DevOps/system administrators, Microsoft might be willing to keep Azure Stack in its back pocket until then.
If so, I would expect some sort of announcement, instead, about containers. What, specifically? Well, it can’t be Kubernetes support, which went to GA in February; it might be that Windows Server-based container support in Azure Container Service is publicly available since it’s been in private preview for nearly a year.
More likely, Azure would announce a premium service of some sort, perhaps something that unifies Azure Container Service, Azure Container Registry, and some sort of workflow management that ties in an API or the like. But that’s pure speculation.
What’s not speculation is that some new Azure feature is sure to be announced.
What do you think it might be?