自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

這個(gè)云原生開發(fā)的痛點(diǎn)你遇到了嗎?

云計(jì)算 云原生
在云原生時(shí)代,國(guó)內(nèi)外眾多云廠商釋放出強(qiáng)大的技術(shù)紅利,如何利用廉價(jià)、穩(wěn)定且高效的云設(shè)施是當(dāng)今的一個(gè)主要命題。在云上,我們可以很方便地創(chuàng)建虛擬網(wǎng)絡(luò)、虛擬機(jī)、數(shù)據(jù)庫(kù)、消息隊(duì)列等基礎(chǔ)設(shè)施和中間件,也可以使用容器服務(wù)、EDAS、SAE、函數(shù)計(jì)算等PaaS和Serverless服務(wù)來(lái)減輕應(yīng)用管控的壓力。

 背景

在云原生時(shí)代,國(guó)內(nèi)外眾多云廠商釋放出強(qiáng)大的技術(shù)紅利,如何利用廉價(jià)、穩(wěn)定且高效的云設(shè)施是當(dāng)今的一個(gè)主要命題。在云上,我們可以很方便地創(chuàng)建虛擬網(wǎng)絡(luò)、虛擬機(jī)、數(shù)據(jù)庫(kù)、消息隊(duì)列等基礎(chǔ)設(shè)施和中間件,也可以使用容器服務(wù)、EDAS、SAE、函數(shù)計(jì)算等PaaS和Serverless服務(wù)來(lái)減輕應(yīng)用管控的壓力。

但事情并不是一帆風(fēng)順的。應(yīng)用上云已是歷史大潮不可阻擋,但隨之而來(lái)開發(fā)者很快就體會(huì)到上云的另一面:由云上和云下網(wǎng)絡(luò)不通所帶來(lái)的開發(fā)體驗(yàn)割裂感。在上云之前,開發(fā)者可以在本地完成代碼開發(fā)、測(cè)試、聯(lián)調(diào)等開發(fā)流程閉環(huán);而上云之后,數(shù)據(jù)庫(kù)、緩存、消息隊(duì)列和其他微服務(wù)應(yīng)用都部署在云上的虛擬網(wǎng)絡(luò)之中,我們?cè)贌o(wú)法在本地完成開發(fā)流程。

如果是中東土豪,他可能會(huì)考慮使用物理專線來(lái)打通網(wǎng)絡(luò)。因?yàn)樗恍柚Ц豆饫w鋪設(shè)費(fèi)、樓內(nèi)光纜租賃費(fèi)、端口占用費(fèi)、流量費(fèi)等百萬(wàn)量級(jí)的錢,同時(shí)說(shuō)服安全團(tuán)隊(duì)來(lái)允許完全打通環(huán)境而已。

如果是專業(yè)運(yùn)維人員,他可能會(huì)考慮搭建虛擬專用網(wǎng)絡(luò)來(lái)打通網(wǎng)絡(luò)。當(dāng)他花費(fèi)精力搭建虛擬專用網(wǎng)絡(luò)服務(wù)器,發(fā)現(xiàn)同事們還是用不起來(lái),紛紛抱怨:

“一打開虛擬專用網(wǎng)絡(luò),整個(gè)本地系統(tǒng)網(wǎng)絡(luò)流量都轉(zhuǎn)發(fā)到云端了,其他事情干不了啦!”“除了配置虛擬專用網(wǎng)絡(luò),還要配置應(yīng)用運(yùn)行參數(shù),太麻煩了!”“云端服務(wù)怎么調(diào)用不了本地服務(wù),云端網(wǎng)絡(luò)路由添加了嗎?”...

看到這些問(wèn)題,運(yùn)維小哥內(nèi)心也感到心累...

而現(xiàn)在,我們提供了一個(gè)開箱即用的插件工具,無(wú)需你花費(fèi)大量的金錢或者人力。你所需要的只是在IDE中一鍵開啟開關(guān),然后通過(guò)IDE所啟動(dòng)的應(yīng)用就能訪問(wèn)到云端環(huán)境里的數(shù)據(jù)庫(kù)、MQ、緩存和其他微服務(wù)。所有的事情都由插件來(lái)幫你完成。

