第1章 容器发展之路

本文章来源为《深入浅出Docker》(异步图书),为读书笔记。
读文本章大概需要10分钟,主要的内容是介绍基于应用开销所衍生出的虚拟机技术和容器化技术的背景。以了解性为主,不包含技术层面的知识,可以放心食用。

1.1 落后的旧时代

业务是基于应用(Application)运转的。如果应用出现故障,业务也就无法正常运行,甚至会导致商业公司的破产。这种情况是真实的,甚至每天都在发生。

大部分应用是运行在服务器之上的。曾经,每个服务器只能运行单一应用。Windows和Linux操作系统都没有相应的技术手段来保证在一台服务器上稳定而安全地同时运行多个应用。

在那个时代,经常会出现这样一幕:每次业务部门想要增加一个新的应用时,IT部门就需要去采购一个新的服务器。大部分情况下,没有人知道新增应用所需的服务器性能究竟是怎样的,这意味着IT部门需要凭借经验去猜测所购买的服务器型号和规格。

因此,IT部门在采购的时候就不得不买那些性能大幅优于业务需求的服务器。毕竟无论是IT部门还是业务部门,都不想看到服务器性能不足的情况出现。因为服务器性能不足,可能会导致某些交易失败,而交易失败会使得公司客户流失、收益下降,所以IT部门通常采购的都是更大、更好的服务器。这种做法导致了大部分服务器长期运行在他们额定负载5%~10%的水平区间之内。这对公司资产和资源是一种极大的浪费!

1.2 你好,VMware!

为了解决上面的问题,VMware公司给全世界带来了一个礼物——虚拟机(VM)。然后几乎是一夜之间,世界就变得美好了!人们终于拥有了一种允许多应用能够稳定、安全地同时运行在一个服务器中的技术。

虚拟机是一种具有划时代意义的技术!每当业务部门需要增加应用的时候,IT部门无须采购新的服务器。取而代之的是,IT部门会尝试在现有的,并且有空闲性能的服务器上部署新的应用。

突然之间,人们发现这种技术能够让现有的资产(如服务器)拥有更大的价值,从而最终为公司节省大量的资金支出。

1.3 虚拟机的不足

实际上,虚拟机最大的缺点就是依赖其专用的操作系统(OS)OS会占用额外的CPU、RAM和存储,这些资源本可以用于运行更多的应用。每个OS都需要补丁和监控。另外在某些情况下,OS需要许可证才能运行。这对运营成本(OPEX)和资金性支出(CAPEX)都是一种浪费。

虚拟机技术也面临着一些其他挑战。比如虚拟机启动通常比较慢,并且可移植性比较差——虚拟机在不同的虚拟机管理器(Hypervisor)或者云平台之间的迁移要远比想象中困难。

1.4 你好,容器!

长期以来,像谷歌(Google)这样的大规模Web服务(Big Web-Scale)玩家一直采用容器(Container)技术解决虚拟机模型的缺点。

容器模型其实跟虚拟机模型相似,其主要的区别在于,容器的运行不会独占操作系统。实际上,运行在相同宿主机上的容器是共享一个操作系统的,这样就能够节省大量的系统资源,如CPU、RAM以及存储。容器同时还能节省大量花费在许可证上的开销,以及为OS打补丁等运维成本。最终结果就是,容器节省了维护成本和资金成本。

同时容器还具有启动快和便于迁移等优势。将容器从笔记本电脑迁移到云上,之后再迁移到数据中心的虚拟机或者物理机之上,都是很简单的事情。

1.5 Linux容器

现代的容器技术起源于Linux,是很多人长期努力持续贡献的产物。举个例子,Google LLC就贡献了很多容器相关的技术到Linux内核当中。没有大家的贡献,就没有现在的容器。

近几年来,对容器发展影响比较大的技术包括内核命名空间(Kernel Namespace)、控制组(Control Group)、联合文件系统(Union File System),当然更少不了Docker。再次强调一遍,当今的容器生态环境很大程度上受益于强大的基金会,而基金会是由很多独立开发者以及公司组织共同创建并维护的。感谢你们!

