伺服器上也能用Swift?案例研究它比Python更快更便宜

導讀:應用開發商 Cultured Code 釋出最近案例研究顯示,與執行 Python 2 的傳統系統相比,效能提高了四倍,成本卻只有三分之一。
Swift 主要用於 Apple 電腦和裝置上的應用程式開發。
而且Swift語言原則上也適用於伺服器端工作,但伺服器端的發展勢頭一直較弱。IBM 是該理念的早期支持者,但於 2019 年也放棄了其 Kitura Swift 框架。
然而,在客戶端和伺服器上使用同一種語言的想法對於開發者來說仍很有吸引力。在 Apple 平臺開發流行個人任務管理器的 Cultured Code 已經記錄了在 Google App Engine 上執行的 Python 2 應用程式被在 AWS 託管的 Kubernetes 上執行的 Swift 所取代。
負責開發和運營的 Vojtěch Rylko 以及執行長 Werner Jainek如此介紹說,此舉將跨多裝置儲存和同步使用者資料的雲應用程式的平均響應時間提高了四倍,同時還把平均計算成本降低了三倍。
對於遺留應用程式,兩人指出 Python 缺乏靜態型別是一個問題,這“使得每次更改都充滿風險”,並表示它存在響應時間慢、記憶體使用率高的問題,因此完全重寫是唯一可行的解決方案。
新的應用程式在 AWS 上的 Kubernetes 上執行
該應用程式大約有 30,000 行程式碼,使用 Xcode 進行編碼和除錯,大約需要 10 分鐘即可構建完成。資料庫是 AWS Aurora MySQL,Redis 用於儲存臨時資料,應用程式部署到一個小型四節點 Kubernetes 叢集。由於存在適合此目的的成熟庫,因此 Python 仍用於部署到 AWS Lambda 的服務以處理電子郵件。
該團隊鼓勵其他的開發者都來關注伺服器端 Swift,並指出最近在 Swift-Java 互操作性方面的工作,可能會使逐步採用變得更容易。特別有吸引力的是,以 Apple 為中心的開發,從裝置到雲端,使用 Swift 可以簡化程式設計。
不過也存在一些風險,特別是 Cultured Code 提到的,也就是 Swift 的伺服器支援不如其他語言那麼成熟。比如,由於缺乏合適的庫,團隊才決定使用 Python 3 來處理電子郵件。
該團隊指出,漫長的構建時間是另一個問題,這足以讓測試程式碼更改的開發人員感到沮喪。
“這是一種編譯速度很慢的語言,這是我對它的主要怨言……如果不是因為這種質量,它顯然會是我最喜歡的語言,”
新語言案例研究所中的一條評論如此說道。

作者:魯肅

相關連結:

https://github.com/apple/swift-nio
https://vapor.codes/
相關閱讀:

相關文章