北京2021年11月29日 /美通社/ -- 以下為亞馬(ma)遜云科技大中(zhong)華區產品部總經(jing)理顧凡撰寫的(de)觀點(dian)文(wen)章(zhang):
“新(xin)冠疫情讓一切‘長期(qi)規劃’不再有(you)效(xiao)” -- 這(zhe)個(ge)說(shuo)法正在得到越來越多(duo)的(de)認同。在不少(shao)人眼(yan)里,更(geng)為明智的(de)做法是放(fang)棄對“確定(ding)性”的(de)探索,并(bing)且接受“不確定(ding)性”是唯(wei)一的(de)“確定(ding)”。
“長期規劃”真的無效了嗎?對此我更傾向持有保留意見。自從人類步入快速發展的數字化時代,“可確定的未來”在很多時候確實已成為奢侈品,就如同新冠疫情絕不會是最后一只黑天鵝。但是,這并不意味著“長期規劃”無效了。相反,現在企業的“長期規劃”正在回歸更為基礎與核心的業務本質,即如何在變革常態中,保持業務競爭力與創新活力,讓企業具備應對變化的韌性。
事實上(shang),即使在去年(nian)商業(ye)活動最(zui)舉步維(wei)艱的(de)那段時間(jian),我們仍能看到許多身姿靈(ling)活的(de)企業(ye),快速適應了新的(de)環(huan)境,甚至發掘出新的(de)增長(chang)機遇。相信很多人和我一樣好(hao)奇(qi),這(zhe)些企業(ye)的(de)數字化基礎設施如(ru)何能在極(ji)短的(de)時間(jian)去適應可能與過去迥異的(de)業(ye)務需求。我們很快得到了答案(an) -- 從(cong)去年(nian)開始,“現(xian)代(dai)化應用”被(bei)越(yue)來(lai)越(yue)多地(di)提及。
這意味著,更(geng)多的企(qi)業意識到,現代(dai)化應用(yong)的敏捷(jie)性(xing)(xing)、通用(yong)性(xing)(xing)及擴容能力等優勢(shi),成(cheng)為企(qi)業立足長期發(fa)展的“必選項(xiang)”。當你(ni)不知道(dao)變化從(cong)何(he)而(er)來,也無法制定如同(tong)說明書一樣按部就班的發(fa)展計劃,此(ci)時構(gou)建(jian)與(yu)業務相匹配,且更(geng)為敏捷(jie)的現代(dai)化應用(yong)架構(gou),就成(cheng)了面對(dui)不確定性(xing)(xing)的最優解。
雖然有時(shi)候我(wo)們(men)會(hui)用(yong)(yong)微(wei)服務(wu)、容器化、Serverless這類技(ji)術名詞去描述現(xian)代化應用(yong)(yong),但必須強調的(de)是(shi),現(xian)代化應用(yong)(yong)以及實現(xian)過(guo)程并不(bu)是(shi)技(ji)術和(he)產品的(de)機(ji)械化堆(dui)砌。企(qi)業對(dui)現(xian)代化應用(yong)(yong)的(de)向(xiang)往并非(fei)是(shi)因為(wei)技(ji)術先進,而是(shi)為(wei)了適應業務(wu)需求、助(zhu)力業務(wu)拓展,以便能夠不(bu)斷(duan)發(fa)現(xian)新的(de)機(ji)會(hui),或是(shi)創造更好的(de)產品和(he)服務(wu)。
現代化應用:從業務中來,到業務中去
雖然現代(dai)(dai)化應用(yong)(yong)(yong)的(de)(de)價值來(lai)(lai)自(zi)一(yi)個長(chang)周(zhou)期內(nei)對企(qi)業業務(wu)(wu)(wu)支持的(de)(de)“總(zong)量(liang)”,但(dan)基(ji)于與眾多用(yong)(yong)(yong)戶(hu)(hu)的(de)(de)溝(gou)通(tong),我們(men)發(fa)現,現代(dai)(dai)化應用(yong)(yong)(yong)也同樣是(shi)他們(men)立足當下的(de)(de)現實(shi)需求。舉(ju)幾個有代(dai)(dai)表性的(de)(de)例子:有的(de)(de)用(yong)(yong)(yong)戶(hu)(hu)會希(xi)望更少關注基(ji)礎(chu)設施管理(li)而專(zhuan)注于業務(wu)(wu)(wu)本身;有用(yong)(yong)(yong)戶(hu)(hu)說希(xi)望軟件架(jia)構從(cong)反映(ying)企(qi)業組(zu)織架(jia)構轉(zhuan)變(bian)為反映(ying)業務(wu)(wu)(wu)邏(luo)(luo)輯(ji);還有用(yong)(yong)(yong)戶(hu)(hu)希(xi)望開發(fa)團隊花費寶(bao)貴精(jing)力(li)所編寫的(de)(de)每一(yi)行代(dai)(dai)碼都符合業務(wu)(wu)(wu)邏(luo)(luo)輯(ji)……總(zong)結起來(lai)(lai),企(qi)業用(yong)(yong)(yong)戶(hu)(hu)需要現代(dai)(dai)化應用(yong)(yong)(yong)的(de)(de)核心理(li)由之(zhi)一(yi),就是(shi)從(cong)設計、構建到(dao)管理(li)都與業務(wu)(wu)(wu)緊密相關。現代(dai)(dai)化應用(yong)(yong)(yong)一(yi)定是(shi)僅(jin)僅(jin)圍繞(rao)業務(wu)(wu)(wu)核心,正所謂“從(cong)業務(wu)(wu)(wu)中來(lai)(lai),到(dao)業務(wu)(wu)(wu)中去”。
至于業(ye)務(wu)如何從(cong)現代化應(ying)用(yong)中受益,相(xiang)信很多企業(ye)都(dou)有(you)自己(ji)的(de)理解和期待(dai)。在亞馬遜云(yun)科技(ji)眼中,現代化應(ying)用(yong)的(de)基本(ben)特征,或者說優(you)勢(shi),表現在以(yi)(yi)下(xia)幾點(dian):首先(xian)是(shi)敏捷(jie)性(xing),快速開發、快速應(ying)用(yong),并(bing)(bing)且能(neng)夠敏捷(jie)迭代;第二是(shi)可擴展性(xing),例如可擴展到數百萬量級(ji)的(de)用(yong)戶,確保足夠的(de)彈性(xing)以(yi)(yi)保障(zhang)業(ye)務(wu)拓(tuo)展;第三(san)是(shi)全球可用(yong),這對于正(zheng)在“出海”的(de)中國(guo)企業(ye)尤為重要;第四是(shi)毫秒級(ji)響應(ying)能(neng)力,并(bing)(bing)能(neng)夠處理PB甚至EB級(ji)別的(de)數據。
今天,無論是提供給用戶的現代化應用服務,還是自己作為一家公司走過的現代化應用歷程,我們所有迭代與創新都來自用戶及亞馬遜自身的業務需求。這些寶貴經驗,是亞馬遜云科技15年持續引領現代化應用的重要基石,正如亞馬遜CEO Andy Jassy所說:經驗沒有壓縮算法。我們所有的探索都(dou)不白費,每一步都(dou)是踏(ta)實積累。
1995年亞(ya)馬遜創立伊始,所(suo)有(you)的(de)邏輯(ji)只在一個(ge)單體(ti)應(ying)用里(li),也只有(you)一個(ge)數據(ju)庫。隨(sui)著業務(wu)的(de)拓展,到了2001年,亞(ya)馬遜進入(ru)了面向服務(wu)架(jia)構(SOA)階段,比(bi)如商品、訂(ding)單、服務(wu)等模塊都在那個(ge)時期形(xing)成。此后(hou),亞(ya)馬遜進入(ru)到了更多的(de)領域,產品迭代(dai)和客戶(hu)體(ti)驗(yan)迭代(dai)的(de)速度(du)越來越快,這些已經按照SOA拆分出(chu)來的(de)模塊,自己又會(hui)變成超大的(de)單體(ti)。所(suo)以2002年開(kai)始到2006年,亞(ya)馬遜正式啟動了微服務(wu)化架(jia)構。
為了支持新的應(ying)用架構(gou)方法(fa),亞馬(ma)遜打破職能層級,將開發(fa)團(tuan)隊(dui)重(zhong)組為多個(ge)小(xiao)型的自(zi)治團(tuan)隊(dui),規模小(xiao)到每(mei)個(ge)團(tuan)隊(dui)只能吃完兩個(ge)披薩。我們讓每(mei)個(ge)“雙比薩團(tuan)隊(dui)”集(ji)中開發(fa)一個(ge)特定的產品、服(fu)務或(huo)功能集(ji),給他們授(shou)權(quan),讓他們成為產品負責人,可以快速對所負責的產品做出(chu)決策。從那時起,亞馬(ma)遜不(bu)只是(shi)從技術,而是(shi)包括從組織架構(gou)、管理策略,建立了一整(zheng)套微服(fu)務體系,團(tuan)隊(dui)自(zi)己可以開發(fa)運營和迭代。
亞馬遜在構建高度可擴展基礎設施方面的成功,帶來了新的核心能力拓展,這才有了亞馬遜云科技在2006年成立。到2020年,亞馬遜已經有超過10萬個微服務,從起初每年部署幾十個功能,到現在可以每年部署幾百萬個功能。
過(guo)去15年里,我們(men)(men)一(yi)直在現代化應用領域持續投入與(yu)創新。與(yu)亞(ya)馬遜云(yun)科技“同齡”的Amazon Simple Queue Service (Amazon SQS),至今仍被許多客戶采用。2012年我們(men)(men)推(tui)出了(le)鍵/值和(he)文檔數據庫Amazon DynamoDB,這個可以隨著應用擴(kuo)展而幾乎無限擴(kuo)展的無服務(wu)器數據庫,目前(qian)每天可以處(chu)理超過(guo)10萬億(yi)個請求,在Amazon Prime Day期間一(yi)度達到了(le)每秒(miao)8920萬次的峰值。
2014年推出的(de)(de)(de)Serverless計(ji)算服務(wu)Amazon Lambda更(geng)是(shi)一個劃時代的(de)(de)(de)創(chuang)新(xin)(xin)。如果說我們90%的(de)(de)(de)創(chuang)新(xin)(xin)是(shi)基于(yu)客戶(hu)提出的(de)(de)(de)具體需求,那么Amazon Lambda就(jiu)屬于(yu)剩下的(de)(de)(de)10%,是(shi)我們根據客戶(hu)“只提出要實現(xian)什(shen)么目標(biao)”而(er)進行(xing)的(de)(de)(de)創(chuang)新(xin)(xin)。此后,我們又推出了適用于(yu)容器的(de)(de)(de)Serverless服務(wu)Amazon Fargate,和(he)高性能關系數據庫Amazon Aurora -- 包括(kuo)后來發布(bu)的(de)(de)(de)可在(zai)不到(dao)(dao)1秒的(de)(de)(de)時間內擴展至支持幾(ji)十萬(wan)個數據處理事務(wu)的(de)(de)(de)Amazon Aurora Serverless V2,從而(er)把客戶(hu)希(xi)望(wang)從基礎(chu)設施管理中(zhong)解(jie)放出來而(er)專注業務(wu)的(de)(de)(de)目標(biao)做到(dao)(dao)新(xin)(xin)的(de)(de)(de)極致(zhi)。
什么時機、選擇何種實現路徑,仍由業務“做主”
企業的現代化(hua)應用轉型,是(shi)否(fou)有一些可遵循(xun)的脈絡(luo)?基于過往的服務(wu)(wu)全球數十萬客戶的實踐經(jing)驗,我(wo)們總結了三個(ge)可選(xuan)路(lu)徑,分別是(shi):平移(Replatform)、重構(Refactor)和(he)構建共享服務(wu)(wu)平臺(tai)(Shared Services Platform) 。
在(zai)大多(duo)數(shu)情況下,這三(san)個路(lu)徑(jing)將共同組(zu)成一(yi)個現(xian)代化應用架構的完整生(sheng)命周期。因此(ci),企業(ye)用戶(hu)在(zai)進行現(xian)代化應用轉型時(shi)并非(fei)只取其一(yi)或遵守固定的順序。在(zai)什么時(shi)機(ji)、什么需求(qiu)場景,選擇哪種路(lu)徑(jing),最終是要由(you)企業(ye)特點和業(ye)務需求(qiu)來做主。
“平移”,通常是企業上云的第一步,即利用容器把本地數據中心的應用遷移到云上,快速實現現代化應用的架構、交付模式和運營模式。對用戶來說,平移的主要目的是把核心應用快速上云,利用云的彈性特點簡化基礎設施運營和降低維護成本。例如在本地使用了Oracle或者SQL Server,就可以快速將數據先搬到云上托管起來,暫時無需考慮數據拆分。容器化是平移的利器,在這一路徑中扮演著相當重要的角色。今天云上托管的容器有80%都運行在亞馬遜云上,因為我們在容器的產品和服務方面帶給用戶更靈活的選擇。而“重構”,是通過微服務拆分、數據重構以實現應用基于業務邏輯的重構,從而獲取數據驅動下的“敏捷”和創新力。重構過程中,微服務化是最重要的方法 -- 把業務邏輯和數據通(tong)過(guo)API向其它團隊公開(kai),創(chuang)建一(yi)個高(gao)度解耦的架(jia)構(gou)。微服務的開(kai)發(fa)團隊可以獨立迭(die)代、發(fa)布應用,極大提升(sheng)創(chuang)新速(su)度,同(tong)時最(zui)小化故障發(fa)生時的爆炸半徑。
重構(gou)階段往(wang)往(wang)是利用(yong)新技(ji)術的最佳時機。比(bi)如,在此階段企業可以優先考慮使用(yong)Serverless,讓“企業寫的每行代碼都(dou)是應用(yong)邏(luo)輯(ji)”這一(yi)愿景(jing)成為現實(shi)。而(er)在亞馬遜云科(ke)技(ji),Serverless并不僅僅是無(wu)服(fu)務器計算(suan)Lambda,而(er)是提供給用(yong)戶(hu)一(yi)整套Serverless服(fu)務,來幫助用(yong)戶(hu)去開發(fa)基于(yu)無(wu)服(fu)務器的端(duan)到端(duan)的核心(xin)應用(yong)。
從三年前開始,Comcast旗下的領先視頻廣告技術公司FreeWheel開始將多個本地數據中心逐步遷移到亞馬遜云科技全球的基礎設施。FreeWheel通過采用Amazon Elastic Kubernetes Service(Amazon EKS)容器編排服務,實現了在現有架構不變情況下的應用遷移,使系統獲得了資源彈性;使用Amazon Lambda無服務器計算構建高度可用的微服務,為各種規模的應用程序提供支持,使得系統更加易于開發和部署。一系列云上創新的舉措,讓FreeWheel能夠在超級(ji)碗、世界杯等10多個全(quan)球(qiu)收視率最高(gao)的(de)(de)(de)賽(sai)事活動期間(jian)成(cheng)功地(di)支持(chi)所服務的(de)(de)(de)頂級媒體,順利應對(dui)了(le)2秒內激(ji)增100倍的(de)(de)(de)超大流量(liang),獲得了(le)運維效率的(de)(de)(de)巨大提高(gao),節(jie)省了(le)超過50%的(de)(de)(de)資源使用成(cheng)本。
“構建共享服務平臺”則是為了實現現代化應用的規模化部署。當企業的微服務達到一定規(gui)模,可能會面臨(lin)沒有“專門(men)針對(dui)微服務應用(yong)快速(su)部(bu)署”運營平臺的挑戰。構建(jian)共享服務平臺,就(jiu)是讓企業利用(yong)共享服務平臺的標準化(hua)、自動化(hua)的運營能力,加速(su)現代化(hua)應用(yong)開(kai)發的規(gui)模化(hua),幫助用(yong)戶專注于(yu)產(chan)品(pin)開(kai)發,提高(gao)生產(chan)力。
如何既能讓每個微服務團隊敏捷高效,又能讓他們的代碼部署管理更有一致性?亞馬遜云科技在去年發布的Amazon Proton,是第一個針對容器和無服務器應用程序部署的完全托管服務。借助Amazon Proton,運營平臺團隊可以提供統一管理的無服務器和容器的模板,使成百上千的應用開發團隊不必自己管理和維護這些基礎架構,從而只需專注于業務邏輯代碼的開發。
企業只需按任意順序達成五個元素
無論企業如何實踐以上三個路徑,最終目標都是為了構建“有效”的現代化應用,使其能夠真實有效地提升企業未來的敏捷性和創新速度。為此,企業需要做到:讓自身的現代化應用按任意順序去達成五個元素,其中既包括設計和構建方式,也包括管理模式的轉型。
首(shou)先是架(jia)構微服(fu)務化(hua)。微服(fu)務顛覆了單(dan)體(ti)應用臃(yong)腫、添加(jia)改(gai)進功(gong)能復雜等頑疾(ji),應用程(cheng)序由獨立組件(jian)組成(cheng),每個(ge)組件(jian)作為一(yi)個(ge)服(fu)務運行(xing),實現(xian)一(yi)個(ge)特定業(ye)務功(gong)能,按照需求進行(xing)靈活更新(xin)、部署和擴展(zhan)。在當下,微服(fu)務已經(jing)成(cheng)為現(xian)代(dai)化(hua)應用“靈魂”般(ban)的存在。
第二是數(shu)據(ju)(ju)(ju)庫(ku)專門(men)化(hua)。應(ying)用(yong)現代化(hua)之后,數(shu)據(ju)(ju)(ju)和應(ying)用(yong)也可以(yi)解耦了。數(shu)據(ju)(ju)(ju)庫(ku)和微服(fu)(fu)務(wu)形成一一映射,可以(yi)帶來多個好處:微服(fu)(fu)務(wu)數(shu)據(ju)(ju)(ju)量(liang)增長時只需(xu)變動(dong)所對應(ying)的數(shu)據(ju)(ju)(ju)庫(ku),獲(huo)得更好的擴展性;可避免單體數(shu)據(ju)(ju)(ju)庫(ku)故障影響整個應(ying)用(yong),容錯性更強(qiang);微服(fu)(fu)務(wu)可以(yi)自由選(xuan)擇最適合業務(wu)需(xu)求的數(shu)據(ju)(ju)(ju)庫(ku),靈活度(du)更高。
第三是(shi)(shi)自(zi)動化(hua)的軟件(jian)(jian)交付通道(dao)。當單個(ge)團隊獨立交付軟件(jian)(jian),尤其是(shi)(shi)在手動交付時(shi),彼此(ci)的協調性(xing)和(he)(he)質量(liang)一致(zhi)性(xing)就成(cheng)為(wei)(wei)挑戰(zhan)。對(dui)此(ci),我們(men)采用的解決方案是(shi)(shi)標(biao)準化(hua)和(he)(he)自(zi)動化(hua)雙管(guan)齊下。首(shou)先(xian),將軟件(jian)(jian)交付流程定義為(wei)(wei)最佳實踐模板,各個(ge)團隊都(dou)用模板配置基礎設(she)施資源(yuan),確保(bao)正確起步(bu);其次,通過(guo)自(zi)動發布通道(dao),包括持續集成(cheng)和(he)(he)持續部署 (CI/CD),可以快速(su)測試和(he)(he)發布大(da)量(liang)代碼,最大(da)限度(du)地減少錯誤。
第四是基礎(chu)(chu)設(she)施無(wu)服務(wu)(wu)器化。當我們(men)說“無(wu)服務(wu)(wu)器”時,我們(men)指(zhi)的(de)(de)(de)是那些不需要基礎(chu)(chu)設(she)施供應和擴展(zhan),具有(you)內置的(de)(de)(de)可用(yong)(yong)(yong)性(xing)和安(an)全性(xing),并使用(yong)(yong)(yong)付費價值(zhi)計(ji)費模型(xing)的(de)(de)(de)服務(wu)(wu)。無(wu)服務(wu)(wu)器能夠讓(rang)團隊從那些與(yu)業(ye)務(wu)(wu)沒有(you)直接相關性(xing)的(de)(de)(de)基礎(chu)(chu)設(she)施維護工(gong)作中解放(fang)出來(lai),專(zhuan)注于創造更(geng)有(you)價值(zhi)的(de)(de)(de)用(yong)(yong)(yong)戶體(ti)驗(yan)和創新產品。
最后是安(an)全(quan)特性(xing)集成(cheng)化(hua)(hua)。在(zai)現代化(hua)(hua)應用中,安(an)全(quan)功(gong)能(neng)內置于每(mei)個組件,隨版本變化(hua)(hua)自(zi)動測試和(he)部署。這也意(yi)味著(zhu),安(an)全(quan)不再只是安(an)全(quan)團隊的責任,而是深入集成(cheng)到開發生命(ming)周期(qi)的每(mei)個階段,工程、運營和(he)合規團隊都要發揮作用。
寫在最后
以上,是亞馬遜云科技對于現代化應用的一些觀點及經驗總結。我認為現在與大家深入探討現代化應用恰逢其時 -- 企業對基礎設施敏捷性和彈性的需求達到前所未有的高度,而作為連續11年被Gartner評為領導者的云服務供應商,亞馬遜云科技所帶來的一整套現代化應用構建方案及方法論,也的確值得被關注和思考。因為所有的這些探討,都是基于無數實踐的檢驗并被證明有效。
現(xian)代化應用轉型將是一(yi)個長期持(chi)續(xu)的(de)過程。在這(zhe)一(yi)旅途(tu)中,亞(ya)馬(ma)遜云科(ke)技也期待聆聽所(suo)有客(ke)戶(hu)的(de)需(xu)求,并利用我們(men)在云服務領域卓越的(de)廣(guang)度、深度和(he)創(chuang)新速度,為(wei)每(mei)個客(ke)戶(hu)構建可支(zhi)持(chi)未來長期業(ye)務創(chuang)新的(de)現(xian)代化應用架構。