作者:王夕寧、 劉強(qiáng)、 華相
公司介紹
麗迅物流是百麗旗下專注于時尚產(chǎn)業(yè)、為企業(yè)提供專業(yè)物流及供應(yīng)鏈解決方案的服務(wù)商。其產(chǎn)品服務(wù)主要包括城市落地配、倉配一體、干線運(yùn)輸及定制化解決方案。通過自研智能化物流管理平臺,全面助力企業(yè)合作集約化發(fā)展。目前,麗迅物流已在全國擁有 70+ 全渠道實(shí)體云倉、6 大中心電商倉,總面積達(dá) 100 萬+ 平方米,服務(wù)覆蓋 300+ 城市、3000+ 商圈,為多家知名時尚品牌及其品牌門店提供全渠道配送服務(wù)。
為了降低業(yè)務(wù)各環(huán)節(jié)中的運(yùn)維成本、提高物流服務(wù)效率,2021 年 8 月起,麗迅物流開始在阿里云上完成自身從 IDC 自建到全面云原生化的進(jìn)程。其中使用了阿里云容器鏡像倉庫企業(yè)版 ACR EE 和阿里云容器服務(wù) ACK 作為容器制品管理及調(diào)度平臺,使用了阿里云服務(wù)網(wǎng)格 ASM 作為云原生應(yīng)用服務(wù)的分布式管理平臺,通過服務(wù)網(wǎng)格的服務(wù)治理和流量控制功能,實(shí)現(xiàn)了應(yīng)用程序的高效部署和擴(kuò)展。
通過本文,麗迅物流架構(gòu)師劉強(qiáng)分享了關(guān)于基于阿里云服務(wù)網(wǎng)格 ASM 如何加速企業(yè)業(yè)務(wù)云原生化進(jìn)程的實(shí)踐經(jīng)驗(yàn)。
業(yè)務(wù)痛點(diǎn)
在技術(shù)架構(gòu)轉(zhuǎn)型及業(yè)務(wù)快速發(fā)展的背景下,麗迅物流需要和各供應(yīng)鏈支撐平臺、研發(fā)平臺等多個業(yè)務(wù)單元和合作伙伴進(jìn)行業(yè)務(wù)交互,其業(yè)務(wù)系統(tǒng)多元化并且具有開放性。在市場環(huán)境和消費(fèi)者需求快速變化的現(xiàn)狀下,我們更希望將精力專注于核心業(yè)務(wù)的研發(fā)。包括了以下需要解決的業(yè)務(wù)問題痛點(diǎn):
-
應(yīng)用版本迭代困難
面對快速變化的客戶、業(yè)務(wù)要求,所依賴的應(yīng)用功能越來越多。業(yè)務(wù)越復(fù)雜,代碼的耦合度也越來越高,新特性上線周期逐步拉長,使得應(yīng)用版本迭代愈發(fā)困難。 -
異構(gòu)系統(tǒng)無法統(tǒng)一治理
企業(yè)級 IT 系統(tǒng)多語言、多協(xié)議、多框架的現(xiàn)狀,為統(tǒng)一進(jìn)行服務(wù)整合、服務(wù)治理設(shè)下困局。同時,由于 IT 系統(tǒng)部署基礎(chǔ)設(shè)施復(fù)雜,支持跨平臺、跨多個 Kubernetes 集群的技術(shù)難點(diǎn)亟需解決。 -
構(gòu)建統(tǒng)一的云原生應(yīng)用服務(wù)研發(fā)平臺存在一定困難
以 Spring Cloud 為代表的開源微服務(wù)框架成為業(yè)界主流的微服務(wù)腳手架。這些框架已具備服務(wù)注冊發(fā)現(xiàn)、健康檢查等基礎(chǔ)微服務(wù)能力,但面對企業(yè)級應(yīng)用所涉及的服務(wù)訪問安全控制、服務(wù)流控、路由控制、灰度發(fā)布等高階服務(wù)治理問題,仍須應(yīng)用自行整合大量的第三方開源框架。這使得云原生應(yīng)用服務(wù)業(yè)務(wù)應(yīng)用設(shè)計(jì)開發(fā)具有較高的技術(shù)門檻,對于企業(yè)構(gòu)建統(tǒng)一的云原生應(yīng)用服務(wù)研發(fā)平臺帶來一定困難。 -
復(fù)雜的運(yùn)維體系
現(xiàn)有的運(yùn)維體系存在一定的復(fù)雜性,相比于服務(wù)網(wǎng)格提供圍繞流量管理、安全性、可觀測性的一系列功能,目前對于大規(guī)模管理應(yīng)用服務(wù)的運(yùn)維體系存在挑戰(zhàn)。
解決方案
作為業(yè)內(nèi)首個全托管 Istio 兼容的服務(wù)網(wǎng)格產(chǎn)品 ASM,一開始從架構(gòu)上就保持了業(yè)界領(lǐng)先性以及社區(qū)與業(yè)界發(fā)展的一致性,控制平面的組件托管在阿里云側(cè),與數(shù)據(jù)面?zhèn)鹊挠脩艏邯?dú)立,保持高可用部署與穩(wěn)定性。ASM 產(chǎn)品是基于社區(qū)開源的 Istio 定制實(shí)現(xiàn)的,在托管的控制面?zhèn)忍峁┝擞糜谥尉?xì)化的流量管理和安全管理的組件能力。通過托管模式,解耦了 Istio 組件與所管理的 K8s 集群的生命周期管理,使得架構(gòu)更加靈活,提升了系統(tǒng)的可伸縮性。
阿里云服務(wù)網(wǎng)格 ASM 架構(gòu)圖
托管式服務(wù)網(wǎng)格 ASM 在成為多種類型計(jì)算服務(wù)統(tǒng)一管理的基礎(chǔ)設(shè)施中,提供了統(tǒng)一的流量管理能力、統(tǒng)一的服務(wù)安全能力、統(tǒng)一的服務(wù)可觀測性能力、以及基于 WebAssembly 實(shí)現(xiàn)統(tǒng)一的代理可擴(kuò)展能力,以此構(gòu)筑企業(yè)級能力。
除大數(shù)據(jù)的分析體系外,麗迅物流的當(dāng)前系統(tǒng)已經(jīng)全面接入服務(wù)網(wǎng)格體系,包括使用以下能力:
麗迅科技業(yè)務(wù)應(yīng)用部署架構(gòu)圖
- 認(rèn)證鑒權(quán)體系
客戶端發(fā)起業(yè)務(wù)請求,后端需要驗(yàn)證用戶請求的合法性。例如,判斷用戶請求是否有該資源訪問權(quán)限。認(rèn)證通過后,返回結(jié)果中還需要增加一些原始請求中沒有的信息,例如用戶認(rèn)證通過后在 header 中添加業(yè)務(wù)版本號、用戶 ID 等。
針對上述業(yè)務(wù)場景,ASM 提供了自定義授權(quán)服務(wù)。在 ASM 網(wǎng)關(guān)上加入鑒權(quán)流程,以確保只有得到授權(quán)的情況下,才能訪問關(guān)鍵服務(wù)。
具體可以參見:https://help.aliyun.com/document_detail/446628.html?spm=a2c4g.476420.0.0.25005e37CV8ta8
此外,阿里云服務(wù)網(wǎng)格 ASM 產(chǎn)品為服務(wù)網(wǎng)格下的每一個工作負(fù)載提供了簡單易用的身份定義,并根據(jù)特定場景提供定制機(jī)制用于擴(kuò)展身份構(gòu)建體系,同時兼容社區(qū) SPIFFE 標(biāo)準(zhǔn);并提供了基于策略的信任引擎作為構(gòu)建零信任的關(guān)鍵核心。
- 從微服務(wù)框架到服務(wù)網(wǎng)格的結(jié)合與遷移
在原系統(tǒng) 2.0 體系下,應(yīng)用微服務(wù)之間調(diào)用時通過服務(wù)注冊中心 Eureka 獲取實(shí)例的 IP 和端口,也就是說 Eureka 通過將服務(wù)實(shí)例注冊到注冊表中,并通過 Eureka 客戶端進(jìn)行負(fù)載均衡,使得服務(wù)可以根據(jù)需要動態(tài)地選擇可用的服務(wù)實(shí)例進(jìn)行連接。
在切換到 Kubernetes 和服務(wù)網(wǎng)格體系上之后,替換其中微服務(wù)應(yīng)用程序中的 Spring Cloud 模塊功能,包括服務(wù)注冊和發(fā)現(xiàn)切換到 Kubernetes 體系,基于 K8s service+Core DNS 實(shí)現(xiàn),也就是說,既然 Kubernetes 已經(jīng)在 Pod 調(diào)度的同時維護(hù)了服務(wù)和 Endpoint 間的數(shù)據(jù),那么就沒有必要再單獨(dú)搞一套名字服務(wù)的機(jī)制進(jìn)行服務(wù)注冊,統(tǒng)一收斂到 Kubernetes 的服務(wù)注冊與發(fā)現(xiàn)是最佳實(shí)踐。
經(jīng)過以上的簡單改造,各種不同語言、各種不同開發(fā)框架開發(fā)的服務(wù),只要業(yè)務(wù)協(xié)議相通,彼此可以互相訪問,訪問協(xié)議可以被網(wǎng)格管理,就都可以通過 ASM 進(jìn)行統(tǒng)一的管理。
控制面上可以配置統(tǒng)一的服務(wù)管理規(guī)則。數(shù)據(jù)面上,統(tǒng)一使用 Sidecar 代理進(jìn)行服務(wù)發(fā)現(xiàn)、負(fù)載均衡和其他流量、安全、可觀察性等相關(guān)能力。當(dāng)然在遷移過程中間,也可以階段性地保留原有微服務(wù)框架的注冊中心,使 ASM 和其他的服務(wù)發(fā)現(xiàn)結(jié)合使用的中間狀態(tài),讓網(wǎng)格中的服務(wù)可以訪問到微服務(wù)注冊中心的服務(wù)。
具體可以參見:https://help.aliyun.com/document_detail/2527072.html
- 全鏈路灰度
在生產(chǎn)環(huán)境正常運(yùn)行的同時,開始針對部分應(yīng)用服務(wù)進(jìn)行灰度升級,譬如圖中的 B 和 D 應(yīng)用進(jìn)行灰度,在不需要修改應(yīng)用邏輯的情況下,利用 Service Mesh 技術(shù)就可以實(shí)現(xiàn)根據(jù)請求來源或者請求的頭信息,動態(tài)地路由到不同版本的服務(wù)上。譬如,當(dāng)請求頭中包含 tag1 時,應(yīng)用A就會調(diào)用灰度版本 B,而 C 并沒有灰度版本,系統(tǒng)就會自動 fallback 回退到原有的版本。
全鏈路灰度示意圖當(dāng)您需要在多個服務(wù)間實(shí)現(xiàn)全鏈路的灰度發(fā)布時,可以通過配置 TrafficLabel 來識別流量特征,將網(wǎng)關(guān)入口流量分為正常流量和灰度流量?;叶攘髁刻卣鲿谡埱笳{(diào)用鏈經(jīng)過的各個服務(wù)間進(jìn)行傳遞,從而實(shí)現(xiàn)全鏈路灰度發(fā)布。
具體可以參見:https://help.aliyun.com/document_detail/377563.html?spm=a2c4g.2362128.0.0.50945dfcNA9kUg
- 統(tǒng)一的可觀測性體系和聯(lián)動分析
阿里云服務(wù)網(wǎng)格 ASM 提供了網(wǎng)格可觀測中心來統(tǒng)一進(jìn)行可觀測性體系和聯(lián)動分析,分為 3 個維度。
一是日志分析, 通過對數(shù)據(jù)平面的 AccessLog 采集分析,特別是對入口網(wǎng)關(guān)日志的分析,可以分析出服務(wù)請求的流量情況、狀態(tài)碼比例等,從而可以進(jìn)一步優(yōu)化這些服務(wù)間的調(diào)用。
第二個可觀測性能力是分布式追蹤能力。 為分布式應(yīng)用的開發(fā)者提供了完整的調(diào)用鏈路還原、調(diào)用請求量統(tǒng)計(jì)、鏈路拓?fù)?、?yīng)用依賴分析等工具,可以幫助開發(fā)者快速分析和診斷分布式應(yīng)用架構(gòu)下的性能瓶頸,提高微服務(wù)時代下的開發(fā)診斷效率。
第三個可觀測性能力是監(jiān)控能力。 根據(jù)監(jiān)視的四個維度(延遲,流量,錯誤和飽和度)生成一組服務(wù)指標(biāo),來了解、監(jiān)視網(wǎng)格中服務(wù)的行為。
此外,還提供了網(wǎng)格拓?fù)?,用于提供對服?wù)網(wǎng)格行為的即時洞察。除了強(qiáng)大的網(wǎng)格流量拓?fù)淇梢暬?,還提供了回放功能,可以選定過去時間段的流量。
- Envoy Filter 擴(kuò)展能力
ASM 提供了開箱即用的 EnvoyFilter 插件市場來維護(hù)擴(kuò)展插件的全生命周期管理。
基于內(nèi)置的模板,用戶只需要根據(jù)對應(yīng)的參數(shù)要求,進(jìn)行簡單配置,就可以部署出對應(yīng)的 EnvoyFilter 插件。通過這樣的機(jī)制,使得數(shù)據(jù)平面成為更易可擴(kuò)展的插件集合能力。
產(chǎn)品優(yōu)勢
服務(wù)網(wǎng)格作為一種用來管理應(yīng)用服務(wù)通信的基礎(chǔ)核心技術(shù),為應(yīng)用服務(wù)間的調(diào)用帶來了安全、可靠、快速、應(yīng)用無感知的流量路由、安全、可觀測能力。
可以看到,阿里云服務(wù)網(wǎng)格 ASM 為云原生應(yīng)用管理帶來了重要的優(yōu)勢,總結(jié)為以下六個方面。
優(yōu)勢之一:異構(gòu)服務(wù)統(tǒng)一治理
- 多語言多框架的互通與治理、與傳統(tǒng)微服務(wù)體系融合的雙模架構(gòu)
- 精細(xì)化的多協(xié)議流量控制、東西向與南北向流量的統(tǒng)一管理
- 統(tǒng)一的異構(gòu)計(jì)算基礎(chǔ)設(shè)施的自動服務(wù)發(fā)現(xiàn)
優(yōu)勢之二:端到端的可觀測
- 日志、監(jiān)控與跟蹤融合的一體化智能運(yùn)維
- 直觀易用的可視化網(wǎng)格拓?fù)?、基于顏色?biāo)識的健康識別體系
- 內(nèi)置最佳實(shí)踐、自助式網(wǎng)格診斷
優(yōu)勢之三:零信任安全
- 全局唯一的工作負(fù)載身份(Identity)、端到端 mTLS 加密、基于屬性的訪問控制 (ABAC)
- 一站式配置 JWT 鑒權(quán)、接入自定義外部授權(quán)系統(tǒng)、及外部 OIDC 認(rèn)證鑒權(quán)身份管理系統(tǒng)
- OPA 聲明式策略引擎、及基于儀表板的完整審計(jì)歷史記錄及洞察分析
優(yōu)勢之四:軟硬結(jié)合性能優(yōu)化
- 首個基于 Intel Multi-Buffer 技術(shù)提升 TLS 加解密的服務(wù)網(wǎng)格平臺
- NFD 自動探測硬件特征,自適應(yīng)支持諸如 AVX 指令集、QAT 加速等特性
- 首批通過可信云服務(wù)網(wǎng)格平臺以及性能評測先進(jìn)級認(rèn)證
優(yōu)勢之五:SLO 驅(qū)動的應(yīng)用彈性
- 服務(wù)級別目標(biāo) (SLO) 策略
- 基于可觀測性數(shù)據(jù)的應(yīng)用服務(wù)的自動彈性伸縮
- 多集群流量突發(fā)下的自動切換與故障容災(zāi)
優(yōu)勢之六:開箱即用擴(kuò)展&生態(tài)兼容
- 開箱即用的 EnvoyFilter 插件市場、WebAssembly 插件全生命周期管理
- 與 Proxyless 模式的統(tǒng)一融合,支持 SDK、內(nèi)核 eBPF 方式
- 兼容 Istio 生態(tài)系統(tǒng),支持 Serverless/Knative,AI Serving/KServe
建設(shè)成果
應(yīng)用阿里云服務(wù)網(wǎng)格 ASM 之后,高效解決了多語言技術(shù)棧情況下應(yīng)用鏈路調(diào)用復(fù)雜的運(yùn)維難題,并解決了與云上其他產(chǎn)品搭配使用時的易用性問題,從而使運(yùn)維效率提升了 40%。 同時,借助 ASM 提供的豐富的企業(yè)級能力和完備的可觀測能力,構(gòu)建服務(wù)網(wǎng)格的實(shí)施周期縮短了 50%。
參考:
[1]?運(yùn)維成本降低 50%,麗迅物流是如何應(yīng)對大規(guī)模容器鏡像管理挑戰(zhàn)的文章來源:http://www.zghlxwxcb.cn/news/detail-687377.html
[2]?如何構(gòu)建 Sidecarless 模式的高性能服務(wù)網(wǎng)格文章來源地址http://www.zghlxwxcb.cn/news/detail-687377.html
到了這里,關(guān)于服務(wù)網(wǎng)格實(shí)施周期縮短 50%,麗迅物流基于阿里云 ACK 和 ASM 的云原生應(yīng)用管理實(shí)踐的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!