成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專(zhuān)欄INFORMATION COLUMN

使用Grab的實(shí)驗(yàn)平臺(tái)進(jìn)行混沌實(shí)驗(yàn)編排

lowett / 1422人閱讀

摘要:我們決定使用一個(gè)已有的實(shí)驗(yàn)平臺(tái)來(lái)對(duì)圍繞系統(tǒng)的應(yīng)用級(jí)別混沌實(shí)驗(yàn)進(jìn)行編排,即紫色部分,通過(guò)對(duì)下層像這樣的中間件進(jìn)行注入來(lái)實(shí)現(xiàn)。所以一些人可能沒(méi)有對(duì)應(yīng)的知識(shí)和機(jī)能來(lái)進(jìn)行合適的混沌實(shí)驗(yàn)。

Roman Atachiants · Tharaka Wijebandara · Abeesh Thomas
原文: https://engineering.grab.com/...
譯:祝坤榮

背景

對(duì)每個(gè)用戶(hù)來(lái)說(shuō),Grab是一個(gè)可以叫車(chē),叫外賣(mài)或付款的一個(gè)APP。對(duì)工程師來(lái)說(shuō),Grab是一個(gè)有許多服務(wù)并通過(guò)RPC交互的分布式系統(tǒng),有時(shí)也可以叫做微服務(wù)架構(gòu)。在數(shù)千臺(tái)服務(wù)器上運(yùn)行的數(shù)百個(gè)服務(wù)每天都有工程師在上面進(jìn)行變更。每次復(fù)雜的配置,事情可能都會(huì)變?cè)恪?幸運(yùn)的是,很多Grab App的內(nèi)部服務(wù)不像用戶(hù)叫車(chē)那樣的動(dòng)作這么重要。例如,收藏夾可以幫用戶(hù)記住之前的位置,但如果它們不工作,用戶(hù)仍然可以得到較合理的用戶(hù)體驗(yàn)。

服務(wù)部分可用并不是沒(méi)有風(fēng)險(xiǎn)。工程師需要對(duì)于RPC調(diào)用非核心服務(wù)時(shí)需要有有備用計(jì)劃。如果應(yīng)急策略沒(méi)有很好地執(zhí)行,非核心服務(wù)的問(wèn)題也可能導(dǎo)致停機(jī)。

所以我們?nèi)绾伪WCGrab的用戶(hù)可以使用核心功能,例如叫車(chē),而此時(shí)非核心服務(wù)正在出問(wèn)題?答案是混沌工程。

在Grab,我們通過(guò)在整體業(yè)務(wù)流的內(nèi)部服務(wù)或組件上引入故障來(lái)實(shí)踐混沌工程。但失敗的服務(wù)不是實(shí)驗(yàn)的關(guān)注點(diǎn)。我們感興趣的是測(cè)試依賴(lài)這個(gè)失敗服務(wù)的服務(wù)。

照理來(lái)說(shuō),上游服務(wù)應(yīng)該有彈性并且整體業(yè)務(wù)流應(yīng)該可以繼續(xù)工作。比如,叫車(chē)流程就算在司機(jī)地址服務(wù)上出現(xiàn)故障時(shí)仍應(yīng)該可以工作。我們測(cè)試重試和降級(jí)是否配置正確,是否熔斷器被正確的設(shè)置。

為了將混沌引入我們的系統(tǒng),我們使用了我們的實(shí)驗(yàn)平臺(tái)(ExP)和Grab-Kit.

混沌實(shí)驗(yàn)平臺(tái)Exp將故障注入到處理流量服務(wù)的中間件(gRPC或HTTP服務(wù)器)。如果系統(tǒng)的行為與期望一致,你將對(duì)非核心服務(wù)故障時(shí)服務(wù)會(huì)平穩(wěn)降級(jí)產(chǎn)生信心。

