Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Azure Servic Fabric是否适合简单的背景工作?_Azure_Azure Functions_Azure Service Fabric - Fatal编程技术网

Azure Servic Fabric是否适合简单的背景工作?

Azure Servic Fabric是否适合简单的背景工作?,azure,azure-functions,azure-service-fabric,Azure,Azure Functions,Azure Service Fabric,我们有很多Windows服务。我们需要能够继续将我们的代码部署为本地Windows服务,但希望在适当的情况下部署到Azure。目标是管理更少的基础设施。我并不热衷于部署几十位一块的Azure功能,但也不完全反对。Azure批处理/Webjobs也是另一个选项。但是,长期目标是将我们的所有服务转移到一个类似于编排服务器的服务结构上,以便可以从一个位置部署和编排所有服务。这主要是部署方面的考虑 我们将把现有的C代码分解到.NET核心类库中,并从Azure中托管的服务结构、本地服务结构或本地Windo

我们有很多Windows服务。我们需要能够继续将我们的代码部署为本地Windows服务,但希望在适当的情况下部署到Azure。目标是管理更少的基础设施。我并不热衷于部署几十位一块的Azure功能,但也不完全反对。Azure批处理/Webjobs也是另一个选项。但是,长期目标是将我们的所有服务转移到一个类似于编排服务器的服务结构上,以便可以从一个位置部署和编排所有服务。这主要是部署方面的考虑

我们将把现有的C代码分解到.NET核心类库中,并从Azure中托管的服务结构、本地服务结构或本地Windows服务引用它们。服务结构是合适的选择吗?或者,是否有充分的理由将后台作业作为Azure批处理/函数/Web作业运行

这是Microsoft的图表,来自:


这个问题的答案是,我们现在并不真正需要全面的编排,但在未来,它将变得更加重要。我必须在一次成功部署所有代码与Azure功能提供的临时部署轻松性之间取得平衡。

有状态服务是运行后台作业的一种极好方式。它们提供RunAsync,您可以在其中运行作业、检查和存储进度。当多个服务在任务上进行协作时,SF真的会大放异彩,它将SF远程处理作为一种通信渠道,并提供内置的重试支持

您可以选择将软件容器化,这将使您从平台锁定中解脱出来,但会阻止您使用一些


通过自动化CI/CD服务的交付,您可以部署到您选择的任何平台。这不是SF特有的功能。

如果您将代码移植到.NET Core,那么您不能在容器中运行它吗?甚至可能是Linux容器。然后,如果可以在Kubernetes上运行它,那么可能会使用AKSI。与服务结构相比,Kubernetes的优势是什么?我们目前使用Fluent Scheduler来调度任务。我基本上觉得这很好。但是,服务结构入口点模型似乎有点不同。他们似乎建议把一个任务。延迟放在一个循环中,这样调度就变得不同了。关于如何实现可配置的调度等等,有什么指导吗?很可能您可以在服务中运行现有的代码和框架。例如,在RunAsync JobManager.Initializenew MyRegistry中启动调度程序,并继续检查传递的CancellationToken,当它被设置时,停止调度程序JobManager.StopAndBlock;在这种情况下,我想这是可能的,但应用程序是这样构造的似乎很愚蠢哦,我明白了。可以让RunAsync完成/返回,不需要使用这种方法,也不需要实现它。退出RunAsync不会影响服务生命周期,而不退出它会延长生命周期。您还可以覆盖OnOpenAsync和OnCloseAsync以管理JobManager。否,仅当取消令牌被取消时。更多信息。。