作者:開邁斯新能源
開邁斯新能源科技有限公司于 2019 年 5 月 16 日成立,目前合資股東分別為大眾汽車(中國(guó))投資有限公司、中國(guó)第一汽車股份有限公司、一汽-大眾汽車有限公司[增資擴(kuò)股將在取得適當(dāng)監(jiān)督(包括反壟斷)審批后完成]、萬(wàn)幫數(shù)字能源股份有限公司和安徽江淮汽車集團(tuán)控股有限公司,總部位于江蘇常州。開邁斯集車企與充電企業(yè)優(yōu)勢(shì)于一體,提供從充電基礎(chǔ)設(shè)施的研發(fā)制造到軟件的智能互聯(lián),從私人充電用戶到半公共、公共以及商務(wù)用戶,從電力供應(yīng)的行業(yè)源頭到服務(wù)平臺(tái)的終端體驗(yàn),實(shí)現(xiàn)每一個(gè)業(yè)態(tài)的前后端無(wú)縫連接。
開邁斯為中國(guó)新生代消費(fèi)者而來(lái),不僅注重私家電動(dòng)車主的充電體驗(yàn),還以高端的品質(zhì)服務(wù)提供用戶便捷無(wú)憂、智能高效的全新充電體驗(yàn),開啟樂(lè)享生活的旅程。同時(shí),開邁斯致力于為電動(dòng)出行提供全場(chǎng)景充電服務(wù),依托強(qiáng)大的研發(fā)實(shí)力、先進(jìn)的核心技術(shù)和高質(zhì)量服務(wù),還收獲了國(guó)內(nèi)新能源汽車充電領(lǐng)域的諸多獎(jiǎng)項(xiàng):2021 年,開邁斯榮膺“中國(guó)充電樁行業(yè)最佳運(yùn)營(yíng)服務(wù)創(chuàng)新獎(jiǎng)”;2023 年 3 月,開邁斯一舉獲得“高質(zhì)量充電五星級(jí)場(chǎng)站獎(jiǎng)“,成為首批獲得五星級(jí)評(píng)價(jià)的優(yōu)秀充電運(yùn)營(yíng)商(五星級(jí)別是最高級(jí)別最高標(biāo)準(zhǔn)的場(chǎng)站);同年 6 月,開邁斯榮獲 2023 中國(guó)充換電行業(yè)十大影響力運(yùn)營(yíng)商品牌獎(jiǎng)。開邁斯將持續(xù)推動(dòng)充電網(wǎng)絡(luò)建設(shè)速度和充電用戶旅程的優(yōu)化創(chuàng)新,并將聚焦高功率充電設(shè)備研發(fā)和新能源服務(wù)領(lǐng)域的探索,從而推動(dòng)新能源與新能源汽車深度融合的綠色發(fā)展。
業(yè)務(wù)穩(wěn)定性挑戰(zhàn)大
2023 年,開邁斯將繼續(xù)致力于以用戶為中心的整合創(chuàng)新,致力打造智能電動(dòng)出行。截止今年 5 月底,開邁斯充電網(wǎng)絡(luò)覆蓋國(guó)內(nèi) 180 城,建設(shè) 1,198 座充電站和 10,490 個(gè)充電終端,積累用戶超 196 萬(wàn)。從建設(shè)滯后到“適度超前”,未來(lái)三年充電樁產(chǎn)業(yè)將迎來(lái)大發(fā)展,市場(chǎng)規(guī)模達(dá)千億級(jí)?,F(xiàn)在全國(guó)各地很多城市在對(duì)充電樁的增設(shè)和利用上在不斷升級(jí)加碼,隨著新能源汽車的發(fā)展,充電用戶群體的訴求飛速增長(zhǎng),開邁斯伴隨著業(yè)務(wù)的快速增長(zhǎng),對(duì)其架構(gòu)的穩(wěn)定性以及可用性也提出了前所未有的挑戰(zhàn)。
開邁斯采用傳統(tǒng)的 SpringBoot 方式進(jìn)行應(yīng)用開發(fā),應(yīng)用間通過(guò) Http 請(qǐng)求方式進(jìn)行互通互聯(lián),也正是 SpringBoot 架構(gòu)的簡(jiǎn)單性,有效幫助到開邁斯的業(yè)務(wù)以及微服務(wù)數(shù)量進(jìn)行快速擴(kuò)張。但是隨著微服務(wù)規(guī)模的增大,逐漸發(fā)現(xiàn)應(yīng)用在發(fā)布、運(yùn)行等各個(gè)階段的都存在一些穩(wěn)定性與效率上的問(wèn)題。隨著用戶與的增多,相應(yīng)的需求也越來(lái)越多,業(yè)務(wù)場(chǎng)景也越來(lái)越復(fù)雜。在這個(gè)時(shí)候僅依靠?jī)?nèi)部測(cè)試很難保證可以覆蓋到所有的場(chǎng)景,每次應(yīng)用的發(fā)布都需要進(jìn)行充分的測(cè)試與足夠的灰度驗(yàn)證。為了滿足快速迭代的業(yè)務(wù)訴求,如何可以做到低成本地進(jìn)行多個(gè)迭代在開發(fā)環(huán)境并行,并且保證每次業(yè)務(wù)發(fā)版的穩(wěn)定,成了提效的關(guān)鍵。
在大規(guī)模之下,再小的問(wèn)題都會(huì)牽一發(fā)而動(dòng)全身。一方面,我們面對(duì)的流量是隨機(jī)的、無(wú)法預(yù)測(cè)的,當(dāng)激增流量超出服務(wù)承載上限時(shí),可能會(huì)使服務(wù)變慢、負(fù)載飆高,導(dǎo)致服務(wù)崩潰。另一方面,分布式微服務(wù)架構(gòu)是復(fù)雜的網(wǎng)狀架構(gòu),調(diào)用鏈路錯(cuò)綜復(fù)雜,這時(shí)候任何一個(gè)服務(wù)(包括依賴的外部服務(wù))出現(xiàn)不穩(wěn)定因素(如慢調(diào)用或異常)時(shí),都有可能把上游調(diào)用方拖垮,進(jìn)而形成級(jí)聯(lián)影響。因此,在微服務(wù)治理中,我們需要一些手段來(lái)預(yù)防這些不穩(wěn)定的情況。
面對(duì)持續(xù)演進(jìn)增長(zhǎng)的微服務(wù)架構(gòu),開邁斯架構(gòu)同學(xué)也意識(shí)到需要引入微服務(wù)治理能力對(duì)當(dāng)前的微服務(wù)進(jìn)行恰當(dāng)?shù)闹卫?,從而進(jìn)一步提升微服務(wù)的穩(wěn)定性與效率。 同樣的,業(yè)務(wù)依舊面臨快速發(fā)展的訴求,如果將原先的 Spring Boot 框架升級(jí)成 Spring Cloud 并且引入各種高階的服務(wù)治理能力,對(duì)于目前面對(duì)業(yè)務(wù)快速發(fā)展的開邁斯研發(fā)同學(xué)來(lái)說(shuō),需要投入成本過(guò)于太大。
無(wú)感實(shí)現(xiàn)微服務(wù)架構(gòu)升級(jí)
是否有一種不用改代碼的方式實(shí)現(xiàn)我們微服務(wù)的治理能力呢?比如通過(guò)實(shí)施全鏈路灰度發(fā)布來(lái)避免變更帶來(lái)的穩(wěn)定性風(fēng)險(xiǎn);通過(guò)限流降級(jí)能力保障運(yùn)行態(tài)的穩(wěn)定性,解決不確定的流量帶來(lái)的穩(wěn)定性風(fēng)險(xiǎn);通過(guò)鑒權(quán)能力解決微服務(wù)間調(diào)用的安全風(fēng)險(xiǎn)。這就好比,我們?nèi)绾慰梢栽陲w機(jī)高速運(yùn)行的過(guò)程中,通過(guò)更換引擎來(lái)提升飛機(jī)的性能?更關(guān)鍵的是,對(duì)于我們飛機(jī)上的乘客來(lái)說(shuō),還要是無(wú)感的。
我們將問(wèn)題進(jìn)一步抽象,如何可以不改代碼,實(shí)現(xiàn)任意 Java 應(yīng)用的服務(wù)治理能力,并且在這個(gè)過(guò)程中我們需要確保穩(wěn)定性、問(wèn)題診斷效率、架構(gòu)的可持續(xù)性、性能等一系列現(xiàn)實(shí)的因素。
技術(shù)的探索總是為業(yè)務(wù)服務(wù)的,我們圍繞著開邁斯的方案進(jìn)行了一步討論,是否可以通過(guò)統(tǒng)一南北和東西向流量治理的方案來(lái)解決用戶無(wú)侵入服務(wù)治理的難題?
-
MSE?云原生網(wǎng)關(guān)是兼容 K8s Ingress 標(biāo)準(zhǔn)的下一代網(wǎng)關(guān)產(chǎn)品,將流量網(wǎng)關(guān)、微服務(wù)網(wǎng)關(guān) 和 WAF 安全網(wǎng)關(guān)三合一,具備高集成、易使用、易擴(kuò)展、熱更新的特點(diǎn)。它打通了 K8s/Nacos 等多種服務(wù)來(lái)源,通過(guò)無(wú)損上下線、全鏈路灰度、過(guò)載保護(hù)、故障自愈、限流降級(jí)等手段,提升整個(gè)鏈路的應(yīng)用穩(wěn)定性。
-
MSE 云原生網(wǎng)關(guān)采用了全托管的模式,用戶在選擇云原生網(wǎng)關(guān)之后,只需要關(guān)心網(wǎng)關(guān)的具體使用,無(wú)需關(guān)心云原生網(wǎng)關(guān)本身的運(yùn)維、穩(wěn)定性、監(jiān)控、報(bào)警 等功能, 開箱即用,使用門檻低。
考慮到云原生網(wǎng)關(guān)可以通過(guò)路由規(guī)則統(tǒng)一流量以及流控,那么是否能夠通過(guò) Higress 實(shí)現(xiàn)服務(wù)間調(diào)用流量的治理訴求?
服務(wù)間的流量轉(zhuǎn)發(fā)與治理
既然思路敲定了,大家評(píng)估完了穩(wěn)定性、安全與成本之后,那么就快速開始方案的實(shí)踐與探索了。我們首先面臨的問(wèn)題是原先通過(guò)域名調(diào)用 K8s Service 的方式,我們?nèi)绾螌⒘髁哭D(zhuǎn)發(fā)至 Higress 并且通過(guò) Higress 再轉(zhuǎn)發(fā)給真實(shí)對(duì)應(yīng)的 Pod 呢?并且在這個(gè)過(guò)程中我們需要考慮方案的穩(wěn)定性。
- 直接想到的方式就是修改 K8s 中的 Service 跟 Endpoints 配置,利用 coreDNS 能力將流量轉(zhuǎn)發(fā)至 Higress。
apiVersion: v1
kind: Service
metadata:
name: provider
spec:
type: ClusterIP
clusterIP: None
---
apiVersion: v1
kind: Endpoints
metadata:
name: provider
spec:
subsetS:
ip: ${higress-slb}
port: 80
- 出于商業(yè)化穩(wěn)定性的考慮 CoreDNS,可以使用同類型產(chǎn)品 privatelinkZone DNS 進(jìn)行替代,同時(shí)可以配置 CNAME 類型的 DNS 記錄批量將服務(wù)間訪問(wèn)的域名 *.camsnet.com 切換至云原生網(wǎng)關(guān)上。
到目前為止我們完成了 Order 的流量被先轉(zhuǎn)發(fā)至內(nèi)部網(wǎng)關(guān) Higress 上,接下來(lái)我們需要配置 Higress 路由規(guī)則,將流量轉(zhuǎn)發(fā)至真實(shí)的目標(biāo)服務(wù)中。
- 我們?cè)?MSE 云原生網(wǎng)關(guān)(Higress 商業(yè)版)中同步容器服務(wù)的 Service 至網(wǎng)關(guān),并且配置對(duì)應(yīng)的路由規(guī)則,實(shí)現(xiàn)流量轉(zhuǎn)發(fā)。
流量經(jīng)過(guò) MSE 云原生網(wǎng)關(guān)轉(zhuǎn)發(fā)之后,我們就可以做更多的治理能力了。
- 這個(gè)過(guò)程中我們直接可以配置標(biāo)簽路由實(shí)現(xiàn)灰度發(fā)布的能力,再結(jié)合鏈路追蹤實(shí)現(xiàn)全鏈路灰度的能力。
- 這個(gè)過(guò)程中我們可以在路由上配置 JWT 鑒權(quán)規(guī)則,從而達(dá)到服務(wù)間的安全調(diào)用。
可觀測(cè)與全鏈路追蹤
開邁斯通過(guò)接入應(yīng)用實(shí)時(shí)監(jiān)控服務(wù) ARMS -應(yīng)用監(jiān)控,無(wú)需修改一行代碼就可以實(shí)現(xiàn)應(yīng)用的監(jiān)控診斷能力,可以快速了解應(yīng)用最關(guān)鍵的響應(yīng)時(shí)間,吞吐量,錯(cuò)誤率這黃金三指標(biāo),同時(shí)根據(jù)指標(biāo)的異常利用調(diào)用鏈能力對(duì)整個(gè)微服務(wù)進(jìn)行快速跟蹤。
同時(shí)鏈路追蹤能力也為應(yīng)用實(shí)現(xiàn)全鏈路灰度提供了一個(gè)技術(shù)底座支持。
全鏈路流量標(biāo)簽透?jìng)?/h3>
借助 Tracing Baggage 機(jī)制在全鏈路中傳遞對(duì)應(yīng)染色標(biāo)識(shí),因?yàn)榇蟛糠?Tracing 框架都支持 Baggage 概念及能力,如:OpenTelemetry、Skywalking、Jaeger 等等。當(dāng)然 ARMS Tracing 能力也是符合這個(gè)標(biāo)準(zhǔn)的,我們通過(guò)實(shí)現(xiàn) Higress WASM 插件,在 Higress outbound Filter 中將指定的透?jìng)?key 如 x-mse-tag 從 Tracing 協(xié)議指定位置的 Baggage 中讀出 x-mse-tag 對(duì)應(yīng)的值,并塞入到 Http 的 Header 中,供 Higress 進(jìn)行路由。從而實(shí)現(xiàn)自定標(biāo)簽全鏈路透?jìng)鞯哪芰Α?/p>
具備自定標(biāo)簽全鏈路透?jìng)鞯哪芰χ?,我們就可以?gòu)建完整的全鏈路灰度能力了。什么是全鏈路灰度呢?
在微服務(wù)架構(gòu)下,有一些需求開發(fā),涉及到微服務(wù)調(diào)用鏈路上的多個(gè)微服務(wù)同時(shí)發(fā)生了改動(dòng),通常每個(gè)微服務(wù)都會(huì)有灰度環(huán)境或分組來(lái)接受灰度流量,我們希望通過(guò)進(jìn)入上游灰度環(huán)境的流量,也能進(jìn)入下游灰度的環(huán)境中,確保 1 個(gè)請(qǐng)求始終在灰度環(huán)境中傳遞,即使這個(gè)調(diào)用鏈路上有一些微服務(wù)沒(méi)有灰度環(huán)境,這些應(yīng)用請(qǐng)求下游的時(shí)候依然能夠回到灰度環(huán)境中。如果一次發(fā)布涉及到鏈路中的多個(gè)微服務(wù),我們可以順滑地進(jìn)行全鏈路灰度發(fā)布,并且不用擔(dān)心灰度流量亂竄的風(fēng)險(xiǎn)。
當(dāng)我們實(shí)現(xiàn)全鏈路透?jìng)?x-mse-tag 標(biāo)簽后,我們可以在 Higress 路由上,配置基于 x-mse-tag 的標(biāo)簽路由規(guī)則,實(shí)現(xiàn)帶有特定標(biāo)簽的流量在應(yīng)用特定版本的節(jié)點(diǎn)內(nèi)流量閉環(huán),從而實(shí)現(xiàn)“流量泳道”的全鏈路灰度能力。
流量防護(hù)能力
如何可以不用修改代碼,實(shí)現(xiàn)流量防護(hù)能力?以常見(jiàn)的流量控制與熔斷降級(jí)為例,下面我們先來(lái)介紹一下流量防護(hù)能力。
- 流量控制
流量是非常隨機(jī)性的、不可預(yù)測(cè)的。前一秒可能還風(fēng)平浪靜,后一秒可能就出現(xiàn)流量洪峰了(例如雙十一零點(diǎn)的場(chǎng)景)。每個(gè)系統(tǒng)、服務(wù)都有其能承載的容量上限,如果突然而來(lái)的流量超過(guò)了系統(tǒng)的承受能力,就可能會(huì)導(dǎo)致請(qǐng)求處理不過(guò)來(lái),堆積的請(qǐng)求處理緩慢,CPU/Load 飆高,最后導(dǎo)致系統(tǒng)崩潰。因此,我們需要針對(duì)這種突發(fā)的流量來(lái)進(jìn)行限制,在盡可能處理請(qǐng)求的同時(shí)來(lái)保障服務(wù)不被打垮,這就是流量控制。
- 熔斷降級(jí)
現(xiàn)代微服務(wù)架構(gòu)都是分布式的,由非常多的服務(wù)組成。不同服務(wù)之間相互調(diào)用,組成復(fù)雜的調(diào)用鏈路。以上的問(wèn)題在鏈路調(diào)用中會(huì)產(chǎn)生放大的效果。復(fù)雜鏈路上的某一環(huán)不穩(wěn)定,就可能會(huì)層層級(jí)聯(lián),最終導(dǎo)致整個(gè)鏈路都不可用。因此我們需要對(duì)不穩(wěn)定的弱依賴服務(wù)進(jìn)行熔斷降級(jí),暫時(shí)切斷不穩(wěn)定調(diào)用,避免局部不穩(wěn)定因素導(dǎo)致整體的雪崩。
開邁斯通過(guò)接入 MSE 服務(wù)治理流量防護(hù)能力(Sentinel 企業(yè)版),無(wú)縫實(shí)現(xiàn)流量防護(hù)能力。 相比社區(qū)版本,Sentinel 企業(yè)版無(wú)論是在使用還是功能層面都有一定的優(yōu)勢(shì)。
更多的探索與實(shí)踐
不需要改代碼,我們也能快速具備完整、體系化的微服務(wù)治理能力。目前開邁斯基于 Higress 實(shí)現(xiàn)了全鏈路灰度、全鏈路追蹤與可觀測(cè)、流量防護(hù)等一系列能力,使得開邁斯當(dāng)前的架構(gòu)可以更加從容地面對(duì)快速增長(zhǎng)業(yè)務(wù)帶來(lái)的挑戰(zhàn)。文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-725114.html
另一方面,對(duì)于 Higress 來(lái)說(shuō),開邁斯方案的落地為 Higress 生態(tài)的發(fā)展注入了新鮮的思路,我們也在持續(xù)地提升 Higress 的易用性與穩(wěn)定性,希望可以給更多企業(yè)帶來(lái)更大的價(jià)值。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-725114.html
到了這里,關(guān)于充換電企業(yè)開邁斯低成本提升線上應(yīng)用穩(wěn)定性的最佳實(shí)踐的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!