Azure - 将 Web 作业从 ASE 迁移到 Kubernetes (AKS) 的迁移选项
Azure - migration options for moving Web Jobs from ASE to Kubernetes (AKS)
我对 Azure ASE 的开发还很陌生,我正在开发一个现有的 Azure 云解决方案,该解决方案的服务总线从 UI 接收消息,消息事件启动 Azure(按需)Web 作业在解决方案的不同点。
与此类似:
我们将大部分解决方案托管在 ASE 上,计划是从 ASE 转移到 Kubernetes (AKS) 上(目前,我已经将 AKS 设置为 windows 作为 OS 只是为了开始玩它)。
将 Web 作业从 ASE 转移到 AKS 有哪些选择? OS 对选项有影响吗?可以将 WebJobs SDK 安装在 AKS 群集中以 运行 WebJobs(例如,它们是否可从服务总线执行)?我知道您可以设置计划的作业,但是对于按需 Web 作业(长 运行ning 进程)来说什么是等效的。
非常感谢任何建议。我们有类似的 Azure Functions 迁移,但我想如果我能理解如何迁移 Web Jobs,那么 Functions 自然会遵循相同的路径。
花了更多时间在这上面,这里有一些对我有帮助的信息(你可以从上面的问题中看出我的理解存在差距,慢慢积累知识并发布以防万一对其他人有用)。
将 WebJobs 移出 ASE - 这并不像我的问题暗示的那样直接。本质上,WebJobs 本身会输出一个 exe 和所需的库,类似于命令行应用程序的输出。 WebJobs(他们的代码)运行 Main 方法中的一个 "JobHost",它有一个主机等待触发器 运行 中的作业。几年前,WCF 服务在 Windows 服务中的托管方式与我非常相似。
考虑到这一点,首先,WebJob .exe 可以在本地主机 OS 上 运行。由于我们使用的是 WebJobs 的 .net Framework 版本,我们只能部署到 Windows(也许使用 Mono 可以在 Linux 上部署 运行,但现在我说的是 Windows 只是为了让事情简单化)。如果我们使用 .net Core 构建 WebJobs,那么可以说它们可能是 Windows 或 Linux 主机 OS.
其次,我们想要 "containerise" WebJob 的编译输出 - 因此需要构建包含 WebJob 和依赖项的 docker 图像,以便将其部署到集群中(这是我目前正在尝试定义 docker 文件的点)。详细了解 Docker Containers here。
第三,集群本身。我提到过 AKS。还有其他选项,例如 Service Fabric,但它是 Microsoft 专有的 SDK,因此最好暂时避开。您可以根据需要将包含 WebJob .exe(和库)的 docker 映像部署到集群。集群可以根据需要管理容器的扩展。
注意:您可以在本地 运行 Minikube 这有助于掌握
这是一个高层次的描述,但澄清了我上面的问题并提供了一些我认为有用的信息。希望能帮助其他信任 DevOps 的人! :)
我对 Azure ASE 的开发还很陌生,我正在开发一个现有的 Azure 云解决方案,该解决方案的服务总线从 UI 接收消息,消息事件启动 Azure(按需)Web 作业在解决方案的不同点。
与此类似:
我们将大部分解决方案托管在 ASE 上,计划是从 ASE 转移到 Kubernetes (AKS) 上(目前,我已经将 AKS 设置为 windows 作为 OS 只是为了开始玩它)。
将 Web 作业从 ASE 转移到 AKS 有哪些选择? OS 对选项有影响吗?可以将 WebJobs SDK 安装在 AKS 群集中以 运行 WebJobs(例如,它们是否可从服务总线执行)?我知道您可以设置计划的作业,但是对于按需 Web 作业(长 运行ning 进程)来说什么是等效的。
非常感谢任何建议。我们有类似的 Azure Functions 迁移,但我想如果我能理解如何迁移 Web Jobs,那么 Functions 自然会遵循相同的路径。
花了更多时间在这上面,这里有一些对我有帮助的信息(你可以从上面的问题中看出我的理解存在差距,慢慢积累知识并发布以防万一对其他人有用)。
将 WebJobs 移出 ASE - 这并不像我的问题暗示的那样直接。本质上,WebJobs 本身会输出一个 exe 和所需的库,类似于命令行应用程序的输出。 WebJobs(他们的代码)运行 Main 方法中的一个 "JobHost",它有一个主机等待触发器 运行 中的作业。几年前,WCF 服务在 Windows 服务中的托管方式与我非常相似。
考虑到这一点,首先,WebJob .exe 可以在本地主机 OS 上 运行。由于我们使用的是 WebJobs 的 .net Framework 版本,我们只能部署到 Windows(也许使用 Mono 可以在 Linux 上部署 运行,但现在我说的是 Windows 只是为了让事情简单化)。如果我们使用 .net Core 构建 WebJobs,那么可以说它们可能是 Windows 或 Linux 主机 OS.
其次,我们想要 "containerise" WebJob 的编译输出 - 因此需要构建包含 WebJob 和依赖项的 docker 图像,以便将其部署到集群中(这是我目前正在尝试定义 docker 文件的点)。详细了解 Docker Containers here。
第三,集群本身。我提到过 AKS。还有其他选项,例如 Service Fabric,但它是 Microsoft 专有的 SDK,因此最好暂时避开。您可以根据需要将包含 WebJob .exe(和库)的 docker 映像部署到集群。集群可以根据需要管理容器的扩展。 注意:您可以在本地 运行 Minikube 这有助于掌握
这是一个高层次的描述,但澄清了我上面的问题并提供了一些我认为有用的信息。希望能帮助其他信任 DevOps 的人! :)