azure App 服务部署为代码还是容器?

Posted

技术标签:

【中文标题】azure App 服务部署为代码还是容器?【英文标题】:azure App service deploy as code or container? 【发布时间】:2019-06-14 02:14:09 【问题描述】:

我有用 asp .net core 编写的 api,可以轻松容器化,我想将这些 api 部署在 azure 应用服务中,但我无法决定是否应该将这些 api 容器化并部署为 web 应用中的容器或我可以直接部署为代码,在什么基础上可以决定我看到应用服务为两种部署方式和其他因素(如持续部署)提供​​横向扩展能力也看起来相同,那么我应该如何决定采用哪种方法,或者它在这种情况下真的没关系吗?

【问题讨论】:

【参考方案1】:

在我看来,容器是流行语并不意味着我们一定需要使用它,除非我们有非常具体的理由。自从微服务架构变得流行之后,容器已经获得了声誉,在这种情况下它工作得很好。

时使用Web App for Containers

您正在尝试打包依赖项(运行时、工具等)是必需且关键的应用程序,因此您可以将它们捆绑在一起。

您想成为云不可知论者。容器是切换到其他云提供商的最佳方式,例如AWS 如果您必须不进行任何代码更改。

您希望将旧代码/遗留代码迁移到云端的直接迁移方案。

在未来的某个时候,您打算将 API 用作微服务,这需要将服务与 AKS(Azure Kubernetes 服务)等编排服务一起使用。

您希望将容器作为无服务器运行以处理峰值的一些高级案例 (例如容器实例)

您非常了解容器调试、端口等以及它们的工作原理。

在任何其他情况下,我宁愿坚持应用服务作为代码部署。您需要知道容器是好的,但如果您不知道如何处理它们,这可能是开销。

【讨论】:

值得一提的是,容器并不是云提供商或其他不同环境之间可移植性的灵丹妙药。使用 DNS 等服务或更明显的方式(例如对象存储)时,可能会发生微妙的锁定。

以上是关于azure App 服务部署为代码还是容器?的主要内容,如果未能解决你的问题,请参考以下文章

Azure App Service 共享托管中断容器启动

Azure 应用服务共享托管失败容器启动

无法在 Azure Web App 上为来自 DockerHub 的容器部署 Windows 容器

如何将容器blob下载到Azure App Service wwwroot?

React App 部署到 Azure 应用服务后失败

Azure 应用服务 Docker Linux 部署 - 我的文件在哪里?