天天看點

數字化覺醒時代:傳統企業雲原生技術體系建設之路(二)

文  山金孝

前文中,我們分析并講述了雲原生技術體系在傳統企業數字化轉型過程中的價值和意義,并重點描述和分析了雲原生技術體系如何重構傳統企業零散分布式的異構基礎設施,進而實作底層分布式異構基礎設施的大一統和上層豐富多樣中間件及個性差異化應用軟體的統一運作時,最終實作以一套技術體系支援任意應用負載,運作于任意雲環境,進而為傳統企業數字化轉型建構起應用從“傳統”蛻變至“現代”的最佳路徑。目前而言,對雲原生的布道普及,更多的還是以網際網路雲廠商工程師為主,而作為雲計算大變革最核心和下半場的主要陣地,傳統産業的從業者應該清醒認識到,傳統企業的雲原生覺醒時代已經到來,東隅如逝,桑榆必晚。本文中,我們将嘗試探讨大型多元化傳統企業如何建構既适合自身目前業務需求現狀,又能滿足未來業務發展需求的雲原生技術平台和技術體系。

一、傳統企業為什麼需要建設雲原生技術體系

在“數字化覺醒時代:傳統企業雲原生技術體系建設之路(一)”文中,我們結合傳統産業的現狀和雲原生架構的技術優勢,從傳統産業的數字化轉型、技術架構更新等多個次元闡述了雲原生對于傳統行業的價值和意義。本文中,為了更進一步的論證傳統企業擁抱雲原生的必要性,我們将從雲原生的初衷和本質兩個次元,來論述雲原生對于傳統企業轉型更新的重要意義。

1.1 雲原生的初衷是解決複雜系統快速疊代與穩定運作的問題

從雲原生的發展曆程來看,其在早期的出現,源自于網際網路企業解決上層大型分布式應用快速疊代的訴求和底層分布式基礎設施穩定運作的要求時所歸納的方法論和最佳實踐。在消費網際網路迅速崛起和野蠻生長的年代,大部分網際網路公司均建設了應對海量通路和高并發請求的大型分布式複雜系統,而為了快速開疆辟土、降維攻擊,實作業務的快速增長,這些複雜系統通常需要快速疊代、高頻發版,同時還要保障其運作穩定性問題,這對于當時的工程師而言,就猶如在高速行駛的列車上更換輪毂。而為了解決大型分布式複雜系統從開發、部署到運作、運維的全流程靈活與穩定性問題,工程師們針對基礎設施和軟體架構提出了彈性、靈活不可變基礎設施,反脆弱性、基于API的協作,以及子產品化、松耦合、可觀測、可追蹤、面向微服務和自動化管理等資源需求和軟體開發設計理念,而随着雲計算技術的發展,這些理念最終演變成以容器、微服務、不可變基礎設施、聲明式API和服務網格等為代表的技術體系,也即今天我們所謂的雲原生技術體系。由此可見,雲原生技術體系及其理念演變的背後,其所要解決的,就是通過一系列軟體架構的變革和方法論,解決分布式複雜系統快速變更與穩定性的問題,進而確定企業既能以最靈活快速的方式響應市場的需求變化,又能氣定神閑的確定複雜系統在靈活疊代中的穩定運作,同時還能實作整個過程的簡潔化、自動化和高效化。

既然雲原生源自于消費網際網路,那麼對于傳統企業的意義又何在?事實上,如果某個傳統企業具有足夠高的行業壟斷和壁壘,而企業發展僅需維持現狀或穩定運作,那麼傳統的企業級IT架構,配以商業系統和外部合作夥伴,事實上也并無不好,反而可能更适合企業自身,因為雲原生的種種誘惑其實也意味着封裝了更多的複雜,其技術門檻的高度也并非厘米之間。但是,在全行業數字化轉型競賽,網際網路企業全力邁向産業網際網路的時代,又能有多少傳統企業僅憑行業壁壘來生存,更多看到的,往往是倒地的大象,身體還是溫的。

所謂傳統企業無需靈活和快速響應,究竟是業務需求及其發展本身存在的客觀變化很慢,還是人為主觀能動性的抵觸使得企業變化緩慢,在網際網路行業碾壓式的攻擊和諸多傳統企業艱難喘息的事實之下,結論越來越傾向于後者。事實上,在傳統企業走向數字化和産業網際網路轉型的過程中,當“産業+網際網路”開始盛行時,曾經消費網際網路遇見和需要解決的問題,産業網際網路隻能是有過之而無不及,雖然傳統企業應用系統以“穩态”著稱,但是産業網際網路時代,傳統企業需要的不在僅限于“穩态”,而是兼具“穩态”和“敏态”,而讓二者皆可得正是雲原生技術的初衷。臨淵羨魚,不如退而結網,傳統企業需要看到的,不是來自網際網路企業的雲原生,而是雲原生為網際網路企業解決了什麼,帶來了什麼,傳統企業需要的是師夷長技以制夷,利用來自消費網際網路的先進技術,在産業網際網路時代重塑自己的産業,重構自己的競争優勢以變革自己、抵禦外敵,奪取産業網際網路的主動權和上司權。

1.2 雲原生的本質是企業利用雲計算先進技術紅利實作降本增效

