王永
新冠疫情為企業(yè)的發(fā)展帶來了更多的不確定性,而敏捷正在成為應(yīng)對這一挑戰(zhàn)的重要手段。
在IDC發(fā)布的《2021年中國云計算市場十大預(yù)測》中,為了獲得業(yè)務(wù)敏捷性,企業(yè)將致力于通過使用云原生開發(fā)和部署服務(wù),并預(yù)計在2023年前實現(xiàn)30%的現(xiàn)有應(yīng)用的現(xiàn)代化。
現(xiàn)代化應(yīng)用是一種彈性的、支持多云的微服務(wù)架構(gòu),由虛擬機、容器和無服務(wù)器功能的協(xié)調(diào)發(fā)布組成,能快速響應(yīng)變化,且快速交付使用。顯然,從技術(shù)的邏輯和特性來看,現(xiàn)代化應(yīng)用更符合企業(yè)時下對于敏捷性的剛需。
事實上,隨著企業(yè)轉(zhuǎn)型進入“深水區(qū)”,他們對于自身的業(yè)務(wù)與技術(shù)架構(gòu)之間也在尋找一個“平衡點”:更專注于業(yè)務(wù)的擴展,而不是基礎(chǔ)設(shè)施的管理;應(yīng)用架構(gòu)反映的是業(yè)務(wù)邏輯,而不是企業(yè)的組織架構(gòu);開發(fā)團隊編寫的每一行代碼要與業(yè)務(wù)邏輯緊密相連……
“企業(yè)想要保持業(yè)務(wù)的連續(xù)和穩(wěn)定,必須要具備一定的預(yù)見性,例如,應(yīng)用的可擴展、毫秒級響應(yīng)以及處理PB級的數(shù)據(jù)能力?!?亞馬遜云科技大中華區(qū)產(chǎn)品部總經(jīng)理顧凡在接受筆者的采訪時表示,亞馬遜自己就是一家走過現(xiàn)代化應(yīng)用歷程的企業(yè)——從1995年的單一應(yīng)用和數(shù)據(jù)庫,到2001年亞馬遜進入面向服務(wù)的架構(gòu)(SOA),再到2002年至2006年期間,亞馬遜啟動全新的微服務(wù)架構(gòu),同時實現(xiàn)“雙披薩團隊”。截止到2020年,亞馬遜已經(jīng)有超過10萬個微服務(wù)。
與此同時,過去15年的時間,亞馬遜云科技也一直在持續(xù)不斷地突破現(xiàn)代化應(yīng)用技術(shù)——2014年推出Serverless服務(wù)Amazon Lambda,讓企業(yè)將更多精力集中在業(yè)務(wù)層面。
2017年,亞馬遜云科技繼續(xù)在容器領(lǐng)域推出適用于容器serverless服務(wù)的Amazon Fargate,實現(xiàn)整個集群的管理和擴展。
2018年發(fā)布Amazon Aurora,可以將生產(chǎn)數(shù)據(jù)庫放到Aurora Serverless V2可以在幾分之一秒之內(nèi)快速地擴展到數(shù)十萬個事務(wù)的處理。
除此之外,Amazon EKS Anywhere和Amazon ECS Anywhere的推出也是幫助企業(yè)構(gòu)建現(xiàn)代化應(yīng)用的重要服務(wù)。其中,Amazon EKS Anywher可以幫助客戶在本地部署和使用跟在亞馬遜云科技上使用EKS一致的Kubernetes。而Amazon ECS Anywhere可以幫助客戶直接把在亞馬遜云科技上的ECS集群衍生到客戶本地。
“相較于之前單體應(yīng)用每個月一次的應(yīng)用更新,亞馬遜現(xiàn)在保持著每天15000次的頻率?!鳖櫡脖硎?,當(dāng)一家公司微服務(wù)開始進入到規(guī)?;?,自然而然需要考慮到一個關(guān)鍵詞——自動化工具,用于支持公司大規(guī)模的走向現(xiàn)代化應(yīng)用。
不過對于企業(yè)來說,無論是實現(xiàn)敏捷開發(fā)、資源彈性伸縮,還是實現(xiàn)業(yè)務(wù)靈活響應(yīng)和自動化運維,都不是一蹴而就的,他們更希望有一條“脈絡(luò)可循”的方案,來助力于自身的現(xiàn)代化應(yīng)用轉(zhuǎn)型。
“結(jié)合亞馬遜云科技客戶的需求來看,企業(yè)的現(xiàn)代化應(yīng)用轉(zhuǎn)型策略大致可從三個方面著手:Replatform平移、Refactor重構(gòu)以及Shared Services Platform構(gòu)建共享服務(wù)平臺。”顧凡表示,從平移的角度來看,客戶需要根據(jù)自身的狀態(tài)選擇最適合的應(yīng)用。例如,將核心應(yīng)用快速上云、降低基礎(chǔ)設(shè)施的運維成本等。通過容器快速打包現(xiàn)有數(shù)據(jù)中心里的應(yīng)用,快速遷移到云上進行托管。目前80%的云上托管容器都在亞馬遜云科技上運行。
另一方面,Refactor重構(gòu)更強調(diào)的是,在不同的時間和場景針對不同的應(yīng)用去選擇最適合的策略。例如,根據(jù)不同的微服務(wù)功能做邏輯和數(shù)據(jù)的切分,此時微服務(wù)里功能的不同,它的數(shù)據(jù)類型也會有所區(qū)別,數(shù)據(jù)訪問的特點會不一樣。客戶可以基于需求的不同,選擇最適合自己的策略。
因此,重構(gòu)不光是對應(yīng)用邏輯的拆分,同樣適用于數(shù)據(jù)和業(yè)務(wù)邏輯。換句話說,不為了微服務(wù)技術(shù)的先進性去做微服務(wù)化,更重要的是本身的應(yīng)用會驅(qū)動你去考慮微服務(wù)化。
比較鮮明的例子,就是來自于亞馬遜自身。在2020年亞馬遜有一半的新應(yīng)用都在采用Amazon Lambda,Amazon Lambda的出現(xiàn)帶給亞馬遜每一個功能團隊一個新的問題——當(dāng)我們重構(gòu)業(yè)務(wù)、數(shù)據(jù)時,要在什么樣的場景下使用無服務(wù)模式,也是否試用Serverless?
這里需要強調(diào)的一點是,很多時候大家都誤認為Serverless就是無服務(wù)器計算,但是從亞馬遜云科技的角度來看,Serverless不僅僅是Amazon Lambda無服務(wù)計算,更重要的是亞馬遜云科技提供了一整套的Serverless服務(wù),來幫助客戶開發(fā)基于無服務(wù)器的端到端的核心應(yīng)用。
“過去,Serverless被很多客戶用在IT運維的策劃,快速調(diào)取函數(shù)、配置用于數(shù)據(jù)的處理。隨著客戶對Serverless技術(shù)的熟悉,其也一直在探索是否能夠用端到端的無服務(wù)器技術(shù)構(gòu)建核心應(yīng)用,而端到端就包括了微服務(wù)的一些核心組件,比如,無服務(wù)器容器、存儲、數(shù)據(jù)庫以及開發(fā)工具等,這些亞馬遜云計算都可以提供。”顧凡說。
此外,構(gòu)建共享服務(wù)平臺,這是隨著企業(yè)在推著現(xiàn)代化應(yīng)用和微服務(wù)達到一定規(guī)模和階段才會面臨的挑戰(zhàn)。比如說企業(yè)的業(yè)務(wù)快速擴展,微服務(wù)達到幾百、上千可能會面臨一個比較頭疼的問題——如何去平衡微服務(wù)開發(fā)團隊的敏捷性以及應(yīng)用部署的一致性。
“在微服務(wù)的場景下,傳統(tǒng)的單體應(yīng)用沒有一套完整的工具去適配,因為微服務(wù)會把代碼切分得很小,此時,每一個小的代碼塊微服務(wù)在部署時都要解決三個問題:如何配置基礎(chǔ)設(shè)施的代碼、如何監(jiān)控每一個小的微服務(wù)以及保持一致性?!鳖櫡脖硎?,基于這樣的場景下,亞馬遜云科技在去年的 re:Invent發(fā)布了一個很重要的功能——Amazon Proton。
Amazon Proton可以創(chuàng)建維護應(yīng)用架構(gòu)的模板,這些模板在Proton通過自服務(wù)的方式讓開發(fā)團隊選取,就像一個流水線上,開發(fā)團隊既可以跑得比較快,同時又可以通過平臺團隊定義的標(biāo)準化應(yīng)用架構(gòu)模板來快速地實現(xiàn)。無論是微服務(wù)的應(yīng)用是構(gòu)建還是用無服務(wù)器構(gòu)建的, Proton都可以讓兩個團隊真正的合力轉(zhuǎn)得更快。
總地來看,無論是平移、重構(gòu)還是構(gòu)建共享的服務(wù)平臺,現(xiàn)代化應(yīng)用路徑的選擇,客戶應(yīng)該根據(jù)自己的應(yīng)用特征,業(yè)務(wù)驅(qū)動重構(gòu)的時機,以及現(xiàn)在微服務(wù)化的規(guī)模選擇適當(dāng)?shù)牟呗浴?/p>
從產(chǎn)品的角度來看,經(jīng)過多年經(jīng)驗的積累和應(yīng)用場景的試煉,亞馬遜云科技在現(xiàn)代化應(yīng)用領(lǐng)域的產(chǎn)品也愈加穩(wěn)定、安全和豐富。其優(yōu)勢主要體現(xiàn)在四個方面:廣泛選擇,靈活部署;深度集成、快速構(gòu)建;安全可靠、生產(chǎn)就緒;開源開放、合作共贏。
“很多人都在抱怨,在現(xiàn)代化應(yīng)用開發(fā)架構(gòu)實現(xiàn)之前,幾乎80%的時間花在基礎(chǔ)運維繁雜的工作,而真正開發(fā)精力只有20%落在應(yīng)用上。所以,亞馬遜云科技希望通過現(xiàn)代化的應(yīng)用改造,比如說,Proton、Serverless和容器融合的應(yīng)用,幫助客戶實現(xiàn)現(xiàn)代化應(yīng)用轉(zhuǎn)型,讓客戶更關(guān)注于業(yè)務(wù)擴展,本身而不是基礎(chǔ)運維的繁雜工作。”顧凡如是說。