介紹

這款工具是我們自主研發(fā)的“端云互聯(lián)”插件,“端”指的是開發(fā)端,“云”指的是云上網(wǎng)絡(luò),通過(guò)某種方式實(shí)現(xiàn)“端”和“云”的雙向互通,并且沒(méi)有傳統(tǒng)虛擬專用網(wǎng)絡(luò)的問(wèn)題。

端云互聯(lián)功能集成在Alibaba Cloud Toolkit(簡(jiǎn)稱ACT)這個(gè)上云工具產(chǎn)品中,并支持Intellij IDEA和Eclipse兩款I(lǐng)DE。你只需在插件市場(chǎng)中搜索“Alibaba Cloud Toolkit”進(jìn)行安裝即可,例如在Intellij IDEA中搜索如下:

我們?cè)?018年就開始了端云互聯(lián)項(xiàng)目的研發(fā),這個(gè)過(guò)程中迭代了大大小小的版本,共經(jīng)歷了三個(gè)里程碑,至今有數(shù)十萬(wàn)人次的使用。下面來(lái)介紹它的特性支持和實(shí)現(xiàn)原理。

端云互聯(lián)1.0

1.0階段解決了本地和云端雙向互聯(lián)的問(wèn)題,使得本地服務(wù)不僅僅可訪問(wèn)云端資源,還可以跟云端服務(wù)互相通信。

雙向互聯(lián)

以下為端云互聯(lián)的核心架構(gòu),整體分為兩個(gè)模塊:通道服務(wù)和代理機(jī)。

其中,模塊功能如下:

代理機(jī):負(fù)責(zé)云端的流量轉(zhuǎn)發(fā)。端云互聯(lián)方案對(duì)代理機(jī)的要求很低,一臺(tái)普通規(guī)格的ECS就可以充當(dāng)“乞丐版”的代理機(jī)。并且,Debian、Ubuntu、Redhat等Linux系統(tǒng)已經(jīng)包含端云互聯(lián)所依賴的底層庫(kù),無(wú)需額外安裝其他軟件。通道服務(wù):負(fù)責(zé)本地的流量轉(zhuǎn)發(fā)。當(dāng)我們打開端云互聯(lián)開關(guān)并啟動(dòng)應(yīng)用時(shí),插件會(huì)在本地拉起一個(gè)通道服務(wù)進(jìn)程。這個(gè)進(jìn)程的職責(zé)非常簡(jiǎn)單,它只負(fù)責(zé)本地應(yīng)用和云端代理機(jī)之間的流量轉(zhuǎn)發(fā),無(wú)其他操作。

通道服務(wù)和代理機(jī)之間是使用加密通道來(lái)通信的,中間人無(wú)法竊取通道中的數(shù)據(jù)。而在微服務(wù)應(yīng)用中,我們結(jié)合Java原生的代理參數(shù)和自研的流量攔截方案來(lái)將應(yīng)用的流量轉(zhuǎn)發(fā)至通道服務(wù)。

開發(fā)人員在IDE中啟動(dòng)應(yīng)用時(shí),端云互聯(lián)插件會(huì)自動(dòng)拉起通道服務(wù),并注入相關(guān)參數(shù)至應(yīng)用中。啟動(dòng)后,應(yīng)用流量自動(dòng)轉(zhuǎn)發(fā)至通道服務(wù),無(wú)需人工干預(yù)。

從架構(gòu)上來(lái)看,端云互聯(lián)跟虛擬專用網(wǎng)絡(luò)有點(diǎn)類似,都分為服務(wù)端和客戶端。但實(shí)際上,兩者有很大的差異,下圖進(jìn)行了對(duì)比總結(jié):