長期以來,業界通常認為傳統企業的技術體系以圍繞CT和OT領域建構為主,而以雲原生為代表的新一代IT技術,則是消費網際網路行業為滿足自身發展需求而演化出的産物,具有較強的消費網際網路行業屬性,而不具有産業網際網路的普适通用性。此外,也有部分傳統行業觀點認為,雖然雲原生技術具有跨時代的先進性,但是在傳統産業特有的行業壁壘和固有的流程複雜度面前,雲原生不過是與己無關的另一世界喧嚣,跨界滲透那是遙遠的未來。然而,諸如此類掩耳盜鈴、自我蒙蔽的觀點,往往也正是大變革時代,反複上演的“消滅你,與你無關”的開始。曆次工業革命的曆史結果表明,在通用技術的大變革面前,不存在行業上的邊界之分,隻存在時間上的早晚之别。以上各種觀點的存在,在于傳統行業并未真正了解雲原生的本質,從企業經營的角度來看,雲原生的本質,是一套利用雲計算技術為企業實作降本增效的最佳實踐和方法論,而其核心本質正是企業的降本增效。

傳統企業對于雲原生的了解,在看到其技術先進性的同時,也需要看到其技術背後的核心商業本質。首先,從技術先進性的層面來看,雲原生是雲計算的再更新或進階形态,是雲計算作為通用技術大變革發展第二階段的産物,雲計算的優勢是将計算、存儲、網絡等資源進行集中池化,進而實作基礎設施的大規模集約化管理,滿足應用彈性、分布式的資源訴求,并通過IaC(Infrastructure as Code)的方式進行資源管理,雲計算的出現極大變革了傳統基礎設施資源的供給、管理和運維模式。在雲計算持續發展的基礎之上,雲原生更進一層,通過全新基于雲計算的軟體架構設計和應用開發傳遞方式,最大化利用雲計算的技術優勢,來建構具有靈活性、高彈性、容錯性、自愈性,以及可擴充、可觀測、松耦合等特性的應用系統,雲原生有效解決了業務需求的“快”與分布式複雜基礎設施“穩”之間的沖突。其次,從技術背後的商業本質層面來看,雲原生是指企業充分利用雲計算的先進技術紅利,建構現代化的軟體架構和應用系統,聚焦業務開發與應用創新,充分釋放業務價值,進而為企業實作降本增效的最佳實踐和方法論。

企業借助雲原生的先進技術,可以最快、最靈活的速度響應業務的需求和變化,建立企業應對市場不确定環境的韌性,滿足市場競争的需求,實作企業的增效;同時以最接近業務創新的方式聚焦應用開發,屏蔽低價值、高成本的非核心業務工作,以全流程自動化的方式實作複雜應用系統的穩定運作,實作企業的降本。而作為一套“以利用雲計算技術為企業降本增效”的最佳實踐和方法論,正是雲原生最核心的商業價值和本質,也是數字化時代,全行業均在全力擁抱雲原生的根本原因。

二、傳統企業雲原生技術體系建設進階之路

2.1 傳統企業雲原生建設并行推進的兩個方向

時至今日,雲原生所涉及的各類代表技術,如容器、服務網格、微服務、不可變基礎設施和聲明式API,都已非常成熟,多數網際網路公司和雲服務廠商均建構了自身極為完備和成熟的雲原生技術和産品體系。與此同時,盡管傳統企業對雲原生的熱度也在不斷升溫,但是鑒于傳統行業,尤其大型多元化傳統企業長期以來業務發展的特殊性,例如曆史業務發展存留的大量傳統架構應用系統,應用建設多年依賴外采和供應商所帶來的自主能力缺失和技術債務,企業并購戰略和多化元發展帶來的存量分布式異構基礎設施和差異化應用,以及涉及國計民生的制造、控制類現場實時特殊應用系統的大量存在,均給傳統企業的雲原生之路帶來了異于網際網路行業的極大挑戰。事實上,即使網際網路企業,雲原生建設之路也并非一蹴而就,其探索過程也是循序漸進。是以傳統企業的雲原生技術體系建設,更應該結合自身實際,做好整體推進的頂層設計和長遠規劃,以兼顧過去、面向未來,夯基遞進、立而不破的思路,平穩漸進的向雲原生技術體系演化。

通常而言,傳統行業的業務形态、技術架構和技能體系均與網際網路新生代企業存在較大差異,是以即使全行業都在邁向雲原生這個共同的目标,但是關于雲原生的探索實踐和推進落地的具體路徑與方法卻有所差別。不同于網際網路企業或中小企業以雲端為中心的雲原生應用建構,傳統企業更多是基于混合雲和分布式雲的雲邊端協同一體化雲原生應用建構,其雲原生建設之路也不僅局限于中心化雲原生技術平台的建設,還需考慮相容各類存量分布式的異構化基礎設施,以及多場景、多語言、多平台依賴的差異化關鍵生産應用的雲原生重構和開發需求,需要從中心雲原生、區域雲原生到邊緣雲原生,乃至終端雲原生進行一體化的全局考慮,最終才能走向傳統企業的全面雲原生。

