2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩472頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、,By高煥堂,的十個(gè)學(xué)習(xí)步驟,簡介,在需求、數(shù)據(jù)和軟件愈來愈碎片化的趨勢下,集裝箱(如Docker Container)包裝了微服務(wù)(Micro-Service)成為主流。這些微服務(wù)在運(yùn)行時(shí)間(Run-time)經(jīng)常需要?jiǎng)討B(tài)組合成為各式各樣的App來支撐企業(yè)多變的業(yè)務(wù)流程。,簡介,這種集裝箱式架構(gòu)設(shè)計(jì),隨著近年來Docker集裝箱技術(shù)的流行,可說紅透半天邊,而且勢如破竹、蔚為風(fēng)潮,正在強(qiáng)力改變終端與云平臺的整體設(shè)計(jì)理念和方法。,簡介,

2、本課程分為兩個(gè)階段,第一階段以個(gè)人的學(xué)習(xí)路徑為主軸,依循十個(gè)學(xué)習(xí)步驟,循序漸進(jìn)建立扎實(shí)的根基。第二階段,則依據(jù)企業(yè)軟件開發(fā)流程里的先后環(huán)節(jié)來作教學(xué)。闡述各環(huán)節(jié)的思想、模式、技術(shù)和實(shí)踐要點(diǎn)。并以的端云一體化架構(gòu)設(shè)計(jì)為例,闡述企業(yè)邏輯分析、插件和集裝箱設(shè)計(jì)、實(shí)際開發(fā)愈部屬方法等。,基于軟硬整合觀點(diǎn),,By高煥堂,碎片化潮流下的架構(gòu)新思維-- 變化、碎片與集裝箱,Part-1,高煥堂的著作,,基于軟硬整合觀點(diǎn),,1.1 碎片(Fragmen

3、t) 來自何處呢?,,,,碎片來自變化(Change),,,,碎片或(表現(xiàn)為軟件的) 插件(Plug-in)的背后 都是變(化),,,,,,,,,,沙灘,,沙灘,,沙灘,,變化,,變化,,變化,,變化,面對環(huán)境變化分離出碎片!,,,變化,,,,碎片,,,,,碎片,變化,,,,,碎片,變化,,,碎片,,分離出,,變化,,,,碎片,,變化,接口,,,,碎片,,,,接口,變化,,,接口,,,,,變化

4、,碎片,,,,,,碎片,,變化,接口,,,,,,碎片(變化),接口,,,,,碎片(變化),,接口,,,,,碎片(變化),,接口,,,,集裝箱,,接口,,,內(nèi)部(變化),集裝箱,,接口(序),,,內(nèi)部(變化),接口(序),,,沙灘,,,,,,沙灘,,,,,,,沙灘,,,,(碎片),,,,沙灘,,,,,(碎片),,,,沙灘,,,,,,,,,沙灘,,,,,,,,,沙灘,,,,,,,,,,,沙灘,,環(huán)境變因(道路),,,沙灘,

5、,,,環(huán)境變因(道路),,系統(tǒng)碎片(輪胎),,,沙灘,,,,環(huán)境變因(道路),,系統(tǒng)碎片(輪胎),,,沙灘,,,,其他變因?,,其他碎片?,請您找找看!,基于軟硬整合觀點(diǎn),,1.2 軟件碎片(插件) 來自何處呢?,,,,插件(軟件碎片)來自變化(Change),,,,碎片或插件(Plug-in)的 背后都是變(化),,,,以SurfaceView + Camera(攝像頭)為例,軟件

6、SurfaceView代表手機(jī)屏幕軟件Camera代表攝像頭,SurfaceView,Camera,以SurfaceView + Camera(攝像頭)為例,Camera攝像頭取得視像,然后將視像傳遞到SurfaceView屏幕上呈現(xiàn)出來。,SurfaceView,Camera,,(視像),WebCamera,SurfaceView,Camera,,(視像),WebCamera,Camera,MP4視頻Player,,Surfa

7、ceView,變化,SurfaceView,變化,變化,SurfaceView,變化,變化,變化,SurfaceView,變化,SurfaceView,面對環(huán)境變化分離出碎片!,,變化,,碎片-x,,SurfaceView,,,變化,,SurfaceView,碎片-x,碎片-y,,SurfaceView,變化,,,碎片-x,碎片-y,,碎片-z,,SurfaceView,變化,,,碎片-x,碎片-y,,App-z,,SurfaceVi