其中,在“云端訪問(wèn)本地”這一點(diǎn)上,雖然兩者都支持,但具體原理并不相同。如果采取虛擬專用網(wǎng)絡(luò)方案,那么其他云端服務(wù)訪問(wèn)本地服務(wù)時(shí),需要手動(dòng)配置網(wǎng)絡(luò)路由,否則網(wǎng)絡(luò)不可達(dá)。而端云互聯(lián)通過(guò)改造微服務(wù)框架,可使得云端服務(wù)調(diào)用代理機(jī),再通過(guò)代理機(jī)轉(zhuǎn)發(fā)到本地應(yīng)用中,無(wú)需設(shè)置網(wǎng)絡(luò)路由。在易用性和安全性上,端云互聯(lián)都優(yōu)于虛擬專用網(wǎng)絡(luò)。

端云互聯(lián)2.0

在1.0階段,我們實(shí)現(xiàn)了本地和云端的雙向互通,這滿足了最基本的開發(fā)需求。在實(shí)際業(yè)務(wù)中,客戶提出了更高的要求。

我們一個(gè)客戶有龐大的研發(fā)團(tuán)隊(duì),他們都使用端云互聯(lián)進(jìn)行開發(fā),但在聯(lián)調(diào)時(shí)發(fā)現(xiàn)一個(gè)問(wèn)題:研發(fā)人員A發(fā)起的服務(wù)調(diào)用有時(shí)候調(diào)到別的節(jié)點(diǎn)去了,沒(méi)有到所期望的研發(fā)人員B的本地節(jié)點(diǎn)上。這個(gè)問(wèn)題是由于微服務(wù)框架的路由機(jī)制引起的,當(dāng)環(huán)境中一個(gè)服務(wù)存在多個(gè)節(jié)點(diǎn)時(shí),會(huì)使用隨機(jī)(或輪流)算法來(lái)進(jìn)行調(diào)用。微服務(wù)模塊越多,鏈路越長(zhǎng),這個(gè)問(wèn)題就越嚴(yán)重。

在2.0中,我們提供了多人精準(zhǔn)聯(lián)調(diào)能力,此能力可使得服務(wù)請(qǐng)求“指哪打哪”,可大幅提高服務(wù)聯(lián)調(diào)效率。除此之外,我們還提供基于代理的遠(yuǎn)程調(diào)試能力,方便本地對(duì)云端環(huán)境中的微服務(wù)節(jié)點(diǎn)進(jìn)行調(diào)試,提高調(diào)試效率。

同時(shí),通過(guò)橫向產(chǎn)品支持,端云互聯(lián)2.0可服務(wù)于云原生產(chǎn)品EDAS、SAE和MSE等開發(fā)者,受到廣泛好評(píng)。

多人精準(zhǔn)聯(lián)調(diào)

下圖描述了多人聯(lián)調(diào)的一個(gè)典型場(chǎng)景:

小王負(fù)責(zé)服務(wù)A,小張負(fù)責(zé)服務(wù)B,在一次需求迭代中他們完成了代碼開發(fā),正在進(jìn)行聯(lián)調(diào)。由于微服務(wù)框架使用隨機(jī)(或輪流)策略進(jìn)行調(diào)用,導(dǎo)致了兩個(gè)問(wèn)題:

測(cè)試同學(xué)小馬正在環(huán)境中進(jìn)行功能測(cè)試,測(cè)試請(qǐng)求調(diào)用到小王和小張的本地節(jié)點(diǎn)上來(lái)了,導(dǎo)致測(cè)試不符合預(yù)期;小王發(fā)起的測(cè)試請(qǐng)求調(diào)到其他節(jié)點(diǎn)去了,沒(méi)到他和小張的節(jié)點(diǎn)上,聯(lián)調(diào)效率很低;

通過(guò)多人精準(zhǔn)聯(lián)調(diào)能力,可以使得只有小王發(fā)起的請(qǐng)求調(diào)到他的本地節(jié)點(diǎn)和小張的本地節(jié)點(diǎn),而測(cè)試小馬的請(qǐng)求只在云端穩(wěn)定環(huán)境中調(diào)用。

