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