8、ew,變化,,,App-y,變化,,App-z,碎片-x,,SurfaceView,變化,,,App-x,App-y,變化,,App-z,變化,碎片,,SurfaceView,變化,,App-z,,接口,接口,App-z,,變化,接口,(插件),變化,變化,E,I,T,變化(01):屏幕顯示3D繪圖,E,I,T,變化,變化(01):屏幕顯示3D繪圖,變化(02):屏幕顯示2D繪圖,變化,E,I,T,變化(02):屏幕顯示2D繪圖,變化(

9、03):屏幕顯示MP4視頻,變化,E,I,T1,T2,變化(03):屏幕顯示MP4視頻,,,沙灘,,,其他,,其他碎片?,請您找找看!,變化,,例如:,將醫(yī)院加護(hù)(重癥)病房的儀器聯(lián)結(jié)到護(hù)士站的Android TV,讓患者的病情及時(shí)傳送到TV上。同時(shí),TV也主動(dòng)再將訊息及時(shí)傳送到醫(yī)生的手機(jī)或Pad上,讓醫(yī)生能進(jìn)行實(shí)時(shí)性的決策,提供更高質(zhì)量的服務(wù)。,變化,基于軟硬整合觀點(diǎn),,,,,1.3 軟件碎片的組合,試想,在智慧城市里,有兩個(gè)

10、系統(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é)議

11、,導(dǎo)致兩個(gè)模塊也緊密相依了。三個(gè)東西緊密相連在一起的。一旦通信協(xié)議改變了,兩邊的模塊都必須改變。產(chǎn)生的牽一發(fā)而動(dòng)全身的漣漪效應(yīng)。,,智慧家庭,交通車聯(lián)網(wǎng),,,變化,,,交通車聯(lián)網(wǎng),通信協(xié)議,父類,,子類,,,變化,碎片,,,智慧家庭,,,交通車聯(lián)網(wǎng),通信協(xié)議,,,,,變化,,,智慧家庭,E,I,碎片,T,,智慧家庭,交通車聯(lián)網(wǎng),,,變化,通信協(xié)議,,父類,,子類,,,,,智慧家庭,變化,碎片,交通車聯(lián)網(wǎng),,

12、,通信協(xié)議,,,,,,,智慧家庭,變化,碎片,交通車聯(lián)網(wǎng),,,E,T,通信協(xié)議,I,,,,交通車聯(lián)網(wǎng),通信協(xié)議,父類,,子類,,,,父類,,子類,,,,,,智慧家庭,變化,變化,碎片,碎片,,,,交通車聯(lián)網(wǎng),通信協(xié)議,父類,,子類,,,,父類,,子類,,,,,,智慧家庭,變化,碎片,碎片,,,,交通車聯(lián)網(wǎng),通信協(xié)議,E&I,,T,,,,E&I,,T,,,,,,智慧家庭,碎片的組合,,碎片的組合,

13、變化,碎片的組合,,,E&I,,,變化,,T,碎片的組合,,,變化,E&I,,,,T,,,,,,,變化,T,,,,,,,E&I,,,,,,,E&I,,,,變化,變化,變化,碎片的組合,T,,T,,T,,,,,,,E&I,,,,,,,E&I,,,,變化,變化,變化,碎片的組合,T,,T,,T,基于軟硬整合觀點(diǎn),,1.4 軟件的序中有亂 (集裝箱特性),,,,變化,I,Tx,I,

14、Ty,變化,I,T1,T2,變化,亂(變化),I(序),T,I(序),,亂,T,I(序),,亂,T,I(序),,亂,T,亂,,序中有亂,,外形簡單內(nèi)容多變無限組合,,集裝箱特性:,,,,,,,,,,例如:原子,,化學(xué)元素由原子構(gòu)成,道爾頓,,,,,,,,,,例如:原子,(摘自百度文庫),,不同元素原子的性質(zhì) 各不相同,道爾頓,,,,,,,,,,(摘自百度文庫),,道爾頓,,,,,,,,,,序中有亂,序中有亂,,不同元素化合時(shí),原

15、子 以簡單整數(shù)比結(jié)合。,道爾頓,,道爾頓,水分子,序中有亂,,道爾頓,,,,,,,,,,,,,,,,序中有亂,,,,,,,,,,,,,,,,,,,,,,,,,序中有亂,Q&A,基于軟硬整合觀點(diǎn),,By高煥堂,Part-2,的趨勢、技術(shù)與架構(gòu),高煥堂的著作,,Docker: 碼頭工人 (集裝箱搬運(yùn)工),基于軟硬整合觀點(diǎn),,2.1、集裝箱(Container) 的經(jīng)濟(jì)效益,Docker集裝箱,自從2014年

16、以來,Docker 的集裝箱(container)技術(shù),可說是紅透半天邊,而且勢如破竹、蔚為風(fēng)潮,正在強(qiáng)力改變云(cloud)服務(wù)的世界。,這跟半世紀(jì)前,海上船運(yùn)業(yè)的集裝箱風(fēng)潮,對整個(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í)而興,扮演極為重要的角色,以集裝箱拖

