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%