小王和小張需要做的事情比較簡(jiǎn)單,他們只需要在控制臺(tái)開啟全鏈路流控功能,創(chuàng)建一個(gè)用于測(cè)試的流控環(huán)境。流控環(huán)境可配置請(qǐng)求識(shí)別規(guī)則,可通過(guò)Cookie、Header、請(qǐng)求參數(shù)等維度來(lái)判斷是否為測(cè)試請(qǐng)求,如果判斷通過(guò)則將請(qǐng)求調(diào)用到該環(huán)境中的節(jié)點(diǎn)中去。

然后小王和小張?jiān)贗DE中將本地節(jié)點(diǎn)添加到這個(gè)測(cè)試環(huán)境中去即可,如下所示:

這樣配置完成后,那么只有符合特征的請(qǐng)求才會(huì)調(diào)用到小王和小張的節(jié)點(diǎn),下圖中只有Header包含“測(cè)試”的請(qǐng)求才會(huì)到他們節(jié)點(diǎn)中:

遠(yuǎn)程調(diào)試

遠(yuǎn)程調(diào)試(Remote Debug)一直都是排查問(wèn)題的重要手段,但在云原生環(huán)境里遠(yuǎn)程調(diào)試并不是一件簡(jiǎn)單的事情。這是因?yàn)樵谀J(rèn)情況下云上的微服務(wù)節(jié)點(diǎn)通常不能被公網(wǎng)訪問(wèn),如果需要進(jìn)行遠(yuǎn)程調(diào)試,我們需要對(duì)目標(biāo)節(jié)點(diǎn)開放公網(wǎng)訪問(wèn),并且設(shè)置安全策略以放通調(diào)試端口流量。

如果當(dāng)前有A,B,C三個(gè)服務(wù),每個(gè)服務(wù)有3個(gè)節(jié)點(diǎn),那么我們需要分別建立3個(gè)安全組,并綁定9個(gè)公網(wǎng)網(wǎng)卡到機(jī)器節(jié)點(diǎn)。如下所示:

這種方式存在以下問(wèn)題:

浪費(fèi)成本:每個(gè)微服務(wù)節(jié)點(diǎn)都需要綁定公網(wǎng)網(wǎng)卡,成本跟測(cè)試節(jié)點(diǎn)數(shù)成正相關(guān)。配置復(fù)雜:在云上往往采取彈性伸縮的策略來(lái)維護(hù)機(jī)器節(jié)點(diǎn),達(dá)到“用時(shí)即建,用完即放”的按需使用目的。而每當(dāng)創(chuàng)建新的機(jī)器節(jié)點(diǎn)我們都需要單獨(dú)配置公網(wǎng)網(wǎng)卡和安全組,使用上較繁瑣。存在安全性隱患:如果微服務(wù)節(jié)點(diǎn)都對(duì)外暴露公網(wǎng)訪問(wèn),會(huì)存在較大的安全風(fēng)險(xiǎn)。

甚至在有些場(chǎng)景下,由于安全要求內(nèi)網(wǎng)機(jī)器節(jié)點(diǎn)不允許掛載公網(wǎng)網(wǎng)卡。對(duì)于這些問(wèn)題,端云互聯(lián)支持基于代理的遠(yuǎn)程調(diào)試,如下所示:

調(diào)試請(qǐng)求通過(guò)通道服務(wù)來(lái)轉(zhuǎn)發(fā)給代理機(jī),再由代理機(jī)轉(zhuǎn)發(fā)至目標(biāo)調(diào)試節(jié)點(diǎn)。通道服務(wù)和代理機(jī)之間的通道是加密的。對(duì)于安全要求非常嚴(yán)格的場(chǎng)景,可以使用安全組(或白名單)策略來(lái)進(jìn)一步提高代理機(jī)的安全水位。

在使用上,你只需配置Alibaba Cloud Remote Debug,配置內(nèi)容跟IDE自帶的遠(yuǎn)程調(diào)試配置基本相同,但支持使用代理進(jìn)行連接,如下所示:

其中有如下配置項(xiàng):