17、車配合集裝箱船運(yùn)輸,具有簡化包裝、防止竊盜、加速貨物搬運(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)公司、碼頭工人等都會迅速蓬勃發(fā)展起來。,將之對應(yīng)到Docker風(fēng)潮,可知道Docker集裝箱的效益在于:讓所有云服務(wù)都有一致的操作(operation)界面,包括部署、管理等

18、方式。Docker集裝箱帶來的商業(yè)利益,直接受惠是軟件管理者或稱維運(yùn)者(operator),例如軟件測試工具業(yè)者、測試人員等。,在這新世代里,除了拿Docker集裝箱來打包微服務(wù)(micro-service)來滿足需求碎片之外。我們還要以廣大的視野、創(chuàng)新的思維,將碎片組合出各式各樣、氣象萬千的商業(yè)服務(wù)。,就像飛機(jī)設(shè)計(jì)師一樣,把一群各自的模塊(如輪胎、引擎、機(jī)翼、油箱等),以創(chuàng)新模式將它們組合起來,竟然整體就<能飛>上天空了。,在許多

19、革命性轉(zhuǎn)折里,經(jīng)常出現(xiàn)集裝箱的身影;它就像幸運(yùn)草一般,總是帶來許多幸福和財(cái)運(yùn)?,F(xiàn)在Docker風(fēng)起云涌,再現(xiàn)集裝箱身影,如果開放視野、大力支持它,持續(xù)發(fā)揮它的潛能和力量,則幸運(yùn)草就會出現(xiàn)在我們身旁了。,基于軟硬整合觀點(diǎn),,2.2、國王的皮鞋 與Docker集裝箱,古代有一位國王在它的國境里視察,因?yàn)槁访嫫閸绮黄?,還有很多碎石頭,刺得國王的腳又痛又麻。,(摘自百度文庫),回到了王宮后,他下了一道命令,要將國內(nèi)所有的道

20、路都鋪上一層牛皮。讓他自己和全國的人走路不再受刺痛之苦。然而,即便殺盡國內(nèi)所有的牛,也湊不到足夠的牛皮來鋪路,而且花費(fèi)昂貴。,這時(shí),一個(gè)仆人向國王建言:可以用牛皮將腳包起來,大王的腳就不會忍受痛苦了。國王聽道而頓悟了,便收回命令,采納了建議,于是,皮鞋就這樣發(fā)明了出來了。,(摘自百度文庫),從上述皮鞋故事的比喻,可知道傳統(tǒng)的虛擬化(virtualization)技術(shù)就相當(dāng)于在各道路(實(shí)體機(jī)器)上鋪一層牛皮(VM, 虛擬機(jī)),然后讓國

21、王的腳(App)在牛皮(VM)上走路(執(zhí)行)。,傳統(tǒng)上云平臺采取虛擬化手段來滿足用戶個(gè)別的資源需求分配,以及確保其可用性和隔離性。然而無論是KVM還是Xen等Guest OS都很浪費(fèi)資源又難于管理, 都不如Docker集裝箱(皮鞋)來的更加靈活、快速和節(jié)省資源。,傳統(tǒng)鋪牛皮(虛擬層),,Docker皮鞋(集裝箱),,Docker的焦點(diǎn)在于而不是像傳統(tǒng)虛擬化思維的焦點(diǎn)在于讓國王腳疼的。為什么Docker集裝箱能提升App的執(zhí)行效能

22、呢? 因?yàn)镈ocker屬于OS層級的虛擬化。,在傳統(tǒng)hypervisor虛擬化技術(shù)哩,VM透過一個(gè)中介層,間接執(zhí)行于Host OS上。而Docker集裝箱(也是一個(gè)小VM)則執(zhí)行于Host-OS的用戶空間,直接執(zhí)行于Host OS上。所以效率提高了。,Docker讓開發(fā)者可以打包他們的應(yīng)用以及依賴包到一個(gè)可移植的容器中,然后發(fā)布到主流的 Linux 機(jī)器上。這些分布式應(yīng)用程序具可攜特性,由各個(gè)不同但可互通的Docker容器所組成,具

23、備動(dòng)態(tài)的生命周期,而且不論是在筆電或是云端上皆可執(zhí)行。,基于軟硬整合觀點(diǎn),,2.3、Docker集裝箱的基礎(chǔ)-- LXC,,用戶空間,Linux 內(nèi)核,,用戶空間,Linux 內(nèi)核,進(jìn)程,進(jìn)程,,用戶空間,Linux 內(nèi)核,進(jìn)程,LXC,namespace,LXC在目前的進(jìn)程管理框架上增加資源的管理和隔離機(jī)制。LXC包集成這些linux內(nèi)核機(jī)制提供一個(gè)用戶空間容器對象, 即是針對某一應(yīng)用提供資源隔離和控制的輕量虛擬系統(tǒng)。,Docke

