microsoft / service-fabric

Service Fabric is a distributed systems platform for packaging, deploying, and managing stateless and stateful distributed applications and containers at large scale.
https://docs.microsoft.com/en-us/azure/service-fabric/
MIT License
3.02k stars 399 forks source link

[Feature] .Net 8 support timeline? #1472

Closed ahhyunahn closed 2 months ago

ahhyunahn commented 11 months ago

Hi! I am developing a new project and was wondering what the timeline would be for .net 8 support for service fabric. I am delaying majority of the code migration until November (so I can use .net 8 and also use R9 which I believe should also support .net 8 shortly after it's out), but wasn't sure what .net 8 support timeline would look like for service fabric. Do you have any rough ideas on what the timeline would look like? This will help me plan out milestones immensely, would really appreciate any insight!


Assignees: /cc @microsoft/service-fabric-triage

ckrueger1979 commented 3 months ago

CAB file for offline update?

rmsryu commented 3 months ago

CAB file for offline update?

I guess is this https://download.microsoft.com/download/B/0/B/B0BCCAC5-65AA-4BE3-AB13-D5FF5890F4B5/10.1.2175.9590/MicrosoftAzureServiceFabric.10.1.2175.9590.cab

Just updated version 10.1.2175.9590 on the URL as per previous CAB file URLs

rmsryu commented 3 months ago

Trying to plan ahead for this upgrade. Can it be shared what is the directly upgrade from version "Can upgrade directly from"?

https://learn.microsoft.com/en-us/azure/service-fabric/service-fabric-versions

rmsryu commented 3 months ago

The new versions of the Service Fabric Runtime and SDK are now available at

The documentation changes and nuget packages will be published tomorrow.

Rollout of the new runtime version to the public Azure cloud has started today and should be completed in ~3 weeks.

Documentation has been updated, but no mention of .NET 8 support. Any reason for that?

https://github.com/MicrosoftDocs/azure-docs/commit/12729eeee3761faf078b5f676b71e9fb07b7dc40

olegsych commented 3 months ago

Thanks for the heads-up. It's an oversight. I have already created a PR to fix that.

Morne-Jooste-Gendac commented 2 months ago

@olegsych

With the latest Service Fabric (10.1.2175.9590) installed on our cluster and the services updated to .Net 8.0 and SDK version (7.1.2175.9590) we are unable to deploy as the nodes do not have .net 8.0 installed. Is this not suppose to be part of the runtime that service fabric installs on the nodes? The nodes do not contain any other .net runtime version but can run .net 7.0 and .net 6.0 services without any issue.

image

image

image

negberts commented 2 months ago

@Morne-Jooste-Gendac we have been using a CustomScriptExtension to install the .net runtimes for a long time. Even for 5, 6 and 7. Just download the https://dot.net/v1/dotnet-install.ps1 file in the custom script and execute it with -Runtime dotnet -Channel 8.0 as parameters and the runtime will be installed on the VM's on creation of the VM.

LoloActemium commented 2 months ago

@negberts @Morne-Jooste-Gendac Why not give a try on self contained binaries ? Runtime will be packed with your service, so you don't have to take care about which version is installed.

Gabriel-Lacatus commented 2 months ago

@LoloActemium This will severely increase the size of your deployment artifacts (multiplied with the number of services/applications) which will lead to:

If you're not bothered with all of the above, then yes, building with contained framework is the easiest to do.

LoloActemium commented 2 months ago

@Gabriel-Lacatus Yes, it's the prize you have to pay. It's up to you for choosing the right scenario that fits your needs.

olegsych commented 2 months ago

@Morne-Jooste-Gendac Service Fabric doesn't install any .NET runtimes on Windows today. If you had services previously running on .NET 7, the runtime must have been installed similar to how @negberts described.

simonwahub commented 2 months ago

.NET Core 8.0 has a breaking change that SelfContained is $false. The default value was $true in previous .NET Core SDKs.

Morne-Jooste-Gendac commented 2 months ago

.NET Core 8.0 has a breaking change that SelfContained is $false. The default value was $true in previous .NET Core SDKs.

@simonwahub Adding <SelfContained>true</SelfContained> in the csproj of all the services fixed the issue without needed to install additional runtimes. The issue was the breaking change in the framework, previously we used to package them self-contained but now you have to manually specify that it should be self-contained.

Thank you for pointing out the change

rasmus-s commented 2 months ago

Hi @olegsych Great with the .NET 8 support in SF. Looking ahead what are the plan for support .NET 9 in SF? Do the SF team plan to support it a few months after the .NET 9 GA release or will SF transition into only support .NET releases with LTS?

As you can see from this thread we are some that care about SF and want to use the latest stuff.

olegsych commented 2 months ago

Thanks @rasmus-s! We already started working on .NET 9 support and should have it available with the .NET 9 GA. We are re-evaluating our support policies, so don't take this as a promise or a recommendation yet.

olegsych commented 2 months ago

.NET 8 support and Service Fabric 10.1 CU3 is now available in all public regions of Azure.

Thanks everyone for your feedback! It was reflected in the release notes.

I hope we don't find any new surprises, but if we do, feel free to reactivate this.