
傳統(tǒng)企業(yè)IT應用開發(fā)模式面臨挑戰(zhàn)
分段式的研發(fā)模式,業(yè)務上線周期太長
目前,業(yè)界主流企業(yè)普遍采用基于瀑布式的研發(fā)模式,這種模式主要存在以下弊端:首先,業(yè)務需求是分段的,企業(yè)業(yè)務部門從企業(yè)運營的視角對IT提出需求,IT部門進行應用的開發(fā);其次,IT應用開發(fā)是串行的,從需求分析、方案設計、編碼測試到部署上線是按順序開展的。一般一年只有1~2個版本上線,如果加上組織部門墻導致的開發(fā)流程斷裂,上線周期會更長,一旦出現(xiàn)需求大量變更,周期就會嚴重拖延,甚至陷入交付的泥潭。
這與互聯(lián)網(wǎng)應用快速試錯、快速上線以及開發(fā)運維一體化的DevOps模式形成了強烈的對比,為此企業(yè)的IT應用開發(fā)紛紛開始借鑒互聯(lián)網(wǎng)的DevOps模式。但在實踐中也發(fā)現(xiàn),僅僅理念的轉變是遠遠不夠的,更需要有一個良好的架構和先進的開發(fā)模式來支撐。
架構陳舊且高度耦合,牽一發(fā)而動全身,效率低下
從企業(yè)應用的軟件架構發(fā)展看,近十幾年來,主要經(jīng)歷了從單體應用到SOA模式、再到微服務的發(fā)展過程。
在單體架構中,應用核心的商業(yè)邏輯以及由其定義的服務、對象和事件都封裝在不同的模塊中,這些模塊和組件整體打包和部署,高度依賴應用的語言和框架。單體應用的好處是項目初期構建非常快,但隨著時間的推移、代碼的不斷膨脹以及人員的更換,會導致研發(fā)效率急劇下降。團隊需要維持上百萬行代碼中的數(shù)以百計、千計的依賴關系,哪怕是很小的幾行需求或者一個Bug修復,都會導致意想不到的問題發(fā)生。
為了解決單體模式緊耦合、難以擴展的問題,出現(xiàn)了以服務為中心的SOA架構,將緊耦合的系統(tǒng)劃分成面向業(yè)務的、粗粒度、松耦合和無狀態(tài)的服務,服務之間通常通過企業(yè)服務總線(ESB)連接在一起。目前,絕大部分的企業(yè)IT架構是基于SOA模式的,但是從本質上講這種模式還是中心化的,ESB變成整個系統(tǒng)的核心組件甚至成為瓶頸,不能把企業(yè)應用帶到面向未來的云化方向。
微服務是從SOA演進而來,更倡導服務的細粒度、分布式、擴展性和治理能力。每個微服務定義為獨立、自包含和無外部依賴的應用程序服務,單個微服務可以獨自開發(fā)特性、修改bug和升級,服務間無耦合關系。
越來越多的企業(yè)認識到,在云時代要開發(fā)出Cloud Native(云原生應用),真正走向敏捷,微服務架構一定是首選。但同時微服務在運行和治理時帶來了更大的復雜性,比如大量微服務之間的調用鏈管理和依賴管理等,這些復雜性由什么技術和平臺承載呢?因此,由PaaS屏蔽復雜的資源分布和部署差異,向應用層提供統(tǒng)一的服務、微服務管理和運行框架就成為一種必然。
PaaS技術選擇碎片化,難以形成合力,形成新的煙囪系統(tǒng)
當意識到PaaS平臺的重要性后,企業(yè)中不同的部門近年來在這個領域加快了試點建設,但由于各部門立場不同,所做出的技術選擇往往不統(tǒng)一,缺少統(tǒng)一的規(guī)劃和章法。
比如,有些企業(yè)開發(fā)部門希望業(yè)務創(chuàng)新要快,減少對環(huán)境的等待時間,希望選擇像CloudFundry這樣的技術,以具備較好的開發(fā)流水線、多語言支持和多種服務接入能力;而運維部門則希望各種應用對IT資源和對部署的依賴應該盡量統(tǒng)一、盡量標準化,這樣整體運維(特別是跨數(shù)據(jù)中心和全球化運維)效率最好,所以他們傾向于選擇以開源架構技術為代表的Kuberentes、DockerCompose /Swam等……由此,在構建新的開發(fā)平臺解決業(yè)務敏捷的同時,又形成了新的煙囪系統(tǒng),不同的開發(fā)架構和不同的部署模式形成了制約敏捷、高效的新瓶頸。
統(tǒng)一PaaS驅動企業(yè)IT應用開發(fā)的變革
由此可見,企業(yè)的IT應用開發(fā)是一個系統(tǒng)性的問題,涉及到流程、方法、架構和組織等多個關鍵要素。
企業(yè)借助云計算走向敏捷的核心就是要引入PaaS平臺來實現(xiàn)“以應用為中心”的自動化和分布化,統(tǒng)一的PaaS不僅在技術與架構上能有效支撐服務化以及微服務開發(fā)和治理,還能在開發(fā)流程和組織協(xié)同上起到關鍵的使能作用。
PaaS層建設的基本原則必須以面向未來云原生應用(Cloud Native)架構的要求出發(fā),同時充分考慮對企業(yè)現(xiàn)有SOA架構服務的兼容和平滑演進,從應用視角提供統(tǒng)一的PaaS平臺層,解決應用的開發(fā)、部署和運行的管控與組織協(xié)同的一致性,從而實現(xiàn)開發(fā)敏捷,支持快速業(yè)務創(chuàng)新和快速客戶響應。要實現(xiàn)這樣的目標,我們認為PaaS的核心需要實現(xiàn)“3個統(tǒng)一”。
統(tǒng)一的研發(fā)流程自動化,構建企業(yè)級開發(fā)流水線,實現(xiàn)應用開發(fā)態(tài)的敏捷
打破傳統(tǒng)研發(fā)模式下開發(fā)與運維之間的壁壘,實現(xiàn)真正的DevOps,必須要有自動化工具的支撐。在開發(fā)態(tài)引入流水線技術,實現(xiàn)從代碼編寫到編譯打包、自動測試、部署、上線和升級等一系列活動全部自動化。流水線同時可以成為打通開發(fā)、測試和運維等不同部門之間的紐帶和橋梁,部門間在流水線自動化驅動下完成高效協(xié)作。因為每個企業(yè)開發(fā)工具和開發(fā)習慣都不一樣,所以PaaS開發(fā)流水線的核心是具備開放的生態(tài)接入能力和靈活的流程定制能力。
統(tǒng)一的資源編排調度自動化,“以應用為中心”驅動資源的編排調度,實現(xiàn)部署態(tài)的敏捷
通過PaaS的自動化技術實現(xiàn)開發(fā)、部署和運行態(tài)所有資源( 主機、網(wǎng)絡、OS/DB/中間件)申請和調度的自動化,實現(xiàn)一致的DTAP(Development、Test、Acceptance、Production)環(huán)境的自動化、服務化供應,開發(fā)人員聚焦核心業(yè)務實現(xiàn),隨時自助申請,隨時部署上線和升級,可節(jié)省40%以上非業(yè)務活動時間。同時,由PaaS對開發(fā)態(tài)和部署態(tài)的運行環(huán)境進行一致性管理,可以大大降低因此造成的業(yè)務故障。
部署態(tài)的資源編排調度的核心是根據(jù)應用的SLA要求,實現(xiàn)跨數(shù)據(jù)中心內和數(shù)據(jù)中心間的資源高效分配和動態(tài)調整。高效不僅體現(xiàn)在調度的速度也體現(xiàn)為整體資源利用的最優(yōu)化。
統(tǒng)一的微服務治理框架,大規(guī)模分布化的治理和自動化運維,實現(xiàn)運行態(tài)的敏捷
傳統(tǒng)單體應用微服務化后,一個大型服務通常會拆解成數(shù)十個微服務,形成一個分布式的應用。相比單體應用,分布式系統(tǒng)引入了治理的復雜性,比如微服務間如何相互發(fā)現(xiàn)、相互通信訪問,以及如何進行調用鏈的跟蹤和問題定位。PaaS在分布式治理層通過引入統(tǒng)一的微服務治理框架,可以實現(xiàn)不同語言和不同技術堆棧實現(xiàn)的微服務間相互發(fā)現(xiàn)、路由、調用鏈跟蹤和熔斷等復雜功能的屏蔽,開發(fā)者只需聚焦業(yè)務邏輯的開發(fā),無需關注分布式系統(tǒng)管理的復雜性,從而實現(xiàn)每個微服務團隊快速獨立開發(fā)和上線業(yè)務。PaaS微服務治理框架的另外一個核心是,要考慮對企業(yè)已有SOA架構的中間件服務的納管能力,企業(yè)在這個領域已經(jīng)積累的大量中間件服務不可能一夜之間都轉型到微服務架構,因此,如何合理地構建一個中間件云,把這些服務接入到PaaS平臺,最大限度地給開發(fā)者屏蔽實現(xiàn)上的差異是非常關鍵的。
通過以“ 3 個統(tǒng)一” 為核心特征的PaaS平臺,支撐IT應用的“開發(fā)態(tài)、部署態(tài)和運行態(tài)”的全自動化,這是敏捷的基礎,也是PaaS發(fā)展的方向和目標。
FusionStage PaaS平臺:勝任企業(yè)敏捷轉型的需求
華為作為全球領先的ICT解決方案供應商,既有企業(yè)業(yè)務、運營商業(yè)務,也有消費者業(yè)務,業(yè)務覆蓋170多個國家。華為自身的IT系統(tǒng)是極其復雜的,要面向全球客戶、供應商、合作伙伴和員工等提供IT服務,涵蓋60多個數(shù)據(jù)中心,超過1000種IT應用,業(yè)務流程高達上萬個,每年涉及的新增需求和變更超過幾萬起,研發(fā)投入資源巨大。

