0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何更好地在云計(jì)算中調(diào)試微服務(wù)?

如意 ? 來(lái)源:企業(yè)網(wǎng)D1Net ? 作者:Ajit Chelat ? 2021-04-05 17:07 ? 次閱讀

調(diào)試微服務(wù)對(duì)于工作人員來(lái)說(shuō)似乎令人生畏,而采用正確的工具和策略可以使他們更輕松地開(kāi)展工作。

信息架構(gòu)的增長(zhǎng)促使許多組織采用云服務(wù),并隨著時(shí)間的推移而增長(zhǎng)。微服務(wù)在這方面一直處于領(lǐng)先地位,并且在設(shè)計(jì)各種應(yīng)用程序以使其成為可獨(dú)立部署的服務(wù)方面,其受歡迎程度呈指數(shù)級(jí)增長(zhǎng)。

在O‘Reilly公司的一項(xiàng)調(diào)查中,50%以上的受訪者表示,他們組織中50%以上的新開(kāi)發(fā)項(xiàng)目使用微服務(wù)。

單片機(jī)系統(tǒng)中,整個(gè)應(yīng)用程序可能會(huì)由于模塊中的單個(gè)錯(cuò)誤而失敗。使用獨(dú)立的模塊為開(kāi)發(fā)人員提供了更廣泛的靈活性,可以編輯和部署可定制的代碼,而不必?fù)?dān)心影響?yīng)毩⒌哪K。

但是,當(dāng)意外引發(fā)錯(cuò)誤時(shí),這種方法會(huì)帶來(lái)獨(dú)特的挑戰(zhàn)。由于信息架構(gòu)的復(fù)雜性以及從開(kāi)發(fā)階段到生產(chǎn)階段的過(guò)渡,在云中調(diào)試微服務(wù)可能是一項(xiàng)艱巨的任務(wù)。

以下探討一下面臨的一些挑戰(zhàn)以及如何無(wú)縫地應(yīng)對(duì)這些挑戰(zhàn)。

調(diào)試微服務(wù)的挑戰(zhàn)

(1)追蹤和可觀察性不足

微服務(wù)需求的增長(zhǎng)帶來(lái)了基礎(chǔ)設(shè)施的復(fù)雜性。每一個(gè)云組件、模塊和無(wú)服務(wù)器調(diào)用通常都隱藏了基礎(chǔ)設(shè)施的復(fù)雜性,這使得DevOps和運(yùn)營(yíng)團(tuán)隊(duì)很難根據(jù)輸出跟蹤和觀察微服務(wù)的內(nèi)部狀態(tài)。獨(dú)立運(yùn)行的微服務(wù)難以跟蹤異步模塊中存在的任何用戶請(qǐng)求,這可能會(huì)導(dǎo)致錯(cuò)誤的鏈?zhǔn)綇?fù)制。這也意味著檢測(cè)相互交互的服務(wù)可能會(huì)受到這些錯(cuò)誤的影響。這些因素使得查明任何錯(cuò)誤或錯(cuò)誤的根本原因?qū)τ陂_(kāi)發(fā)人員來(lái)說(shuō)是一項(xiàng)艱巨的任務(wù)。

(2)在復(fù)雜環(huán)境中監(jiān)視狀態(tài)

由于許多微服務(wù)聚集在一起來(lái)構(gòu)建系統(tǒng),因此監(jiān)視其狀態(tài)變得很復(fù)雜。隨著更多的微服務(wù)組件添加到系統(tǒng)中,復(fù)雜的服務(wù)網(wǎng)格逐漸發(fā)展,而每個(gè)模塊都獨(dú)立運(yùn)行。這也帶來(lái)了任何一個(gè)模塊隨時(shí)可能發(fā)生故障,但不會(huì)影響其他模塊運(yùn)行的可能性。

開(kāi)發(fā)人員可能發(fā)現(xiàn)調(diào)試某些特定微服務(wù)中的錯(cuò)誤非常困難。其中的每一個(gè)都可以用不同的編程語(yǔ)言進(jìn)行編碼,具有獨(dú)特的日志記錄功能,并且大多獨(dú)立于其他組件。

