请允许我做个大胆的预测:容器技术将统治世界

两种货运方式的对比:

请允许我做个大胆的预测:容器技术将统治世界

这本书的英文名称是"The Box:How the shipping container made the world smaller and the world economy bigger"

阅读此书的过程中,我已经联想到了现今逐渐流行也备受质疑的以Docker为首的容器技术;当留意到container一词出现在书名中时,我已经迫不及待地把我的观点分享给你,帮助你从一个技术圈从未提及的角度来理解容器技术。

Docker近两年成了容器技术的代言,我们做一个集装箱与容器的类比:

请允许我做个大胆的预测:容器技术将统治世界

我开始怀疑,Docker公司的创始人读过此书或研究过货运业的发展历史,并从其中汲取了灵感,其公司的Logo即是大鲸鱼上拖着集装箱。Docker的创始人堪称当代互联网界的麦克莱恩[见注释1]。

请允许我做个大胆的预测:容器技术将统治世界

容器技术正在快速改变着公司和用户创建,发布,运行分布式应用的方式,在未来5年将给云计算行业带来它应有的价值,其诱人之处包括:

资源独立、隔离

资源隔离是云计算平台的最基本需求。Docker通过linux namespace, cgroup限制了硬件资源与软件运行环境,与宿主机上的其他应用实现了隔离,做到了互不影响。不同应用或服务以“集装箱”(Container)为单位装“船”或卸“船”,“集装箱船”(运行container的宿主机或集群 )上,数千数万个“集装箱”排列整齐,不同公司、不同种类的“货物”(运行应用所需的程序、组件、运行环境、依赖)保持独立。

环境的一致性

开发工程师完成应用开发后build一个docker image,基于这个image创建的container像是一个集装箱,里面打包了各种“散件货物”(运行应用所需的程序,组件,运行环境,依赖)。无论这个集装箱在哪里:开发环境、测试环境、生产环境,都可以确保集装箱里面的“货物”种类与个数完全相同,软件包不会在测试环境缺失,环境变量不会在生产环境忘记配置,开发环境与生产环境不会因为安装了不同版本的依赖导致应用运行异常。这样的一致性得益于“发货”(build docker image)时已经密封到”集装箱“中,而每一个环节都是在运输这个完整的、不需要拆分合并的”集装箱“。

轻量化

相比传统的虚拟化技术(VM),使用Docker在cpu、memory、disk IO、network IO上的性能损耗都有同样水平甚至更优的表现。Container的快速创建、启动、销毁受到很多赞誉。

Build>请允许我做个大胆的预测:容器技术将统治世界

容器技术标准

容器相关的技术标准的诞生将促进整个大系统的各方更好的协调和兼容。

云计算平台的支持

现有云计算平台要么尽快支持容器技术,要么被新的支持容器的云计算平台超越。中国香港、上海、深圳、青岛、天津在上世纪60~80年代抓住了集装箱发展的机遇,成为全球供应链上的主要枢纽港,2014年仍处在全球10个最大吞吐量集装箱港之列。

使用容器的习惯逐渐形成

培养应用发布者使用容器发布应用的习惯是非技术问题,也需要时间去沉淀。全球运输业花了近15年培养出了发货商使用集装箱的习惯,在互联网行业不需要这么慢。

行业规模

Mesos, Kubernetes等容器管理方案将助力 “巴拿马级”,“马六甲级”[见注释2]的容器“轮船”。Mesos, Kubernetes等成熟通用的集群管理方案将为你做好大规模分布式容器的启停、调度、编排、高可用。与现有的大部分互联网服务类似,容器依赖于规模,云计算平台服务的客户越多,运行的容器规模越大,构建整套容器运行体系的固定成本就被分摊得越薄,客户使用云计算服务的资费就能降下来。