鑒于傳統企業,尤其大型多元化傳統企業的業務複雜性,我們認為傳統企業的雲原生建設之路,應分别從垂直縱向和水準橫向兩個次元分階段逐層推進。垂直縱向主要從技術架構次元進行雲原生技術平台的建設,包括混合分布式和雲網邊全域融合的彈性靈活基礎設施,一體化分布式雲原生平台,以及以應用為中心的雲原生應用管理平台等由下至上的雲原生逐層建設;水準橫向主要從應用架構次元進行傳統應用的上雲遷移和雲原生應用的改造建設,其程序主要包括存量非關鍵應用的托管遷移上雲階段,傳統核心應用局部化雲原生改造及由此而來的雲上、雲下新舊架構混合雲原生應用模式階段,以及雲邊協同下的全域全面雲原生應用三個階段。

從雲計算行業目前的社會分工來看,垂直縱向主要以雲廠商為主,而水準橫向主要以中小企業客戶為主。而大型傳統企業雲原生技術體系建設的難度,在于現階段受相關技術條件的限制和傳統企業本身業務複雜性、多樣化的多重阻礙,企業很難借助外部雲廠商中心化或标準化的技術平台,來滿足傳統企業多樣性、差異化和碎片化場景下的特殊業務場景需求。是以,為滿足業務雲化的實際訴求,大型傳統企業在雲原生技術體系的建設過程中,通常不得不“以我為中心”,同時從縱、橫兩個方向并行推進雲原生建設。而傳統企業的雲原生建設也隻有縱、橫兩個方向同時推進,才有可能實作真正的雲原生企業,才能真正看到雲原生的價值,而如果企業僅是聚焦于垂直縱向雲原生技術平台的建設,而忽略傳統應用的雲原生改造推進,那麼縱使企業建成再先進的雲原生技術架構與平台,也隻是裹着華麗外裝的低智侏儒,永遠不能稱之為雲原生企業。

數字化覺醒時代:傳統企業雲原生技術體系建設之路(二)

圖1 傳統企業雲原生建設并行推進的兩個方向

2.2 傳統企業雲原生垂直縱向建設的三個階段

2.2.1 雲原生技術架建構設第一階段:靈活基礎設施——異構混合多雲、全域雲網融合

彈性靈活基礎設施,是任何企業雲原生技術體系建構的首要提前。雲原生是雲計算的再更新,也是雲計算作為通用技術大變革發展的第二階段,是以在建構雲原生技術體系之前,傳統企業必須建構起彈性靈活,契合自身業務現狀,同時又能面向未來的雲計算基礎設施,而這也是雲原生技術體系建構的核心基礎,如若無此,一切皆空。對于傳統企業而言,由于多元化業務的廣域分布和基礎設施的長期分裂孤島式建設,加之傳統行業業務場景的複雜性、實時性和多樣性,緻使傳統企業彈性靈活基礎設施的建設長期處于停滞不前和碎片化的狀态,而誕生于網際網路企業的中心化公有雲模式又難以觸及傳統産業的真正核心。是以,大型傳統企業靈活基礎設施的建構必須堅持外學内用的原則,将源自消費網際網路的先進技術與産業網際網路的業務特性緊密結合,方可打造極具自身行業特色的産業網際網路彈性靈活基礎設施。對于多數傳統企業而言,分布式異構基礎設施的現狀,以及由此而造成的資源管理配置設定上的割裂和資料自由流動上的障礙,一直是橫亘在傳統企業基礎設施一體化建設和彈性靈活面前的溝壑。是以,如何建構基于異構多雲的架構和管理能力,打通異構多雲基礎設施,實作全域範圍内的資源靈活調配,形成企業“内部互通、内外互通、多雲互通、雲邊互通”的資源互通格局,是傳統企業彈性靈活基礎設施建設的關鍵。也正因如此,異構混合多雲和全域雲網融合雲原生基礎設施的建設,成為傳統企業建構雲原生技術體系必須經由的第一階段。

傳統企業業務發展多元化、産業需求多樣化的現狀與未來,必然要求雲原生基礎設施在架構範圍内尋求最符合企業多元化業務需求的平衡點:既能彈性靈活,又可固若金湯;既能敏态響應,又能穩态運作;既要中心化集中處理,又要雲邊分布式協同。整體架構需要保證使用者體驗和管理機制高度一緻,以遵循管理規範作為前提,業務負載在統一的編排、排程和管理下,自由安置于最适合業務需求的分布式異構基礎設施之上,形成内看相容并蓄、優劣互補,外看整齊劃一、全然一體的異構混合多雲架構。而異構混合多雲的建設,是以業務需求為導向,整合複雜多樣業務模式,并以最貼合業務的形态,提供跨底層異構基礎設施域的綜合平台能力,實作資料在異構IaaS層面的自由流動和業務負載在PaaS層面的自由遷移,賦予業務系統跨越平台桎梏和地域阻隔的廣域分布式擴充、高次元彈性靈活和異構平台自由伸縮的能力,以及分而不散的運維監控和排程管理能力。最終實作異構多雲環境下的統一平面、一緻體驗,互聯暢通、資料流動,以及面向應用、自由遷移,廣域無界、雲随業動的雲原生基礎設施能力。

