2019年,我們預測在企業應用程式開發方面,將會出現一個重大轉折,應用執行環境將從傳統的虛擬機器(VM)轉向容器和Kubernetes容器編排。確切的講,我們預測包括如下幾點:
-
未來將是多雲並存的時代。Docker容器與Kubernetes共存。公共雲對外提供API服務介面,從呼叫結構看,好比是以前私有大型機的新表現形式。
-
VMware虛擬機器的“提升和轉變”的上雲遷移方式,所帶來的花費將會比客戶預期要昂貴很多。雖然將應用移植或重構到Kubernetes不需要預付費用,但這通常意味著在運營階段需要更多的費用。
-
Java沒有過時,它還可能在提升、轉移應用上雲,以及在雲原生環境下完全重構應用的開銷方面扮演重要的中間角色。Java可能是“移動和改進”的輕便版本。
-
聯想很大可能會考慮收購SUSE和超微硬體。
AWS、思科、谷歌、IBM、微軟、甲骨文、紅帽和VMware最近都宣佈了自己的戰略產品計劃,都已經在佈局2019年。Cloud Native Computing Foundation的KubeCon/CloudNativeCon也釋出了預期外的兩場私有雲公告。戴爾技術收購VMware股票的申請已獲股東批准並生效;紅帽公司的股東將在1月投票表決IBM對紅帽提出的收購要約。
私有雲目的在於構建基礎設施即服務(IaaS)或平臺即服務(PaaS)。真正的私有雲必須具有以下屬性:
-
使用者自己管理雲服務平臺。這是區別雲服務型別的中心原則。
-
安全的單租戶解決方案。私有雲必須是付費的企業或使用者所有。
-
可透明地伸縮應用程式資源。在常規的混合雲業務模型,相同的應用程式映像必須同時存在於私有雲和公有雲平臺。如果應用程式可以從私有雲擴充套件到多個公有雲(多雲環境),那將會獲得額外的受益。
-
在執行狀態下,資料和應用程式相對松耦合。軟體定義網路(SDN)和軟體定義儲存(SDS)是區別於傳統IT架構及所執行應用系統的關鍵。
OpenStack一直是私有雲市場的活躍份子,所謂的離開,都是對它的誤解。
-
華為的FusionCloud,浪潮的InCloud和騰訊的TStack等私有雲方案,全部都是OpenStack原生化部署。除此之外,OpenStack還是華為和騰訊公有雲的框架。華為還在其公有雲上採用FusionCloud容器引擎來支援Kubernetes原生環境。
-
超微認證了Canonical和SUSE的OpenStack發行版。
-
聯想認證了SUSE的容器即服務(CaaS),該服務可以在OpenStack、公共IaaS和PaaS平臺上執行。
-
紅帽在其OpenStack發行版之上構建了OpenShift,是部署Docker和Kubernetes的容器解決方案。Red Hat的OpenStack和OpenShift發行版得到了大多數公有雲、私有雲以及全球主流伺服器製造商的認證。
紅帽最近推出了OpenStack Bare Metal認證。伺服器供應商可以用此認證自己的伺服器產品,符合認證的硬體可以由OpenStack Bare Metal 平臺(OpenStack Ironic專案的產品化落地)遠端管理。OpenStack Bare Metal相容伺服器廠商的管理平臺,例如戴爾EMC的iDRAC、惠普的iLO,也相容智慧平臺管理介面(IPMI)和Redfish等。這個認證和管理舉措意義重大,將加速企業在私有雲中採用Red Hat OpenStack和OpenShift產品。
然而,在2018年10月下旬,IBM宣佈了收購紅帽的意向(紅帽股東將在2019年1月就收購進行投票)。但懸而未決的收購促使IBM的資料中心架構部門和公有雲競爭對手(戴爾和VMware等)著手評估Red Hat的OpenStack和OpenShift的替代方案。
Kata容器是基於QEMU的輕量級(低資源使用)虛擬機器,是設計用於在OpenStack框架上執行Docker和Kubernetes。OpenStack基金會在去年的KubeCon上宣佈Kata容器專案和社群工作組。自那以後,Kata容器專案進展迅速,儘管目前還沒有釋出任何私有雲產品,但卻獲得了華為和騰訊等中國CSP的大力支援。
儘管執行於OpenStack框架的Kata容器設計創意非常棒,但就在同年的11月底,AWS在它的Re: Invent大會上也釋出了一個開源專案——Firecracker。一款快速、安全的微虛擬機器服務,同樣具有輕量資源使用特性。
AWS基於Linux核心虛擬機器(KVM)構建了Firecracker,標的成為QEMU虛擬機器管理器的替代方案。雖然,Firecracker理論上也可以執行在OpenStack上,但是AWS只聚焦在容器執行時,並將Firecracker部署在AWS的Lambda和Fargate公有雲服務的底層。這也意味著Firecracker已經是非常的成熟。
Firecracker的出現似乎是Kata容器的直接競爭對手。讓我們看看這2個專案未來幾個季度的進展情況。在短期內,Firecracker還不能用於執行Docker或Kubernetes。
AWS Firecracker 架構(source:AWS)
今年,谷歌雲和AWS加入了原先阿裡雲(Alibaba Cloud)、百度雲和微軟Azure的戰團,將它們部分定製的公共雲服務嵌入到私有雲市場,能夠做到以單個伺服器機櫃的形式,軟硬一體地部署到客戶機房。
阿裡雲推出了基於Kubernetes的容器服務,設計了自有的PouchContainer容器系統(處於向Kata容器過渡的階段)。不過,還沒有在阿裡的Apsara Stack私有雲企業版中明確宣佈支援Kubernetes。因為Apsara Stack企業版已經支援Docker,因此,我們預計支援Kubernetes應該是2019年的事情。有需要的使用者可以提前在現有伺服器上安裝ApsaraStack企業版。
百度雲支援Kubernetes,百度雲的ABC-STACK私有雲框架支援IaaS,但不清楚是否支援容器或Kubernetes。百度雲按照Scorpio專案規範,將特定配置的ABC伺服器預安裝到機櫃裡,併在這之上安裝ABC-STACK後,交付給客戶。
微軟Azure從9月份開始在Azure Stack中支援Red Hat的OpenShift容器平臺。微軟最近在Azure Stack上釋出Kubernetes Marketplace的預覽版本。與生產軟體相比,微軟Azure預覽版減少或改變了服務條款。因為模板都是由Azure容器服務引擎生成的,所以Kubernetes市場與微軟的Azure公共雲的模版是一致的。所生成的叢集執行的容器與Azure Kubernetes Service(AKS)的容器相同,並使用Azure資源管理器(ARM)模板為獨立的Kubernetes叢集提供部署和分配資源。
微軟Azure Stack只能在微軟認證過的硬體堆集上執行,這些硬體來自於微軟的整合系統合作伙伴,包括Avanade、思科、戴爾EMC、惠普、華為、聯想和Terra等。據說微軟及其整合系統合作伙伴還沒有大量銷售Azure堆疊。客戶故事很少,估計從合作伙伴那裡購買的硬體也很少。
Microsoft Azure還是雲原生應用程式包(Cloud Native Application Bundles,CNAB)的贊助商,CNAB是一種與雲無關的開放原始碼包格式規範,是微軟與Docker密切合作時建立的,還得到了HashiCorp和Bitnami的廣泛支援。透過使用CNAB,雲運營商可以使用單個安裝檔案來管理分散式應用程式,在不同環境中,穩定提供應用程式資源,無需使用多個工具就可以輕鬆管理應用程式的生命週期。
谷歌雲的Google Kubernetes Engine(GKE)On-Prem目前處於 “早期訪問” 阿爾法版本。這表示只對一小組特定的測試人員開放。 Google雲表示,GKE On-Prem版將為客戶提供的自有資料中心GKE體驗和谷歌雲是一致的。 GKE On-Prem版支援在本地資料中心安裝和升級Kubernetes,並可以訪問谷歌雲平臺(GCP)服務,也可以訪問到對外開放服務代理API的其他雲服務。谷歌、IBM、Red Hat、SAP等公司均支援服務代理API。Google雲還表示,GKE On-Prem可以安裝到客戶已有的伺服器上。
谷歌Kubernetes引擎早期訪問版本還包括一個無服務元件。這個元件可使操作員在GKE群集上部署無伺服器工作負載。但GKE On-Prem版是否包括這個元件就不得而知。
AWS在11月下旬的Re: Invent活動中宣佈了AWS Outposts服務。旨在透過在客戶資料中心部署AWS一體化硬體為客戶提供AWS公有雲體驗。 我們相信AWS Outposts就是微軟Azure Stack的直接競爭對手。 AWS使用自有硬體與微軟OEM夥伴競爭的方式表明,它將直接與品牌伺服器供應商爭奪企業的 IT預算份額。
AWS Outposts定製的私有硬體由AWS出售,並由AWS提供完全管理、更新、維護和技術支援。這些定製硬體高度類似於AWS公有雲中部署裝置的設計。 客戶將透過AWS管理控制檯訂購Outposts伺服器。 AWS表示,可以訂購一臺或多臺伺服器,或四分之一、半個或整個機櫃,而且一系列的計算和儲存選項可供選擇。Outposts容器和虛擬機器將在IaaS實體上執行,與AWS公有雲執行方式相同。
AWS Outposts 釋出圖(source:AWS)
AWS聲稱將在2019年下半年提供Outposts。我們留意到微軟花了將近四年的時間將Azure的一個子集嵌入到Azure Stack中。AWS在沒有前兆下,宣佈這個服務有點非同尋常。Outposts釋出有可能提前了一年,我們懷疑AWS能否在2019年底之前推出Outposts產品的量產版本。
IBM Cloud Private(ICP)是一個基於Docker和Kubernetes的應用平臺。它執行在IBM的雲託管服務(CMS)之上,CMS能夠管理私有雲框架以及任何通用IaaS基礎設施上,包括IBM雲和其他公共雲。
ICP可以與10月份釋出的IBM 多雲Manager一起使用,以提供跨多廠商公共雲的混合容器功能。IBM目前支援OpenStack、Red Hat OpenShift和AWS,並承諾在2018年底支援微軟Azure。
IBM已經釋出了在評估和生產環境中執行ICP的最低硬體要求,且沒有限制伺服器及其他硬體必須為IBM生產的。ICP已經被認證可以在VMware vCenter、ESX、OpenStack和KVM hypervisor的IaaS實體上執行。
如果紅帽的股東批准了IBM的收購要約,那麼IBM將面臨選擇。
-
繼續投資OpenShift,並擴充套件到OpenStack;
-
繼續投資IBM Cloud Private的雲原生路線;
-
將註意力一分為二,2個方向都保持。
我們相信長期投資雲原生的IBM Cloud Private會是更好的方向。
在AWS re:Invent會議期間,甲骨文釋出了Oracle Cloud Native Framework (OCNF),一個免費下載的開源軟體包。它包括Docker和Kubernetes,以及最新釋出的基於Fn專案的無伺服器功能Oracle Functions。採用OCNF開發的應用程式都可移植到任何Kubernetes環境和底層硬體平臺上。OCNF可以在公共雲或私有硬體上執行,包括但不限於Oracle Cloud Infrastructure (OCI)公有雲和客戶私有雲平臺的OCI。
-
OS:Oracle Linux發行版及之上的OCI
-
開發工具:Jenkins X,Helm,MySQL,Kafka,Spark,Spinnaker,Bitnami
-
監控工具:Prometheus,Grafana,Fluentd,Crashcart,Instana
-
資源分配:Terraform,Vagrant,Ansible,Chef,Puppet,Clair,Notary
-
編排器:Kubernetes,Istio,Envoy
-
執行時:Fn,Docker,Kata,CRI-IO,Calico,Flannel,Ceph,Gluster,Java,Helidon.io,OpenJDK
-
安全工具:Twistlock,Aqua
Oracle Cloud Native Framework(source:Oracle)
上述工具還不是全部,Oracle還將Kubernetes與Oracle Fusion中介軟體(WebLogic伺服器)整合到一起,以實現Kubernetes容器環境中,執行WebLogic應用。
還有一個不可忽視的點,Oracle還控制著Java Standard Edition(SE),並且OCNF擁有Helidon.io社群。可以為Java SE應用提供整合交付。即客戶可以在Kubernetes執行Java SE業務邏輯。對於更嚴謹的Java開發人員,我們建議關註Eclipse Jakarta EE工作組,因為Oracle在今年早些時候向Eclipse基金會捐贈了Java Platform,Enterprise Edition(Java EE)。Jakarta EE有計劃成為Oracle Java EE 8的雲原生升級的通道【請參閱關於Jakarta EE(https://jakarta.ee/)的更多資訊】。
思科最近也宣佈了基於AWS的Kubernetes的混合解決方案(CHSK on AWS)。與OCNF一樣,CHSK也是雲原生的:它不依賴於任何型別的VM。CHSK即可以執行在私有思科容器平臺和AWS的EKS平臺上,也可以執行在任何私有雲或公有雲的IaaS環境下。
思科CHSK為了實現 “1+1大於2”的效果,在AWS平臺上,還集成了AWS身份和訪問管理(IAM)服務和思科的雲服務路由器(CSR)1000v虛擬路由器。後者可以在任何平臺的VM中執行,設計初衷是最佳化在Cisco HyperFlex/UCS硬體上執行。
思科基於AWS的Kubernetes的混合解決方案(source:Cisco)
與Oracle不同的是,購買思科一套標準入門級配置的CHSK純軟體,每年最低起價約6.5萬美元,還要外加AWS上EKS叢集和彈性塊儲存(EBS)的資源使用費用。儘管思科與AWS IAM的整合頗具吸引力,但這樣的定價策略很可能將潛在客戶限制在已經是思科網路客戶的大型企業IT服務商。
“LIFT-AND-SHIFT” VS “MOVE-AND-IMPROVE” VS……JAVA?
使用“提升和轉移”方式將VM遷移到雲上意味著IT服務商需要租用大型、配置較高的實體,這些實體的計算能力大致相當與他們私有環境下,所購買的大型、配置良好的伺服器。其理論依據是,在軟體移植和驗證方面的投入越低,所節約的費用將抵消租用大型、配置良好的EC2實體和S3的高成本。使用“提升和轉移”方式的企業IT團隊,希望快速遷移取得某種市場優勢,透過獲利來抵消應用在後續生命週期中的高運營成本。
“提升和轉移”適用於遷移已經在虛擬機器中執行的應用程式,只要是可移植的VM即可,包括VMware和KVM等。
與之相反的策略是“移動和改進”,意思是花時間重構應用程式,將應用重寫為雲原生的微服務,用相同的過程成果(和原始程式相同的結果或報錯)來驗證重構和重寫過程。其目的是,透過前期較大的投入,實現應用與雲上資源的最佳匹配,節省非雲原生軟體後期的高昂運營成本。按CNAB規範編寫雲原生應用就是移動和改進的案例。
對於採用Java語言寫的應用,還有另一種選擇,即Java提供的一種將應用從Java執行時輕鬆移植到容器的方法。目前,Java依然還是最流行的應用程式語言之一。我們所說的Java市場,包括了Oracle Java Platform Standard Edition(Java SE)和Enterprise Edition(Java EE)。
Java SE應用程式可以在Helidon.io封裝的容器中執行。但要求應用執行的環境是Java SE 8或OpenJDK8和Apache Maven構建的。此外,AWS也構建了自己的OpenJDK8環境服務,稱為Corretto。AWS表示,Corretto是Oracle Java SE的一個可選替代方案。目前,這個服務已經在AWS內部的交付生產中使用,在客戶預覽檢視中可以看到這個服務。
Java EE愛好者一定記得,在今年(2018年)稍早的時候,Oracle向Eclipse捐贈了Java EE,這使得Java EE就變成了開源Eclipse Jakarta EE工作組。Jakarta EE將被設計成完全等同於Java EE 8的雲原生版本,支援微服務部署,與Kubernetes等雲原生應用整合。使企業開發人員能輕鬆地將Java EE應用程式移植到Kubernetes平臺。我們再看看Eclipse的成員企業,戰略成員包括CA(現在的Broadcom)、IBM、Oracle、Red Hat和SAP,Eclipse解決方案成員包括Canonical、Docker、谷歌、華為、英特爾、微軟和Salesforce.com。這簡直是一個令人震驚的雲供應鏈和服務供應商串列。讓Java開發人員感覺,或許在2019年的某個時候,不用多麻煩就可以輕鬆地將大量Java SE和Java EE業務應用程式遷移到成本高效的雲本地環境中。
2018年, 惠普、IBM、聯想和甲骨文等伺服器硬體廠商都強調與VMware的合作關係。但在2019年初,VMware與戴爾的關係就不再緊密。與此同時,那些希望具備VMware的“提升和轉移”能力的品牌伺服器廠家,大多數將AWS作為公有雲的首選。今年年初,甲骨文曾大力宣傳其採用“提升與轉移”的方式,幫助客戶將VMware虛擬機器從自有IT環境遷移至AWS的能力。但從那開始,AWS決定從多個角度攻擊甲骨文的業務,最終在Re: Invent大會上宣佈,亞馬遜關係資料庫服務(RDS)將取代甲骨文的資料庫。
有趣的是,VMware將思科、戴爾、戴爾EMC、富士通、日立、惠普和聯想列為全球聯盟夥伴。但思科、惠普和聯想是戴爾EMC在全球各個伺服器市場的直接競爭對手。
8月份,VMware在VMworld上宣佈 “Project Dimension”專案。這是一個VMware、戴爾EMC和聯想共同參與的聯合專案。目的是在客戶的IT環境裡,一個專門構建和驗證的硬體叢集上,執行VMware vSphere和vSAN,以及VeloCloud的NSX SD-WAN軟體的平臺,並可以橋接到AWS上VMware Cloud平臺。目前, VMware、戴爾EMC和聯想正在測試這個聯合專案。
AWS Outposts 上的VMware Cloud 架構(source:AWS)
AWS雲上VMware Cloud(AWS Outposts)的核心是VMware的軟體定義資料中心(Software defined datacenter,SDDC)。SDDC基於VMware雲基礎架構:vSphere、vSAN、NSX和vCenter Server。VMWare的現有客戶也可以在他們自有的伺服器環境中執行這些基礎軟體,實際上已經有客戶這樣做了(估計是執行在品牌伺服器廠家OEM的最新超融合硬體裝置上)。客戶也可以將環境升級成AWS Outposts定製設計的硬體,以按需購買EC2裸實體的方式,在自有IT環境中執行AWS雲上的VMware Cloud 。
VMware將AWS、谷歌、IBM、微軟和甲骨文列為全球戰略技術合作伙伴。然而,AWS與VMware聯合釋出了基於AWS Outposts的VMware Cloud。這意味著VMware的所有公有雲夥伴關係已經不再平等。AWS涉足私有雲後,他的分量甚至超過了其他公司的總和。依據如下:
-
谷歌GKE私有版和IBM ICP是純軟體產品,因此只能與VMware雲基礎軟體競爭。
-
微軟Azure Stack根本不支援VMware虛擬機器,而且也沒有這樣做的公開路線圖。Azure Stack與VMware雲基礎軟體分別適用於不同的場景。
-
Oracle和AWS正直接爭奪資料庫企業級客戶。Dell,VMware均是AWS的緊密戰略合作伙伴,而甲骨文則不是。
AWS通常會在宣佈一個成熟服務的時候,就同時上線這個服務,即使這些服務是以預覽版的方式提供,但AWS Outposts顯然是個例外。儘管AWS表示2019年末會提供Outposts服務,但可以想象這個日子不會比當年微軟交付Azure Stack時好過。在首次嘗試部署私有雲之後,微軟花了將近四年的時間才釋出了一款可靠的Azure Stack產品。AWS要從其公有雲中分離出一個健壯的子集,執行在私有環境的專用硬體平臺上,併在2019年量產,這個困難可想而知。不過AWS沒有使用“子集”這個說法,而是將Outposts定義為通用的AWS公有雲服務。
公有雲和私有雲的重要性讓聯想和惠普處境艱難。兩家公司都在為其關鍵的軟體產品尋找合作。與此同時,競爭對手戴爾正在收購VMware,IBM可能會收購紅帽,思科、華為和甲骨文都在研發和投入自己的開源專案,華為和甲骨文還運營著自己的公有雲。
惠普已經退出了公有雲的運營,似乎也不再關註私有雲。它聚焦於將大型企業客戶引導到私有虛擬化基礎架構上。惠普正在銷售微軟Azure Stack解決方案(等同於大多數伺服器OEM),但主要集中在OneSphere多雲管理器和Greenlake彈性容量產品。惠普OneSphere支援VMware vSphere、AWS、Microsoft Azure公有雲和OpenStack API(在中國以外的主要公有雲上都不適應)。我們建議惠普建立一個強大的私有雲策略,但我們也認為惠普在2019年不太可能具有私有雲產品。
聯想既是紅帽,又是微軟Azure和Azure Stack的合作伙伴。其有2個發展方向:一是深化與微軟Azure Stack和AWS+VMware的合作,有點類似於戴爾的戰略,不過戴爾和VMware將是同一家公司。其次就是購買一個成熟的私有雲產品。
Canonical和SUSE現在是熱門的收購候選物件。SUSE和Canonical都具有OpenStack和Kubernetes發行版產品。SUSE屬於一傢俬人資本集團,SUSE Linux Enterprise Server(SLES)在企業中更是廣為人知。Canonical的Ubuntu Long Term Support(LTS)發行版在雲上應用非常廣泛。公司是由創始人Mark Shuttleworth私人持有和資助,他一直掌握著這家公司,但說不好哪一天,有人給出一個Shuttleworth無法拒絕的報價,他可能就賣掉啦。
在戴爾科技股票重新上市後,VMware所帶來的槓桿效應,以及IBM對紅帽的收購,這兩大事件的結果宣佈,將在2019年對私有雲和多雲領域產生深遠影響。這應該是一段漫長的旅程!
原文連結:https://www.nextplatform.com/2019/01/09/containers-killed-the-virtual-machine-star/