從旁觀者到CTO:我在Cloud Foundry基金會的五年經歷
譯文【51CTO.com快譯】最近我一直在思考Cloud Foundry項目在短短五年內發生了多大的變化。
思考結果之一是,自2015年以來開源生態系統和企業計算市場已變得今非昔比。因而,Cloud Foundry及其更廣泛的生態系統的共同發展導致將對方推向不同的方向。
同時這也是我職業生涯中過得最快的五年,也是最漫長的五年。
2009年,Cloud Foundry的最初想法出現在VMware內部。直到2011年4月,該項目才正式宣布。我清楚地記得,該項目做的正是市場所需的事情。宣布的這個平臺致力于簡化應用程序的開發和部署。在隨后幾年,我目睹該產品日趨成熟(并數次易主)。2014年,我編寫了集成到該平臺的第一個服務代理,因此與社區走得更近了一點。
2015年出現了一個年輕的開源社區,它圍繞現在開源的Cloud Foundry項目。Cloud Foundry基金會于2015年1月下旬成立。這時候我的角色從社區的旁觀者變成了服務者。
底層架構的變化
2015年以后平臺發生了很大的變化,無論內部架構還是向使用該平臺的開發人員敞開的功能。
Cloud Foundry基金會成立伊始,社區正大刀闊斧地重寫平臺的底層架構,由最初以Ruby為主的代碼庫(名為DEA架構)改為基于Go的新架構(名為Diego)。這是很難搞成功的重大架構轉變之一。挑戰絕非在于新架構本身,而在于轉型:對現有架構中新功能的競爭性需求,以及渴望新架構少些不定因素。我在職業生涯中經歷過好多這樣的轉型,而Cloud Foundry社區給我印象最深的一點是它應對這個變化的方式。
當然,開放式協作可能很混亂,不過結果是有條不紊地轉型,這給了下游發行版和最終用戶組成的生態系統充足的時間來完成轉變。從DEA架構正式轉向Diego(及其所有子系統)始于2016年11月,當時Diego迎來了1.0版本。這個重要版本向社區表明了兩點:它在功能特性上與DEA不相上下,并達到了一些下游發行所希望的250000個容器規模這一目標。
Warden和Garden
與Diego本身發展的同時,負責節點級容器管理的Cloud Foundry組件也出現了重大變化。在DEA架構中,架構的這個部分是名為Warden的組件。Warden至少比Docker早兩年問世,但它不是向最終用戶敞開的技術。創建Diego時正同時對Warden進行互補性的重寫。這項工作名為Garden。
Garden的設計很周到,因為它預料到用戶會需要輕松更改代碼的最底層細節,以支持新興的操作系統級容器功能。早在2015年,Cloud Foundry社區就在構建Garden的實現,以同時支持基于Linux的主機和基于微軟Windows的主機。能夠更改底層的操作系統級容器技術同樣使Cloud Foundry平臺得以采用Docker捐贈給開放容器項目(OCI)的runC庫。實際上,Cloud Foundry項目是第二個采用runC的項目(僅次于Docker本身),并且使其在整個生態系統的生產級集群中大規模運行。
為什么Diego很重要?
Diego的推出為新功能帶來了可能。容器到容器網絡和卷服務是Diego進展順利后最先添加的兩大功能。這兩種功能可以看作是內部優化(比如減少南北流量),但隨著開發人員體驗功能的增強,它們顯得更重要。借助C2C網絡功能,可以實現更復雜的應用程序到應用程序邏輯。這時候Cloud Foundry也開始擁抱更廣泛的開源網絡世界。卷服務擴展了可以在平臺上托管的應用程序類型的范圍,從而使操作人員可以為應用程序開發人員提供針對網絡可尋址存儲設備的文件系統掛載。
容器網絡
回到網絡世界,沒錯,容器到容器網絡工作為開發人員增添了一大批寶貴的功能。它還代表Cloud Foundry社區從此開始在服務網格領域開發標準和項目的轉折點。這項工作始于采用容器網絡接口(CNI),該規范方便基于容器的平臺與底層網絡層進行交互以簡化配置。下一個階段是2017年采用Envoy代理。最近,整個Cloud Foundry網絡堆棧都將Istio + Envoy作為默認組件,以支持集群入站/出站和跨容器網絡功能。
Kubernetes + Cloud Foundry
最近,Cloud Foundry社區欣然接受了另一個開源項目:Kubernetes。這始于捐贈Kubo,這是由Pivotal、谷歌和VMware共同開發的項目。Kubo迅速成了Cloud Foundry Container Runtime,而Elastic Runtime(更通俗的名稱是傳統的Cloud Foundry PaaS)被改名為Application Runtime。這使我們的社區充滿信心,向采用Kubernetes作為底層的容器編排層邁出幾步需要這種信心。
Eirini項目致力于讓Cloud Foundry集群可以在架構中使用Kubernetes,并最終替換Diego代碼庫。
在過去這五年,社區創建了另外許多變更和擴展項目,很難逐一密切跟蹤。一些項目已演變成大多數安裝的Cloud Foundry系統的關鍵組件。另一些項目在完成使命后現已放到基金會的閣樓。
不變的是什么?
過去這五年沒有變的兩點值得強調一下:我們社區致力于提供世界一流的企業開發體驗,以及社區致力于平臺不斷發展。這兩個初心都不是“技術”,它們是社區的核心精神。我們一直努力將成千上萬使用Cloud Foundry的組織和成千上萬部署軟件的開發人員吸引到該平臺上。我們一直在學習如何更好地為企業開發人員提供服務,不斷迭代和豐富這種體驗。我們還不斷完善架構,從更廣闊的開源界提供的最佳技術中集眾者所長。當然,我們仔細認真地進行這些更改。我們允許這種演變在頻繁發布的同時逐漸引入新功能。
已發生了不小的變化,但不變的是Cloud Foundry社區致力于使我們的生態系統不斷發展。
原文標題:From Bystander to CTO: My Five-Year Journey with the Cloud Foundry Foundation,作者:Chip Childers
【51CTO譯稿,合作站點轉載請注明原文譯者和出處為51CTO.com】