Stelvio:新的 Python 原生 AWS 工具嶄露頭角,開發者尋求無伺服器框架替代品

BigGo Editorial Team
Stelvio:新的 Python 原生 AWS 工具嶄露頭角,開發者尋求無伺服器框架替代品

在 Python 開發者社群中,一款名為 Stelvio 的新型 AWS 基礎設施管理工具正受到關注,因為開發者們正在尋找現有解決方案的替代品。目前處於早期 alpha 階段的 Stelvio 旨在透過允許開發者使用純 Python 程式碼而非 JSON 配置或其他語言來定義 AWS 基礎設施,從而簡化 Python 開發者的雲部署流程。

Python AWS 工具的碎片化格局

當前 Python 開發者使用 AWS 無伺服器架構的生態系統明顯呈現碎片化狀態。社群開發者們指出了一系列現有解決方案,包括 Zappa、Chalice、Serverless Framework、AWS CDK、CloudFormation 和 AWS SAM——每種工具都有其自身的侷限性。這些工具中的許多要麼被放棄,要麼維護不善,要麼需要非 Python 配置,或者並非專為 Python 開發者設計。

「我認為 Python 社群有大約5個半成品解決方案來解決這個問題,這些解決方案要麼被放棄,要麼盈利模式差,要麼使用者介面很糟糕,這真是令人驚訝。」

這種觀點反映了許多 Python 開發者在嘗試部署無伺服器應用到 AWS 時的挫折感。Serverless Framework 最近的突然轉變——在第4版中改為付費模式——進一步加劇了對可靠替代品的尋找,一些開發者提到社群維護的分支如 osls 作為臨時解決方案。

討論中提到的當前 Python AWS 部署工具:

  • Stelvio(早期 alpha 版)- Python 原生基礎設施即程式碼
  • Zappa - 使用 JSON 配置
  • Chalice - 似乎已被放棄,混合了基礎設施和應用程式程式碼
  • Serverless Framework - 最近在 v4 版本轉為付費模式
  • osls - 開源 Serverless Framework 替代品
  • AWS CDK - 更冗長但更全面
  • CloudFormation - 低階 AWS 模板語言
  • AWS SAM - 簡化的 CloudFormation,用於無伺服器架構
  • Mangum - 包裝 ASGI 應用程式以便部署到 Lambda

Stelvio 當前功能:

  • AWS Lambda 支援
  • Amazon DynamoDB 整合
  • API Gateway 配置
  • 自動化 IAM 角色/策略管理
  • Python 原生配置

Stelvio v0.2.0 即將推出功能(2025年4月):

  • Lambda 依賴項和層
  • DynamoDB 索引
  • CORS 支援
  • API Gateway 授權器

Stelvio 的開發者優先方法

Stelvio 的獨特之處在於它專注於 Python 開發者而非基礎設施專家。該工具的建立者 Michal 解釋說,雖然 AWS CDK 相比 CloudFormation 和 Terraform 有了顯著改進,但基礎設施工具仍可以變得更加開發者友好。

Stelvio 的方法透過智慧預設設定強調最小化樣板程式碼。例如,建立一個帶有 API Gateway 整合的 DynamoDB 表僅需幾行 Python 程式碼,自動處理 IAM 策略、角色、API Gateway 資源、方法、整合和 CloudWatch 日誌組的建立——這些任務在 AWS CDK 中需要大量額外程式碼。

Stelvio 的一個關鍵設計原則是將基礎設施程式碼與應用程式程式碼分離,不像某些替代方案透過裝飾器或其他機制將它們混合在一起。這種清晰的分離符合軟體工程最佳實踐,同時保持了 Python 開發者期望的簡潔性。

當前功能和未來路線圖

目前,Stelvio 支援 AWS Lambda、Amazon DynamoDB、API Gateway 和自動 IAM 配置。據開發者稱,0.2.0 版本預計將於2025年4月釋出,將支援 lambda 依賴項和層、DynamoDB 索引、CORS 和 API Gateway 授權器。0.3.0 版本將引入專用 CLI 工具。

雖然當前實現專注於無伺服器元件,但開發者已表示計劃擴充套件對 AWS 服務的覆蓋範圍,超出初始的 Lambda/API/DynamoDB 產品,可能包括 VPC 配置、NAT 閘道器和安全組。還有提到可能擴充套件到 AWS 之外的服務,如 Cloudflare。

社群反應和持續討論

Python 開發者對此的反應普遍積極,許多人對使用熟悉的 Python 語法簡化 AWS 基礎設施管理的工具表示興趣。一些目前在建立 API Gateway 時遇到困難的開發者表示,當 Stelvio 達到生產就緒狀態時,他們會採用它。

然而,社群討論也揭示了關於架構選擇的持續辯論。一些開發者質疑對 Lambda 和 DynamoDB 的關注,認為隨著應用程式的成熟和需求的發展,傳統伺服器和關係資料庫可能更好地服務於應用程式。其他人詢問關於基於 Pulumi 而非直接使用 boto3 的決定,對此開發者引用了狀態管理和多雲潛力等好處。

隨著雲基礎設施複雜性的不斷增長,像 Stelvio 這樣的工具代表了使部署更易於那些希望專注於構建應用程式而非管理基礎設施細節的開發者的嘗試。Stelvio 是否會在其他工具掙扎的地方取得成功仍有待觀察,但其 Python 原生方法和對開發者體驗的關注似乎解決了社群中的真正痛點。

參考:Stelvio