因此,PaaS平臺既是華為面向客戶提供的一塊業(yè)務,也是華為自身走向敏捷運營、敏捷IT應用開發(fā)的基本要求。華為FusionStage PaaS平臺正是基于這樣的背景下進行開發(fā)的,其核心是圍繞“統(tǒng)一的研發(fā)流程自動化、統(tǒng)一的應用資源編排調度、統(tǒng)一的分布式/微服務治理”來展開,以實現(xiàn)IT應用“研發(fā)態(tài)、部署態(tài)、運行態(tài)”的全流程自動化,支撐業(yè)務敏捷和運營敏捷。
FusionStage PaaS平臺正在幫助華為自身的IT系統(tǒng)從IT 1.0向IT 2.0跨越式演進,實現(xiàn)跨全球多個數(shù)據(jù)中心的IT全面云化。使IT應用可隨時隨地在華為全球8大區(qū)域的數(shù)據(jù)中心中進行部署和升級,實現(xiàn)平均每天數(shù)十次、全年累計幾千次的自動化部署上線,將IT應用的整體上線周期從原來的數(shù)周時間縮短到了天級,成功實現(xiàn)了企業(yè)IT的敏捷和高效。
華為會把FusionStage PaaS平臺部署到華為企業(yè)云、德國電信OTC等合作伙伴的公有云上,讓企業(yè)基于FusionStage PaaS平臺來開發(fā)IT應用。
FusionStage是通用的PaaS平臺,提供基礎的開發(fā)部署管理、服務運行治理能力和各種通用的IT公共服務。 這樣企業(yè)就可以更加專注于領域業(yè)務,基于FusionStage PaaS平臺快速開發(fā)行業(yè)專有的服務和應用,極大提升效率,實現(xiàn)IT敏捷轉型。
賈永利/文