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