混沌實(shí)驗(yàn)平臺(tái)ExP在Grab的基礎(chǔ)設(shè)施中模擬不同的混沌類(lèi)型,如延遲和內(nèi)存泄漏。這保證了每個(gè)組件在系統(tǒng)的依賴(lài)不響應(yīng)或響應(yīng)很高時(shí)仍能返回一些東西。它能保證我們對(duì)于實(shí)例級(jí)失敗有彈性,因?yàn)槲⒎?wù)級(jí)別的中斷對(duì)于可用性也是一個(gè)威脅。

配置混沌實(shí)驗(yàn)

為了構(gòu)建我們的混沌工程系統(tǒng),我們認(rèn)為需要在兩個(gè)主要領(lǐng)域引入混沌:

基礎(chǔ)設(shè)置:隨機(jī)關(guān)閉基礎(chǔ)設(shè)施的實(shí)例和其他部分

應(yīng)用: 在較粗粒度引入運(yùn)行時(shí)故障(如endpoint/request級(jí)別)

你可以稍后啟用有意的或隨機(jī)的混沌實(shí)驗(yàn):

隨機(jī)的

比較適合‘一次性’基礎(chǔ)設(shè)施(如EC2實(shí)例)

測(cè)試冗余的基礎(chǔ)設(shè)施對(duì)最終用戶(hù)的影響

當(dāng)影響面已經(jīng)十分確定

實(shí)驗(yàn)

精確度量影響

使用實(shí)驗(yàn)參數(shù)控制

對(duì)最終用戶(hù)有限的影響

適用于對(duì)于影響不十分確定的復(fù)雜故障(如延遲)

最后,你可以將故障模式按以下分類(lèi):

資源:CPU,內(nèi)存,IO,磁盤(pán)

網(wǎng)絡(luò):黑洞,延遲,丟包,DNS

狀態(tài):關(guān)機(jī),時(shí)間,殺進(jìn)程

這些模型都可以在基礎(chǔ)設(shè)施或應(yīng)用級(jí)別使用或模擬:

對(duì)于Grab,進(jìn)行應(yīng)用級(jí)別的混沌實(shí)驗(yàn)并仔細(xì)度量影響面很重要。我們決定使用一個(gè)已有的實(shí)驗(yàn)平臺(tái)來(lái)對(duì)圍繞系統(tǒng)的應(yīng)用級(jí)別混沌實(shí)驗(yàn)進(jìn)行編排,即紫色部分,通過(guò)對(duì)下層像Grab-Kit這樣的中間件進(jìn)行注入來(lái)實(shí)現(xiàn)。

為什么使用實(shí)驗(yàn)平臺(tái)?

現(xiàn)在有一些混沌工程工具。但是,使用它們經(jīng)常需要較高級(jí)的基礎(chǔ)設(shè)施和運(yùn)維技巧,有能力設(shè)計(jì)和執(zhí)行實(shí)驗(yàn),以受控的方式有資源手工編排失敗場(chǎng)景?;煦绻こ滩皇呛?jiǎn)單的在生產(chǎn)環(huán)境搞破壞。

將混沌工程理解成受控的實(shí)驗(yàn)。我們的ExP SDK提供彈性和異步追蹤。這樣,我們可以將潛在的業(yè)務(wù)屬性度量對(duì)應(yīng)到混沌失敗上。比如,在訂車(chē)服務(wù)上進(jìn)行10秒延遲的混沌故障,我們可以知道多少輛車(chē)被影響了進(jìn)而知道損失了多少錢(qián)。

使用ExP作為混沌工程的工具意味著我們可以基于應(yīng)用或環(huán)境精確定制,讓它可以像監(jiān)控和部署管道一樣與其他環(huán)境緊密集成。

在安全上也可以獲得收益。使用ExP,所有的連接都在我們的內(nèi)部網(wǎng)絡(luò)中,給我們攻擊表面區(qū)域的能力。所有東西都可以掌控在手中,對(duì)外部世界沒(méi)有依賴(lài)。這也潛在的使監(jiān)控和控制流量變?nèi)菀琢恕?/p>

