Azure Service Fabric 7.0 is now available! You will be able to update to 7.0 through the Azure Portal or via an Azure Resource Manager deployment. Due to customer feedback on releases around the holiday period we will not begin automatically updating clusters set to receive automatic upgrades.
In January, we will resume the standard roll-out procedure and clusters with automatic upgrades enabled will begin to receive the 7.0 update automatically. We will provide another announcement before the roll-out begins.
We will also update our planned release dates to indicate that we take this policy into consideration. Looks for updates to release roadmap here.
What is new in Service Fabric 7.0?
We are excited to announce that the next release of Service Fabric is loaded with key features and improvements.
KeyVaultReference support for application secrets (Preview): Service Fabric applications that have enabled Managed Identities can now directly reference a Key Vault secret URL as an environment variable, application parameter, or container repository credential. Service Fabric will automatically resolve the secret using the application's managed identity.
Improved upgrade safety for stateless services: To guarantee availability during an application upgrade, we have introduced new configurations to define the minimum number of instances for stateless services to be considered available. Previously this value was 1 for all services and was not changeable. With this new per-service safety check, you can ensure that your services retain a minimum number of up instances during application upgrades, cluster upgrades, and other maintenance that relies on Service Fabric’s health and safety checks.
Resource Limits for User Services: Users can set up resource limits for the user services on a node to prevent scenarios such as resource exhaustion of the Service Fabric system services.
Very High service move cost for a replica type. Replicas with Very High move cost will be moved only if there is a constraint violation in the cluster that cannot be fixed in any other way .Please see the docs for additional information on when usage of a “Very High” move cost is reasonable and for additional considerations.
Additional cluster safety checks: In this release we introduced a configurable seed node quorum safety check. This allows you to customize how many seed nodes must be available during cluster life-cycle and management scenarios. Operations which would take the cluster below the configured value are blocked. Today the default value is always a quorum of the seed nodes, for example, if you have 7 seed nodes, an operation that would take you below 5 seed nodes would be blocked by default. With this change, you could make the minimum safe value 6, which would allow only one seed node to be down at a time.
Announcing availability of the ReliableCollectionsMissingTypesTool: This tool helps validate that types used in reliable collections are forward and backward compatible during a rolling application upgrade. This helps prevent upgrade failures or data loss and data corruption due to missing or incompatible types.
In addition, this release contains other new features, bug fixes, and supportability, reliability, and performance improvements. For the full list of changes, please refer to the release notes.
Current And Upcoming Breaking Change Announcements
Starting with Service Fabric version 7.0, we have changed the default value for the PreferUpgradedUDs config flag to FALSE in the PlacementAndLoadBalancing section of the ClusterManifest. Based on numerous cases and customer issues, this default behavior should allow clusters to remain more balanced during upgrades. If you want to preserve today’s behavior for your workload, please perform a cluster configuration upgrade to explicitly set the value to true either prior to or as a part of upgrading your cluster to 7.0.
Starting with Service Fabric version 7.0, we have fixed a calculation bug in the Cluster Resource Manager which impacts how node resource capacities are calculated in cases where a user manually provides the values for node resource capacities. The impact of this fix is that the Cluster Resource Manager will now consider there to be less usable capacity in the cluster. For more information, see resource governance.
Starting with Service Fabric version 7.0, customers using Service Fabric Managed Identities, please switch to new environment variables ‘IDENTITY_ENDPOINT’ and ‘IDENTITY_HEADER’. The prior environment variables 'MSI_ENDPOINT', ‘MSI_ENDPOINT_’ and 'MSI_SECRET' are now deprecated in this release and will be removed in 7.0 CU1.
Today Service Fabric performs equality comparison for Boolean in placement constraints using a case-sensitive lexical comparison Starting in a subsequent release, we will be changing this comparison to be case-insensitive. This change will only apply to Boolean placement properties/constraints. Other string and numeric constraint values will continue to be treated as they are today (with case sensitive and numeric comparisons, respectively).
Currently Service Fabric ships the following nuget packages as a part of our ASP.Net Integration and support:
These packages are built against AspNetCore 1.0.0 binaries which have gone out of support (https://dotnet.microsoft.com/platform/support/policy/dotnet-core). Starting in Service Fabric 8.0 we will start building Service Fabric AspNetCore integration against AspNetCore 2.1 and for netstandard 2.0. As a result, there will be following changes:
The following binaries and their nuget packages will be released for netstandard 2.0 only. These packages can be used in applications targeting .net framework <4.6.1 and .net core >=2.0
The following package will no longer be shipped:
Use Microsoft.ServiceFabric.AspNetCore.HttpSys instead.
Upcoming and Ongoing Work
There are some work items that are not a part of the 7.0 release. We want to let you know that work on these items is still ongoing. At this point we plan for these work items to GA in upcoming 7.0 CUs, or as separate packages available in the upcoming months. The specific delivery dates will be communicated as they get closer to GA.