We are excited to announce the release of a feature packed 9.0 version of the Service Fabric runtime that has started rolling out to the various Azure regions along with tooling and SDK updates. The updates for .NET SDK, Java SDK and Service Fabric runtimes will be available through Web Platform Installer, NuGet packages and Maven repositories within the next 7-10 days in all regions.
What is new in Service Fabric 9.0?
Some of the key features are highlighted below:
[General Availability] Support for .NET 6.0
[General Availability] Support for Ubuntu 20.04
[General Availability] Support for Multi-AZ within a single VM Scale Set (VMSS)
Added support for IHost, IHostBuilder and Minimal Hosting Model
Enabling opt-in option for Data Contract Serialization (DCS) based remoting exception
Support creation of End-to-End Developer Experience for Linux development on Windows using WSL2
Support for parallel recursive queries to Service Fabric DNS Service
Support for Managed KeyVaultReference
Expose Container ID for currently deployed code packages
Added Fabric_InstanceId environment variable for stateless guest applications
Exposed API for reporting MoveCost
Enforce a configurable Max value on the InstanceCloseDelayDuration
Added ability to enumerate actor reminders
Made updates to platform events
Introduced a property in Service Fabric runtime that can be set via SFRP as the ARM resource ID
Exposed application type provision timestamp
Support added for Service Fabric Resource Provider (SFRP) metadata to application type + version entities, starting with ARM resource ID
Updates to Service Fabric Explorer (SFX) with 9.0
Packages and Versions
Service Fabric Runtime
Ubuntu 18.04 - 9.0.1018.1
Ubuntu 20.04 - 9.0.1018.1
Windows - 9.0.1017.9590
Service Fabric for Windows Server
Service Fabric Standalone Installer Package - 9.0.1017.9590
Windows .NET SDK - 6.0.1017
Microsoft.ServiceFabric - 9.0.1017
Reliable Services and Reliable Actors - 9.0.1017
ASP.NET Core Service Fabric integration - 9.0.1017
Java for Linux SDK - 1.0.6
Service Fabric PowerShell and CLI
AzureRM PowerShell Module - 0.3.15
SFCTL - 11.0.0
Future Retirement and Deprecation Path Callouts
Read more about these in the release notes linked below.
Retired support for ASP.NET Core 1.0
Deprecated support for .NET Core 2.x
(Upcoming) Deprecation of support for .NET 5.0
(Upcoming) Retirement of support for Ubuntu 16.04
(Upcoming) Deprecation of support for BinaryFormatter based remoting exception serialization
(Upcoming) Archival and removal of older version of Service Fabric packages from the Download Center
Current Breaking Changes
Also, see feature items for breaking change details.
Guest Executable and Container Applications: Guest executable and container applications created or upgraded in Service Fabric clusters with runtime versions 7.1+ are incompatible with prior Service Fabric runtime versions (e.g. Service Fabric 7.0). Following scenarios are impacted:
An application with guest executables or containers is created or upgraded in an Service Fabric 7.1+ cluster. The cluster is then downgraded to a previous Service Fabric runtime version (e.g. Service Fabric 7.0). The application fails to activate.
A cluster upgrade from pre-SF 7.1 version to Service Fabric 7.1+ version is in progress. In parallel with the Service Fabric runtime upgrade, an application with guest executables or containers is created or upgraded. The Service Fabric runtime upgrade starts rolling back (due to any reason) to the pre-SF 7.1 version. The application fails to activate. To avoid issues when upgrading from a pre-SF 7.1 runtime version to an Service Fabric 7.1+ runtime version, do not create or upgrade applications with guest executables or containers while the Service Fabric runtime upgrade is in progress.
The simplest mitigation, when possible, is to delete and recreate the application in Service Fabric 7.0.
The other option is to upgrade the application in Service Fabric 7.0 (for example, with a version only change). If the application is stuck in rollback, the rollback has to be first completed before the application can be upgraded again.