混沌故障可以點(diǎn)對(duì)點(diǎn),編程式的,或定期執(zhí)行。你可以讓它們?cè)谔囟ㄈ掌诘奶囟〞r(shí)間窗口來(lái)執(zhí)行。你可以設(shè)定故障的最大數(shù)量并定制它們(比如泄漏的內(nèi)存MB數(shù)量,等待的秒)。

ExP的核心價(jià)值是讓工程師可以啟動(dòng),控制和觀察系統(tǒng)在各種失敗條件下的行為。ExP提供全面的故障原子集,用來(lái)設(shè)計(jì)實(shí)驗(yàn)并觀察問(wèn)題在復(fù)雜分布式系統(tǒng)發(fā)生時(shí)的表現(xiàn)。而且,將混沌測(cè)試集成到ExP,我們對(duì)于部署流水線或網(wǎng)絡(luò)基礎(chǔ)設(shè)施不需要任何改動(dòng)。因此這種組合可以很容易的在各種基礎(chǔ)設(shè)施和部署范式上使用。

我們?nèi)绾未蛟霤haos SDK和UI

要開(kāi)發(fā)混沌工程SDK,我們使用我們已有ExP SDK的屬性 - single-digit , 不需要網(wǎng)絡(luò)調(diào)用。你可以看這里對(duì)于ExP SDK的實(shí)現(xiàn)?,F(xiàn)在我們要做兩件事:

一個(gè)在ExP SDK之上的很小的混沌SDK。我們將這個(gè)直接集成在我們的已有中間件,如Grab-Kit和DB層。

一個(gè)專(zhuān)門(mén)的用來(lái)創(chuàng)建混沌實(shí)驗(yàn)的基于web的UI

歸功于我們與Grab-Kit的集成,Grab工程師不需要直接使用混沌SDK。當(dāng)Grab-Kit處理進(jìn)入的請(qǐng)求時(shí),它先使用ExP SDK進(jìn)行檢查。如果請(qǐng)求“應(yīng)該失敗”,它將產(chǎn)生適合的失敗類(lèi)型。然后它被轉(zhuǎn)發(fā)到特定endpoint的處理器。

我們現(xiàn)在支持以下失敗類(lèi)型:

Error - 讓請(qǐng)求產(chǎn)生error

CPU Load - 在CPU上加大load

內(nèi)存泄漏 - 產(chǎn)生一些永遠(yuǎn)不能釋放的內(nèi)存

延遲 - 在一小段隨機(jī)時(shí)間內(nèi)停止請(qǐng)求的處理

磁盤(pán)空間 - 在機(jī)器上填入一些臨時(shí)文件

Goroutine泄漏 - 創(chuàng)建并泄漏goroutines

Panic - creates a panic in the request

限流 - 在請(qǐng)求上設(shè)置一個(gè)頻率限制并在超過(guò)限制時(shí)拒絕請(qǐng)求

舉個(gè)例子,如果一個(gè)叫車(chē)請(qǐng)求到了我們的叫車(chē)服務(wù),我們調(diào)用GetVariable(“chaosFailure”)來(lái)決定請(qǐng)求是否應(yīng)該成功。請(qǐng)求里包含所有需要用來(lái)做決定的信息(如請(qǐng)求ID,實(shí)例的IP地址等)。關(guān)于實(shí)驗(yàn)SDK的實(shí)現(xiàn)細(xì)節(jié),看這篇博客。

為了在我們的工程師中推廣混沌工程我們圍繞它建立了很好的開(kāi)發(fā)者體驗(yàn)。在Grab不同的工程團(tuán)隊(duì)會(huì)有很多不同的技術(shù)和領(lǐng)域。所以一些人可能沒(méi)有對(duì)應(yīng)的知識(shí)和機(jī)能來(lái)進(jìn)行合適的混沌實(shí)驗(yàn)。但使用我們簡(jiǎn)化過(guò)的用戶(hù)界面,他們不需要擔(dān)心底層實(shí)現(xiàn)。

