Azure - 用于将 Web 作业从 ASE 迁移到 Kubernetes (AKS) 的迁移选项

问题描述 投票:0回答:1

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

与此类似:

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

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

非常感谢任何建议。我们对 Azure Functions 进行了类似的迁移,但我认为如果我能理解如何转移 Web 作业,那么 Functions 自然会遵循相同的路径。

azure kubernetes azure-functions azure-webjobs azure-ase
1个回答
3
投票

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

将 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 文件)。在此处阅读有关 Docker 容器的更多信息

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

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

© www.soinside.com 2019 - 2024. All rights reserved.