未来架构师的平台战略范例(3)_DOCKER

时间:2023-02-04 19:41:58

未来架构师的平台战略范例(3)

  

作者:高焕堂,misoo.tw@qq.com   

首页:Back

下一篇:《未来架构师》的平台战略范例(4):大数据 

                                      

主题:如何构思Docker云平台?



一、介绍Docker容器(container)的发展

Docker的角色

  在过去的3年来,计算机云平台的Docker容器(container)技术,可说是红透半天边,而且势如破竹、蔚为风潮,正在强力改变云(cloud)服务的世界。这跟半世纪前,海上船运业的容器(集装箱)风潮,对整个产业的革命性改变,其力道来源和产生经济效益,可说具有异曲同工之妙。 

回顾半世纪前的船运集装箱风潮

  在半世纪之前,容器(集装箱)发挥了巨大的力量,改变了整个运输产业,也改变了人们的生活。容器(集装箱)的威力是来自于它提供了一致的接口,简化了运输业的工具。例如以前,在容器(集装箱)尚未普及之前,在公路上,必须为汽车业而设计特殊的拖车;在港口码头,也必须为木材业而设计特殊的卸货吊车及仓库等等。这些特殊设计对于运输管理、港口管理、仓储管理等都是很麻烦的事。有了容器(集装箱)之后,就出现了专门运容器(集装箱)的容器轮,也有专门拖容器(集装箱)的拖车,高速公路的弯曲度也因容器(集装箱)拖车的安全而修正,仓库的管理也变得很单纯。容器不一定带给汽车业、木材业、玩具业带来直接的方便,也许反而带来不方便(如大汽车必须拆解开来才能装进容器里)。但是运输业等获得好处,所以运输业会很乐意把容器拱起来,促成容器的革命性风潮。

  将之对应到Docker风潮,可知道Docker容器(集装箱)的效益在于:让所有云服务都有一致的操作(operation)接口,包括部署、管理等方式。众多云平台就像众多码头一样,都使用一致的方式来操作容器(集装箱),例如卸货器具、拖车等。Docker公司的Johnston曾说道:“你将不再需要使用各项单独的IT管理工具来分别进行App的管理、部署、监控和扩容等功能操作,在整个企业内这些操作都可得到一致性、统一性”。 

从<国王的皮鞋>领悟Docker容器(集装箱)的经济效益

  古代有一位国王在它的国境里视察,因为路面崎岖不平,还有很多碎石头,刺得国王的脚又痛又麻。

 

  回到了王宫后,他下了一道命令,要将国内所有的道路都铺上一层牛皮。让他自己和]全国的人走路不再受刺痛之苦。众大臣听了国王的话都一筹莫展,知道这很难。即便杀尽国内所有的牛,也凑不到足够的牛皮来铺路,而且花费昂贵。这时,一个聪明的仆人向国王建言:可以试着用牛皮将脚包起来,大王的脚就不会忍受痛苦了。国王听道而顿悟了,便收回命令,采纳了建议,于是,皮鞋就这样发明了出来了。

  我想,大家一定都听说过上述的皮鞋故事了。其解决脚痛不方便的方案有二:第1方案是:将所有道路都铺上一层牛皮(如VMware),实在不经济实惠。 第2方案是:用两片牛皮包住脚,这就是皮鞋(Docker集装箱)。那么,你领悟到什么呢? 至少明显知道第2方案可带来可观的经济效益。

  从上述皮鞋故事的比喻,可知道传统的虚拟化(Virtualization)技术就相当于在各道路(实体机器)上铺一层牛皮(VM, 虚拟机),然后让国王的脚(App)在牛皮(VM)上走路(执行)。传统上云平台采取虚拟化手段来满足用户个别的资源需求分配,以及确保其可用性和隔离性。然而无论是KVM还是Xen等Guest OS都很浪费资源又难于管理, 都不如Docker容器(集装箱)(皮鞋)来的更加灵活、快速和节省资源。 

Docker如何运输(Ship)容器(集装箱)?

  顾名思义,Docker就是"码头搬运工人"之意。 而容器(集装箱)的主要用途就是运输东西。所以,我们把焦点放在Docker容器(集装箱)和如何运输上,也就是从运输(Shipping)的角度来认识Docker和其容器(集装箱)。

未来架构师的平台战略范例(3)_DOCKER 

 

 

未来架构师的平台战略范例(3)_DOCKER

  由于Docker容器(集装箱)及其镜像,是由Dokckerfile文件的脚本所创建的;所以也可直接将Dockerfile传输到云平台,并依据其脚本内容而在云平台上创建新的容器(集装箱)。容器(集装箱)的Dockerfile文件和镜像两者都是模子,在各云平台上都能创建容器(集装箱)实例,并让App顺畅执行起来。

二、从复杂设计出简单框架

  物的简单,来自其元素不多(最好不超过4个),元素关系明确。例如,道尔顿(Dalton)的原子(atom)模型,只有3个元素: 质子、中子、电子。足够简单,人类可无中生有许多how-to来操作它,并藉之驾驭复杂多变的人们周遭事物。我也从知识3.0的复杂中设计出简单结构,就如同道尔顿的原子(atom),我的简单含有4个元素: 问题(problem)、愿景(vision)、假设(Hypothesis)和事实(reality)。

