Yahoo! 开源了他们在内部生产系统中使用的持续交付工具Screwdriver。

\\

Screwdriver作为一种持续交付工具,集成了从代码提交到生产系统部署的所有步骤。Yahoo!在过去五年中逐步使用Screwdriver去自动化所有的交付过程,现可达到每日超过25,000次的构建和多于12,000次的git提交。按Yahoo!的说法,他们所希望的持续集成工具应具备以下特性:

\\

  • 使得开发人员易于建立部署流水线。流水线采用YAML文件定义,并可通过放弃变更或者使用另一版本配置文件将流水线还原回早期的版本。 \\
  • 主干开发的优化。主干中应包括应用的可交付版本。为确保被拉取的代码在提交前已得到测试,测试是自动运行的。 \\
  • 支持回滚。任何具有写权限的人可在发生错误时回滚部署。\

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)关注我们。

Yahoo! Screwdriver:可扩展的持续集成工具相关推荐

  1. 不容错过的8个持续集成工具

    如果你很熟悉"持续集成",一定会同意这样的观点:"它已经逐渐成为一种必不可少的工具".在这篇文章中,我们将介绍几款流行的持续集成工具.阅读后,你会对这些CI工具 ...

  2. Hudson:持续集成工具的安装、使用

    Hudson简介 http://hudson-ci.org      以其强大的功能和易用的界面征服了大量的用户,它与主流的构建工具.版本控制系统以及自动化测试框架都能进行很好的集成.      很多 ...

  3. 自行搭建嵌入式持续集成工具:从0到1

    为什么持续集成备受推崇? 软件开发过程中,开发方式及开发工具是至关重要的. 持续集成(Continuous Integration,CI)以使产品在快速迭代的同时保持高质量为目的,指开发人员定期将代码 ...

  4. 持续集成工具集之一 Jenkins简介

    Jenkins 是一个可扩展的持续集成引擎. 主要用于: 持续.自动地构建/测试软件项目. 监控一些定时执行的任务. Jenkins拥有的特性包括: 易于安装-只要把jenkins.war部署到ser ...

  5. python持续集成工具_21 个好用的持续集成工具,总有一款适合你

    原标题:21 个好用的持续集成工具,总有一款适合你 市场上持续集成工具众多,找到一个合适的工具并非易事,下面介绍了 21 个比较受欢迎的 CI 工具,并附上了下载链接. 1. Buddy 对 Web ...

  6. 21 个好用的持续集成工具,总有一款适合你

    市场上持续集成工具众多,找到一个合适的工具并非易事,下面介绍了 21 个比较受欢迎的 CI 工具,并附上了下载链接. 1. Buddy 对 Web 开发者来说,Buddy 是一个智能的 CI/CD 工 ...

  7. 持续集成工具 Jenkins vs TeamCity

    1. 先来看看受欢迎程度: 2. Jenkins vs TeamCity: What are the differences? Jenkins Jenkins 是一个开源工具,Jenkins的出现的时 ...

  8. 持续集成与持续部署(四)01-Jenkins——简介-基于Java开发的一种开源持续集成工具

    持续集成与持续部署(四)01-Jenkins--简介-基于Java开发的一种开源持续集成工具 Jenkins 使用简介 Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控 ...

  9. 持续集成工具 jenkins

    研究比较深入的博客地址: http://blog.csdn.net/wangmuming/article/category/2167947 Jenkins安装与配置 2 Jenkins安装 在最简单的 ...

最新文章

  1. python用什么开发平台_一般来说,python平台开发有什么作用?
  2. 皮一皮:浓浓的父爱...
  3. 数学图形(1.10) 双曲线
  4. IIS部署asp.net core webapi
  5. tms570 can 接收大量数据_CAN通讯系列--CAN总线基础3
  6. 基于机器学习的AI预测更智能?
  7. 74-A/D指标,Accumulation/Distribution,积累/派发线,离散指标.(2015.7.1)
  8. 项目开发中如何提升团队的战力?
  9. 【瑕疵检测】基于matlab GUI灰度共生矩阵痕迹检测【含Matlab源码 863期】
  10. 立方体和球形体积的计算
  11. html的strong标签是什么意思,Strong标签和B标签怎么用?区别有哪些
  12. 家谱树java_树家族算法梳理
  13. HMAC_SHA1和SHA1的区别
  14. 二阶常微分方程的数值解法(中心差分法和有限体积法)
  15. C语言入门与进阶必备书
  16. 中兴通讯2013校招软件笔试题
  17. jsp/servlet 实现的图书管理系统
  18. Linux UVC driver 独立交叉编译记录
  19. esp8266微信wifi配置AIRKISS
  20. Echarts调整X轴字体大小

热门文章

  1. 什么是jquery_什么是jQuery?
  2. python 读取文本文件_如何在Python中读取大文本文件
  3. java 配对问题_Java中的配对类是什么?
  4. OpenSSH升级-无需替换旧版本文件
  5. 程序员应该具备哪些素质
  6. 散列表(哈希表)(散列函数构造、处理冲突、查找)
  7. 【回文串9】LeetCode 409. Longest Palindrome
  8. Leetcode 235.二叉搜索树的最近公共祖先
  9. Ubuntu怎么截图?一些快捷键备忘
  10. 《Deep Snake for Real-Time Instance Segmentation》