對于傳統企業而言,傳統的雲服務彈性靈活,并不代表雲原生基礎設施的彈性靈活,而隻有雲上雲下一張網的企業雲網融合靈活基礎設施,才是真正意義上的雲原生靈活基礎設施。大型傳統企業通常業務形态複雜衆多,分支機構橫跨全球,廣域組網連接配接多樣,網絡需求場景各異,移動終端無處不在,物聯終端遍布全景,異構多雲橫跨地域。傳統企業以雲、邊、端為瞄點建構雲網融合基礎設施,打造雲上雲下全域融合一張網,實作網絡資源的服務靈活化、需求彈性化和接入便捷化,滿足産業端按需開通、動态擴容,集中控制、應用分級,一點入網、零觸配置,智能選路和可視智能運維等網絡服務需求,進而實作雲計算時代網絡即服務、網随業動、雲随網至的雲網全域賦能和資料自由流動,是雲網融合時代雲原生靈活基礎設施的核心基礎和重要特征。隻有當網絡服務如同雲服務一般實作動态按需、靈活彈性、按需定制時,雲端能力才能以最快、最便捷的方式輸送至産業端,才能實作企業物聯裝置、邊緣裝置、公有/私有中心雲、廣域邊緣雲、海外分支、國内分支、無線/有線使用者以便捷自由、實時無礙的方式接入同一個雲網融合平面,才能做到企業資料在雲網之間的自由流動,也才能實作雲原生價值在企業全網内的最大化擴張。歸結而言,隻有真正做到雲、網、邊、端一體化的資源彈性靈活服務和自由無界立體化的互聯互通,傳統企業的雲原生靈活基礎設施建設才算基本完成,而傳統企業雲原生技術體系的建設也才有“基”可建。

2.2.2 雲原生建設第二階段:雲原生分布式作業系統——無界雲原生、雲邊端一體

對于傳統企業而言,雲原生第一階段所解決的,是企業分布式異構資源池的一體化彈性靈活和統一排程管理問題,也是傳統意義上混合多雲主要聚焦的領域,集中在對異構裸金屬、虛機、網絡和存儲等底層虛拟化資源的統一管理和彈性供給,是對企業底層各類異構基礎設施及其各項能力的抽象化和标準化。這一階段的首要目标,是解決以資源為中心的雲原生基礎設施建構問題,即讓傳統企業最底層的分布式異構資源以彈性靈活的方式變得互聯互通和中心一體化的排程使用,為後續以應用為中心的雲原生建設夯實底層的彈性靈活資源池。事實上,企業雲原生建設的第一階段主要聚焦在IaaS資源層面,并未涉及應用層面的抽象和标準化,其離雲原生所倡導的核心理念仍就遙遠,因為資源層面的彈性遠不意味着應用層面的靈活。雖然第一階段實作了傳統企業底層異構資源的互聯互通和統一管理,但是由于底層不同的邊緣雲、私有雲、公有雲采用了不同的技術架構和标準規範,企業分布式應用在不同的邊緣雲與中心雲、私有雲與公有雲,以及不同公有雲之間的自由遷移和安置,仍需解決異構廠商和技術層面的壁壘問題。

解決雲原生建設第一階段遺留的問題,需要我們在企業多樣化的異構基礎設施之上,抽象出屏蔽底層異構資源和上層差異化應用的共性中間層(雲原生作業系統層),使其定義開放标準,向下封裝資源,向上支撐應用,使得上層差異化的應用無差別的運作在底層多樣化的異構資源層上,進而實作上層應用在不同底層基礎設施上的自由分發和運作。對傳統企業而言,隻有抽象并建構出上述雲原生作業系統層,才能解決軟體應用從開發、傳遞到運作、運維全流程的靈活化、自動化,建構出具有容錯性、易管理和便于觀察的松耦合應用系統,也才能在對複雜應用系統作出頻繁且重大變更後,系統按照可規劃、可預測的狀态穩定執行與運作。而如何解決與複雜應用系統全生命周期相關的既能快速靈活滿足業務價值訴求,又能穩定運作實作業務敏态與基礎設施穩态之間最佳平衡這一難題,也将在雲原生作業系統中得以解決。是以,傳統企業以應用為中心的雲原生第二階段的建設,即是打造企業級分布式雲原生作業系統的過程,傳統企業如能将分布在雲網邊端的任意基礎設施作為一體化的“硬體”(雲原生建設第一階段目标),并将企業級分布式雲原生作業系統運作在其上(雲原生建設第二階段目标),則企業任意應用便可無差別的自由運作在雲、網、邊、端的任意資源上,真正實作企業的算力無邊、應用無界和資料的自由流動,而傳統企業的雲原生建設也隻有達到這一階段,作為通用技術大革命的雲計算才能真正改變沉睡在工廠、工廠中的房間、倉儲、隧道、橋梁和流水線上的裝置運作方式,真正的産業網際網路時代也才能到來。而支撐這一時代到來的企業技術架構,正是傳統企業雲原生建設第二階段要實作和完成的目标。