24、r對container的使用基本是建立唉LXC基礎(chǔ)之上的,然而LXC存在的問題是難以移動(dòng) - 難以通過標(biāo)準(zhǔn)化的模板制作、重建、復(fù)制和移動(dòng) container。,LXC仰賴namespace來實(shí)現(xiàn)隔離性。讓每個(gè)容器都有自己的命名空間,確保不同容器之間不會相互影響,讓每個(gè)容器成為擁有自己進(jìn)程和網(wǎng)絡(luò)空間的虛擬環(huán)境,都成為一個(gè)獨(dú)立運(yùn)行的單位。此外,LXC藉由內(nèi)核的cgroup來對各個(gè)容器(的進(jìn)程)使用的系統(tǒng)資源做嚴(yán)格的限制。,例如可建立一個(gè)c

25、group來限制某個(gè)(容器)進(jìn)程對CPU的占用率不能超過50%。而Docker則在LXC基礎(chǔ)上,加上Docker 境像管理方式,就成為Docker集裝箱了。,,LXC,Linux 內(nèi)核,,namespace,,Docker集裝箱,Linux 內(nèi)核,,namespace,,App Image,,Bins/Libs Image,,Docker集裝箱,Linux 內(nèi)核,,namespace,,,DockerImage,Docker借鑒了

26、虛擬機(jī)(VM)的模式,讓用戶像管理VM一樣的管理他們的集裝箱鏡像。,基于軟硬整合觀點(diǎn),,2.4、Namespace與 Cgroup的角色,簡而言之,LXC基于namespace的隔離機(jī)制和cgroup的資源控制功能,來管理容器。,隔離性,LXC運(yùn)行于一個(gè)用戶空間進(jìn)程里,在既有的進(jìn)程管理架構(gòu)上,增添了資源管理和隔離機(jī)制。所以LXC是針對某一App提供資源隔離和控制的輕量型虛擬系統(tǒng)。LXC仰賴namespace來實(shí)現(xiàn)隔離性

27、。,隔離性,讓每個(gè)容器都有自己的命名空間,比如pid/net/ipc/mnt/uts等命名空間,以及不同的 user id和group id。有了namespace從進(jìn)程、網(wǎng)絡(luò)、IPC、檔系統(tǒng)、UTS和用戶角度進(jìn)行隔離,我們就能e確保在不同容器之間不會相互影響,每個(gè)容器都成為一個(gè)獨(dú)立運(yùn)行的單位。,隔離性,從容器里而觀之,它是一個(gè)完整的Linux的世界。在整個(gè)平臺而觀之,容器運(yùn)行于一個(gè)普通的用戶空間進(jìn)程,namespace創(chuàng)造了這種映射

28、和隔離效果,云平臺承載著一個(gè)個(gè)容器,就如同造物者創(chuàng)造了許多世外桃源一般。,資源控制,LXC仰賴cgroup來限制各個(gè)進(jìn)程對系統(tǒng)資源的使用能力。通常會創(chuàng)建多個(gè)cgroup,形成一個(gè)樹狀結(jié)構(gòu)(hierarchy)。然后subsystem會關(guān)聯(lián)連接到這個(gè)樹狀結(jié)構(gòu)上。一個(gè)subsystem代表著一項(xiàng)資源,例如CPU、Memory或 I/O等。,,,/cpu_mem_cg,,/cg1,/cg2,/cg3,Cgroup Hierarchy,,me

29、mory,,CPU,Subsystems,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)對task的資源管理與控制。一個(gè)task可加入到樹狀結(jié)構(gòu)上的一個(gè)cgroup,由此cgroup來限制該task的資源使用。,一個(gè)cgroup可以連結(jié)到多個(gè)task。而一個(gè)tas

30、k也可連結(jié)到多個(gè)cgroup。 例如,針對一個(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_1,hierarchy,hierarchy,,/mytask,,/task_N,,I/O,,CP

31、U,/cpuset,這個(gè)mytask連結(jié)到兩個(gè)cgroup:即“cpuset”和“ioset”,各連結(jié)到一個(gè)subsystem(即CPU和I/O資源)。,基于軟硬整合觀點(diǎn),,2.5、Docker集裝箱 和它的鏡像,制作Docker鏡像文件的途徑有二:1)從現(xiàn)有集裝箱生成,或從Dockerfile生成。亦即,集裝箱是一個(gè)基于Docker鏡像創(chuàng)建、包含為了運(yùn)行某一特定程序的所有需要的OS、軟件、配置文件和數(shù)據(jù),是一個(gè)可移

32、植的運(yùn)行單元。在Host機(jī)器來看,它只是一個(gè)簡單的用戶進(jìn)程而已?!?舉例:在Ubuntu機(jī)器上建立Docker集裝箱首先安裝Docker $ sudo apt-get install docker.io安裝好了,就可啟動(dòng)Docker服務(wù) $ sudo service docker.io restart接著載入一個(gè)ubuntu(的Docker)鏡像 $ sudo docker pull ubuntu

