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

為什么暫存環(huán)境是微服務(wù)測(cè)試的瓶頸

開發(fā) 架構(gòu)
那么解決方案是什么?一些最具創(chuàng)新性的科技公司——如 Uber、Lyft 和 DoorDash——已經(jīng)放棄了共享預(yù)發(fā)布環(huán)境。他們開發(fā)了通過沙盒服務(wù)和使用動(dòng)態(tài)流量路由來隔離測(cè)試的方法。

通過擺脫共享環(huán)境,團(tuán)隊(duì)可以并行測(cè)試,從而實(shí)現(xiàn)更快、更高質(zhì)量的發(fā)布。

譯自Why Staging Is a Bottleneck for Microservice Testing,作者 Arjun Iyer。

采用微服務(wù)架構(gòu)的工程團(tuán)隊(duì)的典型 CI/CD 工作流程如下:

  1. 在合并拉取請(qǐng)求 (PR) 之前構(gòu)建并運(yùn)行基本的單元測(cè)試。
  2. 合并 PR 后,CI/CD 管道將構(gòu)建部署到共享暫存環(huán)境。
  3. 集成和端到端 (E2E) 測(cè)試在此環(huán)境中運(yùn)行,通常按批次安排。

對(duì)于每個(gè)微服務(wù),每天可能會(huì)有多次部署到暫存環(huán)境。雖然這種設(shè)置已成為常態(tài),但共享暫存環(huán)境通常會(huì)造成瓶頸,從而減緩團(tuán)隊(duì)速度并削弱微服務(wù)的優(yōu)勢(shì)。讓我們深入了解為什么會(huì)發(fā)生這種情況,以及領(lǐng)先的工程團(tuán)隊(duì)如何超越暫存環(huán)境來有效地?cái)U(kuò)展測(cè)試。

共享暫存環(huán)境的脆弱性

  1. 一個(gè) PR,多個(gè)問題: 當(dāng)一個(gè)團(tuán)隊(duì)將帶有錯(cuò)誤的 PR 部署到暫存環(huán)境時(shí),它可能會(huì)擾亂整個(gè)工程團(tuán)隊(duì)。在共享暫存環(huán)境中,這個(gè)問題會(huì)加劇,因?yàn)閬碜砸粋€(gè)團(tuán)隊(duì)的錯(cuò)誤可能會(huì)阻止多個(gè)其他團(tuán)隊(duì)。
  2. 尋找有問題的 PR 就像大海撈針: 每天合并數(shù)百個(gè) PR,找到導(dǎo)致環(huán)境崩潰的那個(gè) PR 非常耗時(shí)。
  3. 測(cè)試失敗含糊不清: 微服務(wù)之間的依賴關(guān)系使得隔離測(cè)試失敗的原因變得很困難。例如,考慮以下電子商務(wù)微服務(wù)架構(gòu):

來源:DeathStarBench,一個(gè)用于云微服務(wù)的開源基準(zhǔn)測(cè)試套件來源:DeathStarBench,一個(gè)用于云微服務(wù)的開源基準(zhǔn)測(cè)試套件

在這個(gè)架構(gòu)中,多個(gè)服務(wù)(如支付、訂單、運(yùn)輸和媒體)相互交互。一個(gè)服務(wù)(如支付服務(wù))的故障可能不會(huì)立即顯現(xiàn),并可能表現(xiàn)為訂單服務(wù)中的問題。這些相互依賴關(guān)系使得難以確定測(cè)試失敗的根本原因,尤其是在涉及多個(gè)服務(wù)時(shí)。調(diào)試這種復(fù)雜的微服務(wù)網(wǎng)絡(luò)中的故障非常耗時(shí),因?yàn)槊總€(gè)服務(wù)可能都有不同的團(tuán)隊(duì)負(fù)責(zé)維護(hù)它。

  1. 功能測(cè)試變成等待游戲: 多個(gè)團(tuán)隊(duì)經(jīng)常等待輪到他們?cè)跁捍姝h(huán)境中測(cè)試功能。這會(huì)造成瓶頸。團(tuán)隊(duì)之間共享資源的壓力會(huì)嚴(yán)重延遲發(fā)布,因?yàn)樗麄儬?zhēng)奪對(duì)暫存環(huán)境的訪問權(quán)限。嘗試在本地機(jī)器上啟動(dòng)整個(gè)堆棧以進(jìn)行測(cè)試的開發(fā)人員會(huì)遇到類似的問題。正如分布式系統(tǒng)工程師 Cindy Sridharan 指出,“我現(xiàn)在認(rèn)為,無論是在初創(chuàng)公司還是在大公司,嘗試在開發(fā)人員的筆記本電腦上啟動(dòng)整個(gè)堆棧從根本上來說是錯(cuò)誤的思維方式?!?微服務(wù)的復(fù)雜性使得在本地復(fù)制整個(gè)環(huán)境變得不切實(shí)際,就像在規(guī)模上維護(hù)共享暫存環(huán)境很困難一樣。
  2. 來自計(jì)劃測(cè)試的延遲反饋: 自動(dòng)化測(cè)試通常安排在非高峰時(shí)段,例如夜間運(yùn)行。當(dāng)檢測(cè)到故障時(shí),可能已經(jīng)部署了多個(gè) PR,這使得追蹤有問題的代碼變得更加困難。這會(huì)延遲反饋循環(huán),并對(duì)生產(chǎn)力造成“時(shí)間稅”。