事實上,在雲原生理念還未提出之時,以Heroku為代表的雲廠商便在尋求建構以應用為中心的PaaS雲平台。但是,早期的PaaS平台深陷廠商“自我創造”的泥塘,各種自創的限制和限制條件,形成了以平台廠商為主導的封閉生态,最終使得PaaS平台與開源開放的開發者生态脫軌,而平台使用者不得不以喪失應用開發的靈活性,來換取應用開發的标準化和靈活性。廠商自我封閉生态的建構和開發者主觀能動性受到極大制約,是早期PaaS平台未能成功的根本原因,而直至Docker和Kubernetes的出現,以應用為中心的PaaS平台才出現根本性的改變。Kubernetes的出現,屏蔽了底層異構環境的複雜性,為上層應用提供了統一的标準和接口,正如單機時代的Linux系統提供了對底層計算、存儲、網絡等裝置的資源抽象和安全通路模型,Kubernetes則提供了叢集時代對底層分布式異構基礎設施資源的統一抽象和安全通路模型,是以Kubernetes也被稱為雲計算時代的“Linux”,即分布式雲原生作業系統。而傳統企業雲原生第二階段的建設,正是在第一階段以資源為中心的分布式異構混合雲和雲網全域融合彈性靈活基礎設施之上,建構以容器和K8S為核心,以應用全生命周期管理為中心的分布式混合雲。也即借助容器的封裝屏蔽和基于K8S原生的雲邊協同能力,将企業分布在不同地域、不同架構、不同廠商、不同規模的異構基礎設施資源,進行統一的屏蔽抽象,實作企業在中心雲、邊緣雲和邊緣裝置上的一體化、無邊界雲原生,讓企業應用可以自由運作在任意位置的任意裝置資源上。從應用角度,企業雲、網、邊、端裝置是一體化、無差別、可運作任意應用的靈活資源;從開發者角度,一次DevOps流水線建構的任意應用,可以無需修改、幂等多次的自由部署、安置在任何需要運作的位置;從維護者角度,運作于任意位置的分布式應用,均可實作彈性動态伸縮與自我愈合,中心化的監控運維,以及雲端版本的集中控制和邊端應用的統一分發與滾動更新。

2.2.3 雲原生建設第三階段:以應用為中心——應用組裝、業務聚焦

對于多數傳統企業,如果已完成雲原生第二階段的建設,則其已基本實作碎片化資源的整合和統一排程能力,技術架構在所處行業已具備相當的領先能力,基本可納入雲原生企業範疇。第二階段的企業,通過Kubernetes及其原生的技術生态圈已搭建雲邊端一體化的基礎設施抽象層,應用開發者基于Kubernetes可以建構出企業需要的任何垂直業務系統而無需關心底層基礎設施層面的細節,而平台開發者或運維人員基于Kubernetes可以建構出支撐企業應用全生命周期管理的PaaS平台。至此階段,企業分布式應用的建構、部署和運作已具備相當的雲原生彈性和靈活能力,而雲原生所倡導的企業應用“生于雲上、長于雲上”的架構土壤已基本形成。但是,如果跳出技術架構的層層抽象,俯看整個雲原生建設的兩個階段,就會發現截止目前為止的雲原生建設仍然聚焦在底層基礎設施的抽象和标準化上,離“以應用為中心”的雲原生終極目标仍有距離。雲原生前兩個建設階段的差別在于抽象層次的不同:第一階段更多是對底層分布式異構資源池一體化彈性排程的抽象,第二階段更多是對分布式應用運作時的封裝與抽象。并且第二階段所謂“以應用為中心”的雲原生建設,更多聚焦的,是對向下屏蔽異構資源差異、向上承載多樣化應用,以及向外可拓展至任意邊緣的分布式資源和應用運作平台的抽象和建構,而并非應用本身的抽象和規範。

簡而言之,截止雲原生建設第二階段,我們在雲原生技術架構的建設上并沒有做到真正意義上的“以應用為中心”。其主要原因,在于作為能力接入層的Kubernetes平台,其專注點在于“如何标準化的接入來自于底層,容器、虛機、負載均衡等開源生态圈各種各樣的能力,然後通過聲明式API的方式去暴露給使用者”。這也意味着Kubernetes實際上的使用者并不是業務開發者和運維人員,而是企業或廠商平台開發者。然而,對于企業使用者而言,真正的價值源自業務,而非任何平台本身。雖然Kubernetes通過對南向各類底層資源的接入和北向聲明式API的暴露,幫助平台開發者解決了企業底層資源碎片化和上層資源統一使用之間的沖突和大問題,但是并沒有減輕業務開發者和運維人員的心智和負擔,甚至由于其過于底層的資源抽象和API定義,業務開發者和運維人員不得不一邊吐槽其設計之奇異、使用之複雜,一邊又被迫成為各種“容器專家”或“K8S專家”,陡峭的學習曲線和較高的使用門檻,不僅影響了使用者的使用體驗,拖慢了企業的研發效能,還與傳統企業落後的技術能力和有限的技術投入形成鮮明對比,最終形成了企業内部平台建設不斷内卷,業務創新萎靡不振,應用改造阻力重重的困境。

