当前位置:
文档之家› 集装箱式架构设计的十个学习步骤
集装箱式架构设计的十个学习步骤
• 在许多革命性转折里,经常出现集装箱 的身影;它就像幸运草一般,总是带来 许多幸福和财运。 • 现在Docker风起云涌,再现集装箱身影, 如果开放视野、大力支持它,持续发挥 它的潜能和力量,则幸运草就会出现在 我们身旁了。
基于软硬整 2.2、国王的皮鞋 与Docker 集装箱 合观点
• 古代有一位国王在它的国境里视察,因为 路面崎岖不平,还有很多碎石头,刺得国 王的脚又痛又麻。
传统铺牛皮 (虚拟层)
Docker皮鞋 (集装箱)
• Docker的焦点在于<国王的脚>而不是像 传统虚拟化思维的焦点在于让国王脚疼 的<道路>。 • 为什么Docker集装箱能提升App的执行 效能呢? 因为Docker属于OS层级的虚拟 化。
• 在传统hypervisor虚拟化技术哩,VM透 过一个中介层,间接执行于Host OS上。 • 而Docker集装箱(也是一个小VM)则执行 于Host-OS的用户空间,直接执行于 Host OS上。所以效率提高了。
隔离性
• 从容器里而观之,它是一个完整的Linux 的世界。在整个平台而观之,容器运行于 一个普通的用户空间进程,namespace创 造了这种映射和隔离效果,云平台承载着 一个个容器,就如同造物者创造了许多世 外桃源一般。
• 这跟半世纪前,海上船运业的集装箱风潮 ,对整个产业的革命性改变,其力道来源 和产生经济效益,可说具有异曲同工之妙 。
• 为了配合集装箱化运输时代的来临,海运 事业的整体运作型态也产生了重大的转变 ,无论在海上运送、码头作业以及陆运转 接上,都有革命性的改变。
• 陆上拖车运输业应时而兴,扮演极为重要 的角色,以集装箱拖车配合集装箱船运输 ,具有简化包装、防止窃盗、加速货物搬 运及便利关务检验等优点,使集装箱运输 作业更加灵活。
• 在这新世代里,除了拿Docker集装箱来 打包微服务(micro-service)来满足需求 碎片之外。我们还要以广大的视野、创 新的思维,将碎片组合出各式各样、气 象万千的商业服务。
• 就像飞机设计师一样,把一群各自<不 会飞>的模块(如轮胎、引擎、机翼、油 箱等),以创新模式将它们组合起来,竟 然整体就<能飞>上天空了。
简介
• 这种集装箱式架构设计,随着近年来 Docker集装箱技术的流行,可说红透半天 边,而且势如破竹、蔚为风潮,正在强力改 变终端与云平台的整体设计理念和方法。
简介
• 本课程分为两个阶段,第一阶段以个人的学 习路径为主轴,依循十个学习步骤,循序渐 进建立扎实的根基。第二阶段,则依据企业 软件开发流程里的先后环节来作教学。阐述 各环节的思想、模式、技术和实践要点。并 以<Android + Docker>的端云一体化架构 设计为例,阐述企业逻辑分析、插件和集装 箱设计、实际开发愈部属方法等。
• 例如可建立一个cgroup来限制某个(容器) 进程对CPU的占用率不能超过50%。而 Docker则在LXC基础上,加上Docker 境 像管理方式,就成为Docker集装箱了。
LXC
namespace
Linux 内核
Docker 集装箱
App Image Bins/Libs Image
namespace
系统 碎片 (轮胎)
环境 变因 沙滩 (道路 )
系统 碎片 (轮胎)
环境 变因 沙滩 (道路 )
其他 碎片
其他 变因
?
沙滩 ?
1.2 软件碎片( 插件 ) 基于软硬整 来自何处呢?
合观点
插件(软件碎片)来自 变化(Change)
碎片或插件(Plug-in)的 背后都是变(化)
以SurfaceView + Camera(摄像头)为例 • 软件SurfaceView代表手机屏幕 • 软件Camera代表摄像头
E T
I
变化(02):屏幕显示2D绘图
变化(02):屏幕显示2D绘图
E
I
T
变化(03):屏幕显示MP4视频
变化(03):屏幕显示MP4视频
E T1
I
T2
其他 碎片
其他
?
沙滩
• 将医院加护(重症)病房的仪器联结到护士站 的Android TV,让患者的病情及时传送到 TV上。 • 同时,TV也主动再将讯息及时传送到医生 的手机或Pad上,让医生能进行实时性的决 策,提供更高质量的服务。
接口
接口
接口
接口
接口
接口
接口
集装箱
接口(序) 内部 (变化)
集装箱
接口(序)
内部 (变化)
沙滩
<引擎>
沙滩
<引擎>
<轮胎> (碎片)
沙滩
<Engine>
<Interface>
<Tire> (碎片)
沙滩
<E>
<I>
<T>
沙滩
<E>
<I>
<T>
沙滩
<E>
<I>
<T>
沙滩
环境 变因 沙滩 (道路 )
• 回到了王宫后,他下了一道命令,要将国内 所有的道路都铺上一层牛皮。让他自己和全 国的人走路不再受刺痛之苦。 • 然而,即便杀尽国内所有的牛,也凑不到足 够的牛皮来铺路,而且花费昂贵。
• 这时,一个仆人向国王建言:可以用牛皮将 脚包起来,大王的脚就不会忍受痛苦了。 • 国王听道而顿悟了,便收回命令,采纳了建 议,于是,皮鞋就这样发明了出来了。
T2
I(序)
T
I(序)
T
I(序)
T
I(序)
T
• 外形简单 • 内容多变 • 无限组合
例如:原子
例如:原子
• 化学元素由原子构成 道尔顿
道尔顿
• 不同元素原子的性质 各不相同
道尔顿
道尔顿
• 不同元素化合时,原子 以简单整数比结合。
道尔顿
水分子
道尔顿
Q&A
Part-2
<Docker集装箱>
1.3 软件碎片的组合 基于软硬整
合观点
• 试想,在智慧城市里,有两个系统模块: 智能家庭和交通车联网。 • 两者之间通过网络通信机制来互通。
智慧 家庭
通信协议
交通 车联网
智慧 家庭
通信协议
交通 车联网
• 传统方法:两个团队先约定,商讨一个双方 都接受的通信协议。
先搞定 通信协议
智慧 家庭 交通 车联网
用户空间
Linux 内核
进程 用户空间
进程
Linux 内核
进程 用户空间
LXC
namespace
Linux 内核
• LXC在目前的进程管理框架上增加资源的 管理和隔离机制。 • LXC包集成这些linux内核机制提供一个用 户空间容器对象, 即是针对某一应用提 供资源隔离和控制的轻量虚拟系统。
通信协议
• 然后,双方就依据这项通信协议,分别开发 各自的模块。
智慧 家庭
通信协议
交通 车联网
• 不良结果:各模块都依赖于(Depend on)通 信协议,导致两个模块也紧密相依了。 • 三个东西紧密相连在一起的。一旦通信协议 改变了,两边的模块都必须改变。 • 产生的牵一发而动全身的涟漪效应。
Linux 内核
Docker 集装箱
namespace
Linux 内核
• Docker借鉴了虚拟机(VM)的模式,让用 户像管理VM一样的管理他们的集装箱镜 像。
基于软硬整 2.4、Namespace 与 Cgroup 的角色 合观点
• 简而言之,LXC基于namespace的隔 离机制和cgroup的资源控制功能,来 管理容器。
(摘自百
• 从上述皮鞋故事的比喻,可知道传统的 虚拟化(virtualization)技术就相当于在 各道路(实体机器)上铺一层牛皮(VM, 虚 拟机),然后让国王的脚(App)在牛皮 (VM)上走路(执行)。
• 传统上云平台采取虚拟化手段来满足用 户个别的资源需求分配,以及确保其可 用性和隔离性。 • 然而无论是KVM还是Xen等Guest OS都 很浪费资源又难于管理, 都不如Docker 集装箱(皮鞋)来的更加灵活、快速和节省 资源。
• Docker对container的使用基本是建立唉 LXC基础之上的,然而LXC存在的问题是 难以移动 - 难以通过标准化的模板制作、 重建、复制和移动 container。
• LXC仰赖namespace来实现隔离性。让 每个容器都有自己的命名空间,确保不 同容器之间不会相互影响,让每个容器 成为拥有自己进程和网络空间的虚拟环 境,都成为一个独立运行的单位。 • 此外,LXC藉由内核的cgroup来对各个 容器(的进程)使用的系统资源做严格的限 制。
的趋势、技术与架构
基于软硬整合观点
By高焕堂
高焕堂的著作
基于软硬整 2.1、集装箱(Container) 的经济效益 合观点
Docker集装箱
• 自从2014年以来,Docker 的集装箱 (container)技术,可说是红透半天边,而 且势如破竹、蔚为风潮,正在强力改变云 (cloud)服务的世界。
智慧 家庭
子类
子类
交通 车联网
通信 协议 E&I E&联网
碎片的组合
碎片的组合
碎片的组合
E&I
T
碎片的组合
E&I
T
T
碎片的组合
E&I E&I
T
T
T
碎片的组合
E&I E&I