并且,運(yùn)行混沌實(shí)驗(yàn)的工程師是與像產(chǎn)品分析師和產(chǎn)品經(jīng)理不同的實(shí)驗(yàn)平臺(tái)用戶(hù)。所以我們使用一種簡(jiǎn)單和定制化UI配置新的混沌實(shí)驗(yàn)來(lái)提供一種不同的創(chuàng)建實(shí)驗(yàn)的體驗(yàn)。

在混沌工程平臺(tái),一個(gè)實(shí)驗(yàn)有以下四步:

定義系統(tǒng)正常情況下的理想狀態(tài)。

創(chuàng)建一個(gè)控制組的配置和一個(gè)對(duì)比組的配置??刂平M的變量使用已有值來(lái)賦值。對(duì)比組的變量使用新值來(lái)賦值。

引入真實(shí)世界的故障,例如增加CPU負(fù)載。

找到區(qū)分系統(tǒng)正確和失敗狀態(tài)標(biāo)志性不同。

要?jiǎng)?chuàng)建一個(gè)混沌實(shí)驗(yàn),標(biāo)明你想要實(shí)驗(yàn)破壞的服務(wù)。你可以在以后通過(guò)提供環(huán)境,可用區(qū)或?qū)嵗斜韥?lái)更細(xì)化這個(gè)選擇范圍。

下一步,指定一組會(huì)被破壞的服務(wù)影響的服務(wù)列表。你在試驗(yàn)期間需要仔細(xì)監(jiān)控這些服務(wù)。盡管我們持續(xù)跟蹤表示系統(tǒng)健康的整體度量指標(biāo),它仍能幫助你在稍后分析實(shí)驗(yàn)的影響。

然后,我們提供UI來(lái)指定目標(biāo)組和對(duì)比組的策略,失敗類(lèi)型,每個(gè)對(duì)比組的配置。最后一步,提供時(shí)間周期并創(chuàng)建實(shí)驗(yàn)。你已經(jīng)在你的系統(tǒng)中加入了混沌故障并可以監(jiān)控它對(duì)系統(tǒng)的影響了。

結(jié)論

在運(yùn)行混沌實(shí)驗(yàn)后,一般會(huì)有兩種可能輸出。你已經(jīng)確認(rèn)了在引入的故障中系統(tǒng)保持了足夠的彈性,或你發(fā)現(xiàn)了需要修復(fù)的問(wèn)題。如果混沌實(shí)驗(yàn)最初被運(yùn)行在預(yù)發(fā)環(huán)境那么兩種都是不錯(cuò)的結(jié)果。在第一種場(chǎng)景,你對(duì)系統(tǒng)的行為產(chǎn)生了信心。在另一個(gè)場(chǎng)景,你在導(dǎo)致停機(jī)故障前發(fā)現(xiàn)了一個(gè)問(wèn)題。

混沌工程是讓你工作更簡(jiǎn)單的工具。通過(guò)主動(dòng)測(cè)試和驗(yàn)證你系統(tǒng)的故障模式你減輕了你的運(yùn)維負(fù)擔(dān),增加了你的彈性,在晚上也能睡個(gè)好覺(jué)。

本文來(lái)自微信公眾號(hào)「麥芽面包,id「darkjune_think」轉(zhuǎn)載請(qǐng)注明。
交流Email: zhukunrong@yeah.net

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/73538.html

