我们现在显然可以将我们的asp.net核心应用程序部署到docker容器中。我浏览了关于“怎么做”的文档,但我找不到关于“为什么要这样做”的正确解释?
任何人都可以解释为什么会选择将asp.net核心应用程序部署到docker容器而不是azure app服务?
任何人都可以解释为什么会选择将asp.net核心应用程序部署到docker容器而不是azure app服务?
所有Azure Web App都在称为sandbox的安全环境中运行。沙箱机制旨在确保在机器上运行的每个应用程序都具有最低保证服务级别;此外,沙盒强制执行的运行时限制可以保护应用程序免受可能在同一台计算机上运行的其他资源密集型应用程序的不利影响。
由于所有Azure Web App都在相同类型的沙箱中运行。 Azure Web App提供与部署和监视Web应用程序相关的多种功能。例如,记录,远程调试,Kudu,站点扩展等。
由于所有Azure Web App都在相同类型的沙箱中运行,因此沙箱限制将影响您的Web应用程序。
如果您的Web应用程序使用的API或函数不受沙盒限制,则可以选择Azure Web App以使用Azure Web App提供的功能/工具。否则,您可以选择停靠容器。
明显的理由支持Docker镜像而不是app服务将是可移植性。如果您想从Azure切换到其他云平台,您只需将预配置的docker镜像部署到其他平台的容器管理服务,它就可以在那里工作,而如果您想将应用程序从app服务移动到某个等效的服务产品在其他一些云平台中,您需要花时间了解它的工作原理,然后在新的地方重新配置它。
Docker不会消除将您的应用部署到云提供商(如azure)的需要。云提供商为您提供部署应用程序的基础架构或平台。如果您没有自己的服务器来部署应用程序,则无论您是否使用docker,都需要这样做。
Docker使应用程序的部署更加可预测和简单,因为它在应用程序和用于运行应用程序的计算机之间提供了大量隔离。
如今,使用Docker和云平台部署应用程序非常受欢迎。当您使用Docker时,可以确信相同的应用程序映像将能够在不同的平台上运行,因此您可以在不同的提供程序(甚至私有服务器)之间切换,而无需修改您的应用程序。