dee*_* zg 25 docker azure-web-app-service asp.net-core
我们现在显然可以将我们的asp.net核心应用程序部署到docker容器中.我浏览了关于"怎么做"的文档,但我找不到关于"为什么要这样做"的正确解释?
任何人都可以解释为什么会选择将asp.net核心应用程序部署到docker容器而不是azure app服务?
显然,相对于应用程序服务,偏爱Docker映像的原因是可移植性。如果要从Azure切换到其他云平台,只需要将预配置的Docker映像部署到其他平台的容器管理服务,它就可以在那里工作,而如果要将应用程序从应用程序服务转移到某些等效的服务产品在其他一些云平台上,您需要花时间学习它的工作原理,然后在新的地方重新进行配置。
任何人都可以解释为什么会选择将asp.net核心应用程序部署到docker容器而不是azure app服务?
所有Azure Web App都在称为沙箱的安全环境中运行.沙箱机制旨在确保在计算机上运行的每个应用程序都具有最低保证服务级别; 此外,沙盒强制执行的运行时限制可以保护应用程序免受可能在同一台计算机上运行的其他资源密集型应用程序的不利影响.
由于所有Azure Web App都在相同类型的沙箱中运行.Azure Web App提供与部署和监视Web应用程序相关的多种功能.例如,记录,远程调试,Kudu,站点扩展等.
由于所有Azure Web App都在相同类型的沙箱中运行,因此沙箱限制将影响您的Web应用程序.
如果您的Web应用程序使用的API或函数不受沙盒限制,则可以选择Azure Web App以使用Azure Web App提供的功能/工具.否则,您可以选择停靠集装箱.
尽管 Docker 支持越来越好,但使用 Docker 在本地开发存在问题,例如像https://github.com/docker/for-win/issues/3168这样的时间同步。那些日子有更好的支持,例如“Azure Dev Spaces”,它可以在不在本地运行的集群中运行微服务,因此它消除了在笔记本电脑上运行所有需要的图像的要求。配置集群后,简化部署和管理有很多好处,但我仍然不喜欢为其开发。
我个人不喜欢 Kubernetes (AKS)、Docker Swarm 等。它需要集群配置,我只会在人们不想使用像 Azure Functions 这样的无服务器架构的大型微服务架构中推荐它,但这并不是真的这里的问题。没那么容易,证书和端口绑定怎么办?Docker 存储,曾经使用过 Docker 数据卷吗?它不是很友好。监控可以改进,如果出现问题怎么办,在哪里可以找到更多信息?我发现这很难。
Azure Web Apps 提供与 Azure DevOps、部署槽、Application Insights、Application Identity 的良好集成!(称为MSI)。使用应用服务证书、自定义域和许多开发人员实用程序自动续订证书,将 Visual Studio 附加为调试器非常简单。使用应用服务编辑器,您可以尝试修改例如 Web.Config,而无需重新映像您的 Docker 映像。
在我看来:如果您不想锁定供应商,请选择 Docker 映像,否则选择 Azure Function App v2 或 Azure Web Apps。
我的支持 #1:无服务器
我的喜好#2:PaaS
其他Docker
我不会再选择 IaaS,即使它提供了大部分的总体控制。
Docker 并不消除将应用程序部署到 Azure 等云提供商的需要。云提供商为您提供部署应用程序的基础架构或平台。如果您没有自己的服务器来部署应用程序,则无论您是否使用 docker,都需要它。
Docker 使应用程序的部署更加可预测和更容易,因为它在应用程序和用于运行应用程序的计算机之间提供了很大的隔离。
现在很流行使用Docker和云平台来部署应用程序。当您使用 Docker 时,人们将确信相同的应用程序映像能够在不同的平台上运行,因此您将能够在不同的提供商(甚至私有服务器)之间切换,而无需修改您的应用程序。
| 归档时间: |
|
| 查看次数: |
4482 次 |
| 最近记录: |