33、 (這創(chuàng)建一個(gè)集裝箱,內(nèi)含ubuntu鏡像),,,,ubuntu image,Docker集裝箱,Linux 內(nèi)核,執(zhí)行集裝箱內(nèi)Ubuntu交互式命令(如shell) $sudo docker run ubuntu /bin/echo Hello! Hello!在此集裝箱里,增添一個(gè)example鏡像 $sudo docker run ubuntu apt-g

34、et install -y example,,,,ubuntu image,,example image,Docker集裝箱,Linux 內(nèi)核,取得此集裝箱的ID $sudo docker ps –l (得到ID值,如:6966a3b96484)從這個(gè)集裝箱產(chǎn)生出它的鏡像 $sudo docker commit 6982 mis/exam,,,mis/exam鏡像,,,,ubuntu ima

35、ge,,example image,Linux 內(nèi)核,載入剛才產(chǎn)生的鏡像 $sudo docker pull mis/exam (這創(chuàng)建一個(gè)新集裝箱,內(nèi)含mis/exam鏡像)執(zhí)行集裝箱內(nèi)mis/exam鏡像 $sudo docker run mis/exam echo Happy! Happy!,,集裝箱 集裝箱,,,ubuntu image,,exa

36、mple image,,,,mis/exam image,Linux 內(nèi)核,執(zhí)行集裝箱內(nèi)mis/example鏡像 $sudo docker run mis/exam echo Happy! Happy!,基于軟硬整合觀點(diǎn),,2.6、Docker園丁 (Docker Runtime),我們在運(yùn)輸(ship)或移植一個(gè)Docker集裝箱時(shí),就像移植一棵樹一樣, 但是移植樹的種子

37、(seed)到另一個(gè)花園(平臺)里,重新打造出一樣的(identical)環(huán)境(花盆)并重新長出一樣的樹。,那么,我們在電腦上,需要有位園丁來打造花盆、準(zhǔn)備資源(如水、泥土)等工作。這位園丁就是:Docker Runtime。它是由三個(gè)模塊所組成,包括:Docker Server、Docker Engine和Docker Daemon三部分。,,Docker Client,,Server,RMI,,Engine,,Daemon,,Jo

38、b,,Handler,,,,,ExecDriver,,NetworkDriver,,GraphDriver,,通常,人們是透過Docker Client來與Docker Server建立通信(兩者是C/S架構(gòu))。例如,我們可以將docker build命令傳送給Docker Server來依據(jù)指定的dockerfile來創(chuàng)建一個(gè)Docker鏡像。,Docker Server接受Docker Client所傳送來的請求,然后轉(zhuǎn)給Dock

39、er Engine去轉(zhuǎn)換出一連串的工作(job)來管理集裝箱。例如,向Docker Registry獲取鏡像、通過GraphDriver執(zhí)行集裝箱鏡像的建立、通過NetworkDriver執(zhí)行容器網(wǎng)絡(luò)環(huán)境的配置、通過ExecDriver執(zhí)行集裝箱內(nèi)部的軟件等。,基于軟硬整合觀點(diǎn),,2.7、Docker集裝箱集散地 (Docker Hub),Docker公司不僅僅提供上述的Docker園丁來幫你搬運(yùn)集裝箱,還提供Do

40、cker Hub來做為集裝箱的共享平臺。Docker公司提供的開放平臺,主要包括:Platform = Docker Engine + Docker Hub + APIs + Ecosystem,我們在開發(fā)平臺上,使用Docker引擎來將App打包到集裝箱里,然后透過Do

41、cker Hub API來將集裝箱(的鏡像)放到Docker Hub上。于是,Docker Hub成為一個(gè)集裝箱集散地,也就是一個(gè)共享的集裝箱平臺。需要時(shí),可從這Hub尋找到集裝箱,并下載到云服務(wù)平臺(如阿里云或Google云)上去運(yùn)行。,所以,Docker Engine和Docker Hub兩者聯(lián)手,為開發(fā)者和系統(tǒng)管理員設(shè)計(jì)出一個(gè)易于發(fā)布和運(yùn)行分布式App的開放性平臺。,Q&A,基于軟硬整合觀點(diǎn),,By高煥堂,Part-3(

42、a),的十個(gè)學(xué)習(xí)步驟(步驟1~5),高煥堂的著作,,,第1步:學(xué)習(xí)兩種抽象視角第2步:關(guān)心下層的變動(dòng)自由度第3步:系統(tǒng)架構(gòu)控制力支撐商業(yè)競爭話語權(quán)第4步:是用戶從簡單中叫出復(fù)雜 的滿足感第5步:創(chuàng)意愛上限制,即需求檢驗(yàn)設(shè)計(jì),基于軟硬整合觀點(diǎn),,第1步、學(xué)習(xí)兩種抽象視角 (Abstraction View),視角1. 歸納抽象:,從一群的業(yè)務(wù)或系統(tǒng)模塊(Module)中,觀察其相

