Java应用全链路启动速度提升至15s,阿里云SAE能力再升级
【云原生應用加速發布會】傳送門:https://yqh.aliyun.com/live/detail/22720
點擊查看詳情:https://yqh.aliyun.com/live/cloudnative_release
Java 作為一門面向對象編程語言,在性能方面的卓越表現獨樹一幟。但在高性能的背后,Java 的啟動性能差也令人印象深刻,大家印象中的 Java 笨重、緩慢的印象也大多來源于此,高性能和快啟動速度似乎有一些相悖。
近日,阿里云Serverless應用引擎(SAE)重磅發布 Java 應用啟動加速功能,首度將 Alibaba Dragonwell(阿里巴巴開源的 Open JDK 長期支持版本)的冷啟動加速技術、多線程運行加速技術和 SAE 自身的原地升級策略、鏡像預熱策略相結合,實現了 Java 應用的端到端啟動速度提升至僅15s,多線程性能提升30%,再加上其自身的0代碼改造優勢,已成為企業享受 Serverless 價值的最短路徑。
難點分析
眾所周知,微服務的用戶在應用啟動層面面臨著一些難題:
? 軟件包大:幾百 MB 甚至 GB 級別
? 依賴包多:上百個依賴包,幾千個 Class
? 加載耗時:從磁盤加載依賴包,再到 Class 按需加載,最高可占啟動耗時的一半
借助 Dragonwell 快速啟動和多線程運行加速能力,SAE 為 Serverless Java 應用提供了一套,讓應用盡可能加速啟動的最佳實踐,讓開發者更專注于業務開發:
? Java 環境 + JAR/WAR 軟件包部署:集成 Dragonwell 11 ,提供加速啟動環境
? JVM 快捷設置:支持一鍵開啟快速啟動,簡化操作
? NAS 網盤:支持跨實例加速,在新包部署時,加速新啟動實例/分批發布啟動速度
加速效果
我們選擇一些微服務、復雜依賴的業務場景典型 Demo 或內部應用,測試啟動效果,發現應用普遍能降低 5%~45% 的啟動耗時。若應用啟動,存在下列場景,會有明顯加速效果:
? 類加載多(spring-petclinic 啟動加載約 12000+ classes)
? 依賴外部數據越少
客戶案例
阿里巴巴搜索推薦 Serverless 平臺
阿里內部的搜索推薦 Serverless 平臺通過類加載隔離機制,將多個業務的合并部署在同一個 Java 虛擬機中。調度系統會按需地將業務代碼合并部署到空閑的容器中,讓多個業務可以共享同一個資源池,大大提高部署密度和整體的 CPU 使用率。
由于要支撐大量不同的業務研發運行,平臺本身需要提供足夠豐富的功能,如緩存、RPC調用。因此搜索推薦 Serverless 平臺的每個 JVM 都需要拉起類似 Pandora Boot 的中間件隔離容器,這將加載大量的類,拖累了平臺自身的啟動速度。當突增的需求進入,調度系統需要拉起更多容器以供業務代碼部署,此時容器本身的啟動時間就顯得尤為重要。
基于 Dragonwell 的快速啟動技術,搜索推薦平臺在預發布環境會執行 AppCDS、Jarindex 等優化,將產生的 archive 文件打入容器鏡像中,這樣每一個容器在啟動時都能享受加速,減少約30%的啟動耗時。
潮牌秒殺SAE極致彈性
某外部客戶,借助 SAE 提供的 Jar 包部署與 Dragonwell 11,快速迭代上線了某潮牌商場 App。
在面對大促秒殺時,借助 SAE Serverless 極致彈性,與應用指標 QPS RT 指標彈性能力,輕松面對 10 倍以上快速擴容需求;同時一鍵開啟 Dragonwell 增強的 AppCDS 啟動加速能力,降低 Java 應用 20% 以上啟動耗時,進一步加速應用啟動,保證業務平穩健康運行。
SAE 是面向應用的 aPaaS 平臺,實現了Serverless 架構 + 微服務架構的完美融合,此次再磅以 Dragonwell 的啟動和運行加速技術,使得客戶可以輕松享受應用加速帶來的技術紅利。
原文鏈接:https://developer.aliyun.com/article/782978?
版權聲明:本文內容由阿里云實名注冊用戶自發貢獻,版權歸原作者所有,阿里云開發者社區不擁有其著作權,亦不承擔相應法律責任。具體規則請查看《阿里云開發者社區用戶服務協議》和《阿里云開發者社區知識產權保護指引》。如果您發現本社區中有涉嫌抄襲的內容,填寫侵權投訴表單進行舉報,一經查實,本社區將立刻刪除涉嫌侵權內容。總結
以上是生活随笔為你收集整理的Java应用全链路启动速度提升至15s,阿里云SAE能力再升级的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 重点解决三大环节数字化,高效适配家装数智
- 下一篇: 一张图,看懂阿里云12年的“飞天日记”