新聞中心
當前位置:網站(zhàn)首頁 > 新聞中心
如何在雲中調試微服務
調試微服務對(duì)于工(gōng)作(zuò)人員來(lái)說似乎令人生畏,而采用(yòng)正确的工(gōng)具和(hé)策略可以使他(tā)們更輕松地開(kāi)展工(gōng)作(zuò)。
信息架構的增長促使許多組織采用(yòng)雲服務,并随着時(shí)間的推移而增長。微服務在這(zhè)方面一直處于領先地位,并且在設計(jì)各種應用(yòng)程序以使其成爲可獨立部署的服務方面,其受歡迎程度呈指數級增長。
在OReilly公司的一項調查中,50%以上(shàng)的受訪者表示,他(tā)們組織中50%以上(shàng)的新開(kāi)發項目使用(yòng)微服務。
在單片機系統中,整個應用(yòng)程序可能(néng)會(huì)由于模塊中的單個錯誤而失敗。使用(yòng)獨立的模塊爲開(kāi)發人員提供了(le)更廣泛的靈活性,可以編輯和(hé)部署可定制的代碼,而不必擔心影響獨立的模塊。
但(dàn)是,當意外(wài)引發錯誤時(shí),這(zhè)種方法會(huì)帶來(lái)獨特的挑戰。由于信息架構的複雜(zá)性以及從(cóng)開(kāi)發階段到(dào)生産階段的過渡,在雲中調試微服務可能(néng)是一項艱巨的任務。
以下(xià)探讨一下(xià)面臨的一些(xiē)挑戰以及如何無縫地應對(duì)這(zhè)些(xiē)挑戰。
調試微服務的挑戰
(1)追蹤和(hé)可觀察性不足
微服務需求的增長帶來(lái)了(le)基礎設施的複雜(zá)性。每一個雲組件、模塊和(hé)無服務器調用(yòng)通常都隐藏了(le)基礎設施的複雜(zá)性,這(zhè)使得DevOps和(hé)運營團隊很(hěn)難根據輸出跟蹤和(hé)觀察微服務的内部狀态。獨立運行的微服務難以跟蹤異步模塊中存在的任何用(yòng)戶請(qǐng)求,這(zhè)可能(néng)會(huì)導緻錯誤的鏈式複制。這(zhè)也(yě)意味着檢測相互交互的服務可能(néng)會(huì)受到(dào)這(zhè)些(xiē)錯誤的影響。這(zhè)些(xiē)因素使得查明(míng)任何錯誤或錯誤的根本原因對(duì)于開(kāi)發人員來(lái)說是一項艱巨的任務。
(2)在複雜(zá)環境中監視(shì)狀态
由于許多微服務聚集在一起來(lái)構建系統,因此監視(shì)其狀态變得很(hěn)複雜(zá)。随着更多的微服務組件添加到(dào)系統中,複雜(zá)的服務網格逐漸發展,而每個模塊都獨立運行。這(zhè)也(yě)帶來(lái)了(le)任何一個模塊随時(shí)可能(néng)發生故障,但(dàn)不會(huì)影響其他(tā)模塊運行的可能(néng)性。
開(kāi)發人員可能(néng)發現(xiàn)調試某些(xiē)特定微服務中的錯誤非常困難。其中的每一個都可以用(yòng)不同的編程語言進行編碼,具有獨特的日志記錄功能(néng),并且大(dà)多獨立于其他(tā)組件。
(3)從(cóng)開(kāi)發到(dào)生産可能(néng)是不可預測的
在将代碼從(cóng)開(kāi)發階段移動到(dào)生産階段時(shí),性能(néng)和(hé)狀态錯誤也(yě)是不可預測的。即使在集成和(hé)單元測試之後,人們也(yě)無法預測代碼在分布式服務器上(shàng)處理(lǐ)成千上(shàng)萬個請(qǐng)求時(shí)的性能(néng)。如果代碼擴展不充分或者數據庫無法處理(lǐ)請(qǐng)求,那麽開(kāi)發人員幾乎無法檢測到(dào)系統中的潛在錯誤。
在雲中調試微服務的方法
以下(xià)是一些(xiē)特定于微服務的調試方法,這(zhè)些(xiē)方法可以幫助組織解決以下(xià)提到(dào)的挑戰:
(1)非侵入式調試選項
與傳統的調試方法不同,第三方工(gōng)具可以通過中斷或暫停服務來(lái)幫助DevOps團隊設置不會(huì)影響調試過程執行的斷點。這(zhè)些(xiē)方法是非侵入性的,允許開(kāi)發人員查看(kàn)全局變量和(hé)堆棧跟蹤,這(zhè)有助于他(tā)們更有效地監視(shì)和(hé)檢測錯誤。它還允許開(kāi)發人員在不停止代碼運行或重新部署其代碼庫的情況下(xià)測試可能(néng)出現(xiàn)的有關問題。
(2)可觀察性增強工(gōng)具
任何具有大(dà)量微服務的系統都很(hěn)難跟蹤請(qǐng)求。盡管人們可能(néng)認爲構建可觀察性的自(zì)定義平台是解決這(zhè)個問題的答(dá)案,但(dàn)它在開(kāi)發過程中會(huì)消耗大(dà)量的時(shí)間和(hé)資源。
幸運的是,許多現(xiàn)代的第三方工(gōng)具旨在跟蹤請(qǐng)求。并爲微服務提供廣泛的可觀察性。這(zhè)些(xiē)工(gōng)具提供了(le)很(hěn)多功能(néng),例如分布式和(hé)無服務器計(jì)算(suàn)功能(néng)。
例如,Thundra之類的工(gōng)具可以幫助組織監視(shì)生産過程中遍曆其基礎設施的用(yòng)戶請(qǐng)求,幫助開(kāi)發人員全面了(le)解編碼環境,查明(míng)錯誤源頭,并快(kuài)速調試。
(3)自(zì)治異常跟蹤
對(duì)于系統而言,首先要意識到(dào)發現(xiàn)錯誤是一項艱巨的任務。系統必須自(zì)動跟蹤發生的任何異常,從(cóng)而幫助系統識别重複模式或破壞性行爲,例如閏年錯誤、浏覽器中特定版本的錯誤、奇數堆棧溢出等等。
但(dàn)是,發現(xiàn)這(zhè)些(xiē)錯誤隻是成功的一半。系統還需要跟蹤變量和(hé)日志,以查明(míng)錯誤發生的時(shí)間和(hé)條件。這(zhè)有助于開(kāi)發人員找到(dào)最有效的解決方案以消除錯誤。全面的監視(shì)可以顯著簡化生産中的調試過程。
在雲中調試不一定很(hěn)困難
在現(xiàn)代微服務中,調試對(duì)任何人來(lái)說都是一個非常複雜(zá)的過程。跟蹤用(yòng)戶請(qǐng)求和(hé)預測代碼可擴展性的能(néng)力非常複雜(zá)。然而,現(xiàn)代工(gōng)具可以使開(kāi)發人員更容易地監視(shì)、檢測和(hé)解決錯誤。
采用(yòng)快(kuài)速部署的微服務架構設計(jì),并且使用(yòng)正确的工(gōng)具集,對(duì)于開(kāi)發人員來(lái)說,可以使其調試變得更加簡單。
上(shàng)一篇 企業遷移到(dào)雲服務時(shí)要考慮的六大(dà)問題 下(xià)一篇 爲什(shén)麽雲原生會(huì)統領SaaS服務?
|