Microsoft crossed its fingers and started rolling out an update to Azure Service Fabric over its cloudy platform yesterday.
Version 6.5 of the microservices platform is chock full of toys to delight developers who might have forgotten about the thing amid all the heat generated by orchestration tech du jour Kubernetes.
After all, it is Service Fabric that lurks in the shadows behind an awful lot of Microsoft's Azure services, from Azure Cosmos DB and SQL Database, through Dynamics 365 to the unloved Cortana.
The update includes the ability to explore applications uploaded to Image Store in the Service Fabric Explorer and the Service Fabric Application Disaster Recovery Tool.
The latter is aimed at helping users recover data from a primary cluster in the event of a disaster. So long as the backup/restore service is enabled, of course. Alas, there is a bit of latency – the tool backs up new application data from that primary cluster and restores it "periodically" on a secondary cluster. It will have a crack at that restore every five minutes, a period that can be tweaked for local or cloud deployments.
Because Microsoft loves Linux these days (we've seen that slide more often than we'd like), the update also adds support for .NET Core apps built with Visual Studio to be deployed directly to Linux Service Fabric clusters from Microsoft's development environment. Unfortunately, debugging those Linux-targeted applications from Visual Studio remains a bit of a no-no.
The gang has also warned that Visual Studio holdouts still clinging to VS 2015 should really update. After 6.5, there'll be no more VS tools to play with so the team recommends a hop and a skip to VS 2019.
While updates such as installing the Azure Service Fabric CLI automatically and adding better visibility into the state of down seed nodes are highlights (PDF), those charged with managing the thing will be delighted to see the arrival of protection from runaway user code.
Switching on the
EnforceUserServiceMetricCapacities configuration option will enforce hard resource limits to stop non-system services chowing through CPU, disk and RAM – and leaving nodes in a very poorly state.
Once it is switched on (it is off by default to avoid what Microsoft delicately described as "unexpected surprises for existing customers during upgrades"), an admin can define the percentage of node capacity allowable ("governed metrics" such as CPU and RAM) with a default 80 per cent handed over to user services. Sadly, the value is static – if you want to fiddle with the settings, you'll have to bounce the node.
Want to restrict what those system services get up to? Tough – as of 6.5, Service Fabric system services are ungoverned and can skip beyond their quota. Dealing with that will be handled in a future version.
As before, there are Ubuntu and Windows versions, and developers can set up an environment on a Mac, if that's their thing. While tooling and SDK updates are dribbling out over Azure regions now, updates for .NET SDK, Java SDK and Service Fabric runtimes will be available through Web Platform Installer, NuGet packages and Maven repositories in a week or so. ®