版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、,By高煥堂,的十個學習步驟,簡介,在需求、數(shù)據(jù)和軟件愈來愈碎片化的趨勢下,集裝箱(如Docker Container)包裝了微服務(wù)(Micro-Service)成為主流。這些微服務(wù)在運行時間(Run-time)經(jīng)常需要動態(tài)組合成為各式各樣的App來支撐企業(yè)多變的業(yè)務(wù)流程。,簡介,這種集裝箱式架構(gòu)設(shè)計,隨著近年來Docker集裝箱技術(shù)的流行,可說紅透半天邊,而且勢如破竹、蔚為風潮,正在強力改變終端與云平臺的整體設(shè)計理念和方法。,簡介,
2、本課程分為兩個階段,第一階段以個人的學習路徑為主軸,依循十個學習步驟,循序漸進建立扎實的根基。第二階段,則依據(jù)企業(yè)軟件開發(fā)流程里的先后環(huán)節(jié)來作教學。闡述各環(huán)節(jié)的思想、模式、技術(shù)和實踐要點。并以的端云一體化架構(gòu)設(shè)計為例,闡述企業(yè)邏輯分析、插件和集裝箱設(shè)計、實際開發(fā)愈部屬方法等。,基于軟硬整合觀點,,By高煥堂,碎片化潮流下的架構(gòu)新思維-- 變化、碎片與集裝箱,Part-1,高煥堂的著作,,基于軟硬整合觀點,,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)碎片(輪胎),,,沙灘,,,,其他變因?,,其他碎片?,請您找找看!,基于軟硬整合觀點,,1.2 軟件碎片(插件) 來自何處呢?,,,,插件(軟件碎片)來自變化(Change),,,,碎片或插件(Plug-in)的 背后都是變(化),,,,以SurfaceView + Camera(攝像頭)為例,軟件
6、SurfaceView代表手機屏幕軟件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ī)院加護(重癥)病房的儀器聯(lián)結(jié)到護士站的Android TV,讓患者的病情及時傳送到TV上。同時,TV也主動再將訊息及時傳送到醫(yī)生的手機或Pad上,讓醫(yī)生能進行實時性的決策,提供更高質(zhì)量的服務(wù)。,變化,基于軟硬整合觀點,,,,,1.3 軟件碎片的組合,試想,在智慧城市里,有兩個
10、系統(tǒng)模塊: 智能家庭和交通車聯(lián)網(wǎng)。兩者之間通過網(wǎng)絡(luò)通信機制來互通。,,,智慧家庭,,交通車聯(lián)網(wǎng),,,通信協(xié)議,,,智慧家庭,,交通車聯(lián)網(wǎng),,,通信協(xié)議,通信協(xié)議,,,智慧家庭,,交通車聯(lián)網(wǎng),,先搞定通信協(xié)議,傳統(tǒng)方法:兩個團隊先約定,商討一個雙方都接受的通信協(xié)議。,然后,雙方就依據(jù)這項通信協(xié)議,分別開發(fā)各自的模塊。,,,智慧家庭,,交通車聯(lián)網(wǎng),,,通信協(xié)議,不良結(jié)果:各模塊都依賴于(Depend on)通信協(xié)議
11、,導(dǎo)致兩個模塊也緊密相依了。三個東西緊密相連在一起的。一旦通信協(xié)議改變了,兩邊的模塊都必須改變。產(chǎn)生的牽一發(fā)而動全身的漣漪效應(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,基于軟硬整合觀點,,1.4 軟件的序中有亂 (集裝箱特性),,,,變化,I,Tx,I,
14、Ty,變化,I,T1,T2,變化,亂(變化),I(序),T,I(序),,亂,T,I(序),,亂,T,I(序),,亂,T,亂,,序中有亂,,外形簡單內(nèi)容多變無限組合,,集裝箱特性:,,,,,,,,,,例如:原子,,化學元素由原子構(gòu)成,道爾頓,,,,,,,,,,例如:原子,(摘自百度文庫),,不同元素原子的性質(zhì) 各不相同,道爾頓,,,,,,,,,,(摘自百度文庫),,道爾頓,,,,,,,,,,序中有亂,序中有亂,,不同元素化合時,原
15、子 以簡單整數(shù)比結(jié)合。,道爾頓,,道爾頓,水分子,序中有亂,,道爾頓,,,,,,,,,,,,,,,,序中有亂,,,,,,,,,,,,,,,,,,,,,,,,,序中有亂,Q&A,基于軟硬整合觀點,,By高煥堂,Part-2,的趨勢、技術(shù)與架構(gòu),高煥堂的著作,,Docker: 碼頭工人 (集裝箱搬運工),基于軟硬整合觀點,,2.1、集裝箱(Container) 的經(jīng)濟效益,Docker集裝箱,自從2014年
16、以來,Docker 的集裝箱(container)技術(shù),可說是紅透半天邊,而且勢如破竹、蔚為風潮,正在強力改變云(cloud)服務(wù)的世界。,這跟半世紀前,海上船運業(yè)的集裝箱風潮,對整個產(chǎn)業(yè)的革命性改變,其力道來源和產(chǎn)生經(jīng)濟效益,可說具有異曲同工之妙。,為了配合集裝箱化運輸時代的來臨,海運事業(yè)的整體運作型態(tài)也產(chǎn)生了重大的轉(zhuǎn)變,無論在海上運送、碼頭作業(yè)以及陸運轉(zhuǎn)接上,都有革命性的改變。,陸上拖車運輸業(yè)應(yīng)時而興,扮演極為重要的角色,以集裝箱拖
17、車配合集裝箱船運輸,具有簡化包裝、防止竊盜、加速貨物搬運及便利關(guān)務(wù)檢驗等優(yōu)點,使集裝箱運輸作業(yè)更加靈活。,集裝箱帶來的商業(yè)利益,其直接受惠是運輸業(yè)者,并不是貨物制造者。所以集裝箱內(nèi)部的包裝業(yè),如紙盒制造業(yè)、打包工人等;拖車汽車廠、拖車行、拖車司機;還有造船廠、海運公司、碼頭工人等都會迅速蓬勃發(fā)展起來。,將之對應(yīng)到Docker風潮,可知道Docker集裝箱的效益在于:讓所有云服務(wù)都有一致的操作(operation)界面,包括部署、管理等
18、方式。Docker集裝箱帶來的商業(yè)利益,直接受惠是軟件管理者或稱維運者(operator),例如軟件測試工具業(yè)者、測試人員等。,在這新世代里,除了拿Docker集裝箱來打包微服務(wù)(micro-service)來滿足需求碎片之外。我們還要以廣大的視野、創(chuàng)新的思維,將碎片組合出各式各樣、氣象萬千的商業(yè)服務(wù)。,就像飛機設(shè)計師一樣,把一群各自的模塊(如輪胎、引擎、機翼、油箱等),以創(chuàng)新模式將它們組合起來,竟然整體就<能飛>上天空了。,在許多
19、革命性轉(zhuǎn)折里,經(jīng)常出現(xiàn)集裝箱的身影;它就像幸運草一般,總是帶來許多幸福和財運?,F(xiàn)在Docker風起云涌,再現(xiàn)集裝箱身影,如果開放視野、大力支持它,持續(xù)發(fā)揮它的潛能和力量,則幸運草就會出現(xiàn)在我們身旁了。,基于軟硬整合觀點,,2.2、國王的皮鞋 與Docker集裝箱,古代有一位國王在它的國境里視察,因為路面崎嶇不平,還有很多碎石頭,刺得國王的腳又痛又麻。,(摘自百度文庫),回到了王宮后,他下了一道命令,要將國內(nèi)所有的道
20、路都鋪上一層牛皮。讓他自己和全國的人走路不再受刺痛之苦。然而,即便殺盡國內(nèi)所有的牛,也湊不到足夠的牛皮來鋪路,而且花費昂貴。,這時,一個仆人向國王建言:可以用牛皮將腳包起來,大王的腳就不會忍受痛苦了。國王聽道而頓悟了,便收回命令,采納了建議,于是,皮鞋就這樣發(fā)明了出來了。,(摘自百度文庫),從上述皮鞋故事的比喻,可知道傳統(tǒng)的虛擬化(virtualization)技術(shù)就相當于在各道路(實體機器)上鋪一層牛皮(VM, 虛擬機),然后讓國
21、王的腳(App)在牛皮(VM)上走路(執(zhí)行)。,傳統(tǒng)上云平臺采取虛擬化手段來滿足用戶個別的資源需求分配,以及確保其可用性和隔離性。然而無論是KVM還是Xen等Guest OS都很浪費資源又難于管理, 都不如Docker集裝箱(皮鞋)來的更加靈活、快速和節(jié)省資源。,傳統(tǒng)鋪牛皮(虛擬層),,Docker皮鞋(集裝箱),,Docker的焦點在于而不是像傳統(tǒng)虛擬化思維的焦點在于讓國王腳疼的。為什么Docker集裝箱能提升App的執(zhí)行效能
22、呢? 因為Docker屬于OS層級的虛擬化。,在傳統(tǒng)hypervisor虛擬化技術(shù)哩,VM透過一個中介層,間接執(zhí)行于Host OS上。而Docker集裝箱(也是一個小VM)則執(zhí)行于Host-OS的用戶空間,直接執(zhí)行于Host OS上。所以效率提高了。,Docker讓開發(fā)者可以打包他們的應(yīng)用以及依賴包到一個可移植的容器中,然后發(fā)布到主流的 Linux 機器上。這些分布式應(yīng)用程序具可攜特性,由各個不同但可互通的Docker容器所組成,具
23、備動態(tài)的生命周期,而且不論是在筆電或是云端上皆可執(zhí)行。,基于軟硬整合觀點,,2.3、Docker集裝箱的基礎(chǔ)-- LXC,,用戶空間,Linux 內(nèi)核,,用戶空間,Linux 內(nèi)核,進程,進程,,用戶空間,Linux 內(nèi)核,進程,LXC,namespace,LXC在目前的進程管理框架上增加資源的管理和隔離機制。LXC包集成這些linux內(nèi)核機制提供一個用戶空間容器對象, 即是針對某一應(yīng)用提供資源隔離和控制的輕量虛擬系統(tǒng)。,Docke
24、r對container的使用基本是建立唉LXC基礎(chǔ)之上的,然而LXC存在的問題是難以移動 - 難以通過標準化的模板制作、重建、復(fù)制和移動 container。,LXC仰賴namespace來實現(xiàn)隔離性。讓每個容器都有自己的命名空間,確保不同容器之間不會相互影響,讓每個容器成為擁有自己進程和網(wǎng)絡(luò)空間的虛擬環(huán)境,都成為一個獨立運行的單位。此外,LXC藉由內(nèi)核的cgroup來對各個容器(的進程)使用的系統(tǒng)資源做嚴格的限制。,例如可建立一個c
25、group來限制某個(容器)進程對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、虛擬機(VM)的模式,讓用戶像管理VM一樣的管理他們的集裝箱鏡像。,基于軟硬整合觀點,,2.4、Namespace與 Cgroup的角色,簡而言之,LXC基于namespace的隔離機制和cgroup的資源控制功能,來管理容器。,隔離性,LXC運行于一個用戶空間進程里,在既有的進程管理架構(gòu)上,增添了資源管理和隔離機制。所以LXC是針對某一App提供資源隔離和控制的輕量型虛擬系統(tǒng)。LXC仰賴namespace來實現(xiàn)隔離性
27、。,隔離性,讓每個容器都有自己的命名空間,比如pid/net/ipc/mnt/uts等命名空間,以及不同的 user id和group id。有了namespace從進程、網(wǎng)絡(luò)、IPC、檔系統(tǒng)、UTS和用戶角度進行隔離,我們就能e確保在不同容器之間不會相互影響,每個容器都成為一個獨立運行的單位。,隔離性,從容器里而觀之,它是一個完整的Linux的世界。在整個平臺而觀之,容器運行于一個普通的用戶空間進程,namespace創(chuàng)造了這種映射
28、和隔離效果,云平臺承載著一個個容器,就如同造物者創(chuàng)造了許多世外桃源一般。,資源控制,LXC仰賴cgroup來限制各個進程對系統(tǒng)資源的使用能力。通常會創(chuàng)建多個cgroup,形成一個樹狀結(jié)構(gòu)(hierarchy)。然后subsystem會關(guān)聯(lián)連接到這個樹狀結(jié)構(gòu)上。一個subsystem代表著一項資源,例如CPU、Memory或 I/O等。,,,/cpu_mem_cg,,/cg1,/cg2,/cg3,Cgroup Hierarchy,,me
29、mory,,CPU,Subsystems,cgroup組織形式是樹狀結(jié)構(gòu)的,包含一個父cgroup和三個子cgroup,其關(guān)聯(lián)到兩個subsystem(即CPU和memory)。這subsystem是經(jīng)由cgroup來與task(典型的就是進程)連結(jié),以便實現(xiàn)對task的資源管理與控制。一個task可加入到樹狀結(jié)構(gòu)上的一個cgroup,由此cgroup來限制該task的資源使用。,一個cgroup可以連結(jié)到多個task。而一個tas
30、k也可連結(jié)到多個cgroup。 例如,針對一個容器進程,先創(chuàng)建名為“cpuset”的cgroup,然后將一個mytask的PID寫入/sys/fs/cgroup/cpuset/tasks文件里,就把這個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,這個mytask連結(jié)到兩個cgroup:即“cpuset”和“ioset”,各連結(jié)到一個subsystem(即CPU和I/O資源)。,基于軟硬整合觀點,,2.5、Docker集裝箱 和它的鏡像,制作Docker鏡像文件的途徑有二:1)從現(xiàn)有集裝箱生成,或從Dockerfile生成。亦即,集裝箱是一個基于Docker鏡像創(chuàng)建、包含為了運行某一特定程序的所有需要的OS、軟件、配置文件和數(shù)據(jù),是一個可移
32、植的運行單元。在Host機器來看,它只是一個簡單的用戶進程而已?!?舉例:在Ubuntu機器上建立Docker集裝箱首先安裝Docker $ sudo apt-get install docker.io安裝好了,就可啟動Docker服務(wù) $ sudo service docker.io restart接著載入一個ubuntu(的Docker)鏡像 $ sudo docker pull ubuntu
33、 (這創(chuàng)建一個集裝箱,內(nèi)含ubuntu鏡像),,,,ubuntu image,Docker集裝箱,Linux 內(nèi)核,執(zhí)行集裝箱內(nèi)Ubuntu交互式命令(如shell) $sudo docker run ubuntu /bin/echo Hello! Hello!在此集裝箱里,增添一個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)從這個集裝箱產(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)建一個新集裝箱,內(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!,基于軟硬整合觀點,,2.6、Docker園丁 (Docker Runtime),我們在運輸(ship)或移植一個Docker集裝箱時,就像移植一棵樹一樣, 但是移植樹的種子
37、(seed)到另一個花園(平臺)里,重新打造出一樣的(identical)環(huán)境(花盆)并重新長出一樣的樹。,那么,我們在電腦上,需要有位園丁來打造花盆、準備資源(如水、泥土)等工作。這位園丁就是:Docker Runtime。它是由三個模塊所組成,包括: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)建一個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)部的軟件等。,基于軟硬整合觀點,,2.7、Docker集裝箱集散地 (Docker Hub),Docker公司不僅僅提供上述的Docker園丁來幫你搬運集裝箱,還提供Do
40、cker Hub來做為集裝箱的共享平臺。Docker公司提供的開放平臺,主要包括:Platform = Docker Engine + Docker Hub + APIs + Ecosystem,我們在開發(fā)平臺上,使用Docker引擎來將App打包到集裝箱里,然后透過Do
41、cker Hub API來將集裝箱(的鏡像)放到Docker Hub上。于是,Docker Hub成為一個集裝箱集散地,也就是一個共享的集裝箱平臺。需要時,可從這Hub尋找到集裝箱,并下載到云服務(wù)平臺(如阿里云或Google云)上去運行。,所以,Docker Engine和Docker Hub兩者聯(lián)手,為開發(fā)者和系統(tǒng)管理員設(shè)計出一個易于發(fā)布和運行分布式App的開放性平臺。,Q&A,基于軟硬整合觀點,,By高煥堂,Part-3(
42、a),的十個學習步驟(步驟1~5),高煥堂的著作,,,第1步:學習兩種抽象視角第2步:關(guān)心下層的變動自由度第3步:系統(tǒng)架構(gòu)控制力支撐商業(yè)競爭話語權(quán)第4步:是用戶從簡單中叫出復(fù)雜 的滿足感第5步:創(chuàng)意愛上限制,即需求檢驗設(shè)計,基于軟硬整合觀點,,第1步、學習兩種抽象視角 (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è)計師視
44、角,,,,分析師視角,視角2. 組合創(chuàng)新:,引進或創(chuàng)造一個新模式(Pattern),將一群模塊組合成一個和諧的整體。這模式是形式(Form),各模塊是內(nèi)容(Content);通稱為視角。,視角2. 組合創(chuàng)新:,引進或創(chuàng)造一個新模式(Pattern),將一群模塊組合成一個和諧的整體。這模式是形式(Form),各模塊是內(nèi)容(Content);通稱為視角。,,視角2. 組合創(chuàng)新:,引進或創(chuàng)造一個新模式(Pattern),將一群模塊組合成一個和
45、諧的整體。這模式是形式(Form),各模塊是內(nèi)容(Content);通稱為視角。,,例如,汽車和行人是兩種個體(模塊),經(jīng)常在路上發(fā)生沖突,導(dǎo)致社會(整體)不和諧了。,因而創(chuàng)新設(shè)計了一個新模式:紅綠燈+斑馬線。成為汽車與行人的接口(Interface),整體就和諧了。,例如,一群零組件(如輪胎、引擎、機翼、機尾、油箱等)都;但是我想飛。,,除了分析業(yè)務(wù)之外,還要組合創(chuàng)新,,設(shè)計師視角,,把一群的模塊(如輪胎、引擎、機翼),巧妙地組合起來
46、,竟然就上天。,,設(shè)計師視角,,,把一群的模塊(如輪胎、引擎、機翼),巧妙地組合起來,竟然就上天。,架構(gòu)師的職責,把一群的模塊(如輪胎、引擎、機翼),巧妙地組合起來,竟然就上天。,架構(gòu)師的職責,基于軟硬整合觀點,,第2步、關(guān)心下層變動的自由度,,除了關(guān)心上層應(yīng)用,還要關(guān)心底層模塊。,,除了關(guān)心上層應(yīng)用,還要關(guān)心底層模塊。,,萬里長城設(shè)計師用心于關(guān)外還是關(guān)內(nèi),,,萬里長城設(shè)計師用心于關(guān)內(nèi),限制塞外,保護關(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è)計者定義的,
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è)計模式,碎片: 可變,,抽換輪胎,,抽換輪胎,基于軟硬整合觀點,,第
52、3步、 支撐,,除了結(jié)構(gòu)(設(shè)計自己),還要有策略(設(shè)計別人)。,,,依據(jù)企業(yè)的定位,設(shè)計有利于自己的軟件接口給別人實現(xiàn)。,除了結(jié)構(gòu)(設(shè)計自己),還要有策略(設(shè)計別人)。,,,,掌握接口,擁有系統(tǒng)控制權(quán),支撐商業(yè)話語權(quán),鞏固地位。,除了結(jié)構(gòu)(設(shè)計自己),還要有策略(設(shè)計別人)。,,認識自己企業(yè)的商業(yè)模式,厘清自己企業(yè)在商業(yè)合作策略上能夠(或想要)取得什么話語權(quán)? 取得接口(API)定義權(quán),掌握系統(tǒ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),,掌握強勢接口創(chuàng)造強龍地位,,Client端廠商的商業(yè)策略?,,Client端廠商的商業(yè)策略?,
54、,隨時抽換Server模塊,,,Client端廠商,,,掌握接口創(chuàng)造地位,,Android架構(gòu)師如何支撐Google的商業(yè)策略?,,Android底層是Linux,它屬于Linux 基金會,,Android底層是Linux,它屬于Linux 基金會,Android,Linux,驅(qū)動(Driver),,,驅(qū)動,Linux,,,GPL開源協(xié)議,擺在Linux內(nèi)核里,(硬件廠商),,開源之后,我的硬件創(chuàng)新就曝光了!,(硬件廠商),
55、,,驅(qū)動,Linux,,還可以擺在哪里呢?,(硬件廠商),,,驅(qū)動,Linux,,設(shè)計框架,定義接口,拉攏硬件廠,架空Linux 基金會,Android,Linux,驅(qū)動(Driver),,設(shè)計HAL框架,,Android,Linux,驅(qū)動(Driver),HAL,HAL的設(shè)計吸引硬件廠商,削弱Linux對硬件廠商的約束力,架空Linux基金會。提高Google的商業(yè)話語權(quán)。,基于軟硬整合觀點,,第4步、是 讓用戶享受
56、從簡單中叫出 復(fù)雜的滿足感,,除了加法設(shè)計, 還要先減法設(shè)計。,,,除了加法設(shè)計, 還要先減法設(shè)計。,,好玩好摸好抱,,,除了加法設(shè)計, 還要先減法設(shè)計。,,好玩好摸好抱,,,除了加法設(shè)計, 還要先減法設(shè)計。,設(shè)計就是從復(fù)雜中找出簡單的過程。 讓開發(fā)者從簡單中反過來掌握復(fù)雜。 讓用戶能從簡單中叫出復(fù)雜,并獲得其中的滿足感。,"減法設(shè)計"思
57、維,古代的"容易"是包容改變的意思,并非舍棄改變之意。如此,化繁為簡,提升人們掌握復(fù)雜的能力。 後來,許多人喜歡抽象(Abstraction),抽出萬變不離其宗的"不變",來掌握簡單。這就違背了"容易"的標的了。,蘋果很擅長減法設(shè)計,舉例(一) :2000年代初期,Sony隨身聽是蘋果公司的競品之一。,隨身聽(競品),,,如何刪除呢?(減法設(shè)計),舉例(一) :2000年
58、代初期,Sony隨身聽是蘋果公司的競品之一。,iPod,,減法設(shè)計,舉例(一) :2000年代初期,Sony隨身聽是蘋果公司的競品之一。,舉例(二) :之后,黑梅手機是蘋果公司的競品之一。,黑梅手機,舉例(二) :之后,黑梅手機是蘋果公司的競品之一。,如何減法設(shè)計呢?,黑梅手機,,舉例(二) :之后,黑梅手機是蘋果公司的競品之一。,,減法設(shè)計,iPhone手機,舉例(三) :還有,微軟平板也是蘋果公司的競品之一。,微軟平板,舉例(三)
59、 :還有,微軟平板也是蘋果公司的競品之一。,,如何刪除呢?(減法設(shè)計),微軟平板,,舉例(三) :還有,微軟平板也是蘋果公司的競品之一。,減法設(shè)計,iPad,基于軟硬整合觀點,,第5步、創(chuàng)意愛上限制, 即需求檢驗設(shè)計,,除了滿足(外在)需求, 還要追求(內(nèi)心)愿景。,,,需求圍繞設(shè)計,,除了滿足(外在), 還要追求(內(nèi)心)愿景。,谷歌公司副總Mariss
60、a Mayer所提倡的: “創(chuàng)意愛上限制"(Creativity loves Constraint)。 她說:"創(chuàng)新來自愿景與限制的互動" (Innovation is born from the interactionbetween constraint and vision)。 限制迫使架構(gòu)師重新審視愿景,從不同觀點切入,尋找新事物;同時也讓其聚精會神、厘清思路;非常具有創(chuàng)新性。,,,愿景限制
61、,,信用卡(Credit)聯(lián)盟的組織架構(gòu),,,愿景限制,,銀行不吃虧:沒向銀行拿錢消費者不吃虧:刷卡與不刷卡,價錢一樣店家不吃虧:隨然每筆交易收了3%,但每天交易總額提升30%,,愿景限制,,== 創(chuàng)新Vision==沒向銀行收錢讓顧客占便宜提高店家收入,心境:不讓任何合作者受傷害(吃虧)。,,,愿景限制,消費者刷卡,延后付款這利息誰支付?,,,,愿景限制,把利息轉(zhuǎn)嫁給有錢人(如貴婦)19.8%循環(huán)利息,Q&A,基
62、于軟硬整合觀點,,By高煥堂,Part-3(b),的十個學習步驟(步驟6~10),高煥堂的著作,,,第6步: 假設(shè)性思維和Mapping from vision to reality第7步: 清晰而明確表述接口第8步: 盡快對接口進行檢驗和測試第9步: 設(shè)計通用性接口第10步:有效減法設(shè)計,才能開放加法,基于軟硬整合觀點,,第6步、假設(shè)性思維和Mapping from vision to reality,,除
63、了眺望未來, 還要Look back。,,,(從未來回顧今日),“你不可能在眺望未來時把生活中的每個點連接起來,只有回顧時能才連點成線。所以你必須相信今日所做的會影響你的未來?!碧O果.喬布斯說。,Look back,,,從現(xiàn)實眺望未來,(現(xiàn)實,Reality),,,Prob. X.,許多Manager 都關(guān)注現(xiàn)實問題,,,從現(xiàn)實眺望未來,(現(xiàn)實,Reality),,,Prob. X.,,,從現(xiàn)實眺望未來,(現(xiàn)實,Re
64、ality),,,Prob. X.,,,從現(xiàn)實眺望未來,(現(xiàn)實,Reality),,Prob. X.,,,愿景, Vision,Look Back,(現(xiàn)實,Reality),,,其它問題,Ex. 國王與皮鞋的故事,古代有一位國王在它的國境里視察,因為路面崎嶇不平,還有很多碎石頭,刺得國王的腳又痛又麻。,回到王宮后,他下了一道命令,要將國內(nèi)所有的道路都鋪上一層牛皮。于是,讓他自己和全國的人走路不再受刺痛之苦,眾大臣聽了國王的話都一籌
65、莫展,知道這很難。即便殺盡國內(nèi)所有的牛,也湊不到足夠的牛皮來鋪路,而且花費昂貴。,這時,一個聰明的仆人向國王建言:可以試著用牛皮將腳包起來,大王的腳就不會忍受痛苦了。國王聽道而采納了建議,于是,皮鞋就這樣發(fā)明了出來了。,,,道路碎石多、 走路腳痛,,殺牛、鋪牛皮,Prob. X.,,國王&大臣們 都關(guān)注現(xiàn)實問題,,,道路碎石多、 走路腳痛,,殺牛、鋪牛皮,Prob. X.,,Solve P
66、roblem X,,,,道路碎石多、 走路腳痛,,殺牛、鋪牛皮,Prob. X.,,仆人,X is Not Right Problem to solve,,,,愿景, Vision,Look Back,(現(xiàn)實,Reality),,,其它問題,,,,,,,,道路碎石多、 走路腳痛,,,,,,,,,,Vision,,Mapping from vision to reality,,,,,,道路碎石多、
67、 走路腳痛,,,,,,,,,,Vision,,,,道路碎石多、 走路腳痛,,創(chuàng)新: 皮鞋,Vision,Ex. 紅綠燈與斑馬線,Ex. 紅綠燈與斑馬線,,汽車和行人經(jīng)常在路上發(fā)生沖突、混亂。(現(xiàn)實),,讓街道井然有序。 (愿景,Vision),Reality:沖突混亂,,,Prob. X.,,,Prob. X.,,Vision,,,,,,,,,,,Vision,,Mapping
68、 from vision to reality,,,,,,,,,,,Vision,,Prob. Y.,,,,,Ex. 集裝箱的故事,,需求碎片化潮流下, (現(xiàn)實,Reality),,需求碎片化潮流下, (現(xiàn)實,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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
評論
0/150
提交評論