当我需要一个不断在后台运行的程序并处理队列/数据库数据/计划任务/等时,我创建一个Windows服务应用程序并在Azure VM上运行它。这仍然是目前最佳的方法吗?在我看来,Azure Worker角色(作为替代方案)有点被遗忘/忽略/折旧。我应该尝试制作更多面向服务架构的服务吗?
部分我正在寻找的是一种相对简单的部署,运行和维护代码的方法,旧代将放在Windows服务中(尽可能少的维护)。
答案 0 :(得分:1)
Service Fabric似乎有点过于复杂(而且价格昂贵:请参阅所需的最小VM数量)来提供您所描述的内容,除非这是关键任务的企业级代码。
您对Windows服务的引用使我认为这些是长时间运行的进程。根据您需要的处理时间,您有以下几种选择:
对于批处理服务选项,您只需支付正常的计算使用费(即,您为部署的批处理作业而部署的虚拟机)
对于Azure Functions,相对于您的函数在运行时消耗的内存量,每100ms计费。这个平台是“无服务器”[Lol,很棒的名字],因为你不必担心向外扩展,它会检测到你有大量流量并为你扩展。
正如您所指出的,旧的选项有:Azure Cloud Service和WebJobs ...... Azure Functions实际上是WebJobs的扩展。
所以,有很多选择 - 但如果不进一步了解代码的要求,很难做出真正的建议。我希望这有助于指明你有所帮助的方向。