TechTarget 原创
与虚拟机相比,容器技术具有大量的优势。我们不仅要了解容器是如何实现多云应用程序可移植性的承诺,而且也要知道其不足之处。
对于那些希望跨云平台实现应用程序可移植性的企业来说,容器技术可以是一个可行的选项。通过精心规划和使用合适的工具,IT团队是可以直面挑战并在多云环境中实现容器技术优势的。
(图片来源于网络)
为了了解在多云环境下实现应用程序可移植性的潜在好处和风险,我们可将它与它的替代解决方案虚拟机进行比较。容器与虚拟机的不同之处在于:
应用程序镜像与这些镜像中所包含的内容,以及生命周期管理等方面。
虚拟机部署要求应用程序镜像具有操作系统、中间件和应用软件的完整软件包。因此,这些镜像可以在符合应用程需求的硬件功能和资源容量(例如CPU和内存)的任何虚拟机上正常运行。只要主机服务器的虚拟机管理程序与虚拟机兼容,并且应用镜像所使用的任何都可以在云平台上使用,那么用户也就没有什么重大的执行方面问题。
另一方面,容器应用镜像并不包含操作系统或所有的中间件组件。所以,它们的正常运行主要依赖于容器主机和容器软件本身。这意味着,如果容器需要跨云供应商的不同应用程序镜像,那么它们可能会在多云环境中造成挑战。
但是,大多数容器软件都将应用打包在一个标准容器中间件集合中,然后那个容器就可以跨容器软件将要运行的任意主机上实现可移植性。只要用户能够确保每一台基础设施即服务(IaaS)主机上都部署了相同可用的操作系统和容器软件,那么这种可移植性一般来说就会正常发挥作用。但如果用户无法确保上述要求,那么容器就根本无法保持可移植性。
(图片来源于网络)
对于涉及容器技术的多云规划来说,可选择都基于相同容器主机操作系统和框架的公共云资源和私有云资源。如果用户所使用的操作系统或中间件功能并未在所有的操作系统发布版本中得到支持,那么就必须特别谨慎了。通过使用标准基,用户可能可以对其容器化的应用实现跨云平台的迁移而不会出现执行问题。否则,用户则需要避免多云环境部署或需要迁移至虚拟机。
尽管存在着一些规划方面的挑战,用户还是能够在多云部署中实现容器的一些优势。
例如在运行方面,Docker和其他容器系统会包括一个配置和参数架构,这个架构会将所有工作负载运行所需的组件都打包在一个单一的软件包中,从而更便于针对特定环境调试容器镜像。在虚拟机系统中,配置和参数都是根本不在管理范围内的——虚拟机的操作系统、驱动程序和应用程序都是完全与管理和底层主机隔离的。