国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

使用Grab的實驗平臺進行混沌實驗編排

lowett / 1371人閱讀

摘要:我們決定使用一個已有的實驗平臺來對圍繞系統的應用級別混沌實驗進行編排,即紫色部分,通過對下層像這樣的中間件進行注入來實現。所以一些人可能沒有對應的知識和機能來進行合適的混沌實驗。

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

背景

對每個用戶來說,Grab是一個可以叫車,叫外賣或付款的一個APP。對工程師來說,Grab是一個有許多服務并通過RPC交互的分布式系統,有時也可以叫做微服務架構。在數千臺服務器上運行的數百個服務每天都有工程師在上面進行變更。每次復雜的配置,事情可能都會變糟。 幸運的是,很多Grab App的內部服務不像用戶叫車那樣的動作這么重要。例如,收藏夾可以幫用戶記住之前的位置,但如果它們不工作,用戶仍然可以得到較合理的用戶體驗。

服務部分可用并不是沒有風險。工程師需要對于RPC調用非核心服務時需要有有備用計劃。如果應急策略沒有很好地執行,非核心服務的問題也可能導致停機。

所以我們如何保證Grab的用戶可以使用核心功能,例如叫車,而此時非核心服務正在出問題?答案是混沌工程。

在Grab,我們通過在整體業務流的內部服務或組件上引入故障來實踐混沌工程。但失敗的服務不是實驗的關注點。我們感興趣的是測試依賴這個失敗服務的服務。

照理來說,上游服務應該有彈性并且整體業務流應該可以繼續工作。比如,叫車流程就算在司機地址服務上出現故障時仍應該可以工作。我們測試重試和降級是否配置正確,是否熔斷器被正確的設置。

為了將混沌引入我們的系統,我們使用了我們的實驗平臺(ExP)和Grab-Kit.

混沌實驗平臺Exp將故障注入到處理流量服務的中間件(gRPC或HTTP服務器)。如果系統的行為與期望一致,你將對非核心服務故障時服務會平穩降級產生信心。

混沌實驗平臺ExP在Grab的基礎設施中模擬不同的混沌類型,如延遲和內存泄漏。這保證了每個組件在系統的依賴不響應或響應很高時仍能返回一些東西。它能保證我們對于實例級失敗有彈性,因為微服務級別的中斷對于可用性也是一個威脅。

配置混沌實驗

為了構建我們的混沌工程系統,我們認為需要在兩個主要領域引入混沌:

基礎設置:隨機關閉基礎設施的實例和其他部分

應用: 在較粗粒度引入運行時故障(如endpoint/request級別)

你可以稍后啟用有意的或隨機的混沌實驗:

隨機的

比較適合‘一次性’基礎設施(如EC2實例)

測試冗余的基礎設施對最終用戶的影響

當影響面已經十分確定

實驗

精確度量影響

使用實驗參數控制

對最終用戶有限的影響

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

最后,你可以將故障模式按以下分類:

資源:CPU,內存,IO,磁盤

網絡:黑洞,延遲,丟包,DNS

狀態:關機,時間,殺進程

這些模型都可以在基礎設施或應用級別使用或模擬:

對于Grab,進行應用級別的混沌實驗并仔細度量影響面很重要。我們決定使用一個已有的實驗平臺來對圍繞系統的應用級別混沌實驗進行編排,即紫色部分,通過對下層像Grab-Kit這樣的中間件進行注入來實現。

為什么使用實驗平臺?

現在有一些混沌工程工具。但是,使用它們經常需要較高級的基礎設施和運維技巧,有能力設計和執行實驗,以受控的方式有資源手工編排失敗場景。混沌工程不是簡單的在生產環境搞破壞。

將混沌工程理解成受控的實驗。我們的ExP SDK提供彈性和異步追蹤。這樣,我們可以將潛在的業務屬性度量對應到混沌失敗上。比如,在訂車服務上進行10秒延遲的混沌故障,我們可以知道多少輛車被影響了進而知道損失了多少錢。

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

在安全上也可以獲得收益。使用ExP,所有的連接都在我們的內部網絡中,給我們攻擊表面區域的能力。所有東西都可以掌控在手中,對外部世界沒有依賴。這也潛在的使監控和控制流量變容易了。

混沌故障可以點對點,編程式的,或定期執行。你可以讓它們在特定日期的特定時間窗口來執行。你可以設定故障的最大數量并定制它們(比如泄漏的內存MB數量,等待的秒)。

ExP的核心價值是讓工程師可以啟動,控制和觀察系統在各種失敗條件下的行為。ExP提供全面的故障原子集,用來設計實驗并觀察問題在復雜分布式系統發生時的表現。而且,將混沌測試集成到ExP,我們對于部署流水線或網絡基礎設施不需要任何改動。因此這種組合可以很容易的在各種基礎設施和部署范式上使用。

我們如何打造Chaos SDK和UI

要開發混沌工程SDK,我們使用我們已有ExP SDK的屬性 - single-digit , 不需要網絡調用。你可以看這里對于ExP SDK的實現。現在我們要做兩件事:

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

一個專門的用來創建混沌實驗的基于web的UI

歸功于我們與Grab-Kit的集成,Grab工程師不需要直接使用混沌SDK。當Grab-Kit處理進入的請求時,它先使用ExP SDK進行檢查。如果請求“應該失敗”,它將產生適合的失敗類型。然后它被轉發到特定endpoint的處理器。

