Seagull分布式系統(tǒng)概述及運(yùn)作原理
推薦 + 挑錯(cuò) + 收藏(0) + 用戶評(píng)論(0)
什么是Seagull?
Seagull是一個(gè)容錯(cuò)和故障恢復(fù)的分布式系統(tǒng),用來并行執(zhí)行測(cè)試包。Seagull由以下幾部分組成:
Apache Mesos(管理Seagull集群上的資源)
AWS EC2(提供組成Seagull和Jenkins集群的實(shí)例)
AWS DynamoDB(存儲(chǔ)調(diào)度器的元數(shù)據(jù))
Docker(隔離測(cè)試需要的服務(wù))
Elasticsearch(追蹤測(cè)試運(yùn)行次數(shù)和集群使用數(shù)據(jù))
Jenkins(搭建代碼項(xiàng)目并運(yùn)行Seagull調(diào)度器)
Kibana和SignalFx(提供監(jiān)控和報(bào)警)
AWS S3(為測(cè)試日志提供真實(shí)數(shù)據(jù)來源)
挑戰(zhàn)
在準(zhǔn)備單片Web應(yīng)用和Yelp主機(jī)配置新的生產(chǎn)代碼之前,Yelp開發(fā)人員在特定的主機(jī)上運(yùn)行整個(gè)測(cè)試包。測(cè)試前,開發(fā)人員需啟動(dòng)用來調(diào)度集群測(cè)試的Seagull。以下兩點(diǎn)需要著重考慮:
1. 性能:每個(gè)Seagull-run包含將近10萬個(gè)測(cè)試,依次運(yùn)行完畢需要大約2天時(shí)間。
2. 規(guī)模:通常一天有300多個(gè)seagull-runs在運(yùn)行,高峰時(shí)段要同時(shí)運(yùn)行30-40個(gè)測(cè)試。
這項(xiàng)任務(wù)的挑戰(zhàn)在于執(zhí)行每一個(gè)Seagull-run所花費(fèi)的時(shí)間是以“分鐘”而不是以“天”來計(jì)算,同時(shí)保證在這個(gè)時(shí)間段內(nèi)成本效益好。
Seagull怎樣運(yùn)作?
首先,開發(fā)人員在控制臺(tái)啟動(dòng)Seagull-run,即啟動(dòng)Jenkins搭建代碼項(xiàng)目并生成測(cè)試列表。然后,將測(cè)試打包傳給Seagull集群上的調(diào)度器進(jìn)行測(cè)試。
非常好我支持^.^
(0) 0%
不好我反對(duì)
(0) 0%