為了真正實作“以應用為中心”的雲原生終極目标,最大化釋放企業核心業務價值,後K8S時代的雲原生建設主要圍繞兩個方向:一是平台建構層面,基于K8S建構面向上層使用者(以開發和運維人員為主),以上層應用而非底層資源為對象進行高層次封裝抽象,實作應用開發、維護和平台建構者各自關注點的分離,建構具有更友好界面、更接近使用者使用習慣的上層應用管理平台,目前主流的各大廠商雲原生PaaS平台,以及所謂的低代碼平台均屬此類;二是應用開發層面,不斷抽象和剝離上層應用代碼中非業務邏輯或非核心業務代碼的實作部分,并使其下沉至平台共享層或邊車(Sidecar)抽象層,同時不斷解耦上層應用與下層平台的依賴關系,讓微服務應用的開發變得簡單、高效,讓分布式應用跨平台的遷移和運作變得更透明無感,讓微服務應用變得更輕量、可解耦、可治理,讓應用開發者更聚焦于業務邏輯的設計開發而非平台本身的學習和使用,目前以Istio等為代表的服務網格,以及以Knative等為代表的無伺服器開發架構均屬此類。作為傳統企業雲原生技術架建構設的第三階段,企業應該以“平台能力下沉,業務價值上浮”為終極目标,圍繞雲原生應用管理平台和雲原生應用開發層面進行持續建設與完善。一方面,建構簡單易用且高度可擴充,以應用的定義、描述群組裝編排為核心的雲原生應用管理平台,實作應用元件的高度抽象和自由組裝,實作開發、運維和平台建構者的關注點分離,摒棄開發運維人員對底層資源排程平台複雜細節的關注,以應用組裝方式最大化釋放業務價值。這一領域,社群提出的OAM雲原生應用構模組化型,以及基于OAM和K8S實作的KubeVela等雲原生應用管理平台已做出有效的探索和嘗試。另一方面,持續建構語言無關、平台無關的微服務開發與治理能力,不斷下沉應用代碼中非業務邏輯的實作部分,高度聚焦核心業務代碼實作,打造跨語言開發微服務應用,在異構雲、邊跨平台上,無修改、可觀測、可解耦、可治理的運作能力,真正實作傳統企業雲邊架構主導下,分布式微服務應用的高效開發與極簡運維。這一領域,服務網格、無伺服器計算都是卓有成效的嘗試,而基于邊車理念的分布式應用運作時Dapr正在成為這一領域的代表。

2.3  傳統企業雲原生水準橫向建設的三個階段

2.3.1 雲原生應用建設第一階段:寄于雲上——應用遷移、托管上雲

雲原生應用的目标,是充分利用雲計算技術大變革帶來的技術紅利,基于原生态的雲資源來建構和開發企業現代化的應用系統,最終實作企業降本增效的目标。但是,對于傳統企業而言,由于長期大量曆史留存單體應用系統的存在,以及基于傳統技術棧所建構的團隊技術體系,加之數字化轉型初期雲原生技術平台停留在以資源為中心的建設階段,大多數傳統企業雲原生應用建設的第一階段,主要以将應用系統從線下搬遷至雲上為主。這一階段,傳統企業主要将存量非核心應用簡單部署和運作在雲上,應用以“雲上寄宿”的方式集中運作在雲端資源池上,通常也稱為托管上雲。

雲原生應用遷移第一階段,主要解決的是企業傳統IDC時代運維、部署、擴容的難題,但是傳統應用單體架構厚重、煙囪式架構等帶來的一系列應用層面的問題并沒有得到有效解決,雲對業務的價值主要停留在資源供給階段,現階段的遷移主要以雲上資源對雲下資源“一對一”的替換為主,并不能充分發揮出雲的價值,這一階段更多是一種“換湯不換藥”的遷移。換另外角度來看,現階段的企業應用技術棧本身并沒有發生實質性的改變,即企業軟體架構的設計沒有發生變化,隻是軟體運作的平台和運維的技術體系發生了變化,即應用運作環境從以“裝置”為中心的實體時代遷移到了以“資源”為中心的虛拟化時代。雖然應用對底層資源的需求得到了彈性靈活的滿足,但是軟體應用在分布式場景下需要解決的問題,包括穩定性、元件或服務之間的資料同步、整體的容災高可用、DevOps流程自動化、端到端鍊路跟蹤,以及分布式應用的可觀測、可解耦、可治理等複雜問題,仍然需要應用花費大量時間和精力自行解決。

事實上,如果應用本身沒有基于雲原生的理念和雲服務進行重構,而是繼續在雲端采用傳統架構并進行簡單的資源替換,那麼傳統企業應用長期面臨的諸多問題,并不會因為應用遷移到了雲平台就從根本上得到解決,這也是很多傳統企業上雲遷移後,仍然遲遲不見降本增效的根本原因。是以,嚴格意義上,傳統企業雲原生應用建設的第一階段,更多是以存量應用的上雲遷移為基礎,對雲原生技術平台上的雲資源和雲服務進行充分的了解使用,雖然應用系統可能已運作在雲原生的環境中,但是應用本身的軟體架構并未發生實質性改變,而企業應用上雲所帶來的價值也非常局部和有限。此時的應用更多屬于雲上托管應用,而非真正的雲原生應用,就傳統行業的現狀而言,大部分企業仍然處于第一階段,也可認為是雲原生1.0階段。

2.3.2 雲原生應用建設第二階段:生于雲上——應用改造、混合原生

