什么是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条评论
快来发表一下你的评论吧 !