Yahoo! 开源了他们在内部生产系统中使用的持续交付工具 Screwdriver 。
Screwdriver 作为一种持续交付工具,集成了从代码提交到生产系统部署的所有步骤。Yahoo!在过去五年中逐步使用Screwdriver去自动化所有的交付过程,现可达到每日超过25,000次的构建和多于12,000次的git提交。 按Yahoo!的说法 ,他们所希望的持续集成工具应具备以下特性:
Screwdriver具有五个主要组件:
REST API:与流水线协同工作的接口。
Web UI:用于流水线API的可视化接口。
启动器(Launcher):设置环境并执行Shell命令的工具。
执行引擎(Execution Engine):可插拔的构建执行器,支持在容器(Jenkins、Kubernetes、Mesos、Docker Swarm)内执行命令。
数据存储(Datastore):可插拔的NoSQL存储,用于维护流水线配置数据(DynamoDB、MongoDB、CouchDB、Postgres)。执行引擎和数据存储都使用了可插拔的架构,使得用户可按自身意向选用引擎。
现在 Yahoo!已开源 了该持续集成工具的一个精简版本,并有计划在未来的一个月内添加上一些未发布的组件,其中包括:保存可供后续使用的元数据、采集指标、分析日志,以及用于设置和执行流水线的模板。
查看英文原文: Yahoo! Screwdriver–A CD Tool that Scales
感谢薛命灯对本文的审校。
给InfoQ中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家通过新浪微博(@InfoQ,@丁晓昀),微信(微信号: InfoQChina )关注我们。