即便在日新月異的科技領域,技術的更新換代也并不是非此即彼的過程,而是一個連續的、逐步發展的過程。舊技術和新技術之間并不是完全的替代關系,而是存在連續的過渡和轉變。
在此過程中,舊技術也不會立即被完全替代,而是在一定程度上繼續發揮作用,并與新技術進行融合和協同。甚至,舊技術還會出現“翻紅”的現象,在業界激起的波瀾不亞于新興技術的突破。近段時間以來,關于單體應用對微服務的“反戈一擊”,就格外引人注目。
最新的“爆料”頗為吸睛:知名流媒體公司某項目團隊發布了一則案例研究,“他們放棄了無服務器、微服務架構,改以單體應用取而代之,此舉為客戶節省90%的運營成本,并改善了使用體驗”。
Serverless first戰略被公認為是未來方向,業界也有很多事件驅動架構(EDA)與微服務領域的實踐。從基本的商業邏輯思考,我們已經很難回到單體應用為主的時代,那么背后的深意到底是什么?
撥開紛紜的迷霧,透過現象方見本質。筆者認為,不妨先還原該團隊在特定場景下的方案選擇過程,再來梳理從單體應用到SOA再到微服務的發展軌跡,最終才能對可進化架構的演變方向做出經得起時間考驗的判斷。
客戶利益至上:“左右互搏”探索最優路徑
通過還原流媒體服務案例中對分布式計算和單體應用方案的甄選過程,既能看到其對“客戶利益至上”理念的堅持,又會發現亞馬遜云科技適應多元需求的能力是其敢于“左右互搏”的底氣。
在最初的解決方案設計中,該團隊采用了無服務器組件的分布式系統,這對快速構建服務通常是不錯的選擇。但在實際運行中,該架構遇到了擴展瓶頸——工作流的每一秒都執行多個狀態轉換,很快就達到了Account的上限,且每次狀態轉換都要收取費用,累計下來開支不菲。
成本問題還不止于此。為了減少費用較高的視頻轉換作業,項目團隊構建了一個微服務,將視頻分割成幀,并將臨時圖像上傳到存儲系統,然后再下載且使用相關服務處理圖像。不過,存儲調用服務的收費依然不低,總體算下來仍難達預期。
此路不通,何妨另辟蹊徑。流媒體公司做出大膽的決定,將所有的組件打包到一個流程中。這消除了對視頻幀中間存儲的需求,數據傳輸在內存中即可完成,且媒體轉換、檢測器、編排等組件都在單個Amazon ECS任務中運行。
值得一提的是,在新架構中檢測器的數量只能縱向擴展,而項目團隊需要定期向服務中添加更多檢測器,對單個實例容量造成較大壓力。為了解決這一問題,團隊使用不同的檢測器子集對每個副本進行參數優化,并以輕量級的編排層分發客戶請求。
這個案例最核心的價值是打破了對微服務的“信仰崇拜”,肯定了單體架構對部分應用需求的滿足,但如果因此而得出單體架構將全面“復辟”的結論,就有些矯枉過正了。
事實上,基于特定場景的路徑選擇并沒有簡單的對錯,客戶愿意采納單體架構還是微服務方案,取決于其目標設定、既有資源和團隊情況等多重因素,一些變量的調整就可能導致抉擇的轉向。例如:項目中對視頻分割成幀的顆粒度倘若不是過于細化,狀態轉換的頻度就會顯著下降,存儲調用的費用也將趨于合理,微服務方案的優勢有望重新凸顯。
主航道不偏離:Serverless與EDA驅動微服務持續進化
理性的判斷離不開基于實驗的對比分析,更源于對發展規律的深刻洞察。只有站在歷史的長河中審視不同架構的演變軌跡,才能更好地認知從單體應用到面向服務架構體系(SOA)再到微服務的進化歷程,不至于落入相對主義或虛無主義的陷阱。
“上古時代”的軟件都是將所有功能寫在一起,整個軟件彷佛一體化運行的機器,單體架構由此得名。伴隨軟件的功能日益增加,單體架構也變得愈發復雜,很多缺點隨之暴露出來。
大型單體應用的開發速度緩慢,在部署和運行時,需要服務器具有充足內存和相關資源,且必須通過在多個服務器上復制應用程序來實現橫向擴展,擴展能力受限明顯;同時,這些應用程序的各個功能組件采用緊耦合方式,使維護和更新頗為困難。
為了應對上述挑戰,必須改變代碼的緊耦合狀態,將軟件拆分成一個個功能單元,“面向服務的體系架構”(SOA)應運而生。在SOA架構中,每個服務獨立承擔各自功能,服務間借助通信協議連在一起,各項服務可使用不同的語言和工具開發,能部署在差異化的系統環境中。
在云重新定義一切的背景下,容器化潮流的迅猛來襲讓更輕量化的SOA成為可能,微服務逐步占據“C位”。在容器環境中,每個服務不必再占用一臺服務器,多個容器可基于一臺服務器運行,甚至在Serverless架構支撐下能夠實現無服務器化演進。用戶不必在基礎設施維護、更新等方面耗時費力,可將更多精力放到業務邏輯上。
如果說Serverless為微服務的進化按下了快行鍵,那么事件驅動架構(EDA)則是微服務適應不確定性環境的終極武器。
EDA能讓架構中的各個模塊按事件發生的順序靈活地執行,并可把執行結果作為新的事件來驅動下一個模塊的運行。Gartner發布的《十大戰略技術趨勢》報告顯示,到2022年,已有逾50%的組織參與到事件驅動的數字化服務生態系統中,EDA會是微服務未來成長的核心動力。
顯而易見,在Serverless與EDA的協同助推下,微服務業已成為數字化轉型深水區里的主航道。單體應用雖然在特定場景中也具有不可或缺的價值,但從應用架構進化的底層邏輯和現實需求來看,其不可能取代微服務的主導地位。
架構隨需應變:場景化、可進化指引未來方向
以更長遠的眼光來看,應用架構的迭代升級永無止境。伴隨人工智能通用化、數據生產要素化進程的提速,云計算平臺需要為各種類型的企業提供隨需應變、多元選擇的應用架構方案,場景化、可進化是未來架構的重要演變方向。
作為全球云服務市場的翹楚,亞馬遜云科技始終扮演著引領變革的角色,通過產品與服務的不斷創新,為各個行業客戶提供符合不同場景特征的架構選擇。以Amazon S3為例:從2006年推出的幾項微服務擴展到后來的300多個微服務,在存儲方法、策略機制等維度持續完善,與客戶共同成長。
在有助于拓寬“主航道”的Serverless與EDA領域,亞馬遜云科技更是率先垂范。2014年問世的Amazon Lambda吹響了Serverless計算模型普及的號角,其后多年又為Serverless架構添加100多個新功能,進而推動Serverless從單一場景邁向全棧融合;同時,亞馬遜云科技已構建起事件驅動架構的完整服務體系,包括Amazon EventBridge、Amazon Step Functions等,不僅提高開發敏捷性、節省成本,還能通過自由組合這些服務,更好地滿足企業應用場景需求,將架構優勢發揮到極致。
2023年,亞馬遜云科技創新闡釋“Serverless first”理念,擎起推進應用現代化的大旗。在一片大干快上的熱潮中,亞馬遜云科技倡導的“Serverless first”不等于“Serverless only”,架構路徑的選擇不能脫離客戶的真實訴求和現實條件,擁有未來的前提是活在當下。
正如羅素所言,參差多態乃幸福本源。一家業務簡單、只有幾名開發人員的初創公司,與枝繁葉茂、擁有數十名工程師的大中型企業相比,選擇不一樣的應用架構是再自然不過的事。登高望遠能知道目標所在,但也別忘了腳下的土地。
版權聲明:
凡本網內容請注明來源:T媒體(http://www.alternativecancerresearchinstitute.com)”的所有原創作品,版權均屬于易信視界(北京)信息科技有限公司所有,未經本網書面授權,不得轉載、摘編或以其它方式使用上述作品。
本網書面授權使用作品的,應在授權范圍內使用,并按雙方協議注明作品來源。違反上述聲明者,易信視界(北京)信息科技有限公司將追究其相關法律責任。
評論