43、同的部分,然后歸納抽象(分析視角)出來,成為可復(fù)用(Reuse)共同部分。這稱為視角。,視角1. 歸納抽象:,變與不變分離,視角1. 歸納抽象:,,Credit Card(信用卡),,,,,,不變部分,視角1. 歸納抽象:,,抽象類,,,,,,不變部分,,具象類-1,,具象類-2,,具象類-n,,,除了分析業(yè)務(wù)之外,還要組合創(chuàng)新,歸納抽象,,,,除了分析業(yè)務(wù)之外,還要組合創(chuàng)新,,分析師視角,,除了分析業(yè)務(wù)之外,還要組合創(chuàng)新,,設(shè)計(jì)師視

44、角,,,,分析師視角,視角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è)和

45、諧的整體。這模式是形式(Form),各模塊是內(nèi)容(Content);通稱為視角。,,例如,汽車和行人是兩種個(gè)體(模塊),經(jīng)常在路上發(fā)生沖突,導(dǎo)致社會(整體)不和諧了。,因而創(chuàng)新設(shè)計(jì)了一個(gè)新模式:紅綠燈+斑馬線。成為汽車與行人的接口(Interface),整體就和諧了。,例如,一群零組件(如輪胎、引擎、機(jī)翼、機(jī)尾、油箱等)都;但是我想飛。,,除了分析業(yè)務(wù)之外,還要組合創(chuàng)新,,設(shè)計(jì)師視角,,把一群的模塊(如輪胎、引擎、機(jī)翼),巧妙地組合起來

46、,竟然就上天。,,設(shè)計(jì)師視角,,,把一群的模塊(如輪胎、引擎、機(jī)翼),巧妙地組合起來,竟然就上天。,架構(gòu)師的職責(zé),把一群的模塊(如輪胎、引擎、機(jī)翼),巧妙地組合起來,竟然就上天。,架構(gòu)師的職責(zé),基于軟硬整合觀點(diǎn),,第2步、關(guān)心下層變動(dòng)的自由度,,除了關(guān)心上層應(yīng)用,還要關(guān)心底層模塊。,,除了關(guān)心上層應(yīng)用,還要關(guān)心底層模塊。,,萬里長城設(shè)計(jì)師用心于關(guān)外還是關(guān)內(nèi),,,萬里長城設(shè)計(jì)師用心于關(guān)內(nèi),限制塞外,保護(hù)關(guān)內(nèi),,關(guān)心底層模塊廠商(

47、沒錢就改版, 改版就有錢)。,,架構(gòu)師用心 于底層重構(gòu),,,,,底層接口,底層模塊,,,上層模塊,,,,,,,,底層接口,底層模塊,,,上層模塊,,,,,,,Server 接口,Server模塊,,,,,,,f1(),OpenGL_C,,,App,,,,,,,p1(),SQLiteDB,,,,,,,f1(),OpenGL_C,,,,,,,p1(),SQLiteDB,,,App代碼,Callf1(“init”)

48、Callp1(factor(f1())),,,,,,f1(),OpenGL_C,,,,,,,p1(),SQLiteDB,,,App代碼,Callf1(“init”)Callp1(factor(f1())),f1()和p1()函數(shù)是誰定義的?,,,,,,f1(),OpenGL_C,,,,,,,p1(),SQLiteDB,,,App代碼,Callf1(“init”)Callp1(factor(f1())),f1()是設(shè)計(jì)者定義的,

49、,,,,,f1(),OpenGL_C,,,,,,,p1(),SQLiteDB,,,App代碼,Callf1(“init”)Callp1(factor(f1())),和字眼被寫在App模塊代碼里!,,,,,,f1(),OpenGL_C,,,,,,,p1(),SQLiteDB,,,App代碼,Callf1(“init”)Callp1(factor(f1())),App代碼綁住了接口!代碼必須同步修改,,f1(),,,p1(),,,代

50、碼必須同步修改,,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(),,

51、,,,OpenGL_C,變更成本= x + y元,,App代碼,Callf1(“init”)Callp1(factor(f1())),這就是所謂的的漣漪效應(yīng)。,,例如,Android的Camera模塊,Server模塊,Client模塊,,,,例如Android的3D繪圖,,抽換Server模塊,,引擎,,輪胎,接口,接口,引擎,輪胎,,,,著名的EIT設(shè)計(jì)模式,碎片: 可變,,抽換輪胎,,抽換輪胎,基于軟硬整合觀點(diǎn),,第

