北京2021年11月29日 /美通社/ -- 以下為亞馬遜云科技大中華區(qū)產(chǎn)品部總經(jīng)理顧凡撰寫的觀點(diǎn)文章:
“新冠疫情讓一切‘長期規(guī)劃’不再有效” -- 這個說法正在得到越來越多的認(rèn)同。在不少人眼里,更為明智的做法是放棄對“確定性”的探索,并且接受“不確定性”是唯一的“確定”。
“長期規(guī)劃”真的無效了嗎?對此我更傾向持有保留意見。自從人類步入快速發(fā)展的數(shù)字化時代,“可確定的未來”在很多時候確實(shí)已成為奢侈品,就如同新冠疫情絕不會是最后一只黑天鵝。但是,這并不意味著“長期規(guī)劃”無效了。相反,現(xiàn)在企業(yè)的“長期規(guī)劃”正在回歸更為基礎(chǔ)與核心的業(yè)務(wù)本質(zhì),即如何在變革常態(tài)中,保持業(yè)務(wù)競爭力與創(chuàng)新活力,讓企業(yè)具備應(yīng)對變化的韌性。
事實(shí)上,即使在去年商業(yè)活動最舉步維艱的那段時間,我們?nèi)阅芸吹皆S多身姿靈活的企業(yè),快速適應(yīng)了新的環(huán)境,甚至發(fā)掘出新的增長機(jī)遇。相信很多人和我一樣好奇,這些企業(yè)的數(shù)字化基礎(chǔ)設(shè)施如何能在極短的時間去適應(yīng)可能與過去迥異的業(yè)務(wù)需求。我們很快得到了答案 -- 從去年開始,“現(xiàn)代化應(yīng)用”被越來越多地提及。
這意味著,更多的企業(yè)意識到,現(xiàn)代化應(yīng)用的敏捷性、通用性及擴(kuò)容能力等優(yōu)勢,成為企業(yè)立足長期發(fā)展的“必選項(xiàng)”。當(dāng)你不知道變化從何而來,也無法制定如同說明書一樣按部就班的發(fā)展計劃,此時構(gòu)建與業(yè)務(wù)相匹配,且更為敏捷的現(xiàn)代化應(yīng)用架構(gòu),就成了面對不確定性的最優(yōu)解。
雖然有時候我們會用微服務(wù)、容器化、Serverless這類技術(shù)名詞去描述現(xiàn)代化應(yīng)用,但必須強(qiáng)調(diào)的是,現(xiàn)代化應(yīng)用以及實(shí)現(xiàn)過程并不是技術(shù)和產(chǎn)品的機(jī)械化堆砌。企業(yè)對現(xiàn)代化應(yīng)用的向往并非是因?yàn)榧夹g(shù)先進(jìn),而是為了適應(yīng)業(yè)務(wù)需求、助力業(yè)務(wù)拓展,以便能夠不斷發(fā)現(xiàn)新的機(jī)會,或是創(chuàng)造更好的產(chǎn)品和服務(wù)。
現(xiàn)代化應(yīng)用:從業(yè)務(wù)中來,到業(yè)務(wù)中去
雖然現(xiàn)代化應(yīng)用的價值來自一個長周期內(nèi)對企業(yè)業(yè)務(wù)支持的“總量”,但基于與眾多用戶的溝通,我們發(fā)現(xiàn),現(xiàn)代化應(yīng)用也同樣是他們立足當(dāng)下的現(xiàn)實(shí)需求。舉幾個有代表性的例子:有的用戶會希望更少關(guān)注基礎(chǔ)設(shè)施管理而專注于業(yè)務(wù)本身;有用戶說希望軟件架構(gòu)從反映企業(yè)組織架構(gòu)轉(zhuǎn)變?yōu)榉从硺I(yè)務(wù)邏輯;還有用戶希望開發(fā)團(tuán)隊(duì)花費(fèi)寶貴精力所編寫的每一行代碼都符合業(yè)務(wù)邏輯……總結(jié)起來,企業(yè)用戶需要現(xiàn)代化應(yīng)用的核心理由之一,就是從設(shè)計、構(gòu)建到管理都與業(yè)務(wù)緊密相關(guān)?,F(xiàn)代化應(yīng)用一定是僅僅圍繞業(yè)務(wù)核心,正所謂“從業(yè)務(wù)中來,到業(yè)務(wù)中去”。
至于業(yè)務(wù)如何從現(xiàn)代化應(yīng)用中受益,相信很多企業(yè)都有自己的理解和期待。在亞馬遜云科技眼中,現(xiàn)代化應(yīng)用的基本特征,或者說優(yōu)勢,表現(xiàn)在以下幾點(diǎn):首先是敏捷性,快速開發(fā)、快速應(yīng)用,并且能夠敏捷迭代;第二是可擴(kuò)展性,例如可擴(kuò)展到數(shù)百萬量級的用戶,確保足夠的彈性以保障業(yè)務(wù)拓展;第三是全球可用,這對于正在“出?!钡闹袊髽I(yè)尤為重要;第四是毫秒級響應(yīng)能力,并能夠處理PB甚至EB級別的數(shù)據(jù)。
今天,無論是提供給用戶的現(xiàn)代化應(yīng)用服務(wù),還是自己作為一家公司走過的現(xiàn)代化應(yīng)用歷程,我們所有迭代與創(chuàng)新都來自用戶及亞馬遜自身的業(yè)務(wù)需求。這些寶貴經(jīng)驗(yàn),是亞馬遜云科技15年持續(xù)引領(lǐng)現(xiàn)代化應(yīng)用的重要基石,正如亞馬遜CEO Andy Jassy所說:經(jīng)驗(yàn)沒有壓縮算法。我們所有的探索都不白費(fèi),每一步都是踏實(shí)積累。
1995年亞馬遜創(chuàng)立伊始,所有的邏輯只在一個單體應(yīng)用里,也只有一個數(shù)據(jù)庫。隨著業(yè)務(wù)的拓展,到了2001年,亞馬遜進(jìn)入了面向服務(wù)架構(gòu)(SOA)階段,比如商品、訂單、服務(wù)等模塊都在那個時期形成。此后,亞馬遜進(jìn)入到了更多的領(lǐng)域,產(chǎn)品迭代和客戶體驗(yàn)迭代的速度越來越快,這些已經(jīng)按照SOA拆分出來的模塊,自己又會變成超大的單體。所以2002年開始到2006年,亞馬遜正式啟動了微服務(wù)化架構(gòu)。
為了支持新的應(yīng)用架構(gòu)方法,亞馬遜打破職能層級,將開發(fā)團(tuán)隊(duì)重組為多個小型的自治團(tuán)隊(duì),規(guī)模小到每個團(tuán)隊(duì)只能吃完兩個披薩。我們讓每個“雙比薩團(tuán)隊(duì)”集中開發(fā)一個特定的產(chǎn)品、服務(wù)或功能集,給他們授權(quán),讓他們成為產(chǎn)品負(fù)責(zé)人,可以快速對所負(fù)責(zé)的產(chǎn)品做出決策。從那時起,亞馬遜不只是從技術(shù),而是包括從組織架構(gòu)、管理策略,建立了一整套微服務(wù)體系,團(tuán)隊(duì)自己可以開發(fā)運(yùn)營和迭代。
亞馬遜在構(gòu)建高度可擴(kuò)展基礎(chǔ)設(shè)施方面的成功,帶來了新的核心能力拓展,這才有了亞馬遜云科技在2006年成立。到2020年,亞馬遜已經(jīng)有超過10萬個微服務(wù),從起初每年部署幾十個功能,到現(xiàn)在可以每年部署幾百萬個功能。
過去15年里,我們一直在現(xiàn)代化應(yīng)用領(lǐng)域持續(xù)投入與創(chuàng)新。與亞馬遜云科技“同齡”的Amazon Simple Queue Service (Amazon SQS),至今仍被許多客戶采用。2012年我們推出了鍵/值和文檔數(shù)據(jù)庫Amazon DynamoDB,這個可以隨著應(yīng)用擴(kuò)展而幾乎無限擴(kuò)展的無服務(wù)器數(shù)據(jù)庫,目前每天可以處理超過10萬億個請求,在Amazon Prime Day期間一度達(dá)到了每秒8920萬次的峰值。
2014年推出的Serverless計算服務(wù)Amazon Lambda更是一個劃時代的創(chuàng)新。如果說我們90%的創(chuàng)新是基于客戶提出的具體需求,那么Amazon Lambda就屬于剩下的10%,是我們根據(jù)客戶“只提出要實(shí)現(xiàn)什么目標(biāo)”而進(jìn)行的創(chuàng)新。此后,我們又推出了適用于容器的Serverless服務(wù)Amazon Fargate,和高性能關(guān)系數(shù)據(jù)庫Amazon Aurora -- 包括后來發(fā)布的可在不到1秒的時間內(nèi)擴(kuò)展至支持幾十萬個數(shù)據(jù)處理事務(wù)的Amazon Aurora Serverless V2,從而把客戶希望從基礎(chǔ)設(shè)施管理中解放出來而專注業(yè)務(wù)的目標(biāo)做到新的極致。
什么時機(jī)、選擇何種實(shí)現(xiàn)路徑,仍由業(yè)務(wù)“做主”
企業(yè)的現(xiàn)代化應(yīng)用轉(zhuǎn)型,是否有一些可遵循的脈絡(luò)?基于過往的服務(wù)全球數(shù)十萬客戶的實(shí)踐經(jīng)驗(yàn),我們總結(jié)了三個可選路徑,分別是:平移(Replatform)、重構(gòu)(Refactor)和構(gòu)建共享服務(wù)平臺(Shared Services Platform) 。
在大多數(shù)情況下,這三個路徑將共同組成一個現(xiàn)代化應(yīng)用架構(gòu)的完整生命周期。因此,企業(yè)用戶在進(jìn)行現(xiàn)代化應(yīng)用轉(zhuǎn)型時并非只取其一或遵守固定的順序。在什么時機(jī)、什么需求場景,選擇哪種路徑,最終是要由企業(yè)特點(diǎn)和業(yè)務(wù)需求來做主。
“平移”,通常是企業(yè)上云的第一步,即利用容器把本地數(shù)據(jù)中心的應(yīng)用遷移到云上,快速實(shí)現(xiàn)現(xiàn)代化應(yīng)用的架構(gòu)、交付模式和運(yùn)營模式。對用戶來說,平移的主要目的是把核心應(yīng)用快速上云,利用云的彈性特點(diǎn)簡化基礎(chǔ)設(shè)施運(yùn)營和降低維護(hù)成本。例如在本地使用了Oracle或者SQL Server,就可以快速將數(shù)據(jù)先搬到云上托管起來,暫時無需考慮數(shù)據(jù)拆分。容器化是平移的利器,在這一路徑中扮演著相當(dāng)重要的角色。今天云上托管的容器有80%都運(yùn)行在亞馬遜云上,因?yàn)槲覀冊谌萜鞯漠a(chǎn)品和服務(wù)方面帶給用戶更靈活的選擇。而“重構(gòu)”,是通過微服務(wù)拆分、數(shù)據(jù)重構(gòu)以實(shí)現(xiàn)應(yīng)用基于業(yè)務(wù)邏輯的重構(gòu),從而獲取數(shù)據(jù)驅(qū)動下的“敏捷”和創(chuàng)新力。重構(gòu)過程中,微服務(wù)化是最重要的方法 -- 把業(yè)務(wù)邏輯和數(shù)據(jù)通過API向其它團(tuán)隊(duì)公開,創(chuàng)建一個高度解耦的架構(gòu)。微服務(wù)的開發(fā)團(tuán)隊(duì)可以獨(dú)立迭代、發(fā)布應(yīng)用,極大提升創(chuàng)新速度,同時最小化故障發(fā)生時的爆炸半徑。
重構(gòu)階段往往是利用新技術(shù)的最佳時機(jī)。比如,在此階段企業(yè)可以優(yōu)先考慮使用Serverless,讓“企業(yè)寫的每行代碼都是應(yīng)用邏輯”這一愿景成為現(xiàn)實(shí)。而在亞馬遜云科技,Serverless并不僅僅是無服務(wù)器計算Lambda,而是提供給用戶一整套Serverless服務(wù),來幫助用戶去開發(fā)基于無服務(wù)器的端到端的核心應(yīng)用。
從三年前開始,Comcast旗下的領(lǐng)先視頻廣告技術(shù)公司FreeWheel開始將多個本地數(shù)據(jù)中心逐步遷移到亞馬遜云科技全球的基礎(chǔ)設(shè)施。FreeWheel通過采用Amazon Elastic Kubernetes Service(Amazon EKS)容器編排服務(wù),實(shí)現(xiàn)了在現(xiàn)有架構(gòu)不變情況下的應(yīng)用遷移,使系統(tǒng)獲得了資源彈性;使用Amazon Lambda無服務(wù)器計算構(gòu)建高度可用的微服務(wù),為各種規(guī)模的應(yīng)用程序提供支持,使得系統(tǒng)更加易于開發(fā)和部署。一系列云上創(chuàng)新的舉措,讓FreeWheel能夠在超級碗、世界杯等10多個全球收視率最高的賽事活動期間成功地支持所服務(wù)的頂級媒體,順利應(yīng)對了2秒內(nèi)激增100倍的超大流量,獲得了運(yùn)維效率的巨大提高,節(jié)省了超過50%的資源使用成本。
“構(gòu)建共享服務(wù)平臺”則是為了實(shí)現(xiàn)現(xiàn)代化應(yīng)用的規(guī)?;渴?/b>。當(dāng)企業(yè)的微服務(wù)達(dá)到一定規(guī)模,可能會面臨沒有“專門針對微服務(wù)應(yīng)用快速部署”運(yùn)營平臺的挑戰(zhàn)。構(gòu)建共享服務(wù)平臺,就是讓企業(yè)利用共享服務(wù)平臺的標(biāo)準(zhǔn)化、自動化的運(yùn)營能力,加速現(xiàn)代化應(yīng)用開發(fā)的規(guī)?;?,幫助用戶專注于產(chǎn)品開發(fā),提高生產(chǎn)力。
如何既能讓每個微服務(wù)團(tuán)隊(duì)敏捷高效,又能讓他們的代碼部署管理更有一致性?亞馬遜云科技在去年發(fā)布的Amazon Proton,是第一個針對容器和無服務(wù)器應(yīng)用程序部署的完全托管服務(wù)。借助Amazon Proton,運(yùn)營平臺團(tuán)隊(duì)可以提供統(tǒng)一管理的無服務(wù)器和容器的模板,使成百上千的應(yīng)用開發(fā)團(tuán)隊(duì)不必自己管理和維護(hù)這些基礎(chǔ)架構(gòu),從而只需專注于業(yè)務(wù)邏輯代碼的開發(fā)。
企業(yè)只需按任意順序達(dá)成五個元素
無論企業(yè)如何實(shí)踐以上三個路徑,最終目標(biāo)都是為了構(gòu)建“有效”的現(xiàn)代化應(yīng)用,使其能夠真實(shí)有效地提升企業(yè)未來的敏捷性和創(chuàng)新速度。為此,企業(yè)需要做到:讓自身的現(xiàn)代化應(yīng)用按任意順序去達(dá)成五個元素,其中既包括設(shè)計和構(gòu)建方式,也包括管理模式的轉(zhuǎn)型。
首先是架構(gòu)微服務(wù)化。微服務(wù)顛覆了單體應(yīng)用臃腫、添加改進(jìn)功能復(fù)雜等頑疾,應(yīng)用程序由獨(dú)立組件組成,每個組件作為一個服務(wù)運(yùn)行,實(shí)現(xiàn)一個特定業(yè)務(wù)功能,按照需求進(jìn)行靈活更新、部署和擴(kuò)展。在當(dāng)下,微服務(wù)已經(jīng)成為現(xiàn)代化應(yīng)用“靈魂”般的存在。
第二是數(shù)據(jù)庫專門化。應(yīng)用現(xiàn)代化之后,數(shù)據(jù)和應(yīng)用也可以解耦了。數(shù)據(jù)庫和微服務(wù)形成一一映射,可以帶來多個好處:微服務(wù)數(shù)據(jù)量增長時只需變動所對應(yīng)的數(shù)據(jù)庫,獲得更好的擴(kuò)展性;可避免單體數(shù)據(jù)庫故障影響整個應(yīng)用,容錯性更強(qiáng);微服務(wù)可以自由選擇最適合業(yè)務(wù)需求的數(shù)據(jù)庫,靈活度更高。
第三是自動化的軟件交付通道。當(dāng)單個團(tuán)隊(duì)獨(dú)立交付軟件,尤其是在手動交付時,彼此的協(xié)調(diào)性和質(zhì)量一致性就成為挑戰(zhàn)。對此,我們采用的解決方案是標(biāo)準(zhǔn)化和自動化雙管齊下。首先,將軟件交付流程定義為最佳實(shí)踐模板,各個團(tuán)隊(duì)都用模板配置基礎(chǔ)設(shè)施資源,確保正確起步;其次,通過自動發(fā)布通道,包括持續(xù)集成和持續(xù)部署 (CI/CD),可以快速測試和發(fā)布大量代碼,最大限度地減少錯誤。
第四是基礎(chǔ)設(shè)施無服務(wù)器化。當(dāng)我們說“無服務(wù)器”時,我們指的是那些不需要基礎(chǔ)設(shè)施供應(yīng)和擴(kuò)展,具有內(nèi)置的可用性和安全性,并使用付費(fèi)價值計費(fèi)模型的服務(wù)。無服務(wù)器能夠讓團(tuán)隊(duì)從那些與業(yè)務(wù)沒有直接相關(guān)性的基礎(chǔ)設(shè)施維護(hù)工作中解放出來,專注于創(chuàng)造更有價值的用戶體驗(yàn)和創(chuàng)新產(chǎn)品。
最后是安全特性集成化。在現(xiàn)代化應(yīng)用中,安全功能內(nèi)置于每個組件,隨版本變化自動測試和部署。這也意味著,安全不再只是安全團(tuán)隊(duì)的責(zé)任,而是深入集成到開發(fā)生命周期的每個階段,工程、運(yùn)營和合規(guī)團(tuán)隊(duì)都要發(fā)揮作用。
寫在最后
以上,是亞馬遜云科技對于現(xiàn)代化應(yīng)用的一些觀點(diǎn)及經(jīng)驗(yàn)總結(jié)。我認(rèn)為現(xiàn)在與大家深入探討現(xiàn)代化應(yīng)用恰逢其時 -- 企業(yè)對基礎(chǔ)設(shè)施敏捷性和彈性的需求達(dá)到前所未有的高度,而作為連續(xù)11年被Gartner評為領(lǐng)導(dǎo)者的云服務(wù)供應(yīng)商,亞馬遜云科技所帶來的一整套現(xiàn)代化應(yīng)用構(gòu)建方案及方法論,也的確值得被關(guān)注和思考。因?yàn)樗械倪@些探討,都是基于無數(shù)實(shí)踐的檢驗(yàn)并被證明有效。
現(xiàn)代化應(yīng)用轉(zhuǎn)型將是一個長期持續(xù)的過程。在這一旅途中,亞馬遜云科技也期待聆聽所有客戶的需求,并利用我們在云服務(wù)領(lǐng)域卓越的廣度、深度和創(chuàng)新速度,為每個客戶構(gòu)建可支持未來長期業(yè)務(wù)創(chuàng)新的現(xiàn)代化應(yīng)用架構(gòu)。