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