亞馬遜云科技:九個步驟賦能客戶加速構(gòu)建云原生應用
原創(chuàng)2019 年,Serverless 就曾被 Gartner 稱為最有潛力的云計算技術(shù)發(fā)展方向,并被賦予是必然性的發(fā)展趨勢。Serverless 從底層開始變革計算資源的形態(tài),為軟件架構(gòu)設計與應用服務部署帶來了新的設計思路。
至今,從計算、存儲到數(shù)據(jù)庫、數(shù)據(jù)分析、機器學習,云服務正在全面邁向 Serverless時代,目的就是讓客戶無需預置或管理基礎設施,就可以運行幾乎任何類型的應用程序或后端服務代碼,幫助客戶最大限度減輕運維工作,并增加業(yè)務敏捷性,更好地應對業(yè)務的各種不確定性。
隨著產(chǎn)品本身能力的完善,Serverless 近年來呈加速發(fā)展的趨勢。在小程序/ Web/Mobile/API 后端服務、大規(guī)模批處理任務處理、基于事件驅(qū)動架構(gòu)的在線應用和離線數(shù)據(jù)處理、運維自動化等場景下, Serverless 都幫助企業(yè)提高了研發(fā)運維效率,降低了成本。
然而,仍然有諸多企業(yè)沒有選擇Serverless,權(quán)威報告顯示,其原因主要有以下幾點:對于員工的教育成本比較高;Serverless 領(lǐng)域缺乏標準;集成測試、調(diào)試非常困難,這也反映了 Serverless 生態(tài)供應鏈的不健全問題;安全問題。
豐富的Serverless產(chǎn)品服務
作為云計算領(lǐng)域的開創(chuàng)者和引領(lǐng)者,亞馬遜云科技推出了大量的容器、無服務器技術(shù)的創(chuàng)新以及開發(fā)云原生應用端到端的工具鏈。以Serverless無服務器技術(shù)的迭代為例,Amazon Simple Queue Service (Amazon SQS)是一項適用于微服務、分布式系統(tǒng)和Serverless應用程序消息隊列服務,至今仍被眾多客戶所采用且依舊在不斷更新其能力,并多次在亞馬遜Prime Day期間創(chuàng)下高峰時的流量新紀錄。2012年推出的鍵/值和文檔數(shù)據(jù)庫Amazon DynamoDB,目前每天可處理超過10 萬億個請求,并可支持每秒超過 2,000萬個請求的峰值。2014年推出的Serverless計算服務Amazon Lambda,開創(chuàng)了業(yè)界Serverless的先河。2017年推出適用于容器的Serverless計算服務Amazon Fargate被稱為“改變游戲規(guī)則”的計算服務。2018年推出專為云打造的高性能關(guān)系數(shù)據(jù)庫服務Amazon Aurora,2020年推出的更新版可以在幾分之一秒將數(shù)據(jù)庫工作負載從數(shù)百個事務擴展到數(shù)萬個,同時成本最多可節(jié)省90%。
邁向云原生之旅的經(jīng)驗
在2022亞馬遜云科技中國峰會的“下一代云基礎架構(gòu)”篇章,除了產(chǎn)品的更新,亞馬遜云科技還總結(jié)了一套應用邁向云原生之旅的經(jīng)驗,包括構(gòu)建、治理、迭代三個階段、九個步驟,在每個步驟,亞馬遜云科技都有相應的云服務、最佳實踐去賦能用戶。
第一步,構(gòu)建彈性應用架構(gòu),用Amazon EKS將應用做容器化改造,對單體應用做微服務拆解,去用好Amazon EKS 用好Amazon Lambda,去搭建一個彈性應用的架構(gòu)。
第二步,一切皆代碼,通過CDK去實現(xiàn)基礎設施即代碼,把云中的資源管理自動化,去提升運維效率。
第三步,持續(xù)交付,利用Amazon Code Pipeline去搭建一個自動化發(fā)布的流水線,用App Mesh去控制應用自動交付的網(wǎng)絡流量,保證新功能安全穩(wěn)妥的發(fā)布。
第四步,可觀測性是治理微服務的關(guān)鍵。采用亞馬遜云科技托管的Amazon Prometheus服務,配合ADOT可以全面監(jiān)控系統(tǒng)的運行狀況。
第五步,選擇云原生數(shù)據(jù)庫,當把一個單體應用拆分為多個微服務的時候,為微服務選擇最適合的云原生數(shù)據(jù)庫,讓整個應用的整體架構(gòu)做到彈性和敏捷。
第六步,Amazon DevSecOps,安全團隊和開發(fā)和運營團隊一定要集成,避免安全成為流水線中的一個瓶頸,可以用Amazon Inspector持續(xù)掃描軟件的漏洞。
第七步,持續(xù)部署,在代碼自動進入到生產(chǎn)環(huán)境之前,去用亞馬遜云科技 FIS去運行一個故障注入實驗,能夠更好地改進應用程序的性能。
第八步,Everything as Service一切皆服務,不要去重新發(fā)明輪子,而是將平臺級的一些服務像數(shù)據(jù)庫 消息傳遞總線、API網(wǎng)關(guān)等公開為一個共享服務,供其他人使用,用Amazon EKS Blueprints可以去構(gòu)建一個基于Amazon EKS的共享服務平臺(SSP)。
第九步,持續(xù)迭代、運維,利用亞馬遜云科技Well-Architected Tool不斷地去改進系統(tǒng)結(jié)構(gòu)。
結(jié)語
亞馬遜云科技Serverless不止于Lambda計算,而是一套全面的Serverless架構(gòu)幫助客戶快速構(gòu)建現(xiàn)代化應用。從亞馬遜云科技在Serverless領(lǐng)域的快速發(fā)布和迭代可以看出,下一個十年, Serverless 將重塑企業(yè)創(chuàng)新的方式,幫助云成為社會發(fā)展的強大動力。