原文標(biāo)題:A brief history of Kubernetes, OpenShift, and IBM
原文鏈接:https://developer.ibm.com/blogs/a-brief-history-of-red-hat-openshift/
作者:Anton McConville, Olaph Wagoner
發(fā)布日期:2019年8月1日
最近,IBM公有云上推出了紅帽的OpenShift服務(wù),這引發(fā)了我對它的起源以及它為何如此受開發(fā)人員歡迎的好奇心。在最近的KubeCon會議上,坐我旁邊聊天的或在午餐時碰到的許多開發(fā)人員都提到他們是如何使用OpenShift的。我從開發(fā)人員那里了解到,金融機(jī)構(gòu)正在使用OpenShift對交易進(jìn)行分析,零售商正在使用OpenShift為他們的客戶創(chuàng)造新的體驗。
OpenShift是一個面向混合云的企業(yè)級Kubernetes應(yīng)用平臺。現(xiàn)在,IBM公有云將它作為托管解決方案或本地私有平臺即服務(wù)(PaaS)提供。OpenShift是在紅帽企業(yè)Linux(Red Hat Enterprise Linux)的基礎(chǔ)上,圍繞容器技術(shù)構(gòu)建的,由Kubernetes進(jìn)行容器編排和管理。
隨著云計算的發(fā)展,OpenShift成為了最受歡迎的應(yīng)用開發(fā)和部署平臺之一,贏得了開發(fā)者們基于價值的尊重。隨著云應(yīng)用的開發(fā)對我們來說變得越來越“正常”,作為創(chuàng)建正確解決方案的工具箱中的又一件新工具,考慮OpenShift的合適定位是很有趣的事情。OpenShift可以與傳統(tǒng)的內(nèi)部應(yīng)用軟件、云函數(shù)服務(wù)(Cloud functions)、Cloud Foundry或物理機(jī)混合使用。
在這篇博客文章中,我和我的同事Olaph Wagoner將回溯過去,搞清楚OpenShift的發(fā)展歷史。我們也會展望OpenShift在基于Kubernetes的企業(yè)級應(yīng)用程序開發(fā)領(lǐng)域的發(fā)展前景。
下圖展示了OpenShift、IBM和Kubernetes的時間線:

發(fā)展早期的OpenShift: 2011-2013
OpenShift于2011年首次推出,依賴于Linux容器來部署和運行用戶應(yīng)用程序,正如Joe Fernandes在《紅帽為什么為OpenShift選擇Kubernetes》(Why Red Hat Chose Kubernetes for OpenShift) 一文中所描述的那樣。
OpenShift V1和V2使用紅帽自己的平臺專有的容器運行時環(huán)境和容器編排引擎作為基礎(chǔ)。
然而,OpenShift的故事開始于它正式發(fā)布之前。OpenShift的一部分來自于紅帽2010年11月宣布的對Makara的收購。那次收購提供了作為操作系統(tǒng)之上抽象層的軟件組件,包括PHP和Java應(yīng)用運行時環(huán)境、Tomcat或JBoss應(yīng)用服務(wù)器,以及Apache Web服務(wù)器。
早期的OpenShift使用稱為“齒輪”(gears)的專有容器技術(shù)。OpenShift的節(jié)點包括了某種形式的容器化?!褒X輪”的隱喻即基于容器的本質(zhì)。OpenShift將獨立的集群稱之為“齒輪”:能夠作為一個整個機(jī)構(gòu)的一部分協(xié)同工作的東西。單個“齒輪”與某個特定用戶相關(guān)聯(lián)。為了用這些“齒輪”制作模板,OpenShift使用了從Makara獲得的“墨盒”(cartridge)技術(shù)。
OpenShift本身直到2012年才正式開源。2013年6月,OpenShift V2發(fā)布,帶來了cartridge格式的改變。
Docker改變了一切
Docker是由一家名為dotCloud的公司發(fā)起的一個項目,于2013年3月作為開源軟件推出。Docker的出現(xiàn)讓容器技術(shù)變得流行,它使得開發(fā)者能夠利用現(xiàn)有的技能在這個新平臺上用優(yōu)雅的工具進(jìn)行開發(fā)。
紅帽是Docker技術(shù)的早期采用者,于2013年9月即宣布與Docker的合作。2014年12月,IBM也與Docker建立了自己的戰(zhàn)略伙伴關(guān)系。多個IBM的工程師從項目的早期開始就一直在為以Docker為代表的多個基礎(chǔ)容器技術(shù)項目貢獻(xiàn)代碼。
Kubernetes的出現(xiàn)
Kubernetes源自2014年谷歌的開發(fā)工作,到目前為止它已經(jīng)成為管理容器的標(biāo)準(zhǔn)方式。
雖然Kubernetes最初是由谷歌設(shè)計的,但現(xiàn)在它是由云原生計算基金會(CNCF)維護(hù)的開源項目,紅帽和IBM都為Kubernetes貢獻(xiàn)了大量的代碼。
根據(jù)kubernetes.io的說法,Kubernetes的目標(biāo)旨在提供一個跨主機(jī)集群的“應(yīng)用程序容器的自動部署、擴(kuò)展和運維系統(tǒng)”。它可以支持包括Docker在內(nèi)的一系列容器工具。
使用容器,你可以進(jìn)入模塊化的應(yīng)用程序設(shè)計,其中數(shù)據(jù)庫是獨立的,并且你可以擴(kuò)展應(yīng)用程序而無需考慮單個機(jī)器的擴(kuò)展。
Kubernetes是另一個IBM作為早期貢獻(xiàn)者參與的開源項目。在下圖中,你可以看到與容器技術(shù)相關(guān)的多個項目:Docker、Kubernetes和Istio中貢獻(xiàn)度排名前5的組織,以及紅帽和IBM的相應(yīng)貢獻(xiàn)度排名情況。它強(qiáng)調(diào)了容器技術(shù)對IBM的重要性,以及IBM在這些開源項目中的工作量。