連鎖反應(yīng):減緩工程速度,降低質(zhì)量

這些問題會(huì)導(dǎo)致開發(fā)人員生產(chǎn)力大幅下降。CI/CD 管道中的瓶頸會(huì)導(dǎo)致他們花費(fèi)更多時(shí)間調(diào)試而不是編碼。如果您的工程團(tuán)隊(duì)每月因暫存環(huán)境相關(guān)問題而損失數(shù)天時(shí)間,這對(duì)您的速度和士氣都是一個(gè)嚴(yán)重的打擊。

從發(fā)布流程的角度來看,脆弱的暫存環(huán)境造成的延遲會(huì)導(dǎo)致功能和補(bǔ)丁發(fā)布速度變慢。當(dāng)團(tuán)隊(duì)花費(fèi)更多時(shí)間修復(fù)暫存環(huán)境問題而不是構(gòu)建新功能時(shí),產(chǎn)品開發(fā)速度會(huì)變慢。在快速發(fā)展的行業(yè)中,這可能是一個(gè)主要的競(jìng)爭(zhēng)劣勢(shì)。

如果您的發(fā)布流程很痛苦,您發(fā)布的頻率就會(huì)降低,生產(chǎn)環(huán)境中錯(cuò)誤的成本也會(huì)更高。這種放緩也會(huì)影響產(chǎn)品質(zhì)量,因?yàn)楣こ處熢趬毫ο聻榱粟s上截止日期,可能會(huì)跳過添加新的測(cè)試用例。結(jié)果是什么?錯(cuò)誤會(huì)進(jìn)入生產(chǎn)環(huán)境。例如,對(duì)于電子商務(wù)公司來說,即使是微不足道的錯(cuò)誤也會(huì)擾亂結(jié)賬流程,導(dǎo)致收入損失和品牌受損。

最后,還有對(duì)開發(fā)人員體驗(yàn)的影響。開發(fā)人員在能夠快速高效地發(fā)布代碼的環(huán)境中茁壯成長(zhǎng)。發(fā)布流程中的摩擦?xí)岄_發(fā)人員感到沮喪,增加倦怠和人員流動(dòng)。快樂的開發(fā)人員編寫更好的代碼,而無摩擦的發(fā)布流程是實(shí)現(xiàn)這一目標(biāo)的關(guān)鍵。

為什么暫存環(huán)境會(huì)崩潰:爭(zhēng)用問題

共享預(yù)發(fā)布環(huán)境的核心問題在于競(jìng)爭(zhēng)。團(tuán)隊(duì)無法安全地隔離測(cè)試他們的更改。這種隔離的缺乏會(huì)導(dǎo)致瓶頸,阻礙團(tuán)隊(duì)有效地驗(yàn)證他們的工作。

正如 Sridharan 恰如其分地指出:

Sridharan 的引言Sridharan 的引言

預(yù)發(fā)布環(huán)境是針對(duì)單體應(yīng)用程序設(shè)計(jì)的,而不是針對(duì)微服務(wù)的動(dòng)態(tài)、分散的性質(zhì)。

一種天真的方法可能是創(chuàng)建更多預(yù)發(fā)布環(huán)境,但這也不能很好地?cái)U(kuò)展。管理多個(gè)環(huán)境會(huì)帶來更多復(fù)雜性,正如“環(huán)境復(fù)制不適用于微服務(wù)”中所述,跨微服務(wù)準(zhǔn)確地復(fù)制環(huán)境極其困難且成本高昂。

