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