微服務(wù),通常指的是一個支持持續(xù)開發(fā)、系統(tǒng)可擴展、應(yīng)用程序解耦和多語言編程的架構(gòu)平臺。它在服務(wù)邊界的幫助下隔離了平臺,這使得單獨使用和管理每個服務(wù)變得更加簡單。由于每個服務(wù)都是相互獨立的,這就使得添加高級功能或擴展變得更加有效和容易。
微服務(wù)的核心特性:
每一個服務(wù)或單元都是輕量級、獨立和松耦合的。
每個服務(wù)都有其獨立的代碼庫,由一個小團隊設(shè)計和開發(fā)。
每個服務(wù)都有其獨立的DevOps計劃(開發(fā)、測試、發(fā)布、擴展和管理)
每個服務(wù)可以自由選擇自己的技術(shù)堆棧。
每個服務(wù)有自己的機制來保存他們的信息,這是最適合他們的模式。
服務(wù)間常使用REST協(xié)議相互通信。
微服務(wù)架構(gòu):主要優(yōu)勢
微服務(wù)創(chuàng)造了一種更加靈活和適應(yīng)性強的 IT 基礎(chǔ)設(shè)施。它使你可以只更改一項服務(wù),而無需更改基礎(chǔ)架構(gòu)部分。簡而言之,你可以配置和更改每項服務(wù),而不會干擾其他應(yīng)用程序或服務(wù)的功能方面。
以下是微服務(wù)架構(gòu)的一些關(guān)鍵優(yōu)勢:
快速交付借助分布式,微服務(wù)使團隊能夠同時開發(fā)多個微服務(wù)。由于開發(fā)周期的縮短,微服務(wù)架構(gòu)使得執(zhí)行和更新應(yīng)用程序的速度更快。因此,軟件團隊有更多的時間專注于他們的業(yè)務(wù)。
自主性高微服務(wù)架構(gòu)實現(xiàn)了自主開發(fā)、部署和運行。因此,如果應(yīng)用程序遵循相同的方法,服務(wù)中的任何故障都不會影響應(yīng)用程序的其他服務(wù)。
職責單一由于較大的單體應(yīng)用被分解為多個更小的微服務(wù),每個微服務(wù)只負責特定范圍的功能,因此軟件開發(fā)人員可以毫不費力地理解、升級和改進這些部分;通過這種方式,可以獲得更快的開發(fā)周期。
更好的可擴展性隨著對特定服務(wù)需求的發(fā)展,可以在各種基礎(chǔ)設(shè)施和服務(wù)器上執(zhí)行以滿足你的要求。例如,可以根據(jù)需求和并發(fā)情況,有針對性地擴縮容某個或某幾個服務(wù)。
易于開發(fā)這種應(yīng)用程序遵循模塊化方法,每個服務(wù)都比傳統(tǒng)的單體應(yīng)用程序略小。因此,實現(xiàn)單個服務(wù)要簡單得多。
為什么需要獨特的策略來測試微服務(wù)?
微服務(wù)與各個組織內(nèi)外的其他微服務(wù),都有著或多或少的通信,此外,微服務(wù)的開發(fā)團隊之間進行也需要大量協(xié)作。因此,微服務(wù)的測試,需要有一個不同于傳統(tǒng)單體應(yīng)用測試的策略。
微服務(wù)性能測試
微服務(wù)有很多好處,但是它也面臨著復(fù)雜的挑戰(zhàn)。由于服務(wù)間基于REST相互關(guān)聯(lián),相互調(diào)用通信,引發(fā)的性能開銷可能會使業(yè)務(wù)陷入困境。例如,在電子商城應(yīng)用中,如果用戶在查看商品詳情時等待過久,就會直接影響用戶下訂單的心情,并可能導(dǎo)致他們?nèi)テ渌胤劫徺I。無論情況如何,可靠性和性能都是軟件開發(fā)的重要因素,因此企業(yè)必須花費必要的精力和時間進行性能測試。
性能測試的重要性眾所周知,本文建議必須在兩個不同的層次上進行:
系統(tǒng)級別(協(xié)同工作的微服務(wù))
微服務(wù)級別(單個微服務(wù))
測試的方法:持續(xù)監(jiān)控和自下而上
盡管我們認識到最終用戶體驗相當重要,但我們不能等到應(yīng)用程序完全構(gòu)建后,才進行性能測試,它偏離了左移方法。此外,如果在部署發(fā)布后,才發(fā)現(xiàn)任何重大的性能故障,也會對業(yè)務(wù)產(chǎn)生巨大影響。
另一方面,如果我們早期進行微服務(wù)性能測試,我們可以在開發(fā)階段發(fā)現(xiàn)性能缺陷并立即解決。系統(tǒng)集成后,除集成因素外,API接口/用戶界面出現(xiàn)性能故障的可能性較小。如果我們出現(xiàn)了性能缺陷,使用自下而上的方法會有所幫助。
微服務(wù)架構(gòu)的重要之處在于,當微服務(wù)崩潰、無響應(yīng)或不可用時,它不會使整個應(yīng)用程序宕機。應(yīng)用程序性能監(jiān)控工具不僅提供系統(tǒng)的運行狀態(tài),而且還通過閾值來主動計算性能。它還可以在早期階段提示任何潛在的性能缺陷。
微服務(wù)性能(負載測試)測試工具
你必須使用高級負載測試服務(wù),來避免意外崩潰,而不是在你的微服務(wù)應(yīng)用程序上執(zhí)行一些非系統(tǒng)的測試。一些負載測試工具可以生成虛擬流量,模擬大量用戶負載進行微服務(wù)測試。
以下是市場上一些最好的微服務(wù)負載測試工具:
nfluxDB–是用Go語言編寫的開源應(yīng)用程序之一。它是一個可靠、快速且易于查詢的時間序列數(shù)據(jù)庫。使用這種用于負載測試工具,你可以輕松發(fā)現(xiàn)瓶頸。
pache JMeter–是軟件開發(fā)人員最常用的測試工具。它也是一個開源應(yīng)用程序,滿足不同規(guī)模的軟件公司的需求。它還可以讓軟件開發(fā)者對微服務(wù)的功能行為進行負載測試,計算不同用戶負載下的微服務(wù)性能。
mazon CloudWatch–是一種復(fù)雜的監(jiān)控服務(wù),用于監(jiān)控部署在Amazon Web Services上的應(yīng)用程序或微服務(wù)的資源使用情況。因此,如果你希望對微服務(wù)執(zhí)行負載測試,它可能是一種有益的工具。
rafana–也是指標可視化和分析套件之一。你可以利用它來可視化時間序列數(shù)據(jù),以觀察你的微服務(wù)在實時流量中的表現(xiàn)。
總結(jié)
現(xiàn)在,使用微服務(wù)架構(gòu)的項目越來越多,對于 DevOps 團隊來說,這意味著測試策略的改變。確保你的應(yīng)用程序能夠經(jīng)受住現(xiàn)實情況的考驗,需要提前進行性能測試,并讓你的團隊深入了解在系統(tǒng)發(fā)布之前需要微調(diào)的地方。
因此,選擇合適的微服務(wù)測試工具,進行完善的測試,是必不可少的。
文章出處:【微信公眾號:馬哥Linux運維】
責任編輯:gt
-
服務(wù)器
+關(guān)注
關(guān)注
12文章
9160瀏覽量
85426 -
應(yīng)用程序
+關(guān)注
關(guān)注
37文章
3268瀏覽量
57710
原文標題:微服務(wù)性能是如何測試的?
文章出處:【微信號:magedu-Linux,微信公眾號:馬哥Linux運維】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論