華為雲 ServiceStage 整合 Sermant 實現應用程式的優雅上下線

2024/11/05

摘要

在現代雲端環境中,企業應用的穩定運行是關鍵。應用程式的上線與下線旨在確保服務在運行時,能夠平滑過渡,避免對業務造成影響,並確保資源的高效利用。ServiceStage 透過整合 Sermant 使得應用程式在進行持續發佈時實現無侵入式地優雅上下線。讓我們來一探華為雲在微服務方面的技術革命吧!


1. ServiceStage 簡介
ServiceStage(應用程式管理與維運平台)是華為雲專為企業打造的一站式應用管理與維運平台,提供應用程式發布、部署、監控與維運等一站式解決方案。整個平台其支援一系列技術,包含 Java、Node.js、Docker、Tomcat 等。在微服務框架層面,支援 Apache ServiceComb Java Chassis(Java Chassis)、Spring Cloud 等框架的微服務應用,讓企業應用程式上雲更簡單。具備以下能力模組:
1. 應用管理:從部署到上線的全生命週期管理,確保應用快速穩定運行。
2. 微服務應用程式存取:支援 Java Chassis、Spring Cloud 等微服務框架, 實現服務註冊、組態管理和服務治理。
3. 應用維運:提供日誌、監控、警告支援應用,提高維運管理效率。

 
2. Sermant 簡介
Sermant 是一個能讓 Java 應用程式「更聰明」的工具,不用大改應用程式,就能在雲端環境中實現自動化管理和控制。 Sermant 的初衷是建立一微服務治理的對開發態非侵入的解決方案,降低服務治理開發和使用的難度,透過抽象介面、功能整合、插件隔離等手段,達到簡化開發、功能即插即用的效果。
其中 Sermant Agent 是提供字節碼增強基礎能力及各類服務治理能力的核心元件,Sermant Backend、Sermant Injector、動態配置中心為 Sermant 提供其他能力的配套元件。
 
3. 應用上下線發布過程所遇到的挑戰
在應用上離線發布過程中,如何做到流量的無損上/下線,是系統能保證 SLA 的關鍵。如果應用上離線不平滑,就會出現短時間的服務呼叫報錯,例如連線被拒絕、請求逾時、沒有實例和請求異常等問題。

在應用程式上線發布過程中,若新實例未完全準備好就暴露給用戶可能會使 JVM JIT 編譯或使用的中間件還在加載,在大量流量進入,可能會瞬間壓垮新起的服務實例;而在下線時,則需確保現有請求處理完畢後再關閉,以免造成資料遺失。

4. ServiceStage 優雅上下線方案
4.1優雅上線實現機制

優雅上線的核心在於「延遲註冊」與「預熱」,確保服務實例在完全準備好後才開始接受流量。

 
1.延遲註冊
在服務啟動成功之後不立刻註冊,而是延遲一段時間再去註冊,目的是雖然服務啟動成功了,但可能還有一些框架或業務的程式碼沒有初始化完成,可能會導致呼叫報錯,可以透過設定延遲註冊,讓服務充分初始化後再註冊到註冊中心對外提供服務。2.預熱
此方式主要用於解決當流量突然增加時,可能瞬間把實例壓垮的問題。透過預熱,讓通過的流量緩慢增加,在一定時間內逐漸增加到閾值上限,目的是採用少流量對服務實例進行初始化,防止服務崩潰。預熱是基於客戶端實現的,當流量進入時,Sermant Agent 會動態調整流量,依照服務的預熱配置,對流量進行動態分配。對於開啟服務預熱的實例,在剛啟動時,會為該實例分配較少的流量,隨後流量將以曲線方式逐漸增加至與其他實例近乎持平。  


4.2優雅下線實現機制
優雅上線的核心在於「延遲註冊」與「預熱」,確保服務實例在完全準備好後才開始接受流量。


 
1.延遲下線
當服務提供者實例下線時,無法避免仍有業務請求尚未處理完成,從而可能會出
現請求失去的現象。延遲下線即對下線的實例提供保護,優雅下線插件基於下線
即時通知+刷新快取的機制快速更新上游的實例緩存,服務消費者能儘早感知服務。提供者實例下線的行為,同時基於流量統計的方式,確保即將下線的執行個體盡可能的將流量處理完成,盡量避免流量遺失。
2.流量統計
當服務即將下線時,為確保目前請求已全部處理完成,Sermant Agent 會嘗試等
待30s(可設定),定時統計並判斷目前實例請求是否均處理完成,處理完成後最終下線。


4.3 整體流程
1.資源準備

透過 ServiceStage 平快速建立應用所需的運算(ECS,CCE等),儲存(OBS,EVS等),網路(VPC,ELB等)以及一些中間件資源(DCS,DMS,CSE等)。
2.創建環境
在ServiceStage的控制台,完成環境創建,並將資源納管到新創建的環境當中。
3.安裝 Sermant Injector
只需在配置中啟用 Sermant Injector,即可自動掛載到應用實例,大大簡化 Sermant Agent 安裝流程
4.部署待實現優雅上下線應用
部署應用後,可通過模擬重啟或下線操作驗證優雅上下線機制是否有效。
5. 總結
Sermant 基於Java字節碼增強的技術為微服務應用提供了穩定可靠的優雅上下線能力,而ServiceStage 本身作為一個高效的應用發布與運維平台,透過整合 Sermant,提供了微服務應用優雅上下線的端到端解決方案,提供廣大使用者更有效率、更便捷的使用體驗。

如果您的企業正在尋找穩定可靠的雲端應用管理解決方案,華為雲 ServiceStage 絕對是值得一試的選擇。透過 Sermant 的技術支援,企業可以輕鬆解決應用上線和下線過程中的挑戰,確保業務無間斷運行。立即聯繫果核數位,讓我們協助您在雲端世界中輕鬆打造穩定運行的服務吧!

參考文檔 : https://bbs.huaweicloud.com/blogs/434237

其他動態