從行業現狀來看,目前階段的大多數傳統企業正在經曆或基本已完成雲原生應用第一階段的建設,企業傳統應用上雲遷移工作已基本完成,傳統應用開始在雲環境下使用,并開始享受雲計算基礎設施資源彈性靈活的紅利,但是由于應用架構本身并沒有發生變化,是以也不能充分利用雲計算新技術的諸多特性,應用運作效率隻能局部得到提升,而企業應用上雲後降本增效的整體成效也非常有限。

随着企業數字化轉型的深入,企業需要充分享受雲計算帶來的技術紅利,需要讓業務能力生于雲、長于雲。所謂生于雲是指基于雲原生的技術、架構和服務來建構企業應用,而傳統企業雲原生應用建設的第二階段,則是指企業由“面向雲遷移應用”的階段演進到“面向雲建構應用”的階段,即由“以資源為中心”演進到“以應用為中心”的雲原生應用建設階段。這一階段,傳統企業需要基于雲原生的技術、架構和服務來建構企業自身應用,實作企業應用“生于雲上”。當然,作為雲原生應用改造或建構的前提,企業在垂直縱向上的雲原生技術平台建設,至少應達到第二或第三階段,即企業至少應部分實作開發雲原生、計算雲原生和架構雲原生,否則将不具備改造或建構雲原生應用的技術條件。

對于多數傳統企業而言,在雲原生應用建設的第二階段,更多的精力應該聚焦于傳統存量單體應用和外采傳統應用的雲原生改造,以及部分面向産業網際網路轉型而啟動的創新型應用的雲原生建構,尤其諸多“三無”(無供應商、無開發、無運維)系統的雲原生改造。然而,很多傳統核心應用的雲原生改造,事實上很難一步到位。究其原因,首先在于很多傳統企業由于各種曆史原因,大量存在各種基于Windows系統開發和運作的傳統應用,這與網際網路公司和開源生态圈圍繞Linux系統建構雲原生應用截然不同;其次,與網際網路公司以Java、Python和Go等語言為主不一樣,傳統企業中大量存在以.NET、C#等與雲原生親和性不是很友好的語言或架構為主而開發的傳統應用;另外,傳統企業多數核心生産系統長期以靠近現場運作的方式存在,而此時也不可能因為應用雲原生的改造,就能解決網絡時延、成本、品質和安全等問題而将應用收歸于雲端,反而“營運管理”背景功能的雲端中心化和“控制執行”前端功能的分布式邊緣現場運作,成為傳統企業雲原生改造的最佳應用架構選擇。以上三個方面,構成了現階段傳統企業雲原生應用改造的三大阻力,也是以而導緻傳統企業在雲原生應用改造過程中,難以一步到位而呈現出語言混合、架構混合和雲邊混合的狀态。雲原生應用建設第二階段的企業,更多呈現出的是混合雲原生過渡狀态,傳統單體應用、混合雲原生應用、标準雲原生應用同時并存于企業中。作為可能長期并存的混合雲原生過渡階段,傳統企業更應該明确自身應用“生于雲上”的方向和原則要求,在存量應用改造的同時,明确限制各種基于傳統應用架構外采應用的引入,做好企業雲原生理念宣貫與執行工作,并将雲原生技術體系作為應用上線準入的評判标準。而此時的企業雲原生建設,可以認為是雲原生2.0階段。

2.3.3 雲原生應用建設第三階段:長于雲上——價值釋放、全面原生

對于大多數傳統企業,如果其正處于“生于雲上”的雲原生應用建設第二階段,則意味着無論是雲原生技術理念的普及,還是雲原生技術平台的建設,以及雲原生應用架構的設計與改造,企業都也具備相當實力,并已開始走向雲原生企業的正軌。但是,處于這一階段的傳統企業,雲原生應用仍然參差不齊,雲原生技術能力處于積蓄成長期,雲計算的技術紅利主要以企業雲端應用為主,并未實作傳統企業雲網邊端一體化應用的全面覆寫,是以傳統企業的業務價值未能全面釋放,更進一步的雲原生應用建設還需繼續。

盡管目标遙遠,但是邁向全面雲原生依然是傳統企業應用架構轉型更新的終極目标,也是企業雲原生應用建設第三階段的初衷,即重塑傳統企業,使其全面“長于雲上”。而所謂的“長于雲上”,則是指企業充分利用雲計算的優勢來助力企業應用和業務發展,将企業的數字化建設、業務智能化轉型更新帶入全新階段。事實上,伴随雲原生技術體系與生俱來的靈活和龐大能力資源池的不斷普及,雲原生的虹吸效應已在傳統行業初現:傳統底層技術、編排及管理技術、安全技術、監測分析技術逐漸開始雲原生化改造,形成了基于雲原生的全生命周期技術鍊,同時細分領域的技術也趨于多元化發展;傳統行業使用者逐漸對外圍系統、次核心系統、核心系統進行不同程度的雲原生化改造,完成上雲效能提升;越來越多面向邊緣、雲網融合、物聯網、工業網際網路的場景開始基于雲原生進行構造和實踐。

