版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、的十個(gè)學(xué)習(xí)步驟簡(jiǎn)介 在需求、數(shù)據(jù)和軟件愈來愈碎片化的趨勢(shì)下,集裝箱(如Docker Container)包裝了微服務(wù)(Micro-Service)成為主流。這些微服務(wù)在運(yùn)行時(shí)間(Run-time)經(jīng)常需要?jiǎng)討B(tài)組合成為各式各樣的App來支撐企業(yè)多變的業(yè)務(wù)流程。簡(jiǎn)介 這種集裝箱式架構(gòu)設(shè)計(jì),隨著近年來Docker集裝箱技術(shù)的流行,可說紅透半天邊,而且勢(shì)如破竹、蔚為風(fēng)潮,正在強(qiáng)力改變終端與云平臺(tái)的整體設(shè)計(jì)理念和方法。簡(jiǎn)介 本課程分為兩個(gè)階段,第一階段以個(gè)人的學(xué)習(xí)路徑為主軸,依循十個(gè)學(xué)習(xí)步驟,循序漸進(jìn)建立扎實(shí)的根基。第二階段,則依據(jù)企業(yè)軟件開發(fā)流程里的先后環(huán)節(jié)來作教學(xué)。闡述各環(huán)節(jié)的思想、模式、技術(shù)和實(shí)踐
2、要點(diǎn)。并以的端云一體化架構(gòu)設(shè)計(jì)為例,闡述企業(yè)邏輯分析、插件和集裝箱設(shè)計(jì)、實(shí)際開發(fā)愈部屬方法等?;谲浻舱嫌^點(diǎn)軟硬整合觀點(diǎn)碎片化潮流下的架構(gòu)新思維- 變化、碎片與集裝箱Part-1高煥堂的著作基于軟硬整合觀點(diǎn)1.1 碎片(Fragment) 來自何處呢?碎片來自變化(Change)碎片或(表現(xiàn)為軟件的) 插件(Plug-in)的背后 都是變(化)沙灘沙灘沙灘變化變化變化變化面對(duì)環(huán)境變化分離出碎片!變化碎片碎片變化碎片變化碎片分離出變化碎片變化接口碎片接口變化接口變化碎片碎片變化接口碎片(變化)接口碎片(變化)接口碎片(變化)接口集裝箱接口內(nèi)部(變化)集裝箱接口(序)內(nèi)部(變化)接口(序)沙灘沙
3、灘 沙灘 (碎片) 沙灘(碎片)沙灘沙灘沙灘沙灘環(huán)境環(huán)境變因變因( (道路道路) )沙灘環(huán)境環(huán)境變因變因( (道路道路) )系統(tǒng)系統(tǒng)碎片碎片( (輪胎輪胎) )沙灘環(huán)境環(huán)境變因變因( (道路道路) )系統(tǒng)系統(tǒng)碎片碎片( (輪胎輪胎) )沙灘其他其他變因變因? ?其他其他碎片碎片? ?請(qǐng)您找找看!基于軟硬整合觀點(diǎn)1.2 軟件碎片(插件) 來自何處呢?插件(軟件碎片)來自變化(Change)碎片或插件(Plug-in)的 背后都是變(化)以SurfaceView + Camera(攝像頭像頭)為例 軟件SurfaceView代表手機(jī)屏幕 軟件Camera代表攝像頭SurfaceViewCamera
4、以SurfaceView + Camera(攝像頭像頭)為例 Camera攝像頭取得視像,然后將視像傳遞到SurfaceView屏幕上呈現(xiàn)出來。SurfaceViewCamera(視像)WebCameraSurfaceViewCamera(視像)WebCameraCameraMP4視頻PlayerSurfaceView變化SurfaceView變化變化SurfaceView變化變化變化SurfaceView變化SurfaceView面對(duì)環(huán)境變化分離出碎片!變化碎片-xSurfaceView變化SurfaceView碎片-x碎片-ySurfaceView變化碎片-x碎片-y碎片-zSurface
5、View變化碎片-x碎片-yApp-zSurfaceView變化App-y變化App-z碎片-xSurfaceView變化App-xApp-y變化App-z變化碎片SurfaceView變化App-z接口接口App-z變化接口(插件)變化變化EIT變化(01):屏幕顯示3D繪圖EIT變化變化(01):屏幕顯示3D繪圖變化(02):屏幕顯示2D繪圖變化EIT變化(02):屏幕顯示2D繪圖變化(03):屏幕顯示MP4視頻變化EIT1T2變化(03):屏幕顯示MP4視頻沙灘其他其他其他其他碎片碎片? ?請(qǐng)您找找看!變化例如: 將醫(yī)院加護(hù)(重癥)病房的儀器聯(lián)結(jié)到護(hù)士站的Android TV,讓患者的病
6、情及時(shí)傳送到TV上。 同時(shí),TV也主動(dòng)再將訊息及時(shí)傳送到醫(yī)生的手機(jī)或Pad上,讓醫(yī)生能進(jìn)行實(shí)時(shí)性的決策,提供更高質(zhì)量的服務(wù)。 變化基于軟硬整合觀點(diǎn)1.3 軟件碎片的組合 試想,在智慧城市里,有兩個(gè)系統(tǒng)模塊: 智能家庭和交通車聯(lián)網(wǎng)。 兩者之間通過網(wǎng)絡(luò)通信機(jī)制來互通。智慧家庭交通車聯(lián)網(wǎng)通信協(xié)議智慧家庭交通車聯(lián)網(wǎng)通信協(xié)議通信協(xié)議智慧家庭交通車聯(lián)網(wǎng)先搞定通信協(xié)議 傳統(tǒng)方法:兩個(gè)團(tuán)隊(duì)先約定,商討一個(gè)雙方都接受的通信協(xié)議。 然后,雙方就依據(jù)這項(xiàng)通信協(xié)議,分別開發(fā)各自的模塊。智慧家庭交通車聯(lián)網(wǎng)通信協(xié)議 不良結(jié)果:各模塊都依賴于(Depend on)通信協(xié)議,導(dǎo)致兩個(gè)模塊也緊密相依了。 三個(gè)東西緊密相連在一起
7、的。一旦通信協(xié)議改變了,兩邊的模塊都必須改變。 產(chǎn)生的牽一發(fā)而動(dòng)全身的漣漪效應(yīng)。智慧家庭交通車聯(lián)網(wǎng)變化交通車聯(lián)網(wǎng)通信協(xié)議 父類子類子類變化碎片智慧家庭交通車聯(lián)網(wǎng)通信協(xié)議 變化智慧家庭EI碎片T智慧家庭交通車聯(lián)網(wǎng)變化通信協(xié)議父類子類子類智慧家庭變化碎片交通車聯(lián)網(wǎng)通信協(xié)議智慧家庭變化碎片交通車聯(lián)網(wǎng)ET通信協(xié)議I交通車聯(lián)網(wǎng)通信協(xié)議父類子類子類 父類子類子類智慧家庭變化變化碎片碎片交通車聯(lián)網(wǎng)通信協(xié)議父類子類子類 父類子類子類智慧家庭變化碎片碎片交通車聯(lián)網(wǎng)通信協(xié)議E&IT E&I T智慧家庭碎片的碎片的組合 碎片的組合 變化碎片的組合 E&I變化T碎片的組合 變化E&IT變化TE&IE&I變化變化變化碎
8、片的組合 TTTE&IE&I變化變化變化碎片的組合 TTT基于軟硬整合觀點(diǎn)1.4 軟件的序中有亂 (集裝箱特性)變化ITxITy變化IT1T2變化亂(變化)I(序)TI(序)亂TI(序)亂TI(序)亂T亂序中有亂 外形簡(jiǎn)單 內(nèi)容多變 無限組合集裝箱特性:例如:原子 化學(xué)元素由原子構(gòu)成道爾頓例如:原子(摘自百度文庫摘自百度文庫) 不同元素原子的性質(zhì) 各不相同道爾頓(摘自百度文庫摘自百度文庫)道爾頓序中有亂序中有亂 不同元素化合時(shí),原子 以簡(jiǎn)單整數(shù)比結(jié)合。道爾頓道爾頓水分子序中有亂道爾頓序中有亂序中有亂Q&A基于軟硬整合觀點(diǎn)軟硬整合觀點(diǎn)Part-2的趨勢(shì)、技術(shù)與架構(gòu)高煥堂的著作Docker: Do
9、cker: 碼頭工人碼頭工人 ( (集裝箱搬運(yùn)工集裝箱搬運(yùn)工) )基于軟硬整合觀點(diǎn)Docker集裝箱 自從2014年以來,Docker 的集裝箱(container)技術(shù),可說是紅透半天邊,而且勢(shì)如破竹、蔚為風(fēng)潮,正在強(qiáng)力改變?cè)?cloud)服務(wù)的世界。 這跟半世紀(jì)前,海上船運(yùn)業(yè)的集裝箱風(fēng)潮,對(duì)整個(gè)產(chǎn)業(yè)的革命性改變,其力道來源和產(chǎn)生經(jīng)濟(jì)效益,可說具有異曲同工之妙。 為了配合集裝箱化運(yùn)輸時(shí)代的來臨,海運(yùn)事業(yè)的整體運(yùn)作型態(tài)也產(chǎn)生了重大的轉(zhuǎn)變,無論在海上運(yùn)送、碼頭作業(yè)以及陸運(yùn)轉(zhuǎn)接上,都有革命性的改變。 陸上拖車運(yùn)輸業(yè)應(yīng)時(shí)而興,扮演極為重要的角色,以集裝箱拖車配合集裝箱船運(yùn)輸,具有簡(jiǎn)化包裝、防止竊盜、
10、加速貨物搬運(yùn)及便利關(guān)務(wù)檢驗(yàn)等優(yōu)點(diǎn),使集裝箱運(yùn)輸作業(yè)更加靈活。 集裝箱帶來的商業(yè)利益,其直接受惠是運(yùn)輸業(yè)者,并不是貨物制造者。 所以集裝箱內(nèi)部的包裝業(yè),如紙盒制造業(yè)、打包工人等;拖車汽車廠、拖車行、拖車司機(jī);還有造船廠、海運(yùn)公司、碼頭工人等都會(huì)迅速蓬勃發(fā)展起來。 將之對(duì)應(yīng)到Docker風(fēng)潮,可知道Docker集裝箱的效益在于:讓所有云服務(wù)都有一致的操作(operation)界面,包括部署、管理等方式。 Docker集裝箱帶來的商業(yè)利益,直接受惠是軟件管理者或稱維運(yùn)者(operator),例如軟件測(cè)試工具業(yè)者、測(cè)試人員等。 在這新世代里,除了拿Docker集裝箱來打包微服務(wù)(micro-servi
11、ce)來滿足需求碎片之外。我們還要以廣大的視野、創(chuàng)新的思維,將碎片組合出各式各樣、氣象萬千的商業(yè)服務(wù)。 就像飛機(jī)設(shè)計(jì)師一樣,把一群各自的模塊(如輪胎、引擎、機(jī)翼、油箱等),以創(chuàng)新模式將它們組合起來,竟然整體就能飛上天空了。 在許多革命性轉(zhuǎn)折里,經(jīng)常出現(xiàn)集裝箱的身影;它就像幸運(yùn)草一般,總是帶來許多幸福和財(cái)運(yùn)。 現(xiàn)在Docker風(fēng)起云涌,再現(xiàn)集裝箱身影,如果開放視野、大力支持它,持續(xù)發(fā)揮它的潛能和力量,則幸運(yùn)草就會(huì)出現(xiàn)在我們身旁了。基于軟硬整合觀點(diǎn)國(guó)王的皮鞋 與Docker集裝箱 古代有一位國(guó)王在它的國(guó)境里視察,因?yàn)槁访嫫閸绮黄剑€有很多碎石頭,刺得國(guó)王的腳又痛又麻。(摘自百度文庫) 回到了王宮后
12、,他下了一道命令,要將國(guó)內(nèi)所有的道路都鋪上一層牛皮。讓他自己和全國(guó)的人走路不再受刺痛之苦。 然而,即便殺盡國(guó)內(nèi)所有的牛,也湊不到足夠的牛皮來鋪路,而且花費(fèi)昂貴。 這時(shí),一個(gè)仆人向國(guó)王建言:可以用牛皮將腳包起來,大王的腳就不會(huì)忍受痛苦了。 國(guó)王聽道而頓悟了,便收回命令,采納了建議,于是,皮鞋就這樣發(fā)明了出來了。(摘自百度文庫) 從上述皮鞋故事的比喻,可知道傳統(tǒng)的虛擬化(virtualization)技術(shù)就相當(dāng)于在各道路(實(shí)體機(jī)器)上鋪一層牛皮(VM, 虛擬機(jī)),然后讓國(guó)王的腳(App)在牛皮(VM)上走路(執(zhí)行)。 傳統(tǒng)上云平臺(tái)采取虛擬化手段來滿足用戶個(gè)別的資源需求分配,以及確保其可用性和隔離性
13、。 然而無論是KVM還是Xen等Guest OS都很浪費(fèi)資源又難于管理, 都不如Docker集裝箱(皮鞋)來的更加靈活、快速和節(jié)省資源。傳統(tǒng)鋪牛皮(虛擬層)Docker皮鞋(集裝箱) Docker的焦點(diǎn)在于而不是像傳統(tǒng)虛擬化思維的焦點(diǎn)在于讓國(guó)王腳疼的。 為什么Docker集裝箱能提升App的執(zhí)行效能呢? 因?yàn)镈ocker屬于OS層級(jí)的虛擬化。 在傳統(tǒng)hypervisor虛擬化技術(shù)哩,VM透過一個(gè)中介層,間接執(zhí)行于Host OS上。 而Docker集裝箱(也是一個(gè)小VM)則執(zhí)行于Host-OS的用戶空間,直接執(zhí)行于Host OS上。所以效率提高了。 Docker讓開發(fā)者可以打包他們的應(yīng)用以及依賴
14、包到一個(gè)可移植的容器中,然后發(fā)布到主流的 Linux 機(jī)器上。 這些分布式應(yīng)用程序具可攜特性,由各個(gè)不同但可互通的Docker容器所組成,具備動(dòng)態(tài)的生命周期,而且不論是在筆電或是云端上皆可執(zhí)行。基于軟硬整合觀點(diǎn)Docker集裝箱的基礎(chǔ)- LXC 用戶空間Linux 內(nèi)核 用戶空間Linux 內(nèi)核進(jìn)程進(jìn)程 用戶空間Linux 內(nèi)核進(jìn)程LXCnamespace LXC在目前的進(jìn)程管理框架上增加資源的管理和隔離機(jī)制。 LXC包集成這些linux內(nèi)核機(jī)制提供一個(gè)用戶空間容器對(duì)象, 即是針對(duì)某一應(yīng)用提供資源隔離和控制的輕量虛擬系統(tǒng)。 Docker對(duì)container的使用基本是建立唉LXC基礎(chǔ)之上的,然
15、而LXC存在的問題是難以移動(dòng) - 難以通過標(biāo)準(zhǔn)化的模板制作、重建、復(fù)制和移動(dòng) container。 LXC仰賴namespace來實(shí)現(xiàn)隔離性。讓每個(gè)容器都有自己的命名空間,確保不同容器之間不會(huì)相互影響,讓每個(gè)容器成為擁有自己進(jìn)程和網(wǎng)絡(luò)空間的虛擬環(huán)境,都成為一個(gè)獨(dú)立運(yùn)行的單位。 此外,LXC藉由內(nèi)核的cgroup來對(duì)各個(gè)容器(的進(jìn)程)使用的系統(tǒng)資源做嚴(yán)格的限制。 例如可建立一個(gè)cgroup來限制某個(gè)(容器)進(jìn)程對(duì)CPU的占用率不能超過50%。而Docker則在LXC基礎(chǔ)上,加上Docker 境像管理方式,就成為Docker集裝箱了。 LXCLinux 內(nèi)核namespace Docker集裝箱L
16、inux 內(nèi)核namespaceApp ImageBins/Libs Image Docker集裝箱Linux 內(nèi)核namespaceDockerImage Docker借鑒了虛擬機(jī)(VM)的模式,讓用戶像管理VM一樣的管理他們的集裝箱鏡像?;谲浻舱嫌^點(diǎn) 簡(jiǎn)而言之,LXC基于namespace的隔離機(jī)制和cgroup的資源控制功能,來管理容器。 隔離性 LXC運(yùn)行于一個(gè)用戶空間進(jìn)程里,在既有的進(jìn)程管理架構(gòu)上,增添了資源管理和隔離機(jī)制。 所以LXC是針對(duì)某一App提供資源隔離和控制的輕量型虛擬系統(tǒng)。LXC仰賴namespace來實(shí)現(xiàn)隔離性。 隔離性 讓每個(gè)容器都有自己的命名空間,比如pid/
17、net/ipc/mnt/uts等命名空間,以及不同的 user id和group id。 有了namespace從進(jìn)程、網(wǎng)絡(luò)、IPC、檔系統(tǒng)、UTS和用戶角度進(jìn)行隔離,我們就能e確保在不同容器之間不會(huì)相互影響,每個(gè)容器都成為一個(gè)獨(dú)立運(yùn)行的單位。 隔離性 從容器里而觀之,它是一個(gè)完整的Linux的世界。在整個(gè)平臺(tái)而觀之,容器運(yùn)行于一個(gè)普通的用戶空間進(jìn)程,namespace創(chuàng)造了這種映射和隔離效果,云平臺(tái)承載著一個(gè)個(gè)容器,就如同造物者創(chuàng)造了許多世外桃源一般。 資源控制 LXC仰賴cgroup來限制各個(gè)進(jìn)程對(duì)系統(tǒng)資源的使用能力。通常會(huì)創(chuàng)建多個(gè)cgroup,形成一個(gè)樹狀結(jié)構(gòu)(hierarchy)。 然
18、后subsystem會(huì)關(guān)聯(lián)連接到這個(gè)樹狀結(jié)構(gòu)上。一個(gè)subsystem代表著一項(xiàng)資源,例如CPU、Memory或 I/O等。/cpu_mem_cg/cg1/cg2/cg3Cgroup Hierarchymemory CPUSubsystems cgroup組織形式是樹狀結(jié)構(gòu)的,包含一個(gè)父cgroup和三個(gè)子cgroup,其關(guān)聯(lián)到兩個(gè)subsystem(即CPU和memory)。 這subsystem是經(jīng)由cgroup來與task(典型的就是進(jìn)程)連結(jié),以便實(shí)現(xiàn)對(duì)task的資源管理與控制。 一個(gè)task可加入到樹狀結(jié)構(gòu)上的一個(gè)cgroup,由此cgroup來限制該task的資源使用。 一個(gè)cgr
19、oup可以連結(jié)到多個(gè)task。而一個(gè)task也可連結(jié)到多個(gè)cgroup。 例如,針對(duì)一個(gè)容器進(jìn)程,先創(chuàng)建名為“cpuset”的cgroup,然后將一個(gè)mytask的PID寫入/sys/fs/cgroup/cpuset/tasks文件里,就把這個(gè)mytask加入到該cgroup了。/a_cg/cg-1/cg-N/b_cg/ioset/cg_y/task_1hierarchyhierarchy/mytask/task_N I/O CPU/cpuset 這個(gè)mytask連結(jié)到兩個(gè)cgroup:即“cpuset”和“ioset”,各連結(jié)到一個(gè)subsystem(即CPU和I/O資源)?;谲浻舱嫌^點(diǎn)
20、Docker集裝箱 和它的鏡像 制作Docker鏡像文件的途徑有二:1)從現(xiàn)有集裝箱生成,或從Dockerfile生成。 亦即,集裝箱是一個(gè)基于Docker鏡像創(chuàng)建、包含為了運(yùn)行某一特定程序的所有需要的OS、軟件、配置文件和數(shù)據(jù),是一個(gè)可移植的運(yùn)行單元。 在Host機(jī)器來看,它只是一個(gè)簡(jiǎn)單的用戶進(jìn)程而已?!迸e例:在Ubuntu機(jī)器上建立Docker集裝箱首先安裝Docker $ sudo apt-get install docker.io安裝好了,就可啟動(dòng)Docker服務(wù) $ sudo service docker.io restart接著載入一個(gè)ubuntu(的Docker)鏡像 $ sud
21、o docker pull ubuntu (這創(chuàng)建一個(gè)集裝箱,內(nèi)含ubuntu鏡像) ubuntu imageDocker集裝箱Linux 內(nèi)核 執(zhí)行集裝箱內(nèi)Ubuntu交互式命令(如shell) $sudo dockerrunubuntu /bin/echoHello! Hello! 在此集裝箱里,增添一個(gè)example鏡像 $sudo docker run ubuntu apt-get install -y example ubuntu imageexample imageDocker集裝箱Linux 內(nèi)核 取得此集裝箱的ID $sudo docker ps l (得到ID值,如:6966
22、a3b96484) 從這個(gè)集裝箱產(chǎn)生出它的鏡像 $sudo docker commit 6982 mis/exam mis/exam鏡像ubuntu imageexample imageLinux 內(nèi)核 載入剛才產(chǎn)生的鏡像 $sudo docker pull mis/exam (這創(chuàng)建一個(gè)新集裝箱,內(nèi)含mis/exam鏡像) 執(zhí)行集裝箱內(nèi)mis/exam鏡像 $sudo dockerrunmis/exam echo Happy! Happy! 集裝箱 集裝箱ubuntu imageexample imagemis/exam imageLinux 內(nèi)核 執(zhí)行集裝箱內(nèi)mis/example鏡像 $
23、sudo dockerrunmis/exam echo Happy! Happy!基于軟硬整合觀點(diǎn)Docker園丁 (Docker Runtime) 我們?cè)谶\(yùn)輸(ship)或移植一個(gè)Docker集裝箱時(shí),就像移植一棵樹一樣, 但是移植樹的種子(seed)到另一個(gè)花園(平臺(tái))里,重新打造出一樣的(identical)環(huán)境(花盆)并重新長(zhǎng)出一樣的樹。 那么,我們?cè)陔娔X上,需要有位園丁來打造花盆、準(zhǔn)備資源(如水、泥土)等工作。這位園丁就是:Docker Runtime。它是由三個(gè)模塊所組成,包括:Docker Server、Docker Engine和Docker Daemon三部分。Docker
24、ClientServerRMIEngineDaemonJobHandlerExecDriverNetworkDriverGraphDriver 通常,人們是透過Docker Client來與Docker Server建立通信(兩者是C/S架構(gòu))。 例如,我們可以將docker build命令傳送給Docker Server來依據(jù)指定的dockerfile來創(chuàng)建一個(gè)Docker鏡像。 Docker Server接受Docker Client所傳送來的請(qǐng)求,然后轉(zhuǎn)給Docker Engine去轉(zhuǎn)換出一連串的工作(job)來管理集裝箱。 例如,向Docker Registry獲取鏡像、通過Graph
25、Driver執(zhí)行集裝箱鏡像的建立、通過NetworkDriver執(zhí)行容器網(wǎng)絡(luò)環(huán)境的配置、通過ExecDriver執(zhí)行集裝箱內(nèi)部的軟件等?;谲浻舱嫌^點(diǎn)Docker集裝箱集散地 (Docker Hub) Docker公司不僅僅提供上述的Docker園丁來幫你搬運(yùn)集裝箱,還提供Docker Hub來做為集裝箱的共享平臺(tái)。 Docker公司提供的開放平臺(tái),主要包括:Platform = Docker Engine + Docker Hub + APIs + Ecosystem 我們?cè)陂_發(fā)平臺(tái)上,使用Docker引擎來將App打包到集裝箱里,然后透過Docker Hub API來將集裝箱(的鏡像)放
26、到Docker Hub上。 于是,Docker Hub成為一個(gè)集裝箱集散地,也就是一個(gè)共享的集裝箱平臺(tái)。需要時(shí),可從這Hub尋找到集裝箱,并下載到云服務(wù)平臺(tái)(如阿里云或Google云)上去運(yùn)行。 所以,Docker Engine和Docker Hub兩者聯(lián)手,為開發(fā)者和系統(tǒng)管理員設(shè)計(jì)出一個(gè)易于發(fā)布和運(yùn)行分布式App的開放性平臺(tái)。Q&A基于軟硬整合觀點(diǎn)軟硬整合觀點(diǎn)Part-3(a)的十個(gè)學(xué)習(xí)步驟(步驟15)高煥堂的著作第第1 1步:步:學(xué)習(xí)兩種抽象視角學(xué)習(xí)兩種抽象視角第第2 2步:步:關(guān)心下層的變動(dòng)自由度關(guān)心下層的變動(dòng)自由度第第3 3步:步:系統(tǒng)架構(gòu)控制力支撐商業(yè)競(jìng)爭(zhēng)話語權(quán)系統(tǒng)架構(gòu)控制力支撐商業(yè)
27、競(jìng)爭(zhēng)話語權(quán)第第4 4步:步: 是用戶從簡(jiǎn)單中叫出復(fù)雜是用戶從簡(jiǎn)單中叫出復(fù)雜 的滿足感的滿足感第第5 5步:步:創(chuàng)意愛上限制,即需求檢驗(yàn)設(shè)計(jì)創(chuàng)意愛上限制,即需求檢驗(yàn)設(shè)計(jì)基于軟硬整軟硬整合觀點(diǎn)合觀點(diǎn) 視角1. 歸納抽象: 從一群的業(yè)務(wù)或系統(tǒng)模塊(Module)中,觀察其相同的部分,然后歸納抽象(分析視角)出來,成為可復(fù)用(Reuse)共同部分。這稱為視角。視角1. 歸納抽象:變與不變分離視角1. 歸納抽象:Credit Card(信用卡)不變部部分視角1. 歸納抽象:抽象類不變部部分具象類-1具象類-2具象類-n除了分析業(yè)務(wù)之外,還要組合創(chuàng)新歸納抽象除了分析業(yè)務(wù)之外,還要組合創(chuàng)新分析師視角除了分析
28、業(yè)務(wù)之外,還要組合創(chuàng)新設(shè)計(jì)師視角分析師視角視角2. 組合創(chuàng)新: 引進(jìn)或創(chuàng)造一個(gè)新模式(Pattern),將一群模塊組合成一個(gè)和諧的整體。這模式是形式(Form),各模塊是內(nèi)容(Content);通稱為視角。視角2. 組合創(chuàng)新: 引進(jìn)或創(chuàng)造一個(gè)新模式(Pattern),將一群模塊組合成一個(gè)和諧的整體。這模式是形式(Form),各模塊是內(nèi)容(Content);通稱為視角。視角2. 組合創(chuàng)新: 引進(jìn)或創(chuàng)造一個(gè)新模式(Pattern),將一群模塊組合成一個(gè)和諧的整體。這模式是形式(Form),各模塊是內(nèi)容(Content);通稱為視角。例如,例如,汽車汽車和和行人行人是兩種個(gè)體是兩種個(gè)體( (模模塊塊
29、) ),經(jīng)常在路上發(fā)生沖突,導(dǎo)致社,經(jīng)常在路上發(fā)生沖突,導(dǎo)致社會(huì)會(huì)( (整體整體) )不和諧了。不和諧了。因而創(chuàng)新設(shè)計(jì)了一個(gè)因而創(chuàng)新設(shè)計(jì)了一個(gè)新模式:新模式:紅紅綠綠燈燈+ +斑斑馬馬線。成為汽車與行人的接口線。成為汽車與行人的接口(Interface)(Interface),整體就和諧了。,整體就和諧了。例如,一群零組件例如,一群零組件( (如輪胎、引擎、如輪胎、引擎、機(jī)翼、機(jī)尾、油箱等機(jī)翼、機(jī)尾、油箱等) )都都 ;但是我想飛。但是我想飛。除了分析業(yè)務(wù)之外,還要組合創(chuàng)新設(shè)計(jì)師視角把一群把一群 的模塊的模塊( (如輪胎、引擎、機(jī)翼如輪胎、引擎、機(jī)翼) ),巧妙地組合起來,竟然巧妙地組合起來,
30、竟然就就 上天。上天。設(shè)計(jì)師視角把一群把一群 的模塊的模塊( (如輪胎、引擎、機(jī)翼如輪胎、引擎、機(jī)翼) ),巧妙地組合起來,竟然巧妙地組合起來,竟然就就 上天。上天。架構(gòu)師的職責(zé)把一群把一群 的模塊的模塊( (如輪胎、引擎、機(jī)翼如輪胎、引擎、機(jī)翼) ),巧妙地組合起來,竟然巧妙地組合起來,竟然就就 上天。上天。架構(gòu)師的職責(zé)基于軟硬整軟硬整合觀點(diǎn)合觀點(diǎn)除了關(guān)心上層應(yīng)用,還要關(guān)心底層模塊。除了關(guān)心上層應(yīng)用,還要關(guān)心底層模塊。萬里長(zhǎng)城設(shè)計(jì)師用心于關(guān)外還是關(guān)內(nèi)萬里長(zhǎng)城設(shè)計(jì)師用心于關(guān)內(nèi)限制塞外保護(hù)關(guān)內(nèi)關(guān)心底層模塊廠商(沒錢就改版, 改版就有錢)。架構(gòu)師用心 于底層重構(gòu)底層接口底層模塊上層模塊底層接口底層
31、模塊上層模塊Server 接口Server模塊f1()OpenGL_CAppp1()SQLiteDBf1()OpenGL_Cp1()SQLiteDBApp代碼Callf1(“init”)Callp1(factor(f1() f1()OpenGL_Cp1()SQLiteDBApp代碼Callf1(“init”)Callp1(factor(f1() f1()和p1()函數(shù)是誰定義的?f1()OpenGL_Cp1()SQLiteDBApp代碼Callf1(“init”)Callp1(factor(f1() f1()是設(shè)計(jì)者定義的f1()OpenGL_Cp1()SQLiteDBApp代碼Callf1(
32、“init”)Callp1(factor(f1() 和字眼被寫在App模塊代碼里!f1()OpenGL_Cp1()SQLiteDBApp代碼Callf1(“init”)Callp1(factor(f1() App代碼綁住了接口!代碼必須同步修改f1()p1()代碼必須同步修改App代碼Callf1(“init”)Callp1(factor(f1() f1()p1()代碼必須同步修改App代碼Callf1(“init”)Callp1(factor(f1() f1()p1()修改需x元代碼必須同步修改App代碼Callf1(“init”)Callp1(factor(f1() 修改需y元f1()p1
33、()OpenGL_C變更成本= x + y元App代碼Callf1(“init”)Callp1(factor(f1() 這就是所謂的的漣漪效應(yīng)。例如,Android的Camera模塊Server模塊模塊Client模塊模塊例如Android的3D繪圖抽換Server模塊引擎輪胎接口接口引擎輪胎著名的EITEIT設(shè)計(jì)模式 碎片:碎片: 可變可變抽換輪胎抽換輪胎基于軟硬整軟硬整合觀點(diǎn)合觀點(diǎn) 除了結(jié)構(gòu)(設(shè)計(jì)自己),還要有策略(設(shè)計(jì)別人)。依據(jù)企業(yè)的定位,設(shè)計(jì)有利于自己的軟件接口給別人實(shí)現(xiàn)。除了結(jié)構(gòu)(設(shè)計(jì)自己),還要有策略(設(shè)計(jì)別人)。掌握接口,擁有系統(tǒng)控制權(quán),支撐商業(yè)話語權(quán),鞏固地位。除了結(jié)構(gòu)(設(shè)計(jì)
34、自己),還要有策略(設(shè)計(jì)別人)。 認(rèn)識(shí)自己企業(yè)的商業(yè)模式商業(yè)模式,厘清自己企業(yè)在商業(yè)合作策略上能夠(或想要)取得什么話語權(quán)話語權(quán)? 取得接口接口(API)(API)定義權(quán)定義權(quán),掌握系統(tǒng)系統(tǒng)控制點(diǎn)??刂泣c(diǎn)。 強(qiáng)化自己商業(yè)策略的話語權(quán)。Server端廠商的商業(yè)策略? 沒錢就改版, 改版就有錢。Server端廠商的商業(yè)策略? 系統(tǒng)控制權(quán), 支持商業(yè)話語權(quán)Server端廠商的商業(yè)策略? Client/Server架構(gòu) Client/Server架構(gòu)沒錢就改版, 改版就有錢。 Client/Server架構(gòu)掌握掌握強(qiáng)勢(shì)接口強(qiáng)勢(shì)接口創(chuàng)造創(chuàng)造強(qiáng)龍地位強(qiáng)龍地位Client端廠商的商業(yè)策略? Client端廠
35、商的商業(yè)策略? 隨時(shí)抽換ServerServer模塊Client端端廠商廠商掌握掌握接口接口創(chuàng)造創(chuàng)造地位地位AndroidAndroid架構(gòu)師如何支撐GoogleGoogle的商業(yè)策略? ? AndroidAndroid底層是LinuxLinux,它屬于Linux Linux 基金會(huì) AndroidAndroid底層是LinuxLinux,它屬于Linux Linux 基金會(huì) Android Linux 驅(qū)動(dòng)(Driver) 驅(qū)動(dòng)LinuxGPL開源協(xié)議擺在擺在LinuxLinux內(nèi)核里內(nèi)核里( (硬件廠商硬件廠商) )開源之后,我的開源之后,我的硬件創(chuàng)新就曝光了硬件創(chuàng)新就曝光了! !( (硬
36、件廠商硬件廠商) ) 驅(qū)動(dòng)Linux還可以擺在哪里呢還可以擺在哪里呢? ?( (硬件廠商硬件廠商) ) 驅(qū)動(dòng)Linux設(shè)計(jì)框架,定義接口,拉攏硬件廠,架空Linux Linux 基金會(huì) Android Linux 驅(qū)動(dòng)(Driver)設(shè)計(jì)HALHAL框架 Android Linux 驅(qū)動(dòng)(Driver)HAL HAL的設(shè)計(jì)吸引硬件廠商,削弱Linux對(duì)硬件廠商的約束力,架空Linux基金會(huì)。 提高Google的商業(yè)話語權(quán)?;谲浻舱浻舱嫌^點(diǎn)合觀點(diǎn) 除了加法設(shè)計(jì), 還要先減法設(shè)計(jì)。除了加法設(shè)計(jì), 還要先減法設(shè)計(jì)。好玩好摸好抱除了加法設(shè)計(jì), 還要先減法設(shè)計(jì)。好玩好摸好抱除了加法設(shè)計(jì), 還要先減
37、法設(shè)計(jì)。 設(shè)計(jì)就是從復(fù)雜中找出簡(jiǎn)單的過程。設(shè)計(jì)就是從復(fù)雜中找出簡(jiǎn)單的過程。 讓開發(fā)者從簡(jiǎn)單中反過來掌握復(fù)雜。讓開發(fā)者從簡(jiǎn)單中反過來掌握復(fù)雜。 讓用戶能從簡(jiǎn)單中叫出復(fù)雜,并獲得其讓用戶能從簡(jiǎn)單中叫出復(fù)雜,并獲得其中的滿足感。中的滿足感。 減法設(shè)計(jì)思維,古代的容易是包容改變的意思,并非舍棄改變之意。如此,化繁為簡(jiǎn),提升人們掌握復(fù)雜的能力。 後來,許多人喜歡抽象(Abstraction),抽出萬變不離其宗的不變,來掌握簡(jiǎn)單。這就違背了容易的標(biāo)的了。蘋果很擅長(zhǎng)蘋果很擅長(zhǎng)減法設(shè)計(jì)減法設(shè)計(jì) 舉例(一) :2000年代初期,Sony隨身聽是蘋果公司的競(jìng)品之一。隨身聽(競(jìng)品)如何刪除刪除呢?(減法設(shè)計(jì)) 舉例
38、(一) :2000年代初期,Sony隨身聽是蘋果公司的競(jìng)品之一。 iPod 減法設(shè)計(jì)減法設(shè)計(jì) 舉例(一) :2000年代初期,Sony隨身聽是蘋果公司的競(jìng)品之一。 舉例(二) :之后,黑梅手機(jī)是蘋果公司的競(jìng)品之一。黑梅手機(jī) 舉例(二) :之后,黑梅手機(jī)是蘋果公司的競(jìng)品之一。如何減法設(shè)計(jì)呢?黑梅手機(jī) 舉例(二) :之后,黑梅手機(jī)是蘋果公司的競(jìng)品之一。減法設(shè)計(jì)減法設(shè)計(jì)iPhone手機(jī) 舉例(三) :還有,微軟平板也是蘋果公司的競(jìng)品之一。微軟平板 舉例(三) :還有,微軟平板也是蘋果公司的競(jìng)品之一。如何刪除刪除呢?(減法設(shè)計(jì))微軟平板 舉例(三) :還有,微軟平板也是蘋果公司的競(jìng)品之一。減法設(shè)計(jì)減法
39、設(shè)計(jì)iPad 基于軟硬整軟硬整合觀點(diǎn)合觀點(diǎn) 除了滿足(外在)需求, 還要追求(內(nèi)心)愿景。需求圍繞設(shè)計(jì)需求圍繞設(shè)計(jì)除了滿足(外在), 還要追求(內(nèi)心)愿景。 谷歌公司副總谷歌公司副總Marissa MayerMarissa Mayer所提倡的:所提倡的: “創(chuàng)意愛上限制(Creativity loves(Creativity loves Constraint)Constraint)。 她說:她說: 創(chuàng)新來自創(chuàng)新來自愿景與限制的互動(dòng)愿景與限制的互動(dòng) (Innovation is born from the (Innovation is born from the interactionbetwe
40、en constraint and vision)interactionbetween constraint and vision)。 限制迫使架構(gòu)師重新審視愿景,從不同觀點(diǎn)切入,限制迫使架構(gòu)師重新審視愿景,從不同觀點(diǎn)切入,尋找新事物;同時(shí)也讓其聚精會(huì)神、厘清思路;非尋找新事物;同時(shí)也讓其聚精會(huì)神、厘清思路;非常具有創(chuàng)新性。常具有創(chuàng)新性。愿景限制信用卡(Credit)聯(lián)盟的組織架構(gòu) 愿景限制 銀行不吃虧:沒向銀行拿錢 消費(fèi)者不吃虧:刷卡與不刷卡,價(jià)錢一樣 店家不吃虧:隨然每筆交易收了3%,但每天交易總額提升30%愿景限制= 創(chuàng)新Vision=沒向銀行收錢讓顧客占便宜提高店家收入 心境:不讓任何
41、合作者受傷害(吃虧)。愿景限制 消費(fèi)者刷卡,延后付款 這利息誰支付?愿景限制 把利息轉(zhuǎn)嫁給有錢人(如貴婦) 19.8%循環(huán)利息Q&A基于軟硬整合觀點(diǎn)軟硬整合觀點(diǎn)Part-3(b)的十個(gè)學(xué)習(xí)步驟(步驟610)高煥堂的著作第第6 6步:步: 假設(shè)性思維和假設(shè)性思維和Mapping from visionMapping from vision to reality to reality第第7 7步:步: 清晰而明確表述接口清晰而明確表述接口第第8 8步:步: 盡快對(duì)接口進(jìn)行檢驗(yàn)和測(cè)試盡快對(duì)接口進(jìn)行檢驗(yàn)和測(cè)試第第9 9步:步: 設(shè)計(jì)通用性接口設(shè)計(jì)通用性接口第第1010步:步:有效減法設(shè)計(jì),才能開放加法
42、有效減法設(shè)計(jì),才能開放加法基于軟硬整軟硬整合觀點(diǎn)合觀點(diǎn) 除了眺望未來, 還要Look back。(從未來回顧今日)“你不可能在眺望未來時(shí)把生活中的每個(gè)點(diǎn)連接起來,只有回顧時(shí)能才連點(diǎn)成線。所以你必須相信今日所做的會(huì)影響你的未來?!碧O果.喬布斯說。 Look back(現(xiàn)實(shí),Reality)Prob. X.許多Manager 都關(guān)注現(xiàn)實(shí)問題(現(xiàn)實(shí),Reality)Prob. X.(現(xiàn)實(shí),Reality)Prob. X.(現(xiàn)實(shí),Reality)Prob. X.Look Back(現(xiàn)實(shí),Reality)其它問題Ex. 國(guó)王與皮鞋的故事 古代有一位國(guó)王在它的國(guó)境里視察,因?yàn)槁访嫫閸绮黄?,還有很多碎石頭,
43、刺得國(guó)王的腳又痛又麻。 回到王宮后,他下了一道命令,要將國(guó)內(nèi)所有的道路都鋪上一層牛皮。 于是,讓他自己和全國(guó)的人走路不再受刺痛之苦 眾大臣聽了國(guó)王的話都一籌莫展,知道這很難。即便殺盡國(guó)內(nèi)所有的牛,也湊不到足夠的牛皮來鋪路,而且花費(fèi)昂貴。 這時(shí),一個(gè)聰明的仆人向國(guó)王建言:可以試著用牛皮將腳包起來,大王的腳就不會(huì)忍受痛苦了。國(guó)王聽道而采納了建議,于是,皮鞋就這樣發(fā)明了出來了。殺牛、鋪牛皮Prob. X.國(guó)王&大臣們 都關(guān)注現(xiàn)實(shí)問題殺牛、鋪牛皮Prob. X.Solve Problem X 殺牛、鋪牛皮Prob. X.仆人X is Not Right Problem to solve Look Ba
44、ck(現(xiàn)實(shí),Reality)其它問題VisionMapping from vision to realityVision創(chuàng)新: 皮鞋VisionEx. 紅綠燈與斑馬線Ex. 紅綠燈與斑馬線汽車和行人經(jīng)常在路上發(fā)生沖突、混亂。Reality:沖突混亂Prob. X.Prob. X.VisionVisionMapping from vision to realityVisionProb. Y.Ex. 集裝箱的故事Vision-1Vision-2Vision-3Mapping from vision to realityMapping from vision to reality序中有亂 Visio
45、n:和諧整體Reality:碎片多變 Vision:和諧整體Reality:碎片多變序中有亂Ex. Docker軟件集裝箱 Vision:創(chuàng)新組合Reality:碎片多變Reality:碎片多變 Vision:創(chuàng)新組合 Vision是夢(mèng)想、假設(shè)出來的想象力比知識(shí)更重要 愛因斯坦 Vision是夢(mèng)想、假設(shè)出來的Reality是現(xiàn)實(shí)條件Mapping from vision to reality Vision是夢(mèng)想、假設(shè)出來的Reality是現(xiàn)實(shí)條件Mapping from vision to realityReality是現(xiàn)實(shí)條件Mapping from vision to reality Vi
46、sion是北極星: 是夢(mèng)想、不一定可實(shí)現(xiàn)基于軟硬整軟硬整合觀點(diǎn)合觀點(diǎn) 愿景現(xiàn)實(shí)Mapping from vision to reality 愿景現(xiàn)實(shí) 新事物新事物發(fā)現(xiàn)(或想象)了新事物, 還要描述它。先關(guān)注它的 組合接口要有明確的接口定義, 才知道如何整合到整體, 并且和諧(如能飛)依據(jù)接口去 生產(chǎn)與組合Program to interface舉例:Docker + EIT造形一項(xiàng)游戲軟件有多個(gè)模塊,打包成為Docker集裝箱。Docker Container攝像頭Docker Container港口3D圖Docker Container無人飛機(jī)Docker Container攝像頭Docke
47、r Container港口3D圖Docker Container無人飛機(jī)在這個(gè)游戲里,玩家操控飛機(jī),攜帶攝像頭(Camera)飛越港口上空,游戲畫面會(huì)出現(xiàn)攝像頭所拍到的景象。如下圖:(取自千圖網(wǎng))動(dòng)態(tài)組合動(dòng)態(tài)組合 首先,來看看如何將和兩個(gè)Docker集裝箱組合起來。Docker Container攝像頭Docker Container無人飛機(jī)組合組合這如何設(shè)計(jì)、 敘述接口呢?心懷EIT造形 此時(shí),EIT造形就浮上心頭,設(shè)計(jì)一個(gè)EIT集裝箱來組合。Docker Container無人飛機(jī)Docker Container攝像頭EIT集裝箱集裝箱 心中當(dāng)然很清楚,這EIT集裝箱里含有一個(gè)單純的EIT
48、造形。Docker Container無人飛機(jī)Docker Container攝像頭EIT集裝箱集裝箱 一旦能夠組合了兩個(gè),只要變化EIT造形,就能組合三個(gè)集裝箱了。瞬間改變EIT集裝箱里的EIT造形,展現(xiàn)出新奇組合。Docker Container無人飛機(jī)Docker Container攝像頭EIT集裝箱集裝箱Docker Container港口3D圖舉例:Android 的EIT造形 組合 攝像頭(Camera)拍攝到視像,然后傳遞到顯示屏。 SurfaceView和Camera兩個(gè)類控制設(shè)備。集裝箱集裝箱 集裝箱集裝箱 此時(shí),EIT造形就浮上心頭,設(shè)計(jì)一個(gè)EIT集裝箱來組合。EIT集裝箱
49、集裝箱 心中當(dāng)然很清楚,這EIT集裝箱里含有一個(gè)單純的EIT造形。 集裝箱的特性:。 EIT造形可以彈性變化。 這是Android的典型結(jié)構(gòu)。 Continued 基于軟硬整軟硬整合觀點(diǎn)合觀點(diǎn) 愿景現(xiàn)實(shí)Mapping from vision to reality 愿景現(xiàn)實(shí)Mapping from vision to reality 愿景現(xiàn)實(shí)Mapping from vision to reality接口支持組合 愿景現(xiàn)實(shí)Mapping from vision to reality接口支持組合檢驗(yàn)除了設(shè)計(jì)接口支持組合, 還要檢驗(yàn)、接地氣。除了設(shè)計(jì)接口支持組合, 還要檢驗(yàn)、接地氣。接口決定整合接口
50、決定整合開發(fā)前先開發(fā)前先 檢驗(yàn)接口檢驗(yàn)接口Docker Container攝像頭Docker Container港口3D圖Docker Container無人飛機(jī)設(shè)計(jì)接口,先進(jìn)行接口測(cè)試,然后才花錢去購(gòu)買、委托或自行開發(fā)生產(chǎn)。尚未開發(fā)委托開發(fā)攝像頭先做個(gè)Mock(贗品),只做I/O,細(xì)節(jié)邏輯還不寫,然后設(shè)計(jì)EIT來定義組合接口。MockDocker Container無人飛機(jī)EIT集裝箱集裝箱 先檢測(cè)Mock能否與整合,才決定是否花錢開發(fā)這種攝像頭。Docker Container無人飛機(jī)EIT集裝箱集裝箱攝像頭Mock 隨著系統(tǒng)的擴(kuò)大,更多模塊的整合,對(duì)接口設(shè)計(jì)的完整性、未來性等進(jìn)行檢驗(yàn)。D
51、ocker Container無人飛機(jī)Mock攝像頭EIT集裝箱集裝箱Mock港口3D圖MockCamera 集裝箱內(nèi)部也能建立Mock來檢驗(yàn)接口。 Continued 基于軟硬整軟硬整合觀點(diǎn)合觀點(diǎn)除了設(shè)計(jì)接口之外, 還要抽象出更通用接口。通用性接口設(shè)計(jì)支持 集裝箱一致造形支持一致造形支持 無限組合無限組合 集裝箱里各模塊有各自的對(duì)外接口,傷害集裝箱的了。Docker Container無人飛機(jī)Docker Container攝像頭Docker ContainerDocker Container港口3D圖I1I2 采用EIT造形,設(shè)計(jì)出一致的接口。Docker Container無人飛機(jī)Doc
52、ker Container攝像頭Docker Container港口3D圖I1I2 采用EIT造形,設(shè)計(jì)出一致的接口。Docker Container無人飛機(jī)Docker Container攝像頭I1Docker Container港口3D圖I2ClientServer通用性接口設(shè)計(jì)Is 如何設(shè)計(jì)一致的接口?Docker ContainerDocker Container能否能否單一接口呢單一接口呢?有什么妙招呢有什么妙招呢?將多態(tài)將多態(tài)組合進(jìn)去!組合進(jìn)去!多態(tài)結(jié)構(gòu)多態(tài)結(jié)構(gòu)多態(tài)結(jié)構(gòu)多態(tài)結(jié)構(gòu)建立建立繼承關(guān)系繼承關(guān)系特殊性特殊性 接口接口通用性通用性 接口接口特殊性特殊性 接口接口Docker C
53、ontainer通用性通用性 接口接口Docker Container一致化一致化接口設(shè)計(jì)接口設(shè)計(jì)IGeneralIGeneral Continued 基于軟硬整軟硬整合觀點(diǎn)合觀點(diǎn)集裝箱的特性: 一致造形一致造形 包容包容變變化化 無限組合無限組合集裝箱的特性:序中有亂 一致造形一致造形 包容包容變變化化 無限組合無限組合 一致造形 包容變化 無限組合序中有亂 一致造形 包容變化 無限組合(內(nèi)部)(外部)Docker Container無人飛機(jī)Docker Container攝像頭Docker Container港口3D圖I1I2減法設(shè)計(jì)加法設(shè)計(jì) 減法設(shè)計(jì)減法設(shè)計(jì)減法設(shè)計(jì)Q&A基于軟硬整合觀點(diǎn)
54、軟硬整合觀點(diǎn)Part-4Android+Docker 的一體化設(shè)計(jì)高煥堂的著作基于軟硬整合觀點(diǎn)復(fù)習(xí):序中有亂 - - 集裝箱的內(nèi)容可復(fù)雜多變集裝箱的內(nèi)容可復(fù)雜多變 前言: 談到Docker,許多人會(huì)聯(lián)想到集裝箱的可移植性,進(jìn)而聯(lián)想到集裝箱內(nèi)容的不變性,(跨平臺(tái)性)。 其實(shí),集裝箱的內(nèi)容是復(fù)雜多變的。變易變易基于軟硬整合觀點(diǎn)企業(yè)邏輯 -Docker-Docker集裝箱適合容納集裝箱適合容納 善變的企業(yè)邏輯善變的企業(yè)邏輯 Docker集裝箱內(nèi)容也是千變?nèi)f化 大家都知道,企業(yè)邏輯(Business Logics)是善變的。 所以把善變的企業(yè)邏輯,加以打包放進(jìn)Docker集裝箱,是有效的作法?;谲浻舱嫌^點(diǎn)軟件插件 -用來用來表現(xiàn)表現(xiàn)企企業(yè)邏輯業(yè)邏輯企業(yè)邏輯Docker Image軟件插件 經(jīng)常與并存。企業(yè)邏輯插件插件插件Docker Image 經(jīng)常與并存。企業(yè)邏輯插件框架(Framework)插件插件D
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025版SPF豬飼養(yǎng)產(chǎn)業(yè)人才培養(yǎng)與就業(yè)服務(wù)合同3篇
- 2024潤(rùn)滑油定制包裝銷售合同模板2篇
- 二零二五年度上市公司股東投票權(quán)全權(quán)委托管理服務(wù)協(xié)議書3篇
- 立式儲(chǔ)料罐課程設(shè)計(jì)
- 2024年重型貨物起重運(yùn)輸合同范本3篇
- 2024月餅定制服務(wù)與全球代理商合作協(xié)議3篇
- 2024年版房地產(chǎn)抵押融資購(gòu)銷合同樣式
- 成都藝術(shù)職業(yè)大學(xué)《電子測(cè)量技術(shù)實(shí)驗(yàn)》2023-2024學(xué)年第一學(xué)期期末試卷
- 2025版雞苗運(yùn)輸風(fēng)險(xiǎn)管理與應(yīng)急預(yù)案合同3篇
- 2024派遣雇傭勞務(wù)合同(含知識(shí)產(chǎn)權(quán)保護(hù)條款)3篇
- 2024年全國(guó)鄉(xiāng)村醫(yī)生考試復(fù)習(xí)題庫及答案(共360題)
- 全屋定制家具店合伙經(jīng)營(yíng)協(xié)議書2024年
- 建筑施工安全生產(chǎn)隱患識(shí)別圖集(鋼結(jié)構(gòu)工程)
- 城市道路與開放空間低影響開發(fā)雨水設(shè)施
- 電氣二次危險(xiǎn)點(diǎn)分析及控制措施
- 初中必背古詩文138首
- 藍(lán)色國(guó)家科學(xué)基金4.3杰青優(yōu)青人才科學(xué)基金答辯模板
- DLT 5434-2021 電力建設(shè)工程監(jiān)理規(guī)范表格
- 2024年房屋交接確認(rèn)書
- 拓展低空經(jīng)濟(jì)應(yīng)用場(chǎng)景實(shí)施方案
- 北京市東城區(qū)2023-2024學(xué)年八年級(jí)上學(xué)期期末生物試題【含答案解析】
評(píng)論
0/150
提交評(píng)論