虽然容器技术已经如此出色,但对于大部分组织来说,容器技术的复杂度是阻止其实际应用的主要原因。直到Docker技术横空出世,容器才真正被大众所接受。

1.6 你好,Docker!

本书会在第2章中讨论更多有关Docker的细节。但在这里,不得不感叹Docker确实是使Linux容器技术得到广泛应用的技术。换个角度来说,是Docker这家公司使容器变得简单。

1.7 Windows容器

在过去的几年中,微软(Microsoft Corp.)致力于Docker和容器技术在Windows平台的发展。

在本书成稿之际,Windows容器已经能在Windows 10和Windows Server 2016平台上使用了。为了实现这个目标,微软跟Docker公司、社区展开了深入合作。

实现容器所需的核心Windows内核技术被统称为Windows容器(Windows Container)。用户空间是通过Docker来完成与Windows容器之间交互的,这使得Docker在Windows平台上的使用体验跟在Linux上几乎一致。那些熟悉Linux Docker工具的研发人员和系统管理员,在切换到Windows容器之后也会很快适应。

本书修订版的大部分练习都包含了Linux和Windows的示例。

1.8 Windows容器vs Linux容器

运行中的容器共享宿主机的内核,理解这一点是很重要的**。这意味着一个基于Windows的容器化应用在Linux主机上是无法运行的。读者也可以简单地理解为Windows容器需要运行在Windows宿主机之上,Linux容器(Linux Container)需要运行在Linux宿主机上。但是,实际场景要比这复杂得多……

在本书撰写过程中,在Windows机器上运行Linux容器已经成为可能。例如,Windows版Docker(由Docker公司提供的为Windows 10设计的产品)可以在Windows容器模式和Linux容器模式之间进行切换。这是一个正在快速发展的领域,如果读者想要了解,需要查阅 Docker 最新文档。

1.9 Mac容器现状

迄今为止,还没有出现Mac容器(Mac Container)

但是读者可以在Mac系统上使用Docker for Mac来运行Linux容器。这是通过在Mac上启动一个轻量级Linux VM,然后在其中无缝地运行Linux容器来实现的。这种方式在开发人员中很流行,因为这样可以在Mac上很容易地开发和测试Linux容器。

1.10 Kubernetes

Kubernetes是谷歌的一个开源项目,并且开源之后迅速成为容器编排领域的领头羊。有一种很流行的说法:Kubernetes是保证容器部署和运行的软件体系中很重要的一部分。

在本书撰写时,Kubernetes已经采用Docker作为其默认容器运行时(container runtime),包括Kubernetes启动和停止容器,以及镜像的拉取等。但是,Kubernetes也提供了一个可插拔的容器运行时接口CRI。CRI能够帮助Kubernetes实现将运行时环境从Docker快速替换为其他容器运行时。在未来,Kubernetes中的默认容器运行时可能由Docker替换为containerd。关于containerd在本书后续部分有更详细的介绍。

关于Kubernetes,读者现在需要了解的就是——Kubernetes是Docker之上的一个平台,现在采用Docker实现其底层容器相关的操作

1.11 本章小节

在过去,每当业务部门想运行新的应用时,IT部门就需要购买新的服务器来满足需求。接下来VMware的出现终结了这个时代,使得IT部门可以更高效地利用现有的和新的机器资源,产生更大的价值。但即使VMware和虚拟机模型这么优秀的技术,也存在其缺点。在VMware和Hypervisor成功之后,出现了更高效并且更轻量级的虚拟化技术——容器。但容器技术在发展之初是很难应用于生产环境的,并且只在拥有Linux内核工程师的Web巨头的数据中心内才能看到实际应用。接下来Docker公司出现了,突然之间容器虚拟化技术开始被大众广泛使用。

说到Docker,接下来就请读者跟随本书一起,来了解Docker是什么,以及为什么要使用Docker吧!

摘录来自
深入浅出Docker(异步图书)
Nigel Poulton(奈吉尔·波尔顿)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,456评论 5 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,370评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,337评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,583评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,596评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,572评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,936评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,595评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,850评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,601评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,685评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,371评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,951评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,934评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,167评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,636评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,411评论 2 342

推荐阅读更多精彩内容