(3)從開(kāi)發(fā)到生產(chǎn)可能是不可預(yù)測(cè)的

在將代碼從開(kāi)發(fā)階段移動(dòng)到生產(chǎn)階段時(shí),性能和狀態(tài)錯(cuò)誤也是不可預(yù)測(cè)的。即使在集成和單元測(cè)試之后,人們也無(wú)法預(yù)測(cè)代碼在分布式服務(wù)器上處理成千上萬(wàn)個(gè)請(qǐng)求時(shí)的性能。如果代碼擴(kuò)展不充分或者數(shù)據(jù)庫(kù)無(wú)法處理請(qǐng)求,那么開(kāi)發(fā)人員幾乎無(wú)法檢測(cè)到系統(tǒng)中的潛在錯(cuò)誤。

在云中調(diào)試微服務(wù)的方法

以下是一些特定于微服務(wù)的調(diào)試方法,這些方法可以幫助組織解決以下提到的挑戰(zhàn):

(1)非侵入式調(diào)試選項(xiàng)

與傳統(tǒng)的調(diào)試方法不同,第三方工具可以通過(guò)中斷或暫停服務(wù)來(lái)幫助DevOps團(tuán)隊(duì)設(shè)置不會(huì)影響調(diào)試過(guò)程執(zhí)行的斷點(diǎn)。這些方法是非侵入性的,允許開(kāi)發(fā)人員查看全局變量和堆棧跟蹤,這有助于他們更有效地監(jiān)視和檢測(cè)錯(cuò)誤。它還允許開(kāi)發(fā)人員在不停止代碼運(yùn)行或重新部署其代碼庫(kù)的情況下測(cè)試可能出現(xiàn)的有關(guān)問(wèn)題。

(2)可觀察性增強(qiáng)工具

任何具有大量微服務(wù)的系統(tǒng)都很難跟蹤請(qǐng)求。盡管人們可能認(rèn)為構(gòu)建可觀察性的自定義平臺(tái)是解決這個(gè)問(wèn)題的答案,但它在開(kāi)發(fā)過(guò)程中會(huì)消耗大量的時(shí)間和資源。

幸運(yùn)的是,許多現(xiàn)代的第三方工具旨在跟蹤請(qǐng)求。并為微服務(wù)提供廣泛的可觀察性。這些工具提供了很多功能,例如分布式和無(wú)服務(wù)器計(jì)算功能。

例如,Thundra之類的工具可以幫助組織監(jiān)視生產(chǎn)過(guò)程中遍歷其基礎(chǔ)設(shè)施的用戶請(qǐng)求,幫助開(kāi)發(fā)人員全面了解編碼環(huán)境,查明錯(cuò)誤源頭,并快速調(diào)試。

(3)自治異常跟蹤

對(duì)于系統(tǒng)而言,首先要意識(shí)到發(fā)現(xiàn)錯(cuò)誤是一項(xiàng)艱巨的任務(wù)。系統(tǒng)必須自動(dòng)跟蹤發(fā)生的任何異常,從而幫助系統(tǒng)識(shí)別重復(fù)模式或破壞性行為,例如閏年錯(cuò)誤、瀏覽器中特定版本的錯(cuò)誤、奇數(shù)堆棧溢出等等。

但是,發(fā)現(xiàn)這些錯(cuò)誤只是成功的一半。系統(tǒng)還需要跟蹤變量和日志,以查明錯(cuò)誤發(fā)生的時(shí)間和條件。這有助于開(kāi)發(fā)人員找到最有效的解決方案以消除錯(cuò)誤。全面的監(jiān)視可以顯著簡(jiǎn)化生產(chǎn)中的調(diào)試過(guò)程。

在云中調(diào)試不一定很困難