Proxy:指定云端代理機(jī)。當(dāng)運(yùn)行時(shí),插件會(huì)自動(dòng)拉起通道服務(wù)連接代理機(jī),無(wú)需人工干預(yù)。Host:指定遠(yuǎn)程調(diào)試的目標(biāo)機(jī)器節(jié)點(diǎn)IP。圖中為172.16.0.1。Port:指定遠(yuǎn)程調(diào)試的目標(biāo)機(jī)器調(diào)試端口。圖中為5005。

云原生產(chǎn)品支持

端云互聯(lián)2.0支持了阿里云上微服務(wù)領(lǐng)域三大產(chǎn)品,EDAS(企業(yè)級(jí)分布式應(yīng)用服務(wù))、SAE(Serverless應(yīng)用引擎)和MSE(微服務(wù)引擎)。這三個(gè)產(chǎn)品都支持微服務(wù)治理能力,滿足不同的企業(yè)需求,產(chǎn)品特性如下:

企業(yè)級(jí)分布式應(yīng)用服務(wù) EDAS(Enterprise Distributed Application Service):是應(yīng)用全生命周期管理和監(jiān)控的一站式 PaaS 平臺(tái),支持部署于 Kubernetes/ECS,無(wú)侵入支持 Java/Go/Python/PHP/.NetCore 等多語(yǔ)言應(yīng)用的發(fā)布運(yùn)行和服務(wù)治理 ,Java 支持 Spring Cloud、Apache Dubbo 近五年所有版本,多語(yǔ)言應(yīng)用一鍵開啟 Service Mesh。Serverless 應(yīng)用引擎(Serverless App Engine,簡(jiǎn)稱 SAE):實(shí)現(xiàn)了Serverless 架構(gòu) + 微服務(wù)架構(gòu)的融合,真正按需使用、按量計(jì)費(fèi),節(jié)省閑置計(jì)算資源,同時(shí)免去 IaaS 運(yùn)維,有效提升開發(fā)運(yùn)維效率。SAE 支持 Spring Cloud、Dubbo 等流行的微服務(wù)架構(gòu),支持控制臺(tái)、Jenkins、云效、插件等部署方式。除了微服務(wù)應(yīng)用外,您還能通過(guò) Docker 鏡像部署任何語(yǔ)言的應(yīng)用。微服務(wù)引擎(Micro Service Engine,簡(jiǎn)稱MSE):是一個(gè)面向業(yè)界主流開源微服務(wù)生態(tài)的一站式微服務(wù)平臺(tái), 幫助微服務(wù)用戶更穩(wěn)定、更便捷、更低成本的使用開源微服務(wù)技術(shù)構(gòu)建微服務(wù)體系。提供注冊(cè)中心、配置中心全托管(兼容Nacos/ZooKeeper/Eureka)、網(wǎng)關(guān)(兼容Zuul/Kong/Spring Cloud Gateway)和無(wú)侵入的開源增強(qiáng)服務(wù)治理能力。

因此,無(wú)論你是EDAS用戶、SAE用戶還是MSE用戶,都可以使用端云互聯(lián)能力來(lái)提高上云的開發(fā)效率。在插件上,這三個(gè)產(chǎn)品的配置步驟是基本相同的,除了產(chǎn)品自身的差異性以外。配置頁(yè)如下所示:

在未來(lái),我們會(huì)支持阿里云上更多的云原生產(chǎn)品進(jìn)行互聯(lián),同時(shí)也會(huì)服務(wù)于阿里云以外的云原生開發(fā)者,敬請(qǐng)期待。

端云互聯(lián)3.0

2.0版本解決了Java應(yīng)用跟云端互聯(lián)互通的問(wèn)題,很多細(xì)節(jié)也打磨的比較完善,但它缺乏對(duì)容器領(lǐng)域和診斷能力的支持。這些能力我們?cè)?.0階段進(jìn)行了補(bǔ)齊。

如果你是Kubernetes用戶,那么可以使用3.0插件的Kubernetes代理能力,無(wú)需額外配置云端代理機(jī)。