52、3步、 支撐,,除了結(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ì)自己),還要有策略(設(shè)計(jì)別人)。,,認(rèn)識自己企業(yè)的商業(yè)模式,厘清自己企業(yè)在商業(yè)合作策略上能夠(或想要)取得什么話語權(quán)? 取得接口(API)定義權(quán),掌握系統(tǒng)控制點(diǎn)。 強(qiáng)化自己商

53、業(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)勢接口創(chuàng)造強(qiáng)龍地位,,Client端廠商的商業(yè)策略?,,Client端廠商的商業(yè)策略?,

54、,隨時(shí)抽換Server模塊,,,Client端廠商,,,掌握接口創(chuàng)造地位,,Android架構(gòu)師如何支撐Google的商業(yè)策略?,,Android底層是Linux,它屬于Linux 基金會,,Android底層是Linux,它屬于Linux 基金會,Android,Linux,驅(qū)動(dòng)(Driver),,,驅(qū)動(dòng),Linux,,,GPL開源協(xié)議,擺在Linux內(nèi)核里,(硬件廠商),,開源之后,我的硬件創(chuàng)新就曝光了!,(硬件廠商),

55、,,驅(qū)動(dòng),Linux,,還可以擺在哪里呢?,(硬件廠商),,,驅(qū)動(dòng),Linux,,設(shè)計(jì)框架,定義接口,拉攏硬件廠,架空Linux 基金會,Android,Linux,驅(qū)動(dòng)(Driver),,設(shè)計(jì)HAL框架,,Android,Linux,驅(qū)動(dòng)(Driver),HAL,HAL的設(shè)計(jì)吸引硬件廠商,削弱Linux對硬件廠商的約束力,架空Linux基金會。提高Google的商業(yè)話語權(quán)。,基于軟硬整合觀點(diǎn),,第4步、是 讓用戶享受

56、從簡單中叫出 復(fù)雜的滿足感,,除了加法設(shè)計(jì), 還要先減法設(shè)計(jì)。,,,除了加法設(shè)計(jì), 還要先減法設(shè)計(jì)。,,好玩好摸好抱,,,除了加法設(shè)計(jì), 還要先減法設(shè)計(jì)。,,好玩好摸好抱,,,除了加法設(shè)計(jì), 還要先減法設(shè)計(jì)。,設(shè)計(jì)就是從復(fù)雜中找出簡單的過程。 讓開發(fā)者從簡單中反過來掌握復(fù)雜。 讓用戶能從簡單中叫出復(fù)雜,并獲得其中的滿足感。,"減法設(shè)計(jì)"思

57、維,古代的"容易"是包容改變的意思,并非舍棄改變之意。如此,化繁為簡,提升人們掌握復(fù)雜的能力。 後來,許多人喜歡抽象(Abstraction),抽出萬變不離其宗的"不變",來掌握簡單。這就違背了"容易"的標(biāo)的了。,蘋果很擅長減法設(shè)計(jì),舉例(一) :2000年代初期,Sony隨身聽是蘋果公司的競品之一。,隨身聽(競品),,,如何刪除呢?(減法設(shè)計(jì)),舉例(一) :2000年

58、代初期,Sony隨身聽是蘋果公司的競品之一。,iPod,,減法設(shè)計(jì),舉例(一) :2000年代初期,Sony隨身聽是蘋果公司的競品之一。,舉例(二) :之后,黑梅手機(jī)是蘋果公司的競品之一。,黑梅手機(jī),舉例(二) :之后,黑梅手機(jī)是蘋果公司的競品之一。,如何減法設(shè)計(jì)呢?,黑梅手機(jī),,舉例(二) :之后,黑梅手機(jī)是蘋果公司的競品之一。,,減法設(shè)計(jì),iPhone手機(jī),舉例(三) :還有,微軟平板也是蘋果公司的競品之一。,微軟平板,舉例(三)

59、 :還有,微軟平板也是蘋果公司的競品之一。,,如何刪除呢?(減法設(shè)計(jì)),微軟平板,,舉例(三) :還有,微軟平板也是蘋果公司的競品之一。,減法設(shè)計(jì),iPad,基于軟硬整合觀點(diǎn),,第5步、創(chuàng)意愛上限制, 即需求檢驗(yàn)設(shè)計(jì),,除了滿足(外在)需求, 還要追求(內(nèi)心)愿景。,,,需求圍繞設(shè)計(jì),,除了滿足(外在), 還要追求(內(nèi)心)愿景。,谷歌公司副總Mariss

60、a Mayer所提倡的: “創(chuàng)意愛上限制"(Creativity loves Constraint)。 她說:"創(chuàng)新來自愿景與限制的互動(dòng)" (Innovation is born from the interactionbetween constraint and vision)。 限制迫使架構(gòu)師重新審視愿景,從不同觀點(diǎn)切入,尋找新事物;同時(shí)也讓其聚精會神、厘清思路;非常具有創(chuàng)新性。,,,愿景限制