雲原生降低技術門檻,深化交叉內建,推動雲數智深層次融合。作為雲原生應用建設第三階段的企業,不僅在開發雲原生、計算雲原生、架構雲原生和監控運維雲原生方面處于領先地位,在資料雲原生、智能雲原生和安全雲原生領域,已實作基于雲原生的雲數智深層次融合。這一階段的企業應用,我們認為至少應該具備“五個現代化”,即應用設施現代化、應用架構現代化、應用開發現代化、應用運維現代化、應用安全現代化:

  • 應用設施現代化:開發人員從繁瑣的資源管理和運維等低值工作中釋放出來,聚焦于應用開發和業務創新等高價值工作,企業底層分布式異構基礎設施資源的差異性已被屏蔽,雲網邊端一體化的彈性靈活資源排程體系已經建立,覆寫中心雲、邊緣雲、邊緣裝置、物聯網裝置在内的雲邊端綜合性技術架構體系基本成型,企業呈現出雲網邊三級分布式基礎設施架構,雲随業動的雲計算格局基本建成。
  • 應用架構現代化:在雲網邊一體化的技術體系下,基于微服務架構、橫跨雲邊端的分布式應用成為主流,高内聚、低耦合、高可用與彈性可擴充等雲原生應用的特性天然内置于應用全生命周期,應用的容器化、Mesh化和Severless化成為應用架構設計的标準與常态;基于雲邊端的三層分布式應用架構,企業“強背景、小前端”的業務發展理念得以快速實作,雲端中心化的經營管控和邊端分布式的控制執行成為傳統企業上雲常态。
  • 應用開發現代化:以釋放軟體開發效率,聚焦業務邏輯為核心,應用代碼中與業務邏輯無關的公共實作部分被不斷抽取并下沉至基礎設施平台層,Severless開發理念被普遍接受;封裝分布式應用系統複雜性,建構可移植、可跨雲與邊緣分布式應用,且與開發語言和架構無關、事件驅動、無伺服器運作時的分布式應用開發與運作平台成為主流;基于容器和K8S建構,具備高可擴充性,以“以應用為中心”面向上層使用者抽象與封裝的雲原生應用管理平台,驅動開發、運維和平台建構者關注點分離,并持續向低代碼開發管理平台演進,企業應用的開發與運維管理效率得到極大提升。
  • 應用運維現代化:DevOps成為内嵌企業流程、治理、安全的自動化和标準化軟體應用傳遞平台,企業軟體的生産傳遞過程變成可複制、可批量化的生産流水線;雲時代的立體化運維由上至下穿透上層應用與下層基礎設施,全鍊路可追蹤、可觀測、可關聯,自動化、智能化的運維管理平台精細化、立體化監控守護企業應用;雲邊端分布式應用雲端一體化監控運維,應用分發流水線由雲端穿透至任意邊端側,應用版本雲端中心化集中管控,邊端部署更新統一下發,立體化的雲邊端應用全生命周期管理得以實作。
  • 應用安全現代化:網絡安全邊界被打破,源于雲網邊端任意位置的應用與終端通路皆不可信任,零信任理念普遍成為企業共識,内外及東西、南北向通路皆以動态身份驗證和最小權限授予、以及持續安全防護作為企業安全基準原則,實作企業資源安全可信通路;零信任融合原生安全,安全産品持續原生化,基于雲原生的零信任服務體系内嵌融合于以雲計算為承載的企業任意基礎設施,企業安全能力得到最大防護加強。

傳統企業雲原生應用的建設,隻有在實作“五個現代化”建設的基礎之上,才可認為其基本走完雲原生應用建設三個階段的道路,進入雲原生3.0階段,同時也才可稱為全面“長于雲上”的雲原生企業。而企業上雲後的業務價值和降本增效的初衷,也隻有進入全面雲原生的階段,才能得以全方位的釋放和實作。對于傳統企業而言,這将是一個曲折而漫長的過程,但也是轉型之路必然走向的未來。

三、總結

雲原生技術在本質上是一套利用雲計算技術為企業實作降本增效的最佳實踐和方法論,其初衷在于通過自動簡潔的技術體系和方法,解決分布式複雜系統既能快速靈活響應上層業務訴求,又能靈活彈性確定下層複雜基礎設施穩定運作要求的問題,進而也是解決傳統企業在數字化轉型過程中,既要業務“敏态”,又要運作“穩态”的最佳途徑和方法。然而,傳統企業雲原生技術體系的建設卻是一個帶有颠覆性的複雜過程,也是傳統企業重構技術體系和重塑經營模式的重要過程展現,需要的不僅僅是企業高瞻遠矚的戰略定力和魄力,更需要長遠的頂層規劃和戰術目标的步驟分解。

為了闡述傳統企業擁抱雲原生的價值意義和傳統企業如何建設雲原生技術體系,我們以兩篇長文貫穿了雲原生相關的技術、價值、本質和建設進階之路。本文作為傳統企業雲原生技術體系建設之路的下篇,提出了雲原生垂直縱向和水準橫向同時推進建設的觀點,從雲原生技術架構和雲原生應用兩個次元,分階段同時推進傳統企業雲原生技術體系的建設,并給出了雲原生不同階段的特征和企業應該實作的目标,以幫助大型傳統企業更好的規劃、建設和實作自身企業的雲原生之路。當然,任何一項變革性技術從出生、成長到成熟應用,都是個曲折漫長的過程,對于飽經滄桑的傳統企業而言,要走向全面雲原生,需要的不僅是聲勢口号,更需要我們腳下的堅持、心裡的希望和眼裡的光芒。

繼續閱讀