- 云原生架构:从技术演进到最佳实践
- 贺阮 史冰迪
- 675字
- 2022-05-06 13:29:45
4.6 容器与PaaS
传统PaaS为了实现运行的一致性,需要为每种语言、每个框架都维护一个包。而且,因为本地环境和PaaS环境的差异性,在本地环境中调试没问题的包,要想在PaaS环境中运行起来,很可能需要做很多修改,因此维护成本过高。
容器将应用及其所依赖的框架、中间件等运行环境打包到镜像中,因此容器应用在运行时不再依赖宿主机提供开发语言等环境支持。作为基于容器的PaaS平台,用户提交到PaaS平台的不再是代码,而是容器镜像,从而将应用与PaaS平台进行了解耦,使PaaS平台无须像Cloud Foundary一样准备各种语言支持和复杂的应用打包过程。容器将应用运行所需的整个操作系统直接打包,来保证远端PaaS环境和本地环境的完全一致性,从根本上解决了一致性问题,所以容器技术将会是新一代PaaS平台的核心基石。
综上所述,容器的最终目标是在单机上为应用提供相互隔离、轻量化、简便化的运行环境。
运行环境封装:Docker容器诠释了应用“集装箱”的概念——Docker容器作为一个“集装箱”,可以装指定的软件和库,以及任意环境配置。当开发人员和运维人员在部署与管理应用时,只需要把容器运行起来,不用关心容器里面是什么。这种标准的应用封装形式,从真正意义上打破了原先虚拟机镜像格式、大小等的束缚。因此,容器让应用以一种自包含且一致的形式部署在任何环境中。
资源轻量化:容器的细粒度为应用提供了更有效的资源供给和管理,采用 rootfs 帮助应用做到快速启动及伸缩。
运维简便化:对于原来需要在机房里管理计算设备、网络设备、存储设备的 IT 运维工程师来讲,容器提供了一种简便的运维模式。
然而,容器技术也有其局限性,主要体现在应用必须运行于单机上,无法支持跨主机的分布式应用的打包和部署。