生而為云,看騰訊云原生中臺(tái)如何超越“康威定律”
IT時(shí)報(bào)記者 郝俊慧
1967年,一位名叫馬爾文·康威的程序員在論文中寫(xiě)下這樣一句話:“設(shè)計(jì)系統(tǒng)的組織,其產(chǎn)生的設(shè)計(jì)和架構(gòu)等價(jià)于組織間的溝通結(jié)構(gòu)。”
半個(gè)多世紀(jì)以來(lái),“康威定律”默默釋放著它的魔力:當(dāng)企業(yè)運(yùn)轉(zhuǎn)越來(lái)越依賴于信息技術(shù)時(shí),組織架構(gòu)與IT系統(tǒng)架構(gòu)是否匹配,是企業(yè)能否轉(zhuǎn)型成功的關(guān)鍵。
“云原生中臺(tái)面臨的最大挑戰(zhàn)就是康威定律。”11月5日,在上海世博中心召開(kāi)的開(kāi)源基礎(chǔ)設(shè)施峰會(huì)(OPEN INFRASTRUCTURE SUMMIT)上,騰訊正式發(fā)布云原生中臺(tái)TCNPlatform,TStack首席架構(gòu)師賀阮認(rèn)為,在資源上云后推動(dòng)應(yīng)用上云,實(shí)現(xiàn)用戶整體架構(gòu)云原生化,是TCNPlatform的終極目標(biāo)。
騰訊云TStack首席架構(gòu)師賀阮發(fā)表演講
騰訊是TCNPlatform的第一個(gè)“用戶”。2018年9月30日,騰訊宣布“全面擁抱產(chǎn)業(yè)互聯(lián)網(wǎng)”,并成立技術(shù)委員會(huì),下設(shè)“開(kāi)源協(xié)同”和“自研上云”項(xiàng)目組,正式將業(yè)務(wù)在云上的全面整合提上日程。在騰訊內(nèi)部業(yè)務(wù)自研上云的過(guò)程中,TCNPlatform助力了此前諸多在本地部署的傳統(tǒng)應(yīng)用完成云原生化改造,并沉淀了大量實(shí)踐經(jīng)驗(yàn)。
經(jīng)過(guò)不斷打磨,騰訊也將此云原生化能力封裝到TCNPlatform平臺(tái),全面對(duì)外開(kāi)放。
云原生時(shí)代已來(lái)
自2006年8月9日,Google首席執(zhí)行官埃里克·施密特首次提出“云計(jì)算”(Cloud Computing),已經(jīng)過(guò)去13年。從初時(shí)的喧囂到如今的沉寂,賀阮認(rèn)為,這恰恰說(shuō)明,云,真正成熟了。
2019年9月16日,英國(guó)調(diào)研機(jī)構(gòu)Canalys發(fā)布2019年第二季度中國(guó)公有云服務(wù)市場(chǎng)報(bào)告,騰訊云位居第二,從2014年騰訊正式對(duì)外宣布云服務(wù)開(kāi)始計(jì)算,5年來(lái)騰訊云的收入增長(zhǎng)超過(guò)20倍。除了公有云業(yè)務(wù)上的突飛猛進(jìn),從2015年底開(kāi)始,騰訊還推出了基于OpenStack自研的企業(yè)級(jí)私有云平臺(tái)騰訊云TStack,作為企業(yè)級(jí)私有云方案正式對(duì)外輸出,如今已有遼寧省政務(wù)云、云南省警務(wù)云、廈門(mén)市政務(wù)云、北京市政務(wù)云、數(shù)字廣東等諸多大型案例。
然而,隨著市場(chǎng)對(duì)云基礎(chǔ)服務(wù)的逐漸接受,“康威定律”開(kāi)始發(fā)問(wèn):云時(shí)代,企業(yè)應(yīng)如何設(shè)計(jì)自己的IT架構(gòu)?
傳統(tǒng)大型企業(yè)常常遇到的問(wèn)題是,IT系統(tǒng)僵化,新業(yè)務(wù)上線慢,大量IT資源浪費(fèi),而隨著業(yè)務(wù)拓展,系統(tǒng)拓?fù)鋱D越來(lái)越復(fù)雜,軟件工程經(jīng)典著作《人月神話》對(duì)此類情況的后果有精辟的論述:在落后的項(xiàng)目中增加人手,只會(huì)使進(jìn)度更加落后。
即便上云,企業(yè)通常只是將原有本地的基礎(chǔ)設(shè)施和系統(tǒng)架構(gòu)“云化”,但設(shè)計(jì)思想依然是傳統(tǒng)以數(shù)據(jù)中心為核心,但在互聯(lián)網(wǎng)下半場(chǎng),業(yè)務(wù)的敏捷性要求應(yīng)用更迭必須更加快速和靈活。
這意味著,在設(shè)計(jì)之初,企業(yè)的應(yīng)用程序就必須為云而生,開(kāi)發(fā)、架構(gòu)、部署等等方式都要從云的特點(diǎn)出發(fā),充分利用和發(fā)揮云平臺(tái)的彈性+分布式優(yōu)勢(shì),也即所謂的“云原生”(Cloud Native)。
“從資源上云到應(yīng)用上云,現(xiàn)有的單體應(yīng)用架構(gòu)已無(wú)法滿足需求,企業(yè)更希望,云能夠提供基本各種資源和能力,從而保證非業(yè)務(wù)需求。” 作為一名云計(jì)算“老兵”,賀阮參加了10屆開(kāi)源基礎(chǔ)設(shè)施峰會(huì)(前身為OpenStack峰會(huì)),讓他感觸最深的是,隨著產(chǎn)業(yè)對(duì)云的認(rèn)識(shí)越來(lái)越深,加上相應(yīng)技術(shù)業(yè)已成熟,云原生化已是大勢(shì)所趨。
然而,并不是所有企業(yè)都能馬上投入云原生,至少,一開(kāi)始他們并不具備足夠多的技術(shù)人員,擁有可以在云端直接原生開(kāi)發(fā)應(yīng)用的能力。
這在賀阮看來(lái),是企業(yè)IT系統(tǒng)“生而為云”要跨過(guò)的第一個(gè)障礙。
騰訊云副總裁吳凱華發(fā)表演講
雙生花:阿米巴與微服務(wù)
自提出以來(lái),云原生的理念不斷豐富,2018年后大致包括這樣幾個(gè)特征:容器化封裝、自動(dòng)化管理、面向微服務(wù)、服務(wù)網(wǎng)格(Service Mesh)和聲明式API。
在騰訊的定義中,云原生的概念更加細(xì)化:物理設(shè)備全部通過(guò)云計(jì)算管理,可以實(shí)現(xiàn)全自動(dòng)化管理;容器化封裝及編排,以容器為基礎(chǔ),提高整體開(kāi)發(fā)水平,形成代碼和組件重用,簡(jiǎn)化云原生應(yīng)用程序的維護(hù),在容器中運(yùn)行應(yīng)用程序和進(jìn)程,并作為應(yīng)用程序部署的獨(dú)立單元,實(shí)現(xiàn)高水平資源隔離;面向微服務(wù)架構(gòu),通過(guò)松耦合方式,提升應(yīng)用程序的整體敏捷性和可維護(hù)性;業(yè)務(wù)全域建模;自動(dòng)化運(yùn)營(yíng),統(tǒng)一調(diào)度和管理中心,從根本上提高系統(tǒng)和資源利用率,同時(shí)降低運(yùn)維成本。
此次發(fā)布的TCNPlatform,正是基于騰訊云容器服務(wù)TKEStack和微服務(wù)治理平臺(tái)TCNMesh打造的云原生中臺(tái),通過(guò)實(shí)現(xiàn)應(yīng)用的微服務(wù)改造,幫助用戶降低成本,提高效率。
事實(shí)上,如果你覺(jué)得以上文字過(guò)于復(fù)雜、拗口,不妨只看這兩個(gè)關(guān)鍵詞:容器和微服務(wù),而這恰恰是“康威定律”在云原生時(shí)代最神奇的例證。
“康威定律”被認(rèn)為是微服務(wù)的理論基礎(chǔ),其背后所隱含的管理哲學(xué)是,如果系統(tǒng)和組織結(jié)構(gòu)需要匹配,而溝通成本又會(huì)影響系統(tǒng)效率,那么最好的辦法是,按照業(yè)務(wù)邊界劃分系統(tǒng)。每個(gè)子系統(tǒng)(也即微服務(wù))之間有邊界和接口,但每個(gè)系統(tǒng)內(nèi)部是全棧且自治,這樣溝通成本只在系統(tǒng)內(nèi)部發(fā)生,效率更高,而每個(gè)子系統(tǒng)彼此解耦,依賴性不高,從而可以適應(yīng)業(yè)務(wù)變化的快速迭代和靈活調(diào)整。但這也意味著,微服務(wù)必須匹配與之相適應(yīng)的企業(yè)組織架構(gòu),這需要對(duì)企業(yè)做“傷筋動(dòng)骨”的調(diào)整。
某種程度上,“康威定律”的內(nèi)在邏輯與前幾年開(kāi)始盛行的“阿米巴模式”頗為類似。
“阿米巴”是日本經(jīng)營(yíng)之父稻盛和夫獨(dú)創(chuàng)的經(jīng)營(yíng)管理手法,他把公司組織劃分為稱作“阿米巴”的小集體,每個(gè)阿米巴自行制定自己的計(jì)劃,在將日本航空根據(jù)部門(mén)、航線、航班分割成一個(gè)個(gè)“阿米巴”之后,稻盛和夫看清了每條航線的收支情況,僅用了400多天便讓日航扭虧為盈。
在賀阮看來(lái),大型企業(yè)的“阿米巴化”與云原生應(yīng)用的微服務(wù)架構(gòu)是一對(duì)“雙生花”,“大型企業(yè)轉(zhuǎn)型勢(shì)必是向更小更靈活化發(fā)展,但如何能使每條小航線既能有自己獨(dú)立的結(jié)算,又能共享所有數(shù)據(jù)?這其實(shí)對(duì)企業(yè)IT系統(tǒng)而言,是巨大的挑戰(zhàn)。所謂中臺(tái),就是要解決這個(gè)問(wèn)題,要讓企業(yè)能夠隨時(shí)根據(jù)業(yè)務(wù)的變化,靈活地改變你的系統(tǒng),所有的云原生應(yīng)用打包成一個(gè)個(gè)容器封裝在中臺(tái),而對(duì)于企業(yè)用戶和開(kāi)發(fā)者而言,只需要在前臺(tái)發(fā)出調(diào)用API(應(yīng)用程序編程接口)的請(qǐng)求即可。”
容器:組成大中臺(tái)的粒子
早在2015年,便有人嘗試在傳統(tǒng)的云端虛擬機(jī)上實(shí)現(xiàn)微服務(wù),然而,這樣的嘗試很快失敗了。
據(jù)介紹,虛擬機(jī)的原理是,在云端虛擬一套硬件,并在其上運(yùn)行一套完整系統(tǒng),包括操作系統(tǒng)、數(shù)據(jù)庫(kù)、應(yīng)用等等,每個(gè)指令發(fā)出,通常都會(huì)有數(shù)十秒到一分鐘的延遲,如果微服務(wù)跑在虛擬機(jī)上,這樣的延遲是用戶無(wú)法接受的,曾有人試過(guò)將用戶登錄作為微服務(wù)跑在虛擬機(jī)上,但用戶體驗(yàn)并不理想。
容器改變了一切。
騰訊云社區(qū)里的一篇科普文中,“容器”的英文Linux Container,被翻譯為集裝箱,在作者看來(lái),格式劃一,并可層層堆疊的集裝箱,更貼近Linux Container的技術(shù)特性。每個(gè)云原生應(yīng)用服務(wù)就像貨物,彼此隔離后,被打包成一個(gè)個(gè)“集裝箱”,以API形式疊放到中臺(tái)里,用戶只需從客戶端發(fā)起調(diào)用需求即可,這樣一來(lái)大大提升了新應(yīng)用部署的速度,而且pay as you go(隨收隨付),真正從云端節(jié)省了成本。
“最小的容器有多?。?rdquo;“一個(gè)進(jìn)程。”“類似打開(kāi)文件這個(gè)動(dòng)作嗎?”“不,那是很多個(gè)進(jìn)程。”
容器之于平臺(tái),有如粒子之于宇宙。
Gartner報(bào)告指出,到2022年,將有75%的全球化企業(yè)在生產(chǎn)中使用云原生的容器化應(yīng)用。
如今,騰訊已經(jīng)構(gòu)建了一系列云原生化支持平臺(tái):云原生中臺(tái)集容器服務(wù)、微服務(wù)框架、發(fā)布系統(tǒng)、容器化中間件和應(yīng)用支持平臺(tái)等等,為資源、應(yīng)用全面上云提供了堅(jiān)實(shí)支撐。
開(kāi)源:云原生的“生命之源”
短短數(shù)年內(nèi),容器引擎Docker、容器編排系統(tǒng)Kubernetes等容器技術(shù)成為中臺(tái)理念落地的基石,開(kāi)源,是它們共同的特征,而騰訊對(duì)開(kāi)源的擁抱,大大加快了容器技術(shù)體系進(jìn)入成熟期的速度。
不久前,騰訊在2019Techo 開(kāi)發(fā)者大會(huì)現(xiàn)場(chǎng)放了一個(gè)“大招”,發(fā)布四大重點(diǎn)開(kāi)源項(xiàng)目:分布式消息中間件TubeMQ、基于最主流 OpenJDK8開(kāi)發(fā)的Tencent Kona JDK、分布式HTAP數(shù)據(jù)庫(kù) TBase以及企業(yè)級(jí)容器平臺(tái)TKEStack(Tencent Kubernetes Engine)。其中,TKEStack便是TCNPlatform最重要的底層容器平臺(tái)。
Docker是目前最為流行和使用廣泛的開(kāi)源容器引擎,從2013年推出到現(xiàn)在,騰訊開(kāi)源技術(shù)專家馬全一便是Docker堅(jiān)定的信仰者,更是Docker中文社區(qū)的創(chuàng)始人。他告訴《IT時(shí)報(bào)》記者,騰訊是國(guó)內(nèi)最早使用容器技術(shù)的大型互聯(lián)網(wǎng)公司之一,2009 年,騰訊開(kāi)始開(kāi)發(fā)自己的容器編排平臺(tái), 2013 年,當(dāng) Docker 和 Kubernetes 開(kāi)源并成為事實(shí)標(biāo)準(zhǔn)后,騰訊第一時(shí)間把內(nèi)部平臺(tái)切換到開(kāi)源方案中。
“來(lái)自中國(guó)程序員的開(kāi)源貢獻(xiàn)率僅排名在美國(guó)硅谷之后,BAT等中國(guó)大型互聯(lián)網(wǎng)公司在其中功不可沒(méi)。”中國(guó)在全球開(kāi)源社區(qū)中的地位正不斷提升,此次,由OpenStack基金會(huì)(OSF)主辦的開(kāi)源基礎(chǔ)設(shè)施峰會(huì),便是OpenStack峰會(huì)改名以來(lái)首次登陸中國(guó),一位云計(jì)算行業(yè)人士指出,近幾年來(lái),中國(guó)公司逐漸加快了開(kāi)源投入,由于應(yīng)用場(chǎng)景豐富,加上開(kāi)源組件特有的高通用性,一些開(kāi)源項(xiàng)目在中國(guó)發(fā)展得甚至好于國(guó)外,以O(shè)penStack為例,中國(guó)已經(jīng)是第二大貢獻(xiàn)國(guó)。
馬全一告訴《IT時(shí)報(bào)》記者,TKEStack是離線計(jì)算業(yè)務(wù)和在線服務(wù)業(yè)務(wù)混合部署的一站式通用基礎(chǔ)架構(gòu)平臺(tái),能夠穩(wěn)定管理萬(wàn)級(jí)別 Kubernetes 集群,并提供全方位資源管控,解決網(wǎng)絡(luò)帶寬控制、磁盤(pán) IO 等難題,而開(kāi)源之后,會(huì)推出社區(qū)發(fā)行版 TKEStack,“這是一個(gè)正向循環(huán),企業(yè)以開(kāi)源技術(shù)為依托,將技術(shù)創(chuàng)新轉(zhuǎn)化為產(chǎn)品創(chuàng)新,然后將企業(yè)內(nèi)部一些好的實(shí)踐和技術(shù)反哺社區(qū),從而給更多人帶來(lái)價(jià)值。”
以騰訊云為例,目前有超過(guò)200種IaaS(基礎(chǔ)設(shè)施即服務(wù))、PaaS(平臺(tái)即服務(wù))、SaaS(軟件即服務(wù))產(chǎn)品,其中大部分產(chǎn)品都源于開(kāi)源,比如基于OpenStack進(jìn)行二次開(kāi)發(fā)的騰訊云TStack已應(yīng)用于工業(yè)、醫(yī)療、零售、教育、政務(wù)等各個(gè)領(lǐng)域,基于該產(chǎn)品形成超過(guò)90種行業(yè)解決方案,為OpenStack在中國(guó)的應(yīng)用做出巨大貢獻(xiàn)。
開(kāi)源對(duì)騰訊帶來(lái)的優(yōu)勢(shì)還在于,客戶無(wú)需擔(dān)心自己“被綁架”,云原生平臺(tái)的接口完全開(kāi)放,哪天用戶不想用了,可以直接換到其他平臺(tái)。這被認(rèn)為是騰訊“科技向善”的表現(xiàn)之一。
某種意義上,開(kāi)源項(xiàng)目之間的松耦合及其倡導(dǎo)的共享自由精神,也是更大范圍內(nèi)“康威定律”的印證。
數(shù)據(jù)顯示,騰訊在Github上發(fā)布的總項(xiàng)目數(shù)已達(dá)89個(gè),Star數(shù)破26萬(wàn),在Github全球公司貢獻(xiàn)榜上位居前列。