調(diào)試微服務對于工作人員來說似乎令人生畏,而采用正確的工具和策略可以使他們更輕松地開展工作。
信息架構的增長促使許多組織采用云服務,并隨著時間的推移而增長。微服務在這方面一直處于領先地位,并且在設計各種應用程序以使其成為可獨立部署的服務方面,其受歡迎程度呈指數(shù)級增長。
在O‘Reilly公司的一項調(diào)查中,50%以上的受訪者表示,他們組織中50%以上的新開發(fā)項目使用微服務。
在單片機系統(tǒng)中,整個應用程序可能會由于模塊中的單個錯誤而失敗。使用獨立的模塊為開發(fā)人員提供了更廣泛的靈活性,可以編輯和部署可定制的代碼,而不必擔心影響獨立的模塊。
但是,當意外引發(fā)錯誤時,這種方法會帶來獨特的挑戰(zhàn)。由于信息架構的復雜性以及從開發(fā)階段到生產(chǎn)階段的過渡,在云中調(diào)試微服務可能是一項艱巨的任務。
以下探討一下面臨的一些挑戰(zhàn)以及如何無縫地應對這些挑戰(zhàn)。
調(diào)試微服務的挑戰(zhàn)
(1)追蹤和可觀察性不足
微服務需求的增長帶來了基礎設施的復雜性。每一個云組件、模塊和無服務器調(diào)用通常都隱藏了基礎設施的復雜性,這使得DevOps和運營團隊很難根據(jù)輸出跟蹤和觀察微服務的內(nèi)部狀態(tài)。獨立運行的微服務難以跟蹤異步模塊中存在的任何用戶請求,這可能會導致錯誤的鏈式復制。這也意味著檢測相互交互的服務可能會受到這些錯誤的影響。這些因素使得查明任何錯誤或錯誤的根本原因?qū)τ陂_發(fā)人員來說是一項艱巨的任務。
(2)在復雜環(huán)境中監(jiān)視狀態(tài)
由于許多微服務聚集在一起來構建系統(tǒng),因此監(jiān)視其狀態(tài)變得很復雜。隨著更多的微服務組件添加到系統(tǒng)中,復雜的服務網(wǎng)格逐漸發(fā)展,而每個模塊都獨立運行。這也帶來了任何一個模塊隨時可能發(fā)生故障,但不會影響其他模塊運行的可能性。
開發(fā)人員可能發(fā)現(xiàn)調(diào)試某些特定微服務中的錯誤非常困難。其中的每一個都可以用不同的編程語言進行編碼,具有獨特的日志記錄功能,并且大多獨立于其他組件。
(3)從開發(fā)到生產(chǎn)可能是不可預測的
在將代碼從開發(fā)階段移動到生產(chǎn)階段時,性能和狀態(tài)錯誤也是不可預測的。即使在集成和單元測試之后,人們也無法預測代碼在分布式服務器上處理成千上萬個請求時的性能。如果代碼擴展不充分或者數(shù)據(jù)庫無法處理請求,那么開發(fā)人員幾乎無法檢測到系統(tǒng)中的潛在錯誤。
在云中調(diào)試微服務的方法
以下是一些特定于微服務的調(diào)試方法,這些方法可以幫助組織解決以下提到的挑戰(zhàn):
(1)非侵入式調(diào)試選項
與傳統(tǒng)的調(diào)試方法不同,第三方工具可以通過中斷或暫停服務來幫助DevOps團隊設置不會影響調(diào)試過程執(zhí)行的斷點。這些方法是非侵入性的,允許開發(fā)人員查看全局變量和堆棧跟蹤,這有助于他們更有效地監(jiān)視和檢測錯誤。它還允許開發(fā)人員在不停止代碼運行或重新部署其代碼庫的情況下測試可能出現(xiàn)的有關問題。
(2)可觀察性增強工具
任何具有大量微服務的系統(tǒng)都很難跟蹤請求。盡管人們可能認為構建可觀察性的自定義平臺是解決這個問題的答案,但它在開發(fā)過程中會消耗大量的時間和資源。
幸運的是,許多現(xiàn)代的第三方工具旨在跟蹤請求。并為微服務提供廣泛的可觀察性。這些工具提供了很多功能,例如分布式和無服務器計算功能。
例如,Thundra之類的工具可以幫助組織監(jiān)視生產(chǎn)過程中遍歷其基礎設施的用戶請求,幫助開發(fā)人員全面了解編碼環(huán)境,查明錯誤源頭,并快速調(diào)試。
(3)自治異常跟蹤
對于系統(tǒng)而言,首先要意識到發(fā)現(xiàn)錯誤是一項艱巨的任務。系統(tǒng)必須自動跟蹤發(fā)生的任何異常,從而幫助系統(tǒng)識別重復模式或破壞性行為,例如閏年錯誤、瀏覽器中特定版本的錯誤、奇數(shù)堆棧溢出等等。
但是,發(fā)現(xiàn)這些錯誤只是成功的一半。系統(tǒng)還需要跟蹤變量和日志,以查明錯誤發(fā)生的時間和條件。這有助于開發(fā)人員找到最有效的解決方案以消除錯誤。全面的監(jiān)視可以顯著簡化生產(chǎn)中的調(diào)試過程。
在云中調(diào)試不一定很困難
在現(xiàn)代微服務中,調(diào)試對任何人來說都是一個非常復雜的過程。跟蹤用戶請求和預測代碼可擴展性的能力非常復雜。然而,現(xiàn)代工具可以使開發(fā)人員更容易地監(jiān)視、檢測和解決錯誤。
采用快速部署的微服務架構設計,并且使用正確的工具集,對于開發(fā)人員來說,可以使其調(diào)試變得更加簡單。
責編AJX
-
信息
+關注
關注
0文章
407瀏覽量
35838 -
云計算
+關注
關注
39文章
7969瀏覽量
139346 -
服務器
+關注
關注
13文章
9683瀏覽量
87273
發(fā)布評論請先 登錄
別再提什么云計算,你需要的只是云服務
Bazaar:阿里云Serverless計算服務探秘
使用阿里云ACM簡化你的Spring Cloud微服務環(huán)境配置管理
微服務網(wǎng)關gateway的相關資料推薦
云芯一號ARM微服務器板卡的方法和過程介紹
云原生技術將是企業(yè)落地微服務的優(yōu)秀伴侶
微服務軟件架構應用研究綜述
華為云服務治理?| 微服務常見故障模式
微服務架構中的服務之間如何互相調(diào)用呢?
邊緣計算微服務操作系統(tǒng)的設計與實現(xiàn)

docker微服務架構實戰(zhàn)
如何構建彈性、高可用的微服務?

評論