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