在現(xiàn)代微服務(wù)中,調(diào)試對(duì)任何人來(lái)說(shuō)都是一個(gè)非常復(fù)雜的過(guò)程。跟蹤用戶請(qǐng)求和預(yù)測(cè)代碼可擴(kuò)展性的能力非常復(fù)雜。然而,現(xiàn)代工具可以使開(kāi)發(fā)人員更容易地監(jiān)視、檢測(cè)和解決錯(cuò)誤。

采用快速部署的微服務(wù)架構(gòu)設(shè)計(jì),并且使用正確的工具集,對(duì)于開(kāi)發(fā)人員來(lái)說(shuō),可以使其調(diào)試變得更加簡(jiǎn)單。
責(zé)編AJX

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 信息
    +關(guān)注

    關(guān)注

    0

    文章

    405

    瀏覽量

    35504
  • 云計(jì)算
    +關(guān)注

    關(guān)注

    39

    文章

    7708

    瀏覽量

    137129
  • 服務(wù)器
    +關(guān)注

    關(guān)注

    12

    文章

    8979

    瀏覽量

    85100
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    什么是計(jì)算 計(jì)算的定義

    什么是計(jì)算 計(jì)算的定義計(jì)算是分布式計(jì)算技術(shù)的一
    發(fā)表于 11-18 17:23

    別再提什么計(jì)算,你需要的只是服務(wù)

      這些天有不少創(chuàng)業(yè)者詢問(wèn)計(jì)算服務(wù)的區(qū)別,就連有一定經(jīng)驗(yàn)的開(kāi)發(fā)者,面對(duì)這兩個(gè)概念的時(shí)仍然是一頭霧水。  
    發(fā)表于 05-23 18:27

    Bazaar:阿里Serverless計(jì)算服務(wù)探秘

    完成。從而將業(yè)務(wù)開(kāi)發(fā)人員解放出來(lái),讓他們更好的關(guān)注自身業(yè)務(wù)。這便是 Serverless 計(jì)算背后的核心思想??梢?jiàn)這一思想能夠產(chǎn)生的一大基石便是計(jì)算
    發(fā)表于 06-08 15:35

    使用阿里ACM簡(jiǎn)化你的Spring Cloud微服務(wù)環(huán)境配置管理

    摘要: 本文我們就如何使用阿里ACM這樣的配置管理產(chǎn)品Spring Cloud替代Spring Cloud Config幫助簡(jiǎn)化環(huán)境配置管理做一個(gè)簡(jiǎn)單的示例,幫助你理解基于ACM來(lái)簡(jiǎn)化
    發(fā)表于 07-04 17:16

    微服務(wù)網(wǎng)關(guān)gateway的相關(guān)資料推薦

    采用微服務(wù)架構(gòu),顯示在產(chǎn)品頁(yè)上的數(shù)據(jù)會(huì)分布不同的微服務(wù)上,比如:購(gòu)物車服務(wù)——購(gòu)物車的件數(shù)訂單服務(wù)
    發(fā)表于 12-23 08:19

    芯一號(hào)ARM微服務(wù)器板卡的方法和過(guò)程介紹

    1、芯一號(hào)統(tǒng)一固件和多分區(qū)鏡像文件的方法芯一號(hào)是極術(shù)社區(qū)發(fā)布的一款A(yù)RM微型服務(wù)器板卡,有幸成為“芯一號(hào)”ARM微服務(wù)器的第一批試用工
    發(fā)表于 06-16 16:02

    java微服務(wù)架構(gòu)有哪些

    本文首先簡(jiǎn)單介紹了微服務(wù)的概念以及使用微服務(wù)所能帶來(lái)的優(yōu)勢(shì),然后結(jié)合實(shí)例介紹了幾個(gè)常見(jiàn)的Java微服務(wù)框架。微服務(wù)開(kāi)發(fā)領(lǐng)域的應(yīng)用越來(lái)越廣泛
    的頭像 發(fā)表于 02-09 10:34 ?8610次閱讀
    java<b class='flag-5'>微服務(wù)</b>架構(gòu)有哪些

    云原生技術(shù)將是企業(yè)落地微服務(wù)的優(yōu)秀伴侶

    隨著技術(shù)的發(fā)展,我們托管時(shí)代逐步的向云原生演進(jìn)了。所謂云原生,就是將微服務(wù)、DevOps的架構(gòu)理念與所提供的容器、Serverless無(wú)服務(wù)
    的頭像 發(fā)表于 10-08 14:37 ?1904次閱讀

    微服務(wù)軟件架構(gòu)應(yīng)用研究綜述

    自2014年,微服務(wù)架構(gòu)概念經(jīng)Martin Flower提出以來(lái),受到廣泛關(guān)注,為更好了解微服務(wù)架構(gòu)風(fēng)格,本文首先分析、梳理了軟件架構(gòu)的發(fā)展歷程,隨后介紹了微服務(wù)架構(gòu)的原理、設(shè)計(jì)和目前
    發(fā)表于 05-26 09:26 ?2次下載

    華為服務(wù)治理?| 微服務(wù)常見(jiàn)故障模式

    ),微服務(wù)可觀測(cè)性能力(日志、監(jiān)控、告警等)構(gòu)建等。 華為微服務(wù)治理專題主要探討運(yùn)行時(shí)治理。我們首先從常見(jiàn)的故障模式開(kāi)始。 擴(kuò)容縮容 擴(kuò)容場(chǎng)景下,新啟動(dòng)的
    的頭像 發(fā)表于 01-18 17:44 ?743次閱讀

    微服務(wù)架構(gòu)服務(wù)之間如何互相調(diào)用呢?

    微服務(wù)架構(gòu),需要調(diào)用很多服務(wù)才能完成一項(xiàng)功能。服務(wù)之間如何互相調(diào)用就變成微服務(wù)架構(gòu)
    的頭像 發(fā)表于 01-31 09:46 ?2149次閱讀

    邊緣計(jì)算微服務(wù)操作系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)

    面對(duì)邊緣計(jì)算運(yùn)行環(huán)境不統(tǒng)一、適配難,工業(yè)邊緣計(jì)算微服務(wù)開(kāi)發(fā)難度高,微服務(wù)生態(tài)系統(tǒng)碎片化,以及工業(yè)邊緣計(jì)算行業(yè)應(yīng)用難以落地等技術(shù)和行業(yè)共性問(wèn)題
    的頭像 發(fā)表于 08-31 16:49 ?1039次閱讀
    邊緣<b class='flag-5'>計(jì)算</b><b class='flag-5'>微服務(wù)</b>操作系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)

    docker微服務(wù)架構(gòu)實(shí)戰(zhàn)

    隨著計(jì)算和容器化技術(shù)的快速發(fā)展,微服務(wù)架構(gòu)軟件開(kāi)發(fā)領(lǐng)域中變得越來(lái)越流行。微服務(wù)架構(gòu)將一個(gè)大型的軟件應(yīng)用拆分成多個(gè)小型的、獨(dú)立部署的
    的頭像 發(fā)表于 11-23 09:26 ?619次閱讀

    如何構(gòu)建彈性、高可用的微服務(wù)?

    基于微服務(wù)的應(yīng)用程序可實(shí)現(xiàn)戰(zhàn)略性數(shù)字轉(zhuǎn)型和遷移計(jì)劃,對(duì)于開(kāi)發(fā)團(tuán)隊(duì)來(lái)說(shuō),這種架構(gòu)十分重要。那么,如何來(lái)構(gòu)建彈性、高可用的微服務(wù)呢?RedisEnterprise給出了一個(gè)完美的方案。文況速覽
    的頭像 發(fā)表于 11-26 08:06 ?441次閱讀
    如何構(gòu)建彈性、高可用的<b class='flag-5'>微服務(wù)</b>?

    微服務(wù)架構(gòu)與容器的關(guān)系與區(qū)別

    微服務(wù)架構(gòu)與容器密切相關(guān)又有所區(qū)別。微服務(wù)將大型應(yīng)用拆分為小型、獨(dú)立的服務(wù),而容器基于容器技術(shù),為
    的頭像 發(fā)表于 10-21 17:28 ?159次閱讀