相關(guān)文章

  • 六年打磨!阿里開(kāi)源混沌工程工具 ChaosBlade

    摘要:這一次,經(jīng)歷了年時(shí)間的改進(jìn)和實(shí)踐,累計(jì)在線上執(zhí)行演練場(chǎng)景達(dá)數(shù)萬(wàn)次,我們將阿里巴巴在故障演練領(lǐng)域的創(chuàng)意和實(shí)踐,濃縮成一個(gè)混沌工程工具,并將其開(kāi)源,命名為。 showImg(https://segmentfault.com/img/remote/1460000018704226); 阿里妹導(dǎo)讀:減少故障的最好方法就是讓故障經(jīng)常性的發(fā)生。通過(guò)不斷重復(fù)失敗過(guò)程,持續(xù)提升系統(tǒng)的容錯(cuò)和彈性能力。今...

    BakerJ 評(píng)論0 收藏0
  • 鮮為人知混沌工程,到底哪里好?

    摘要:通過(guò)本文,你將了解到為什么需要混沌工程,阿里巴巴在該領(lǐng)域的實(shí)踐和思考未來(lái)的計(jì)劃。而阿里目前并沒(méi)有一個(gè)專(zhuān)門(mén)的職位來(lái)實(shí)施混沌工程,項(xiàng)目目標(biāo)業(yè)務(wù)場(chǎng)景人員結(jié)構(gòu)實(shí)施方式的不同導(dǎo)致了對(duì)于穩(wěn)定狀態(tài)行為的定義不太標(biāo)準(zhǔn)。 阿里妹導(dǎo)讀:混沌工程屬于一門(mén)新興的技術(shù)學(xué)科,行業(yè)認(rèn)知和實(shí)踐積累比較少,大多數(shù)IT團(tuán)隊(duì)對(duì)它的理解還沒(méi)有上升到一個(gè)領(lǐng)域概念。阿里電商域在2010年左右開(kāi)始嘗試故障注入測(cè)試的工作,希望解決微...

    yexiaobai 評(píng)論0 收藏0
  • 【譯】混沌工程與區(qū)塊鏈

    摘要:作者原文第一部分應(yīng)用混沌工程理論到區(qū)塊鏈框架。你可以抗議混沌環(huán)境在像與這種權(quán)限不足的公共區(qū)塊鏈網(wǎng)絡(luò)上是否存在。在之后這些被稱(chēng)之為混沌工程?;煦缭瓌t開(kāi)始進(jìn)入正式規(guī)范。名字是混沌工程通過(guò)實(shí)驗(yàn)建立對(duì)系統(tǒng)行為的信心。 作者 Vipin Bharathan原文:https://medium.com/@vipinsun/... 第一部分. 應(yīng)用混沌工程理論到區(qū)塊鏈框架。 混沌與工程兩個(gè)字是沒(méi)有什么...

    yck 評(píng)論0 收藏0
  • 有贊業(yè)務(wù)中臺(tái)測(cè)試團(tuán)隊(duì)介紹

    摘要:在冒煙測(cè)試執(zhí)行過(guò)程中,開(kāi)發(fā)可以跟測(cè)試確定一個(gè)合理的冒煙用例數(shù)。另外在中臺(tái)測(cè)試組每月或每季度會(huì)成立專(zhuān)項(xiàng)測(cè)試小組專(zhuān)門(mén)執(zhí)行對(duì)應(yīng)的專(zhuān)項(xiàng)測(cè)試。 一、團(tuán)隊(duì)概況 ?有贊幫助每一位重視產(chǎn)品和服務(wù)的商家成功,目前旗下?lián)碛校河匈澪⑸坛恰⒂匈澚闶?、有贊美業(yè)、有贊小程序等SaaS軟件產(chǎn)品,適用全行業(yè)多場(chǎng)景,幫商家網(wǎng)上開(kāi)店、網(wǎng)上營(yíng)銷(xiāo)、管理客戶(hù)、獲取訂單。 ?有贊業(yè)務(wù)中臺(tái)測(cè)試團(tuán)隊(duì)按照職責(zé)劃分為六條線:交易組、營(yíng)銷(xiāo)...

    gaosboy 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

閱讀需要支付1元查看
<