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