从零入门 Serverless | SAE 的远程调试和云端联调
來源 | Serverless 公眾號
作者 | 弈川 阿里巴巴云原生團隊
導讀:本節課程包含三部分內容,前兩個部分簡單介紹遠程調試以及端云聯調的原理,最后在 Serverless 應用引擎中進行實際演示。
經過之前課程的學習,相信大家對于 Serverless 應用引擎(SAE)已經有了一定的了解,SAE 是一款基于容器與 kuberneters 的應用 PaaS 平臺,在 SAE 提供的 Serverless 場景下,我們不需要再關注底層資源的運維,只需要關注應用的業務邏輯本身。但是,我們在開發測試階段通常會需要用到調試功能,因此,為了方便用戶調試,我們提供了遠程調試功能,目前只支持 Java 程序的遠程調試。
遠程調試
Java 遠程調試原理
眾所周知,我們的 Java 程序是運行在 Java 虛擬機(JVM)之上的,JVM 不單單為我們的 Java 程序提供了跨平臺能力,并且也提供了相應接口與協議方便遠程調試。JDK 中有一個叫 JPDA 的體系來規范與支持 Java 程序的調試,在這個體系中,調試發起者與被調試程序的 JVM 底層分別由 JDI 與 JVMTI 模塊來支持,而兩個接口之間則是有 JDWP 來負責相互之間的通信。
由此可見,遠程調試的本質就是兩個 JVM 通過一個連接保持通信,被調試的程序作為服務端,在某個指定的端口監聽調試指令,而調試發起者則是作為客戶端連接目標端口,發送各種調試指令并且接收調試狀態。
我們此時已經了解了 Java 程序遠程調試的原理,那么對于部署在 SAE 中的 Java 應用是如何實現遠程調試的?
SAE 中的 Java 遠程調試
首先,在 SAE 部署的 Java 應用需要先開啟調試模式,因此需要在部署應用時添加相關的啟動命令。另外,由于 SAE 的應用默認是無法提供公網訪問的,所以需要一個 SLB 提供公網訪問能力。以上兩條都設置好之后,最后可以獲得一個調試程序用 IP 與端口,將這個 IP+端口 設置到 IDE 中就能夠開始遠程調試了。
注:以上操作見文章【實操演示】部分。
端云聯調
除了遠程調試,對于微服務的應用,端云聯調也是一個非常重要的功能。
我們在微服務架構下的開發測試過程中,經常會遇到需要上線一個新的服務或者更新一個舊服務的版本的情況。如果沒有端云聯調,我們只能先在測試環境測試之后再上線生產環境。而通常測試環境與生產環境有著這樣那樣的差異,導致有些隱藏的問題無法被及時發現。
而有了端云聯調功能后,在正式上線之前,我們能夠直接實現本地服務與部署在云端的服務相互調用,這樣就能夠方便我們更加貼近實際生產環境進行調試。
首先,部署在 SAE 上的服務與本地網絡上是有隔離的,所以需要在同一個 VPC 下購買一個 ECS 充當跳板機。借助這個跳板機我們可以通過 IDEA 的插件完成本地服務在云端注冊中心的注冊與服務發現。最后即可完成端云互聯,進行端云聯調。
實操演示
最后對 SAE 提供的遠程調試與端云聯調功能進行實際演示,演示過程請點擊鏈接:https://developer.aliyun.com/lesson_2026_23271#_23271 進行觀看。
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀總結
以上是生活随笔為你收集整理的从零入门 Serverless | SAE 的远程调试和云端联调的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 阿里云在应用扩缩容下遇到的挑战与选型思考
- 下一篇: 深入解读:KubeVela 与 PaaS