我們現在支持以下失敗類型:

Error - 讓請求產生error

CPU Load - 在CPU上加大load

內存泄漏 - 產生一些永遠不能釋放的內存

延遲 - 在一小段隨機時間內停止請求的處理

磁盤空間 - 在機器上填入一些臨時文件

Goroutine泄漏 - 創建并泄漏goroutines

Panic - creates a panic in the request

限流 - 在請求上設置一個頻率限制并在超過限制時拒絕請求

舉個例子,如果一個叫車請求到了我們的叫車服務,我們調用GetVariable(“chaosFailure”)來決定請求是否應該成功。請求里包含所有需要用來做決定的信息(如請求ID,實例的IP地址等)。關于實驗SDK的實現細節,看這篇博客。

為了在我們的工程師中推廣混沌工程我們圍繞它建立了很好的開發者體驗。在Grab不同的工程團隊會有很多不同的技術和領域。所以一些人可能沒有對應的知識和機能來進行合適的混沌實驗。但使用我們簡化過的用戶界面,他們不需要擔心底層實現。

并且,運行混沌實驗的工程師是與像產品分析師和產品經理不同的實驗平臺用戶。所以我們使用一種簡單和定制化UI配置新的混沌實驗來提供一種不同的創建實驗的體驗。

在混沌工程平臺,一個實驗有以下四步:

定義系統正常情況下的理想狀態。

創建一個控制組的配置和一個對比組的配置。控制組的變量使用已有值來賦值。對比組的變量使用新值來賦值。

引入真實世界的故障,例如增加CPU負載。

找到區分系統正確和失敗狀態標志性不同。

要創建一個混沌實驗,標明你想要實驗破壞的服務。你可以在以后通過提供環境,可用區或實例列表來更細化這個選擇范圍。

下一步,指定一組會被破壞的服務影響的服務列表。你在試驗期間需要仔細監控這些服務。盡管我們持續跟蹤表示系統健康的整體度量指標,它仍能幫助你在稍后分析實驗的影響。

然后,我們提供UI來指定目標組和對比組的策略,失敗類型,每個對比組的配置。最后一步,提供時間周期并創建實驗。你已經在你的系統中加入了混沌故障并可以監控它對系統的影響了。

結論

在運行混沌實驗后,一般會有兩種可能輸出。你已經確認了在引入的故障中系統保持了足夠的彈性,或你發現了需要修復的問題。如果混沌實驗最初被運行在預發環境那么兩種都是不錯的結果。在第一種場景,你對系統的行為產生了信心。在另一個場景,你在導致停機故障前發現了一個問題。

混沌工程是讓你工作更簡單的工具。通過主動測試和驗證你系統的故障模式你減輕了你的運維負擔,增加了你的彈性,在晚上也能睡個好覺。

本文來自微信公眾號「麥芽面包,id「darkjune_think」轉載請注明。
交流Email: zhukunrong@yeah.net

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/73538.html

相關文章

  • 六年打磨!阿里開源混沌工程工具 ChaosBlade

    摘要:這一次,經歷了年時間的改進和實踐,累計在線上執行演練場景達數萬次,我們將阿里巴巴在故障演練領域的創意和實踐,濃縮成一個混沌工程工具,并將其開源,命名為。 showImg(https://segmentfault.com/img/remote/1460000018704226); 阿里妹導讀:減少故障的最好方法就是讓故障經常性的發生。通過不斷重復失敗過程,持續提升系統的容錯和彈性能力。今...

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

    摘要:通過本文,你將了解到為什么需要混沌工程,阿里巴巴在該領域的實踐和思考未來的計劃。而阿里目前并沒有一個專門的職位來實施混沌工程,項目目標業務場景人員結構實施方式的不同導致了對于穩定狀態行為的定義不太標準。 阿里妹導讀:混沌工程屬于一門新興的技術學科,行業認知和實踐積累比較少,大多數IT團隊對它的理解還沒有上升到一個領域概念。阿里電商域在2010年左右開始嘗試故障注入測試的工作,希望解決微...

    yexiaobai 評論0 收藏0
  • 【譯】混沌工程與區塊鏈

    摘要:作者原文第一部分應用混沌工程理論到區塊鏈框架。你可以抗議混沌環境在像與這種權限不足的公共區塊鏈網絡上是否存在。在之后這些被稱之為混沌工程。混沌原則開始進入正式規范。名字是混沌工程通過實驗建立對系統行為的信心。 作者 Vipin Bharathan原文:https://medium.com/@vipinsun/... 第一部分. 應用混沌工程理論到區塊鏈框架。 混沌與工程兩個字是沒有什么...

    yck 評論0 收藏0
  • 有贊業務中臺測試團隊介紹

    摘要:在冒煙測試執行過程中,開發可以跟測試確定一個合理的冒煙用例數。另外在中臺測試組每月或每季度會成立專項測試小組專門執行對應的專項測試。 一、團隊概況 ?有贊幫助每一位重視產品和服務的商家成功,目前旗下擁有:有贊微商城、有贊零售、有贊美業、有贊小程序等SaaS軟件產品,適用全行業多場景,幫商家網上開店、網上營銷、管理客戶、獲取訂單。 ?有贊業務中臺測試團隊按照職責劃分為六條線:交易組、營銷...

    gaosboy 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<