SOFAStack 體驗中心為用戶提供一個模擬真實電商業務場景的體驗環境,讓您可以快速了解并直觀感受到 SOFAStack 平臺以應用為中心提供的一站式云原生服務。本文旨在引導您跟隨不同的場景線路,分別體驗版本回滾、服務治理、灰度切流等功能。
本期推出 微服務平臺(MS Platform)及 容器應用服務(AKS)兩大核心產品。
體驗中心內的數據僅支持查看,無法進行其他操作。
暫不支持搜索功能。
前提條件
已注冊阿里云賬號。
已開通 SOFAStack 產品。
體驗地址
體驗中心環境區分金區和非金區,請使用正確的賬號登錄,避免出現跳轉異常:
場景概述
本節介紹體驗中心環境包含的三種典型的電商應用場景以及各場景中用戶需使用到的 SOFAStack 核心能力。
各場景說明如下:
場景一:雙 11 大促前做新 Portal 迭代,上線新版本 Portal 應用后,發布人員觀測到業務異常,立即進行回滾恢復舊版本,回滾后查看實時監控數據,驗證服務已恢復正常。
場景二:雙 11 大促中,電商系統面臨著短時間內業務量的迅速增長,為避免業務峰值給系統帶來極大的壓力,防止服務器宕機、服務超時、用戶無法訪問、服務雪崩等問題,可以對服務進行以下治理操作:
服務限流:為高訪問的訂單服務(Order)添加限流規則,以控制服務請求量。
服務鑒權:為關鍵性的支付服務(Pay)添加白名單鑒權,僅允許白名單內的服務調用。
服務熔斷:為賬單服務(Bills)添加熔斷規則,以避免長時間的阻塞影響其他服務,防止雪崩。
透明劫持:對定價系統(Price)進行無侵入式的應用治理,限制該服務的最大請求數等。
場景三:雙 11 大促來臨之際,為保障商品列表信息無誤且用戶能夠訪問正常,研發人員對門戶網站應用(Portal)下的商品列表服務(Product)進行新版本的分組發布,繼而通過服務路由功能對該服務進行精細的流量控制,將流量逐漸從舊版本引導至新版本,通過灰度切流實現新版本的平滑上線。
實現鏈路
本節介紹各場景中涉及到的服務之間的調用鏈路,幫助您更好地理解服務治理背后的實現邏輯。如下圖所示,箭頭表示調用關系。
調用順序說明如下:
電商平臺用戶在登錄時調用 Login 服務進行身份鑒權,登錄成功后,調用 User Info 服務展示個人信息。
電商平臺用戶在下單時調用 Order 服務進行訂單創建,創建成功后,調用 Pay 服務進行訂單支付,支付成功后,調用 Bills 服務生成用戶賬單。
電商平臺用戶在逛店鋪時調用 Product 服務展示商品列表,單擊進入商品詳情頁后調用 Price 應用返回價格信息。
具體的應用與服務信息說明如下:
Portal 應用:門戶網站,Mesh 應用,基于 SOFA 框架,包含以下 2 個微服務:
Login:用戶登錄時的身份鑒權服務。
Product:獲取商品列表。
Trade 應用:交易系統,Mesh 應用,基于 Spring Cloud 框架,包含以下 2 個微服務:
Order:訂單服務。
Pay:支付服務,關鍵服務。開啟服務鑒權后,只允許被訂單服務調用。
Account 應用:用戶系統,傳統微應用,基于 SOFA 框架,包含以下 2 個微服務:
User Info:用戶登錄后返回用戶個人信息。
Bills:賬單服務。
PriceCenter 應用:價格管理系統,單體應用,基于 C++ 研發。
體驗路徑
本節介紹各個場景體驗的操作路徑,幫助您快速查看 SOFAStack 提供的核心能力模塊。
場景一:版本回滾
對新版 Portal 應用進行分組發布時,在第一組服務實例發布完成后,發布人員在微服務平臺的服務監控中觀測到業務異常,用戶登錄錯誤率快速增長,經分析判斷是新版服務出現問題,立即到 AKS 中進行回滾發布,恢復到應用的舊版本,繼續查看實時監控數據,驗證服務已恢復正常。
該場景涉及 Portal 應用及 Login 服務。
您可以通過以下查看路徑體驗 AKS 的分組發布及版本回滾的能力:
在 容器應用服務 > 應用發布 > 發布單 頁面,單擊查看新版發布單(名稱為 portal-v1-deployment)詳情,可以看到新版發布單中僅完成了 Portal 應用的一個應用服務實例的發布,如下圖所示:
在 微服務平臺 > 服務網格 > 實時監控 頁面,單擊查看 Portal 應用服務的監控詳情,在應用服務版本下拉框中選擇 V2 版本,發現新版本的應用服務的錯誤率出現增長。
說明因體驗中心能力限制,目前無法展示動態數據,僅能保留終態頁面,所以該步驟暫不支持查看監控數據。
在 容器應用服務 > 應用發布 > 發布單 頁面,單擊查看回滾發布單(名稱為 portal-v2-deployment)詳情,可以看到回滾發布單完成了對新版應用服務實例的回滾,如下圖所示:
說明因體驗中心能力限制,目前缺乏頁面間的數據聯動,發布單詳情暫時公用一套數據。
在 微服務平臺 > 服務網格 > 實時監控 頁面,單擊查看 Portal 應用服務的監控詳情,可以看到回滾到舊版本的應用服務的錯誤率恢復正常為零,如下圖所示:
說明回滾后,在監控頁面的應用服務版本下拉框中,僅可選擇 V1 版本。
場景二:服務治理
雙 11 大促中,對于電商系統,面臨的必然是短時間內業務量的迅速增長、上億用戶的瘋狂涌入。這種億級流量高并發場景業務,會給系統帶來極大的壓力。而系統服務器的處理資源是有限的,能夠支撐的訪問量也是有限的。因此,出現業務峰值的時候,很容易造成服務器宕機、服務超時、用戶無法訪問等問題。為解決這些問題,研發人員可以通過微服務平臺(MS Platfrom)對服務進行以下治理操作,以提高服務的穩定性和可用性。
通過服務限流為高訪問的訂單服務(Order)添加限流規則,以控制服務請求量。
通過服務鑒權為關鍵性的支付服務(Pay)添加白名單鑒權,僅允許白名單內的服務調用。
通過服務熔斷為賬單服務(Bills)添加熔斷規則,以避免長時間的阻塞影響其他服務,防止雪崩。
通過透明劫持對定價系統(Price)進行無侵入式的應用治理,限制該服務的最大請求數等。
該場景分別涉及了 Mesh 應用的 Order 服務、Pay 服務,經典微服務的 Bills 服務以及 C++ 單體應用 Price。
您可以通過以下查看路徑體驗 MS Platfrom 的服務限流、服務鑒權、服務熔斷及透明劫持的能力:
服務限流
進入 微服務平臺 > 服務網格 > 服務管控 頁面,在服務列表中找到 Order 訂單服務,單擊其服務 ID,進入其詳情頁。
在詳情頁中,切換至 服務限流 頁簽,可以看到一條名為 雙11訂單限流 的限流規則。
單擊該規則名稱,即可在右側窗口中查看該限流規則的具體配置。該規則表示對 Order 服務按照 QPS 計數法 進行服務限流。
服務鑒權
進入 微服務平臺 > 服務網格 > 服務管控 頁面,在服務列表中找到 Pay 支付服務,單擊其服務 ID,進入其詳情頁。
在詳情頁中,切換至 服務鑒權 頁簽,可以看到啟用的訪問控制白名單中有一條名為 access_control_rule_1 的白名單規則。該規則表示僅支持 調用方應用名 為 Trade 的服務調用,如下圖所示。
服務熔斷
進入 微服務平臺 > 微服務 > 服務治理 頁面,切換至 服務熔斷 頁簽。
在下方的熔斷規則列表中,單擊 Account 應用前的展開圖標,可看到一條名為 雙11大促熔斷降級策略 的熔斷規則。
單擊該規則名稱,即可在右側窗口中查看該熔斷規則的具體配置。該規則表示對 Bills 服務按照配置的熔斷匹配條件進行服務熔斷。
5s 內請求數達到 10000 且錯誤率達到 30% 或者服務端超時時間達到 500 ms,進行服務熔斷 10000 ms。
該熔斷規則是觀察者模式,表示僅打印熔斷記錄日志,不會實際攔截熔斷。
透明劫持
進入 微服務平臺 > 服務網格 > 透明劫持 頁面,在應用列表中,單擊 Price 應用名,進入其應用詳情頁。
在詳情頁,可以看到該應用對兩個 IP 開啟了 透明劫持,如下圖所示。
單擊右上角的 參數配置,即可在彈出窗口中查看詳細的透明劫持規則。黑名單網段范圍和端口范圍之外的TCP流量會被劫持。
單擊右上角的 應用治理,即可在右側窗口中查看該應用的流量治理規則。如下圖所示,80 端口的流量會被劫持,并按照 最大請求數 為 100 的限制進行流量治理。
進入 服務網格 > Sidecar 管理 頁面,可以看到 Price 對應的 Sidecar 信息及其狀態,如下圖所示。
進入 服務網格 > 服務拓撲 頁面,在拓撲圖中找到并單擊 Price 應用,在右側窗口中即可查看該應用的各項監控數據。其中,請求量(RPS)符合其應用治理規則,如下圖所示。
進入 服務網格 > 實時監控 頁面,在下方的應用服務列表中,可以看到 Price 對應的請求量(分鐘)與其應用治理規則一致,如下圖所示。
場景三:灰度切流
在雙 11 大促這樣的業務場景中,除了電商后端交易等服務系統備受壓力,電商門戶網站,聚集并展示了商品、庫存、價格等各種信息源內容,也承載著巨大的流量,是訂單交易的關鍵入口。因此,雙 11 大促來臨之際,為保障商品列表信息無誤且用戶能夠訪問正常,研發人員可通過 AKS 對門戶網站應用(Portal)下的商品列表服務(Product)進行新版本的分組發布,此處會產生兩個版本,即舊版本與新版本。繼而通過服務路由功能對該服務進行精細的流量控制,慢慢將流量從舊版本引導至新版本,實現灰度切流。
該場景涉及 Portal 應用及 Product 服務。
您可以通過以下查看路徑體驗 AKS 的應用發布以及 MS Platfrom 的服務路由能力:
您可以通過以下查看路徑體驗 AKS 的分組發布及 MS Platfrom 的服務路由能力:
進入 容器應用服務 > 應用發布 > 應用服務 頁面,單擊進入 portal 應用詳情頁。在 版本 標簽頁下,您可以看到列表中存在兩個版本,如下圖所示:
進入 微服務平臺 > 服務網格 > 服務管控 頁面,在服務列表中找到 Product 訂單服務,單擊其服務 ID,進入其詳情頁。
在詳情頁中,切換至 服務路由 頁簽,可以看到一條名為 門戶新版本上線路由規則 的規則。
單擊該規則名稱,即可在右側窗口中查看該路由規則的具體配置。該規則表示對 Product 服務 按版本路由 進行流量調控。