OpenShift V3.0: 開放和標(biāo)準(zhǔn)
紅帽在2014年8月宣布打算在OpenShift V3中使用Docker。在幕后,從V2到V3的跳躍是相當(dāng)大的。OpenShift從使用gears和cartridges發(fā)展到容器和鏡像。為了編排和調(diào)度容器鏡像,紅帽從V3開始正式使用Kubernetes作為核心技術(shù)平臺。
開發(fā)者們被Kubernetes所吸引,對其興趣與日俱增的主要原因如下:
Kubernetes使用Pod將一個或多個容器作為原子單元部署
通過服務(wù)(Services)可以使用固定的地址訪問一組Pod,并且可以使用集成的基于IP和DNS的服務(wù)發(fā)現(xiàn)將這些服務(wù)鏈接在一起
復(fù)制控制器(Replication controllers)確保指定數(shù)量的Pod的始終運行,并使用標(biāo)簽(Labels)來標(biāo)識Pod和其它Kubernetes對象
強(qiáng)大的網(wǎng)絡(luò)模型支持對容器的跨主機(jī)管理
存儲編排能力允許你在容器中運行無狀態(tài)和有狀態(tài)服務(wù)
簡化的編排模型可以讓應(yīng)用程序快速運行,而不需要復(fù)雜的兩層調(diào)度器
Kubernetes的架構(gòu)設(shè)計是基于對開發(fā)人員和運維人員的需求不同的理解,并且將雙方的需求都考慮在內(nèi),這避免了為折衷而犧牲任何一方的情況
OpenShift引入了強(qiáng)大的用戶界面,通過源代碼到鏡像(Source-To-Image )和管道(pipelines)技術(shù)快速創(chuàng)建和部署應(yīng)用程序。Kubernetes之上的這些附加層簡化并吸引了新的開發(fā)者受眾。IBM也為構(gòu)建OpenShift的關(guān)鍵開源組件貢獻(xiàn)了大量源代碼。
下圖展示了OpenShift使用Kubernetes的發(fā)展歷史:

OpenShift V4.0和未來
紅帽顯然處于容器技術(shù)發(fā)展的前沿,在CNCF項目上的貢獻(xiàn)僅次于谷歌。紅帽最近的另一項成就是2018年1月收購了CoreOS。CoreOS的旗艦產(chǎn)品是一款輕量級的Linux操作系統(tǒng),旨在運行容器化的應(yīng)用程序。紅帽在OpenShift V4中將其作為“紅帽企業(yè)Linux CoreOS”(Red Hat Enterprise Linux CoreOS)推出。
這只是V4中許多激動人心的進(jìn)展之一。如上圖所示,OpenShift服務(wù)網(wǎng)格將Istio的監(jiān)控能力與Jaeger和Kiali的顯示能力相結(jié)合,還加入了Knative無服務(wù)器的支持,以及使用Kubernetes Operator來實現(xiàn)應(yīng)用程序管理的自動化。
IBM和紅帽在容器技術(shù)領(lǐng)域的發(fā)展之路也在這里匯合。IBM也是Istio、Knative和Tekton開源項目的主要貢獻(xiàn)者。它們將會是未來10年基于容器的企業(yè)級應(yīng)用開發(fā)的核心技術(shù)。
OpenShift V4.0是近期剛剛發(fā)布的。IBM公有云上的紅帽O(jiān)penShift托管服務(wù)是IBM和紅帽合作整合OpenShift和IBM Cloud Kubernetes服務(wù)的努力。更多關(guān)鍵信息,請查看之前的時間線配圖。
結(jié)論
研究OpenShift的起源和歷史很有趣。將OpenShift的歷史作為鏡鑒,我們看到了軟件開發(fā)的這10年確實是以容器為中心大發(fā)展的10年。
令人印象深刻的是,在過去10年中紅帽公司投入了大量的工程資源和精力、專注和驅(qū)動力來創(chuàng)建OpenShift這樣一個引人注目的容器平臺。IBM也同樣對這些技術(shù)非常感興趣。
我們期待著在未來的數(shù)年中學(xué)習(xí)和使用這些云技術(shù)來構(gòu)建新的應(yīng)用。