容器技术入门指南
1. 容器技术概述
1.1 传统部署与容器化应用的区别
软件应用通常依赖于运行时环境提供的其他库、配置文件或服务。传统的软件应用运行时环境是物理主机或虚拟机,应用依赖项作为主机的一部分进行安装。
例如,一个Python应用程序需要访问实现TLS协议的公共共享库。传统上,系统管理员在安装Python应用程序之前会安装提供该共享库的所需软件包。
传统部署的软件应用的主要缺点是应用的依赖项与运行时环境纠缠在一起。当对基础操作系统(OS)进行任何更新或补丁时,应用程序可能会崩溃。例如,对TLS共享库的操作系统更新移除了TLS 1.0作为支持的协议,这会导致已部署的Python应用程序崩溃,因为它是为使用TLS 1.0协议进行网络请求而编写的。这迫使系统管理员回滚操作系统更新以保持应用程序运行,从而阻止其他应用程序使用更新后软件包的优势。
因此,开发传统软件应用的公司可能需要进行全套测试,以保证操作系统更新不会影响主机上运行的应用程序。此外,传统部署的应用程序在更新相关依赖项之前必须停止。为了最大限度地减少应用程序停机时间,组织设计并实施复杂的系统来提供应用程序的高可用性。在单个主机上维护多个应用程序通常变得很麻烦,任何部署或更新都有可能破坏组织的某个应用程序。
1.2 容器化应用的优势
软件应用也可以使用容器进行部署。容器是一组与系统其他部分隔离的一个或多个进程。容器提供了许多与虚拟机相同的好处,如安全性、存储和网络隔离。容器需要的硬件资源要少得多,并且启动和终止速度很快。它们还隔离了应用程序的库和运行时资源(如CPU和存储),以最大限度地减少任何操作系统更新对主机操作系统的影响。
超级会员免费看
订阅专栏 解锁全文
937

被折叠的 条评论
为什么被折叠?