如果你是非Java語(yǔ)言用戶,或者對(duì)應(yīng)用運(yùn)行環(huán)境有一定要求,那么可以使用3.0插件的容器級(jí)互聯(lián)能力,來(lái)在本地使用Docker運(yùn)行應(yīng)用。在Docker容器中,應(yīng)用可以正常訪問(wèn)云端服務(wù)和資源,流量自動(dòng)通過(guò)代理來(lái)轉(zhuǎn)發(fā)。

如果你對(duì)本地運(yùn)行應(yīng)用所發(fā)生的調(diào)用異常感到無(wú)從下手,那么可以使用3.0插件的本地鏈路診斷能力,我們會(huì)統(tǒng)一收集本地應(yīng)用的調(diào)用鏈路,調(diào)用異常一目了然。

下面來(lái)具體介紹這些特性。

Kubernetes代理

3.0版本的Kubernetes代理能力可基于Kubernetes集群自動(dòng)打通代理通道。

在面向Kubernetes的開發(fā)中,我們可以通過(guò)kubectl命令和kubeconfig配置文件來(lái)跟API Server進(jìn)行通信,并訪問(wèn)集群中的容器。API Server會(huì)對(duì)請(qǐng)求進(jìn)行身份認(rèn)證、鑒權(quán)和加密處理。如果開放API Server的公網(wǎng)訪問(wèn),那么我們?cè)诒镜赝ㄟ^(guò)kubectl執(zhí)行交互式命令時(shí),此時(shí)API Server將充當(dāng)中間代理角色,如下所示:

基于此特性,端云互聯(lián)3.0插件在應(yīng)用啟動(dòng)時(shí),調(diào)用kubectl臨時(shí)創(chuàng)建一個(gè)代理容器。通過(guò)結(jié)合API Server和臨時(shí)代理容器進(jìn)行打通,本地應(yīng)用可訪問(wèn)云端服務(wù)和其他資源。整體鏈路如下所示:

代理容器占用64MB ~ 128MB的節(jié)點(diǎn)內(nèi)存,并在本地應(yīng)用停止時(shí)自動(dòng)刪除。

而在插件配置上也非常簡(jiǎn)單,你只需在插件中設(shè)置kubeconfig配置文件和選擇Kubernetes命名空間:

在啟動(dòng)本地應(yīng)用時(shí),插件使用該kubeconfig配置文件來(lái)調(diào)用kubectl創(chuàng)建臨時(shí)容器,并進(jìn)行通道打通和流量轉(zhuǎn)發(fā)。在終止應(yīng)用時(shí),插件使用該kubeconfig配置文件來(lái)調(diào)用kubectl刪除該臨時(shí)容器。

容器級(jí)互聯(lián)

容器級(jí)互聯(lián)是指,本地會(huì)啟動(dòng)Docker容器,并在容器內(nèi)運(yùn)行你的微服務(wù)應(yīng)用,微服務(wù)應(yīng)用可跟云端環(huán)境進(jìn)行互聯(lián)。如果你存在如下場(chǎng)景,那么容器級(jí)互聯(lián)是你的好選擇:

非Java語(yǔ)言應(yīng)用;應(yīng)用運(yùn)行時(shí)對(duì)操作系統(tǒng)存在特定要求;

在此模式下,微服務(wù)應(yīng)用和通道服務(wù)都使用容器來(lái)運(yùn)行,整體交互如下:

在實(shí)現(xiàn)層面上,容器級(jí)互聯(lián)基于iptables來(lái)攔截和轉(zhuǎn)發(fā)流量到代理容器中的通道服務(wù),通道服務(wù)再將數(shù)據(jù)通過(guò)云端代理轉(zhuǎn)發(fā)至目標(biāo)地址。在架構(gòu)上,這種模式跟Service Mesh的Sidecar模式有點(diǎn)類似,應(yīng)用容器把流量轉(zhuǎn)發(fā)給通道服務(wù)容器(sidecar容器)。不過(guò)端云互聯(lián)的通道容器只是做數(shù)據(jù)的透明轉(zhuǎn)發(fā),而Service Mesh的sidecar可進(jìn)行微服務(wù)發(fā)現(xiàn)和治理的能力,這一點(diǎn)有所不同。

