1

我对 Azure ASE 的开发非常陌生,我正在开发一个现有的 Azure 云解决方案,该解决方案具有服务总线从 UI 接收消息,并且消息事件在解决方案的各个点启动 Azure(按需)Web 作业。

与此类似: 在此处输入图像描述

我们在 ASE 上托管大部分解决方案,计划是从 ASE 转移到 Kubernetes (AKS) 上(目前,我已经将 AKS 设置为 Windows 作为操作系统,只是为了开始使用它)。

将 Web 作业从 ASE 转移到 AKS 有哪些选择?操作系统对选项有影响吗?WebJobs SDK 是否可以安装在 AKS 群集中以运行 WebJobs(例如,它们是否可以从服务总线执行)?我知道您可以设置计划的作业,但是对于按需 Web 作业(长时间运行的进程)来说,什么是等效的。

非常感谢任何建议。我们有类似的 Azure Functions 迁移,但我想如果我能理解如何转移 Web Jobs,Functions 自然会遵循相同的路径。

4

1 回答 1

2

在这方面花了更多时间,这里有一些对我有帮助的信息(你可以从上面的问题中看到我的理解存在差距,慢慢积累我的知识并发布以防它对其他人有用)。

将 WebJobs 移出 ASE——这并不像我的问题所暗示的那样直截了当。本质上,WebJobs 本身会输出一个 exe 和所需的库,类似于命令行应用程序的输出。WebJobs(他们的代码)在 Main 方法中运行一个“JobHost”,它有一个等待触发器在其中运行作业的主机。几年前 WCF 服务在 Windows 服务中托管的方式与我非常相似。

考虑到这一点,首先,WebJob .exe 可以在本地主机操作系统上运行。由于我们使用的是 .net Framework 版本的 WebJobs,我们只能部署到 Windows(也许使用 Mono 可以在 Linux 上运行,但现在我说 Windows 只是为了让事情变得简单)。如果我们使用 .net Core 构建 WebJobs,那么可以说它们可能是 Windows 或 Linux 主机操作系统。

其次,我们希望将 WebJob 的编译输出“容器化”——因此需要构建一个包含 WebJob 和依赖项的 docker 映像,以便将其部署到集群中(这是我目前正在尝试的点定义泊坞窗文件)。在此处阅读有关Docker 容器的更多信息。

第三,集群本身。我提到了AKS。还有其他选项,例如 Service Fabric,但它是 Microsoft 专有的 SDK,因此最好暂时避开。您可以根据需要将包含 WebJob .exe(和库)的 docker 映像部署到集群中。集群可以根据需要管理容器的扩展。注意:您可以在本地运行Minikube,这有助于掌握

这是一个高级描述,但澄清了我上面的问题并提供了一些我认为有用的信息。希望能帮助其他信任 DevOps 的人!:)

于 2018-08-13T11:21:24.850 回答