61、,,信用卡(Credit)聯(lián)盟的組織架構(gòu),,,愿景限制,,銀行不吃虧:沒向銀行拿錢消費(fèi)者不吃虧:刷卡與不刷卡,價(jià)錢一樣店家不吃虧:隨然每筆交易收了3%,但每天交易總額提升30%,,愿景限制,,== 創(chuàng)新Vision==沒向銀行收錢讓顧客占便宜提高店家收入,心境:不讓任何合作者受傷害(吃虧)。,,,愿景限制,消費(fèi)者刷卡,延后付款這利息誰支付?,,,,愿景限制,把利息轉(zhuǎn)嫁給有錢人(如貴婦)19.8%循環(huán)利息,Q&A,基

62、于軟硬整合觀點(diǎn),,By高煥堂,Part-3(b),的十個(gè)學(xué)習(xí)步驟(步驟6~10),高煥堂的著作,,,第6步: 假設(shè)性思維和Mapping from vision to reality第7步: 清晰而明確表述接口第8步: 盡快對接口進(jìn)行檢驗(yàn)和測試第9步: 設(shè)計(jì)通用性接口第10步:有效減法設(shè)計(jì),才能開放加法,基于軟硬整合觀點(diǎn),,第6步、假設(shè)性思維和Mapping from vision to reality,,除

63、了眺望未來, 還要Look back。,,,(從未來回顧今日),“你不可能在眺望未來時(shí)把生活中的每個(gè)點(diǎn)連接起來,只有回顧時(shí)能才連點(diǎn)成線。所以你必須相信今日所做的會影響你的未來。”蘋果.喬布斯說。,Look back,,,從現(xiàn)實(shí)眺望未來,(現(xiàn)實(shí),Reality),,,Prob. X.,許多Manager 都關(guān)注現(xiàn)實(shí)問題,,,從現(xiàn)實(shí)眺望未來,(現(xiàn)實(shí),Reality),,,Prob. X.,,,從現(xiàn)實(shí)眺望未來,(現(xiàn)實(shí),Re

64、ality),,,Prob. X.,,,從現(xiàn)實(shí)眺望未來,(現(xiàn)實(shí),Reality),,Prob. X.,,,愿景, Vision,Look Back,(現(xiàn)實(shí),Reality),,,其它問題,Ex. 國王與皮鞋的故事,古代有一位國王在它的國境里視察,因?yàn)槁访嫫閸绮黄?,還有很多碎石頭,刺得國王的腳又痛又麻。,回到王宮后,他下了一道命令,要將國內(nèi)所有的道路都鋪上一層牛皮。于是,讓他自己和全國的人走路不再受刺痛之苦,眾大臣聽了國王的話都一籌

65、莫展,知道這很難。即便殺盡國內(nèi)所有的牛,也湊不到足夠的牛皮來鋪路,而且花費(fèi)昂貴。,這時(shí),一個(gè)聰明的仆人向國王建言:可以試著用牛皮將腳包起來,大王的腳就不會忍受痛苦了。國王聽道而采納了建議,于是,皮鞋就這樣發(fā)明了出來了。,,,道路碎石多、 走路腳痛,,殺牛、鋪牛皮,Prob. X.,,國王&大臣們 都關(guān)注現(xiàn)實(shí)問題,,,道路碎石多、 走路腳痛,,殺牛、鋪牛皮,Prob. X.,,Solve P

66、roblem X,,,,道路碎石多、 走路腳痛,,殺牛、鋪牛皮,Prob. X.,,仆人,X is Not Right Problem to solve,,,,愿景, Vision,Look Back,(現(xiàn)實(shí),Reality),,,其它問題,,,,,,,,道路碎石多、 走路腳痛,,,,,,,,,,Vision,,Mapping from vision to reality,,,,,,道路碎石多、

67、 走路腳痛,,,,,,,,,,Vision,,,,道路碎石多、 走路腳痛,,創(chuàng)新: 皮鞋,Vision,Ex. 紅綠燈與斑馬線,Ex. 紅綠燈與斑馬線,,汽車和行人經(jīng)常在路上發(fā)生沖突、混亂。(現(xiàn)實(shí)),,讓街道井然有序。 (愿景,Vision),Reality:沖突混亂,,,Prob. X.,,,Prob. X.,,Vision,,,,,,,,,,,Vision,,Mapping

68、 from vision to reality,,,,,,,,,,,Vision,,Prob. Y.,,,,,Ex. 集裝箱的故事,,需求碎片化潮流下, (現(xiàn)實(shí),Reality),,需求碎片化潮流下, (現(xiàn)實(shí),Reality),迅速將碎片組合出整體 (愿景,Vision),,Reality:碎片,,Reality:碎片,Vision-1,Vision-2,Vision-

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論