在使用上,插件運(yùn)行容器的Alibaba Microservice Container配置,交互如下所示:

如果你在應(yīng)用容器中運(yùn)行的是Java語(yǔ)言應(yīng)用,插件還支持快捷的應(yīng)用調(diào)試,無(wú)需額外設(shè)置具體參數(shù)。啟動(dòng)應(yīng)用時(shí),插件會(huì)通過(guò)環(huán)境變量注入JDWP調(diào)試參數(shù),以打開調(diào)試端口。插件進(jìn)一步結(jié)合Intellij IDEA的智能檢測(cè),可通過(guò)Attach debugger來(lái)一鍵調(diào)試容器中的Java應(yīng)用,如下所示:

由圖可見(jiàn),插件會(huì)將容器中應(yīng)用的日志輸出打印在IDE窗口中,日志中的“Listening for transport dt_socket at address: 5005”表示容器中的Java應(yīng)用已打開調(diào)試端口。點(diǎn)擊Attach debugger,IDE將會(huì)連接到容器中Java應(yīng)用的調(diào)試端口,接下來(lái)便可進(jìn)行代碼調(diào)試,如下所示:

本地鏈路診斷

在開發(fā)過(guò)程中,你是否遇到過(guò)這個(gè)場(chǎng)景:下游服務(wù)接口返回了500,你只知道接口調(diào)用失敗了,但具體原因并不知曉?找該模塊研發(fā)人員來(lái)排查時(shí),他過(guò)了半天回復(fù)一句“現(xiàn)在有點(diǎn)忙,待會(huì)我看看”?等他有空排查后,發(fā)現(xiàn)問(wèn)題出在另一個(gè)模塊,讓你去找另一個(gè)同學(xué)來(lái)排查?...

諸如此類的場(chǎng)景在開發(fā)過(guò)程中屢見(jiàn)不鮮,往往一個(gè)小問(wèn)題要花費(fèi)大量精力和時(shí)間來(lái)進(jìn)行排查。這個(gè)場(chǎng)景是鏈路追蹤技術(shù)的典型場(chǎng)景?,F(xiàn)在,我們把鏈路追蹤也集成到端云互聯(lián)能力上,使得本地調(diào)用鏈路也能上報(bào)到云端,當(dāng)出現(xiàn)異常時(shí)問(wèn)題一目了然。

比如,當(dāng)前環(huán)境中有交易中心、商品中心和庫(kù)存中心三個(gè)服務(wù),你正在和測(cè)試同學(xué)驗(yàn)證新版本特性。測(cè)試同學(xué)在頁(yè)面測(cè)試下單流程時(shí),發(fā)現(xiàn)下單失敗,如下所示:

由于涉及模塊多,問(wèn)題排查耗時(shí)非常長(zhǎng)。端云互聯(lián)3.0插件集成了ARMS(應(yīng)用實(shí)時(shí)監(jiān)控服務(wù))的Java Agent,它通過(guò)代碼無(wú)侵入的埋點(diǎn)機(jī)制來(lái)收集調(diào)用鏈路上的信息并上報(bào)到ARMS服務(wù)端進(jìn)行統(tǒng)一收集和智能分析。出現(xiàn)異常時(shí),只需在云端根據(jù)TraceId來(lái)查詢調(diào)用鏈路,問(wèn)題了然于胸:

TraceId是用于鏈路追蹤底層的概念,從前端頁(yè)面開始生成并透?jìng)髦料掠胃鞴?jié)點(diǎn)。為方便使用,插件還提供了打印本地鏈路的開關(guān),開啟后將會(huì)輸出本地應(yīng)用服務(wù)調(diào)用鏈路的相關(guān)信息,如下所示:

鏈路輸出中包含如下信息:

