歷史進入2019年,放眼望去,今天的整個技術大環(huán)境和生態(tài)都發(fā)生了很大的變化。在己亥豬年春節(jié)剛剛過去的早春時節(jié),我們來梳理和展望一下整個云原生技術趨勢的發(fā)展,是一件很有意義的事情,這其中有些變化在不可避免地影響著我們身處其中的每一家企業(yè)。
如果說云原生在2017年還僅僅是冒出了一些苗頭,那么2018可以說是普及之年,云原生變成了一個成熟的、被普遍接受的理念。靈雀云作為云原生理念的擁躉,也不斷順應這種趨勢,聚焦云原生的核心場景,圍繞容器平臺、DevOps和微服務黃金三角進行產品的研發(fā)和業(yè)務場景的落地。
早在1991年Jeffery Moore針對高科技行業(yè)和高科技企業(yè)生命周期的特點,提出了著名的“鴻溝理論”。這個理論基于“創(chuàng)新傳播學”,將創(chuàng)新性技術和產品的生命周期分為五個階段:創(chuàng)新者(Innovator)、早期使用者(Early adopters)、早期大眾(Early majority)、晚期大眾(Late majority)、落后者(Laggard)。
在Early adopters和Early majority之間有個巨大的鴻溝(Chasm),每個新技術都會經歷鴻溝,大多數(shù)失敗的產品也都是在鴻溝里結束了其整個生命周期,能否順利跨越“鴻溝”,決定了創(chuàng)新性技術的成敗。今天我們嘗試以鴻溝理論為基礎來分析云原生領域顛覆性的創(chuàng)新技術。
“Kubernetes is Boring”,邊緣創(chuàng)新有亮點
Kubernetes在2017年底成為容器編排事實標準,之后以其為核心的生態(tài)持續(xù)爆發(fā),在傳播周期上可以說已經跨過鴻溝了,進入Early majority早期大眾階段,開始占領潛力巨大的主流市場。
根據(jù)CNCF在2018年8月進行的第六次測量容器管理市場的溫度,83%的受訪者更喜歡Kubernetes的容器管理工具,58%的受訪者在生產中使用Kubernetes,42%的受訪者正在進行評估以備將來使用,40%的企業(yè)(員工規(guī)模在5000+)正在使用Kubernetes。Kubernetes在開發(fā)人員中已經變得非常流行。
回過頭來看,靈雀云從早期全力投入Kubernetes 技術棧,是最早進行Kubernetes產品化的廠商。我們并未滿足于把Kubernetes當作一個容器編排工具來使用,而是將它定位成構建上層平臺的核心框架,通過合理運用Kubernetes本身的擴展機制、架構模式與API規(guī)范,構建出一系列“Kubernetes原生”的產品體系。這樣做不僅真正發(fā)揮出Kubernetes作為云計算核心框架的最大優(yōu)勢,也可以與以Kubernetes為核心的云原生生態(tài)無縫集成。
進入主流市場的Kubernetes開始變得“Boring”,這很正常,甚至是一個好的現(xiàn)象。核心項目的創(chuàng)新速度會減慢,最新的版本中主要關注點聚焦在穩(wěn)定性、可擴展性這些方面,盡可能把代碼從主庫往外推,讓它的主庫變得干凈,其他功能通過一些擴展機制來做,同時開始關注安全性。
Kubernetes項目本身已經過了現(xiàn)象級創(chuàng)新爆發(fā)的階段,但由Kubernetes獨特的架構屬性催生出的周邊生態(tài)的二次創(chuàng)新仍然在高速發(fā)展,例如諸多與Kubernetes集成或者基于Kubernetes框架開發(fā)的上層服務與平臺。這個話題我們下次討論,今天還是主要關注與Kubernetes項目關聯(lián)最緊密的創(chuàng)新亮點:
早期容器化workload大多聚焦在無狀態(tài)服務,跑的最多的是Nginx,而對有狀態(tài)應用避諱不談?,F(xiàn)在Kubernetes進入主流市場,顯然需要對“現(xiàn)實中的應用”,包括有狀態(tài)服務提供良好的支持。2019年,對于復雜應用的管理以及Kubernetes本身的自動化運維將會更多的表現(xiàn)為Operator。
Operator是基于Kubernetes擴展機制,將運維知識編寫成“面向應用的Kubernetes原生控制器“,從而將一個應用的整體狀態(tài)作為API對象通過Kubernetes進行自動化管理。這個應用通常來說是比較復雜的有狀態(tài)應用,如MySQL數(shù)據(jù)庫、Redis集群、Prometheus等等?,F(xiàn)在基本上常見的有狀態(tài)應用都有自己相對應的Operator,這是一種更為有效的管理分布式應用的方式。
其次是應用跨集群部署與管理。早期社區(qū)里有Federation聯(lián)邦集群的方案。我們不少大金融客戶都有跨集群部署、管理業(yè)務的需求。當時深入研究Federation v1之后,覺得這個方案復雜度高,觀點性強,對于我們實際的需求靈活度不足而又不夠成熟。所以我們最終選擇自研跨集群部署。后來出現(xiàn)的Federation v2在設計方向上有不小改觀,是我們持續(xù)關注的項目。
早期采用容器技術的用戶都會盡可能兼容企業(yè)原有的IT基礎設施,比如底層物理機,保留物理機之上的虛擬層,虛擬機之上再跑容器。當然,面向資源管理的硬件虛擬化和面向應用的容器化本質上沒有沖突。隨著Kubernetes的普及并且在應用上超越了容器編排的范疇,后Kubernetes時代如何搭建管理基礎設施是值得思考的。我們也觀察到一些有意思的趨勢,比如在Kubernetes上同時管理容器和虛擬機(所謂的“容器原生虛擬化”),或是使用Kubernetes來管理OpenStack。
總之,Kubernetes在云計算領域成為既定標準,會越來越多的往下管理所有種類的基礎設施,往上管理所有種類的應用。這類標準的形成對于技術社區(qū)有很大的益處,會大大降低圍繞Kubernetes技術投入的風險。因此,我們會看到越來越多的周邊技術向它靠攏,在Kubernetes之上催化出一個龐大的云原生技術生態(tài)。
DevOps獨辟蹊徑:開放式DevOps工具鏈集成與編排
DevOps理念、方法論和實踐已經走到了Early Majority早期大眾階段,是已被實踐證實的高效開發(fā)運維方法。做容器的廠商都經歷過用容器搞CI/CD,靈雀云也不例外,CI/CD是容易發(fā)揮容器優(yōu)勢的顯而易見的使用場景。在去年,我們做了重大的產品升級,將原來的CI/CD功能模塊擴展為完整的DevOps產品—Alauda DevOps平臺,覆蓋應用全生命周期。
DevOps包含好幾層概念,首先是組織文化的轉變,然后涉及到一系列最佳實踐,最終這些最佳實踐需要用工具去落地。我們在幫助很多大型企業(yè)客戶落地DevOps的過程中發(fā)現(xiàn):
1. 在DevOps的整個流程里涉及到很多類別的工具,每一個類別都會有大量的選擇;
2. 每個客戶的工具選型多少會有些不同,并不存在一個固定的、完全標準的工具組合;
3. 隨著時間的推移工具選擇會發(fā)生變化,多數(shù)客戶意識到目前使用中的工具在未來很可能會被替代。
基于這些觀察,Alauda DevOps的定位并不是要提供一個新的DevOps產品,去取代客戶已有的工具選型。相反,我們致力于打造一個開放式的DevOps工具鏈集成與編排平臺。
這個平臺可以靈活的兼容客戶的工具選型,通過集成將各類工具串聯(lián)起來,形成一套工具鏈,通過編排讓DevOps工具鏈與容器平臺聯(lián)動,形成一個完整系統(tǒng)。同時,不斷結合自身的經驗,提煉DevOps落地的最佳實踐,平臺將這些最佳實踐自動化,作為服務進行輸出。這個思路在和客戶的交流以及實際落地過程中不斷獲得認可。
值得一提的是,我們對于DevOps工具鏈的編排也是基于Kubernetes來實現(xiàn)的。Kubernetes不僅是出色的容器編排工具,擴展之后也很適合編排DevOps工具。換句話說,我們開發(fā)了一套“Kubernetes原生的DevOps平臺”。
微服務:落地需要一套完整的基礎設施
提起微服務治理,很多人會條件反射般的聯(lián)想到某些特定的技術,例如Spring Cloud,或者Service Mesh。我們不妨先退后一步,系統(tǒng)考慮下企業(yè)微服務架構改造和落地所需要的完整的基礎設施。
首先,在微服務應用的底層需要一個應用管理平臺,這在今天毋庸置疑是一個基于Kubernetes的容器平臺。
微服務本質上是分布式應用,在我們獲取敏捷性的同時不可避免的增加了運維和管理的難度。微服務對自動化運維,尤其是可觀測性的要求很高。支持微服務架構的基礎設施必須具備完善的監(jiān)控、告警、日志、分布式追蹤等能力。
在微服務應用的前方,通常需要一個API網(wǎng)關,來管理對外暴露的API。API治理策略,包括安全、路由、流控、遙測、集成等對于任何應用平臺都重要,但在微服務架構下尤為關鍵。我們需要通過定義、封裝對外API來屏蔽應用內微服務組件結構細節(jié),將客戶端與微服務解耦,甚至為不同客戶端提供個性化的API。
云原生應用的一大準則是應用與狀態(tài)分離。在微服務架構下,每個微服務組件更是應該完全掌控自己的數(shù)據(jù)。所以,云原生應用通常依賴外部數(shù)據(jù)服務(Backing Services),而在微服務架構下,多元化持久性(Polyglot Persistence)是常態(tài),也就是說一個微服務架構的應用會依賴非常多種類的 Backing Services。面向微服務架構的基礎設施需要將這些外部服務暴露給微服務應用消費,甚至直接支撐各類Backing Services 的部署和管理。
一個團隊之所以采用微服務架構,一定有敏捷性的訴求。所以通常微服務團隊也會擁抱DevOps理念。一個完善的面向微服務架構的基礎設施需要考慮 DevOps 流程以及工具鏈的自動化。
最后,我們回到狹義的微服務治理,這里關注的是微服務組件之間的連接與通訊,例如服務注冊發(fā)現(xiàn)、東西向路由流控、負載均衡、熔斷降級、遙測追蹤等。現(xiàn)在有個時髦的術語來描述這類功能,就是大家熟悉的Service Mesh。其實早期 Sping Cloud 之類的框架解決的是類似的問題,但在實現(xiàn)的方式上,尤其是mesh 和業(yè)務代碼的耦合度上,有本質的區(qū)別。
當我們考慮一個平臺如何支撐微服務架構的時候,需要涵蓋上述提及的方方面面,從產品的角度我們會保持一個開放的態(tài)度。這其中一部分需要我們自己去做,其他一些可以借助生態(tài)合作伙伴的能力去補全完善。
此外,微服務架構也進入到了后Kubernetes時代,早期基本上是微服務作為用例推動容器技術的發(fā)展。今天已經反過來了,成為標準的Kubernetes其實在驅動和重新定義微服務的最佳實踐。容器和Kubernetes為微服務架構的落地提供了絕佳的客觀條件。
Service Mesh:下一個亟待爆發(fā)的現(xiàn)象級技術創(chuàng)新
業(yè)界對于Service Mesh的布道已經持續(xù)了一段時間,我們今天不再重復基本的概念。當我們把Service Mesh和上一代以Spring Cloud為代表的微服務治理框架以及更早的Service Oriented Architecture (SOA) 作比較的時候,會看到一個有意思的演化。
我們知道,SOA有企業(yè)服務總線(ESB)的概念,ESB重且復雜,其實會混雜很多業(yè)務邏輯。SOA架構下,ESB最終容易變成架構以及敏捷性的瓶頸。早期推廣微服務架構的時候,一個重要的概念就是“Smart Endpoints and Dumb Pipes”,針對的就是SOA下ESB的痛點,從而每個微服務能夠獨立、自治、松耦合。
但是仔細去想的話,就會發(fā)現(xiàn)它其實走到了另一個極端:它把一些基礎設施提供的能力放到微服務的業(yè)務組件里面了,通常每個組件需要加載一些治理框架提供的庫,或是調用特定的API,其實就是在業(yè)務組件里內置了基礎設施的功能。到了Service Mesh其實又把它們分開了,從架構角度這樣也比較合理,應用是純業(yè)務的東西,里面沒有任何基礎設施,而提供微服務治理的基礎設施,要么在Mesh里面,要么由底層的Kubernetes平臺來提供,對應用是透明的。
Istio的出現(xiàn)促使業(yè)界對于Service Mesh的架構有了新的共識:控制平面(Control Plane)與數(shù)據(jù)平面(Data Plane)解耦。通過獨立的控制平面可以對Mesh獲得全局性的可觀測性(Observability)和可控制性(Controllability),讓Service Mesh有機會上升到平臺的高度。相對于需要在業(yè)務代碼層面使用的上一代微服務治理框架,這點對于希望提供面向微服務架構基礎設施的廠商,或是企業(yè)內部需要賦能業(yè)務團隊的平臺部門都具有相當大的吸引力。
在Data Plane,Envoy的領導者地位毫無爭議。Envoy使用C++開發(fā),在資源使用效率和性能上(尤其是長尾性能差異)相較早期主要競爭對手Linkerd有明顯優(yōu)勢。Envoy提供基于filter chain的擴展機制,從Kubernetes的成功當中我們已經學習到,可擴展性對于大規(guī)模采用十分關鍵。
Envoy定義了一套“通用數(shù)據(jù)平面API”(Universal Data Plane API),也就是它的xDS協(xié)議。不僅確保了Envoy本身的動態(tài)可配置性,更重要的是為Service Mesh中Control Plane和Data Plane解耦提供了一個標準的接口。由于主流Control Plane(例如Istio)對Envoy以及xDS的采納,xDS成為Service Mesh Data Plane API的事實標準,Envoy也成為無可爭議的Data Plane領導者。
在Control Plane,Istio是最具光環(huán)的明星級項目。它正在引領Service Mesh創(chuàng)造出一個全新的市場,不過從傳播周期看現(xiàn)在還沒有跨過技術鴻溝,處于Early adopters階段。
過去一年中,Istio項目在技術上的表現(xiàn)并不完全令人滿意,主要體現(xiàn)在對其復雜度的詬病,以及穩(wěn)定性和性能的質疑。1.0版本的推出并沒有完全令人信服。不過,這些似乎并不影響Istio在社區(qū)獲得的巨大成功。在開源領域,并不存在對Istio有實質性威脅的競品。可能在經歷了Kubernetes之后,以及Istio早期迅猛的發(fā)展和在社區(qū)中巨大的影響力之下,很少有開源項目愿意在Control Plane和Istio正面交鋒。
長遠來講,Data Plane會慢慢變成commodity,尤其在有了Universal Data Plane API之后。我們有理由相信成熟穩(wěn)健的Envoy會保持領先,但最終多數(shù)用戶會越來越少去關心具體的Data Plane技術。這個情境似曾相識,和當初Docker與Kubernetes的關系有點類似。
下個階段Service Mesh的賦能和創(chuàng)新會更多聚焦在Control Plane。AWS在Data Plane選擇成熟的Envoy,而自己開發(fā)App Mesh的Control Plane,就很容易理解。靈雀云已經在ACE/ACP兩條產品線中集成了Istio,提供企業(yè)就緒的Service Mesh。
云原生為機器學習輸出工程化最佳實踐
云原生的理念與相關技術對于應用開發(fā)與交付的巨大價值已經被普遍接受。但云原生不僅僅可以作用在普通的應用開發(fā)上。站在容器平臺的角度看,機器學習毫無疑問是一類極為重要新興工作負載。在未來,可能所有的公司都會是AI公司,所有的應用都會是智能應用,使用算法、模型就像今天應用會依賴數(shù)據(jù)庫一樣普遍。
如果我們分析數(shù)據(jù)科學家的工作流,會發(fā)現(xiàn)和傳統(tǒng)應用開發(fā)有很多相似的挑戰(zhàn)。如何方便的獲取實驗環(huán)境;如何讓實驗可重復;如何將數(shù)據(jù)處理、特征提取、模型訓練、模型驗證、模型發(fā)布這些步驟自動化,并且可重復;如何讓研究和生產環(huán)境保持一致;如何在生產環(huán)境做模型變更、AB測試、灰度發(fā)布;如何在生產環(huán)境運維模型服務;如何將模型服務化,等等。
在軟件工程領域,云原生的理念、方法論和最佳實踐已經為類似問題找到了良好的解決方案。這些方案其實非常適合應用在機器學習場景。換句話說,我們需要“云原生機器學習”。這仍然是一個相對早期的概念,從鴻溝理論的周期來看,云原生機器學習大致還處在Innovators創(chuàng)新者嘗鮮的階段。我們去年發(fā)布的Alauda Machine Learning (AML) 就是一個“云原生機器學習平臺”,目標是從云平臺的角度,用云原生的思路去落地機器學習工程化的最佳實踐。
進入2019年,巨大的增長空間和發(fā)展勢頭等待著已成事實標準的Kubernetes和容器技術繼續(xù)開疆拓土,落地到各種業(yè)務場景中;DevOps一片蓬勃人氣不減,靈雀云獨辟蹊徑,通過打造開放式DevOps工具鏈集成與編排平臺,形成完整的工具鏈,將最佳實踐輸出給客戶;微服務進入到后Kubernetes時代,Service Mesh技術日漸成熟,落地將成為新的重點。
云原生技術不再曲高和寡,高處不勝寒,成為業(yè)內主流標準取舍的關鍵。今天我們提到的上述云原生技術都是有創(chuàng)新性、顛覆性的技術,有希望順利跨越鴻溝(Chasm)進入主流市場。2019年的云原生技術將實現(xiàn)實實在在的升級、成熟與落地。靈雀云也將繼續(xù)把領先的技術、產品和最佳實踐帶給服務的客戶,在技術升級和數(shù)字化轉型中做出自己的貢獻。
- 智駕領域智界就是第一?問界排第幾?
- ChatGPT推出圖片管理功能:AI創(chuàng)作更高效!
- 抵御關稅沖擊,美國PC市場2025年Q1逆襲:出貨量激增12.6%,庫存量將大增
- 全球電車風潮涌動:中國與歐洲領跑,同比增長29%的電動汽車銷量新篇章
- AI編程大勢所趨:半年內90%,一年內幾乎全部代碼由AI編寫
- iPhone 17系列機模意外曝光,小米SU7 Pro交付時間嚇壞用戶
- 福耀科技大學獲批,曹德旺回應:壓力山大,批下來就要做好,求真務實才是關鍵
- 特斯拉Cybertruck新功能:FSD大更新,輕松實現(xiàn)停車啟動、智能召喚與倒車,駕駛更智能!
- 大眾汽車裁員風暴來襲:軟件部門Cariad大刀揮向三成崗位,風雨飄搖中的裁員序幕?
- 保時捷扛不住壓力裁員3900人:全球跑車銷量王也難逃經濟寒冬?
免責聲明:本網(wǎng)站內容主要來自原創(chuàng)、合作伙伴供稿和第三方自媒體作者投稿,凡在本網(wǎng)站出現(xiàn)的信息,均僅供參考。本網(wǎng)站將盡力確保所提供信息的準確性及可靠性,但不保證有關資料的準確性及可靠性,讀者在使用前請進一步核實,并對任何自主決定的行為負責。本網(wǎng)站對有關資料所引致的錯誤、不確或遺漏,概不負任何法律責任。任何單位或個人認為本網(wǎng)站中的網(wǎng)頁或鏈接內容可能涉嫌侵犯其知識產權或存在不實內容時,應及時向本網(wǎng)站提出書面權利通知或不實情況說明,并提供身份證明、權屬證明及詳細侵權或不實情況證明。本網(wǎng)站在收到上述法律文件后,將會依法盡快聯(lián)系相關文章源頭核實,溝通刪除相關內容或斷開相關鏈接。