幾年前,我們遇到了一個有趣的問題。 我們是一家完全遠端的公司,在雲端中擁有我們的所有軟體。 而且我們有一套 Spring Boot 應用程式在容器上執行,容器採用 Infrastructure as Code。 但我們需要業務敏捷性。
全球就業市場發展迅速,而且總是需要新產品。 我們必須想辦法保持整個行業的領先地位。
我們是一家具有大膽策略的科技公司
2022年,我們創建了一個ADR(架構決策記錄),說:“無伺服器優先和容器-根據需要”。 並在近 40 個工程團隊中引發爭論。
讓我們先解釋一些術語
Serverless-first 不僅是功能即服務。 它也是雲端供應商的一組託管服務:
-
不管理基礎架構,降低營運開銷
-
根據需要進行縮放,包括縮放至零使其完全具有彈性
-
享有彈性價格(您僅需支付使用費用)
在 G-P,無伺服器優先是指使用 AWS Lambda、EventBridge、Step Functions、Fargate、SQS、SNS、API Gateway、 S3、DynamoDB 等。
無伺服器優先意味著,當我們選擇運算、儲存、訊息或類似解決方案時,我們希望團隊從無伺服器選項開始。 重要注意事項:如果無伺服器服務不符合需求,團隊應該要回到更重的服務,也就是需要更多營運投資的服務。
“容器隨需”澄清無伺服器優先並不意味著無伺服器。 有時候我們需要容器 (例如安裝 COTS 軟體產品) ,這沒關係。
優先考慮客戶的技術策略
我們以敏捷的速度行動,以滿足客戶和使用者的需求。 Lambda、 S3 和 DynamoBD 等服務具有極高的彈性和快速性。 透過卸載未區分的重物,我們可以花更多時間為使用者建立功能,而不是處理一般基礎架構設定。
G-P 的一個關鍵原則是:“你建造它,你運行它。” 我們的團隊擁有自己的軟體。 因此,我們不只是將軟體丟到牆上給 DevOps 團隊。
“無伺服器優先”的好處
無伺服器本質上是事件驅動的。
我們的架構完全以事件為導向。 透過使用 EDA(事件驅動架構),我們可以擴展我們的組織和軟體。 無伺服器迫使我們保持小範圍的爆發半徑,並透過事件以完全雲端原生的方式進行通訊。
啟用限制
作為 global employment platform 企業,我們認真看待 合規 。 我們的雲端基礎架構架構完善,而且我們使用多帳戶策略來分隔工作負載,並將雲端法規遵循自動化。 無伺服器透過控制我們佈建雲端資源的方式,協助我們執行高標準。
卸載工作
我們的雲端供應商管理我們的無伺服器服務。 由 AWS 整合、保護、調整、啟用和維護的單一組建元件,讓我們可以專注於為客戶提升價值鏈。
架構良好的工作負載
我們建立的每個工作負載都會透過 AWS Well-Architected Framework 進行審查。 我們專注於規模、安全性、可靠性和成本最佳化,以確保我們不僅符合而且超越我們的 SLA(服務等級協議)。 隨著我們隨著雲端環境的不斷發展,這讓我們的工程團隊得以發揮作用。
關於我們的團隊
我們的技術策略雄心勃勃,因此具有挑戰性。 許多工程師尚未在無伺服器架構(或分散式架構)中工作。 轉換到無伺服器架構並不容易,我們尋找熟悉學習、大型思考和步調的工程師。
有些工程師不確定無伺服器 (是,我們知道有伺服器) 一詞,因為這種方法不只是在函數中編寫程式碼。 我們的策略需要對傳統雲端原生原則採取全面性的方法。
結果
我們在兩年內取得了非凡的進展。 現代化有許多好處 (請參閱我們的文章,瞭解 AWS/已知雲端現代化的商業價值)。 具體而言,我們觀察到以下幾點:
1. 速度:我們破解系統的方式讓團隊和產品得以獨立創新和進化。 這對於業務敏捷性有很大的影響。
2. 法規遵循:我們使用 AWS Well-Architected Framework 來審查所有工作負載。 因為我們使用許多 AWS 託管服務,所以可以依靠他們的卓越營運,從高品質的地方開始。
3. 系統思維:我們必須將許多流程標準化,才能推斷系統、可靠性和商業價值。 我們不花時間處理低價值的組件。
4. 創新:無伺服器意味著一切都是一個 API。 這種強制限制需要先採用 API 的方法。 當我們將自己視為一個平台時,可以透過 API 輕鬆連接系統,例如將 G-P Gia™ 插入新的知識庫,從而達到新的創新水準。
5. 所有權:AWS 擁有我們的基礎架構,但擁有我們的業務領域。 無伺服器第一,採用網域導向設計,迫使我們專注於業務問題。 這樣可以保持能力的所有權清晰。
無伺服器優先並不總是更快,但更有益。 我們寧願針對系統速度進行最佳化,也更勝於個別開發人員的速度。 Serverless-first 不太注重使用功能,更注重思考。 系統就是資產。” 我們必須編寫的程式碼越少,我們越能考慮並塑造正在建立的商業系統。
當我們分享自己的故事時,我們工作的速度會變得很明顯,這是無伺服器優先的直接結果。 敬請期待。