TraceId:用于標(biāo)記請(qǐng)求的整體處理過(guò)程。在分布式微服務(wù)調(diào)用場(chǎng)景下,TraceId會(huì)從最前端的應(yīng)用節(jié)點(diǎn)透?jìng)髦料掠捂溌犯鱾€(gè)節(jié)點(diǎn),可根據(jù)此TraceId在EDAS控制臺(tái)或ARMS控制臺(tái)查詢整體鏈路處理過(guò)程。Service:當(dāng)前應(yīng)用的請(qǐng)求處理入口,如Spring Cloud服務(wù)、Dubbo服務(wù)、HSF服務(wù)等。API:鏈路處理過(guò)程中的方法簽名。Line:方法處理的具體行數(shù)。Cost:此方法及其下游處理的耗時(shí),單位毫秒。Ext:擴(kuò)展信息,包含請(qǐng)求處理狀態(tài)碼、數(shù)據(jù)庫(kù)訪問(wèn)SQL、資源目標(biāo)地址等信息。Console link:ARMS控制臺(tái)上收集的此鏈路信息,可點(diǎn)擊此鏈接直接查看全鏈路信息。

點(diǎn)擊Console link鏈接,可查看此請(qǐng)求的上下游處理鏈路,如下所示:

我們還可以進(jìn)一步查看每個(gè)服務(wù)內(nèi)的處理詳情:

看到這里,是不是感覺(jué)排查問(wèn)題有更多思路了呢:)

寫在最后

云原生浪潮浩浩蕩蕩不可阻擋,業(yè)務(wù)上云也是企業(yè)的必經(jīng)之路。但上云從來(lái)都不是一片坦途,在此過(guò)程中我們總會(huì)遇到一些困難和挑戰(zhàn)。得益于云原生技術(shù)的日益成熟,這些問(wèn)題一定會(huì)有相應(yīng)的解法。

在開發(fā)態(tài)這一領(lǐng)域,我們是國(guó)內(nèi)云廠商當(dāng)中走在前沿的探索者。從2018年開始孵化端云互聯(lián)1.0版本,到目前2021年的端云互聯(lián)3.0版本,當(dāng)中遇到了大大小小的問(wèn)題和挑戰(zhàn),但最終都一一解決了。此能力為公共云和專有云的開發(fā)者帶來(lái)了極大的便利,使其在本地就可以完成開發(fā)、測(cè)試和聯(lián)調(diào)閉環(huán)。

在未來(lái)我們會(huì)不斷提供更好用、更強(qiáng)大、更易用的云原生工具來(lái)服務(wù)開發(fā)者,敬請(qǐng)期待。

責(zé)任編輯:梁菲 來(lái)源: 阿里云云棲號(hào)
相關(guān)推薦

2021-07-28 10:13:00

公有云云計(jì)算云遷移

2022-09-27 08:28:54

云平臺(tái)云主機(jī)私有云

2020-04-14 08:46:47

Java對(duì)象編譯器

2017-10-24 12:32:03

小程序APPbug

2020-08-06 15:50:26

微信無(wú)法登陸移動(dòng)應(yīng)用

2015-10-10 15:37:20

軟件沖突OS X

2022-10-24 20:25:40

云原生SpringJava

2022-05-24 16:09:38

前端腳本

2012-08-09 12:21:04

打印機(jī)

2022-08-22 14:46:26

邊緣計(jì)算云計(jì)算物聯(lián)網(wǎng)

2021-12-26 18:30:56

嵌入式ARM鏈接

2015-05-26 09:35:29

運(yùn)維運(yùn)維危機(jī)云計(jì)算應(yīng)用

2021-11-25 14:12:18

云原生容器技術(shù)

2021-01-21 05:47:52

IOLED單片機(jī)

2011-12-21 15:07:28

開源云計(jì)算

2022-02-18 09:40:44

云原生邊緣計(jì)算云計(jì)算

2022-07-11 08:48:52

業(yè)務(wù)轉(zhuǎn)型CIO

2020-04-24 20:05:16

VueAxios前端

2022-05-06 10:36:48

低代碼優(yōu)勢(shì)云原生

2022-06-21 07:51:15

云原生應(yīng)用鏈路
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)