雲計算主要內容是提供計算資源,而云計算的核心原理是僅使用執行應用程式所需的那些資源,並在需要時進行擴充套件。為了利用雲計算的優勢,開發人員應根據此原則設計和編寫應用程式。
微服務架構將整體應用程式分解為許多微應用程式(微服務),對於針對雲計算平臺的應用程式而言,這是一種有吸引力的方法。我們可以從處理初始負載所需的微服務例項數量開始,並在需求更高時擴充套件更多例項,從而利用雲水平擴充套件的能力來提高彈性。
Java平臺已成為使用最廣泛的平臺之一,儘管Java廣受歡迎,但它也受到了許多開發者的批評並指出其缺點,例如Java的啟動速度很慢;Java佔用太多記憶體;Java語法很冗長。值得注意的是,Java中的啟動時間過長已抑制了水平可伸縮性。從業務角度來看,客戶可能需要等待很長時間才能啟動應用程式,然後才能接收到請求結果。加快Java應用程式在水平可擴充套件平臺上的啟動時間是開發者未來發展的方向,也是進步的動力。所以,目前很多開發者在無伺服器計算中採用了GraalVM本機映像。
多年來,Java程式設計應用在阿里巴巴使用量激增。市場上許多應用程式都是用Java編寫的,據不完全統計,大約10,000名Java開發人員編寫了超過十億行Java程式碼!阿里巴巴已根據充滿活力的開源生態系統定製了大部分Java軟體。在阿里雲中,這些Java程式是為線上交易,線上支付和線上物流而開發的。它們中的許多都是作為微服務開發的,在Kubernetes本地環境之上執行,以服務於線上請求資料。
在阿里巴巴,使用GraalVM的本機映像技術將微服務應用程式靜態編譯為ELF可執行檔案,從而縮短了Java應用程式的本機程式碼啟動時間,這是解決上述水平縮放挑戰所必需的。
在去年的全球線上購物節(也稱為Double 11,即11月11日)中,阿里巴巴部署了許多編譯為本地映像的SOFABoot應用程式。他們成功地在一天中以最高線上交易量在生產環境中滿足了真正的線上所有請求。
除了SOFABoot應用程式外,阿里巴巴還探討了將靜態編譯的應用程式引入阿里雲的可能性,阿里雲的功能計算平臺上成功部署了Micronaut演示應用程式的本機映像版本。
如果你現在正在探索為雲開發無伺服器應用程式的方法,則值得考慮GraalVM本機映像,尤其是在尋求最佳啟動效能和較低記憶體佔用的情況下。
在GraalVM社群的中,我們可以進一步學習GraalVM的功能應用,希望GraalVM能繼續推動創新。