奇談怪論:從容器想到去IOE、去庫(kù)存和獨(dú)角獸
回顧了架構(gòu)的變化,如下圖:
云化和容器化給開(kāi)發(fā),部署和架構(gòu)帶來(lái)了巨大變化,包括團(tuán)隊(duì)的構(gòu)成,例如DBA是否必要,同時(shí)也讓DevOps和微服務(wù)變得切實(shí)可行。
容器化將(1)常態(tài)化 - 尤其是當(dāng)ISV也把它們的產(chǎn)品容器化后;(2)促進(jìn)分布式架構(gòu)在傳統(tǒng)企業(yè)IT里的采用(此前,大部分垂直行業(yè)IT并不擅長(zhǎng)互聯(lián)網(wǎng)企業(yè)所擅長(zhǎng)的分布式架構(gòu),現(xiàn)在只要接受了容器的概念,顯然就走向分布式);(3)促進(jìn)已經(jīng)講了8年以上的DevOps落地可操作。
SOA和微服務(wù)的不同,采用微服務(wù)架構(gòu)要考量的方方面面,去IOE實(shí)質(zhì)是去中心化和傳統(tǒng)的架構(gòu)方式,企業(yè)要修煉的是內(nèi)功包括架構(gòu),體制和文化,倡導(dǎo)學(xué)習(xí)型組織和工程師文化,讓技術(shù)和團(tuán)隊(duì)保持持續(xù)的進(jìn)步和革新。
在DevOps產(chǎn)品的設(shè)計(jì)和研發(fā)中,我曾犯過(guò)的6個(gè)錯(cuò)誤
構(gòu)建DevOps產(chǎn)品的經(jīng)驗(yàn)總結(jié)。
錯(cuò)誤1:概念耦合。最典型的就是沒(méi)有將DevOps、CaaS、MicroService拆分開(kāi)來(lái)看。
錯(cuò)誤2:關(guān)鍵設(shè)計(jì)未集中來(lái)做。最典型的問(wèn)題就是數(shù)據(jù)模型(ER)的設(shè)計(jì)下放到每個(gè)子系統(tǒng)去設(shè)計(jì)。
錯(cuò)誤3:MVP未深思熟慮,未采用最工程化方式來(lái)實(shí)現(xiàn)。
錯(cuò)誤4:沒(méi)有引入流程引擎作為底層支撐,更何況是我們有流程引擎成熟產(chǎn)品的前提下。
錯(cuò)誤5:康威定律的實(shí)踐問(wèn)題,異地團(tuán)隊(duì)與子系統(tǒng)的結(jié)合方式有些欠妥。
錯(cuò)誤6:架構(gòu)師的參與度不足。
相應(yīng)的調(diào)整
組織架構(gòu)的調(diào)整,拆成了獨(dú)立的三部分來(lái)做,分成DevOps團(tuán)隊(duì)、容器云團(tuán)隊(duì)、微服務(wù)團(tuán)隊(duì)。
引入EOS(開(kāi)發(fā)平臺(tái))、BPS(流程引擎),支撐平臺(tái)下一個(gè)MVP的工程化交付。
概念模型到數(shù)據(jù)模型的總體設(shè)計(jì),將DevOps分為產(chǎn)品管理、項(xiàng)目管理、交付中心、代碼&構(gòu)建、權(quán)限管理五部分。
不再自己杜撰需求(當(dāng)然之前也不是杜撰的,只是與實(shí)際結(jié)合還不夠緊密),結(jié)合燈塔客戶的具體需求與狀況,來(lái)輔助完成產(chǎn)品研發(fā)。
團(tuán)隊(duì)分工,異地做一定犧牲,前期需求與設(shè)計(jì)階段在一起辦公,同時(shí)獨(dú)立分出架構(gòu)師,全職參與DevOps產(chǎn)品研發(fā)和實(shí)施。
NIO
事件驅(qū)動(dòng)模型
避免多線程
單線程處理多任務(wù)
非阻塞I/O,I/O讀寫不再阻塞,而是返回0
基于block的傳輸,通常比基于流的傳輸更高效
更高級(jí)的IO函數(shù),zero-copy
IO多路復(fù)用大大提高了Java網(wǎng)絡(luò)應(yīng)用的可伸縮性和實(shí)用性
還是得把Java I/O, NIO and NIO.2和Pro Java 7 Nio.2看看。