未来架构师的平台战略范例(3)_DOCKER

  这是我从复杂而设计出来的简单框架。在知识3.0里,像上述的的简单思维框架,并不是唯一的,而是人人都可以设计出自己的简单框架,并基于自己的简单框架,而找到许多how-to来操作这些框架。如此,即可设计出最佳方案、解决问题、驾驭复杂。例如,针对平台(platform)而言,《未来架构师》从一个产业的复杂失序(混乱无序)的现实中,设计出简单(即平台架构),然后找到许多how-to去操作它,藉之驾驭复杂,最后带来了新次序,让产业回归一个有序的状态。于是,我针对商业平台,而设计出一个简单的思维框架,其包含4项元素: 现实(reality)、序(order)、愿景(vision)和设计(design)。

未来架构师的平台战略范例(3)_DOCKER

  以上只是一个思维框架,展现了《未来架构师》如何构思平台战略,然后基于这项简单设计,以创新的how-to来操作它,藉之驾驭复杂,带来新次序,让产业回归一个有序的状态。 

三、流程演练:以运输业的集装箱为例   

 现在就来演练我设计出来的流程(how-to)。 

Step-1. 在传统基于虚拟化的云计算平台上,一切井然有序,即使从外观看来,是<乱中有序>的。如下图:

未来架构师的平台战略范例(3)_DOCKER

Step-2. 关注问题:产业失序了。随着商业环境的改变,互联网、物联网等愈来愈普及,操作技术和工具也变化多端。此外,客户的需求更加多样化、布署要求更加迅速,维运要求更加灵活。传统重型虚拟化技术不堪负荷,导致云平台变得混乱无序了。如下图:

未来架构师的平台战略范例(3)_DOCKER

Step-3. 观想美好的愿景:盼望更具弹性、更轻量化的美好平台,让云平台恢复井然有序的状态。表示如下图:

未来架构师的平台战略范例(3)_DOCKER

Step-4. 愿景就像北极星,指引人们发现更多可通往愿景之路径。就大胆建立假设性方案,也就是通往愿景的可能路径。例如,师法自然界的造物法则:“单纯形式、不同内涵、重复组合”三项特性。以及联想到集装箱的<序中有乱>设计。项特性就俗称为:<序中有乱>。于是,Docker公司的团队设计出简单形式:Docker境像(Docker Image)。表示如下:

未来架构师的平台战略范例(3)_DOCKER

Step-5. 大胆建立假设性方案,也就是通往愿景的可能路径。例如:依循<序中有乱>而设计出了集装箱。表示如下:

未来架构师的平台战略范例(3)_DOCKER

Step-6. 基于这个简单设计(Docker境像),就可继续努力寻觅各种<how-to>来操作这些Docker境像了,例如Docker公司的团队开发了软件工具(如Docker引擎)。然后,透过这些操作来驾驭复杂,于是新平台实现了,带来新现实,回归到新次序。表示如下:

未来架构师的平台战略范例(3)_DOCKER

Step-7. 渐入佳境,迈向新平台的繁荣时期了。至今Docker境像的<序中有乱>仍然为全球的云平台服务带来美好的次序。

未来架构师的平台战略范例(3)_DOCKER

 别忘了,人人都可以设计出简单,创新how-to去建立可操作性的平台,成为企业(或产业)的平台大战略。

 

四、结语:集装箱(容器)之道、单纯与美丽

从复杂到简单(单纯与美)

  在我写的《思考软件,创新设计:A段架构师的思考技术》一书里,我特别阐述如何发挥软件集装箱的对称、单纯和美丽。依据爱因斯坦《相对论》的说法:“事物看上去是相对的,可是不要被善变的外貌所愚弄了。”摘自K.C.Cole的The Universe and the Teacup一书。

简而言之,当某事物在某种变化中不变,则称该事物具有对称性(symmetry)。也就说,当你把某个对象变换后,其形状不变的话,就找到一种对称性了。例如一个正方形,当它被旋转90度之后,就形状而言,你看不出有什么地方不同;此时你已经看到不变性了,因此找到对称性了。所以,寻找对称性也就是寻找不变性(invariance)。当你发现两个事物是对称的,就会想到两个事物幕后的不变性,它蕴含单纯和美丽。因此会想到如何表达出这个单纯美丽的密切联系。

  例如,当我们把一堆鞋子放入一只集装箱里;经由轮船运抵对岸之后,将鞋子倒出来,成为空集装箱。接着,又把一堆袜子放入该只集装箱里。此时,可观察到鞋子和袜子两项内涵(content)的对称性,其幕后的集装箱造形(form)的不变性,也蕴含了单纯和美丽。 

操作简单,搬动大山

  被尊称为“史上最伟大的平面设计师”的保罗・兰德(P. Rand)也说,我们会从最复杂的部分开始着手,最后的成品却具有<简单性>。这个减法过程本身是复杂的,然而一旦达到简单了,就能发挥杠杆作用,让人们能面对变化、掌握复杂。苹果公司的乔布斯(Jobs)也曾说到:“简单比复杂更难,因为必须努力让你的想法变得清晰明了,让它变得简单。但终究是值得的,因为只要你获得了其<简单性>,就能搬动大山了。”(Simple can be harder than complex:you have to work hard to get your thinking clean to make it simple. But it’s worth it in the end because once you get there, you can move mountains.)

~ End ~

                                      

著作:《思考软件、创新设计:A段架构师的思考技术》

演讲:创新思维框架(2016 Tid大会/北京/国家会议中心)

相关文章: 

 如何培养《未来架构师》

 《未来架构师》的平台战略范例(1):VISA信用卡

 《未来架构师》的平台战略范例(2):集装箱的序中有乱

 《未来架构师》的平台战略范例(3):Docker云平台

 《未来架构师》的平台战略范例(4):决策爱上大数据