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

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