Service Fabric 7.0 Release

This post has been republished via RSS; it originally appeared at: New blog articles in Microsoft Tech Community.

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 until January.

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 at https://github.com/Microsoft/service-fabric/#service-fabric-release-schedule

 

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.

Key Announcements

  • 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.
  • Added support for managing the Backup and Restore service in Service Fabric Explorer. This makes the following activities possible directly from within SFX:
    • discovering the backup and restore service
    • creating backup policies
    • enabling automatic backups
    • taking adhoc backups
    • triggering restore operations
    • browsing existing backups
  • 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.
  • Enable stable reads on secondary replicas: Stable reads will restrict secondary replicas to returning values which have been quorum-acked.

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.

 

Upcoming Breaking Change Announcements

  • For customers using service fabric to export certificates into their Linux containers, the export mechanism will change in an upcoming CU. This change will encrypt the private key included in the .pem file, with the password being stored in an adjacent .key file.
  • For 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 and will be removed in 7.0 CU1
  • 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.
  • 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.
  •  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:
  • ServiceFabric.AspNetCore.Abstractions
  • ServiceFabric.AspNetCore.Configuration
  • ServiceFabric.AspNetCore.Kestrel
  • ServiceFabric.AspNetCore.HttpSys
  • ServiceFabric.AspNetCore.WebListener

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:

  1. 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
    1. ServiceFabric.AspNetCore.Abstractions
    2. ServiceFabric.AspNetCore.Configuration
    3. ServiceFabric.AspNetCore.Kestrel
    4. ServiceFabric.AspNetCore.HttpSys
  2. The following package will no longer be shipped:
    1. ServiceFabric.AspNetCore.WebListener:
      1. 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.

  • General Availability of Service Fabric Managed Identities for SF apps
  • Support for using low priority/Azure Spot Virtual Machine Scale Sets in Service Fabric clusters
  • FabricObserver (FO) – A configurable and extensible watchdog service that runs as a Service Fabric application
  • Support for Ubuntu 18.04
  • Cross Availability Zone Clusters – Support for using a single Cross-AZ Virtual Machine Scale Set. Today’s workloads require one scale set per AZ. Increased information about historical cluster and application events in Service Fabric Explorer
  • Increased information about historical cluster and application events in Service Fabric Explorer
  • Provide customers with diagnostics and insights through Azure Portal

Improve Application life cycle experience

  • Request drain - grace period to shutdown replicas
  • Enable Services that Run till Completion/Run Once
  • Support Readiness probe-based routing to replicas 
  • Support for Health Probes for containerized services
  • Support for Initializer Code Packages for Containerized applications

Image Store improvements

  • Compliance: Remove dependency on NTLM  
  • Validate integrity of files and folders downloaded
  • Enable cleanup of local files when an app is no longer running on a node
  • VMSS Ephemeral OS disk support

Reliable Collections Improvements

  • In memory only store support for stateful services using Reliable Collections

 

REMEMBER: these articles are REPUBLISHED. Your best bet to get a reply is to follow the link at the top of the post to the ORIGINAL post! BUT you're more than welcome to start discussions here:

This site uses Akismet to reduce spam. Learn how your comment data is processed.