更好的方法:隔離測(cè)試

那么解決方案是什么?一些最具創(chuàng)新性的科技公司——如 Uber、Lyft 和 DoorDash——已經(jīng)放棄了共享預(yù)發(fā)布環(huán)境。他們開發(fā)了通過沙盒服務(wù)和使用動(dòng)態(tài)流量路由來隔離測(cè)試的方法。

正如Lyft 博客文章關(guān)于預(yù)發(fā)布覆蓋的說明:

“我們從根本上改變了隔離模型的方法:我們不是提供完全隔離的環(huán)境,而是在共享環(huán)境中隔離請(qǐng)求?!?/p>

通過隔離微服務(wù)更改,團(tuán)隊(duì)可以避免競(jìng)爭(zhēng)并獨(dú)立測(cè)試代碼。這種隔離測(cè)試模型消除了共享環(huán)境帶來的問題,并實(shí)現(xiàn)了真正的持續(xù)交付。隔離測(cè)試允許團(tuán)隊(duì)在開發(fā)周期的早期發(fā)現(xiàn)問題,降低了后期修復(fù)錯(cuò)誤的復(fù)雜性和成本。

隔離測(cè)試的實(shí)際應(yīng)用

構(gòu)建內(nèi)部系統(tǒng)以實(shí)現(xiàn)這種級(jí)別的隔離在技術(shù)上可能很復(fù)雜且成本高昂。但是,像Signadot這樣的平臺(tái)提供了解決方案,可以大規(guī)模提供隔離的測(cè)試環(huán)境。得益于沙盒和流量路由,團(tuán)隊(duì)可以安全高效地測(cè)試微服務(wù),而無需傳統(tǒng)的預(yù)發(fā)布環(huán)境。

結(jié)論:微服務(wù)測(cè)試的未來

預(yù)發(fā)布環(huán)境非常適合單體應(yīng)用程序,但對(duì)于當(dāng)今的微服務(wù)架構(gòu)來說已經(jīng)過時(shí)了。隨著工程團(tuán)隊(duì)的規(guī)模擴(kuò)大,共享環(huán)境會(huì)帶來代價(jià)高昂的延遲,降低質(zhì)量并讓開發(fā)人員感到沮喪。

微服務(wù)測(cè)試的未來在于隔離測(cè)試。通過放棄共享環(huán)境,團(tuán)隊(duì)可以并行測(cè)試,從而實(shí)現(xiàn)更快、更高質(zhì)量的發(fā)布。在一個(gè)速度、質(zhì)量和開發(fā)人員幸福至關(guān)重要的世界里,隔離測(cè)試不僅僅是錦上添花——它是必不可少的。

責(zé)任編輯:武曉燕 來源: 云云眾生s
相關(guān)推薦

2023-12-19 07:56:08

微服務(wù)軟件測(cè)試左移測(cè)試

2022-05-20 12:15:08

NodeJS微服務(wù)編程語言

2019-08-26 09:15:09

設(shè)計(jì)技術(shù)人生第一份工作

2021-12-29 08:30:48

微服務(wù)架構(gòu)開發(fā)

2024-11-06 16:27:12

2021-07-20 08:03:43

微服務(wù)應(yīng)用程序

2021-06-30 10:16:54

微服務(wù)架構(gòu)測(cè)試

2024-09-04 17:49:27

2016-01-20 09:54:51

微服務(wù)架構(gòu)設(shè)計(jì)SOA

2020-04-21 11:03:34

微服務(wù)數(shù)據(jù)工具

2019-08-30 10:27:37

數(shù)據(jù)庫(kù)通信技術(shù)

2023-09-15 12:30:06

微服務(wù)架構(gòu)管理

2023-01-11 16:22:07

2024-10-29 08:44:18

2022-06-12 23:36:26

微服務(wù)架構(gòu)單體應(yīng)用

2022-05-25 08:00:00

開發(fā)微服務(wù)企業(yè)

2017-03-06 17:30:11

微服務(wù)架構(gòu)系統(tǒng)

2021-08-03 07:21:14

架構(gòu)微服務(wù)開發(fā)

2020-07-10 15:18:12

微服務(wù)設(shè)計(jì)模型

2020-02-04 14:41:37

微服務(wù)設(shè)計(jì)DDD
點(diǎn)贊
收藏

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