持续交付构建系统 Screwdriver

BSD
JavaScript
跨平台
Yahoo
2017-01-19
王练

Screwdriver 是 Yahoo 开源的持续交付构建系统,Screwdriver 的一些关键设计功能帮助 Yahoo 实现了大规模持续交付能力。从宏观看,这些关键设计是:

  • 使部署管道容易

  • 优化主干开发

  • 使回滚容易

轻松部署管道:部署持续测试、集成和部署的代码到生产环境的管道时,大大降低错误的风险,并缩短了获得开发人员反馈的时间。通常,许多团队面临的挑战是设置和维护管道很麻烦。Yahoo 工程团队设计了一个解决方案,使管道易于配置,并为任何开发人员提供完整的自助服务。通过管理代码库中的管道配置,Screwdriver 允许开发人员以他们熟悉的方式配置管道,另一个好处是,也可以轻松地审查管道的变化。

主干开发:在 Yahoo 内部,鼓励主干代码总是可交付的工作流程。团队使用修改后的 GitHub 流程来完成工作流程。 Pull Requests(PR)是运行测试的入口点,确保进入仓库的代码已经过充分测试。坚持正式 PR 也提高了代码审查的质量。

为了确保主干是可交付的,在 PR 中启用代码的功能测试。在内部,这是一个配置管道,动态分配计算资源,部署代码和运行测试。这些测试包括使用 Selenium 等工具的 Web 测试。这些动态分配的资源也可在 PR 构建之后的一段时间内也照常使用,从而让工程师与系统交互,并以可视化的方式检查其变化。

容易回滚:为了允许简单的代码回滚,允许这样管道的阶段:重新运行前保存的状态。工程团队利用 PaaS 中的功能来处理部署,但是通过存储和传递元数据以便能够用具有相同部署数据重新运行特定 git SHA。这样,可以回滚到生产环境中的先前状态。此设计使回滚很容易,只要从下拉菜单中选择一个版本并单击“部署”即可。任何有项目写权限的人都可以进行此更改。这有助于将团队迁移到 DevOps 模型,这个模型让开发人员负责生产环境中的状态。


介绍内容来自:网路冷眼

加载中

评论(2)

灵魂架构师
灵魂架构师
就是这套玩意吧雅虎搞破产的?
loki_lan
loki_lan
与Jenkins比有什么优点缺点?

暂无资讯

暂无问答

Spring框架 - IoC容器概述

#IoC容器 ##Spring模块架构图-IoC容器 IoC容器处于Spring模块架构比较核心的地位,它向上层的AOP、数据访问、Web等框架提供基本的支持。 ![输入图片说明](https://static.oschina.net/upload...

2016/10/12 00:31
50
0
Spring框架 - IoC容器依赖注入

# 依赖注入 ## 强依赖 ``` public class ScrewDriver { private Header header = new StraightHeader(); public void use(){ System.out.println("Use straight screwdriver"); } } ``` 如果...

2016/10/13 23:54
48
0
Spring-IoC小例子

1、创建maven项目 2、引入依赖 Bean是由Spring容器管理的,Spring的Core Container包括了Beans,Core,Context和SpEL。这里需要使用到Context的包。 <dependencies> <dependency> <gro...

2016/12/11 21:33
10
0
类与类关系的UML图与代码表现

http://www.uml.org.cn/oobject/200812191.asp 类与类之间的关系对于理解面向对象具有很重要的作用,以前在面试的时候也经常被问到这个问题,在这里我就介绍一下。 类与类之间存在以下关系:...

2011/12/15 16:19
127
0
类与类关系的UML图与代码表现

类与类之间的关系对于理解面向对象具有很重要的作用,以前在面试的时候也经常被问到这个问题,在这里我就介绍一下。 类与类之间存在以下关系: (1)泛化(Generalization) (2)关联(Association)...

2014/11/20 10:52
32
0
UML 类与类之间的关系

UML 类与类之间的关系 http://www.uml.org.cn/oobject/200712044.asp 2007-12-04 作者: 周建东 来源:tmsoft.lsxy.com 类与类之间的关系对于理解面向对象具有很重要的作用,以前在面试的时候...

2012/05/14 22:16
260
0
类与类关系的UML图与代码表现

一 : 二 : 三 : 四 : 五 : 类与类之间的关系对于理解面向对象具有很重要的作用,存在以下关系: (1)泛化(Generalization) :狗与动物 (空箭头) (2)关联(Association) :公司与员工有特定...

2012/05/14 22:45
115
1
介绍面向系统管理员的7个CI/CD工具

持续集成、持续交付和持续部署(CI/CD)在开发者社区已存在了多年。一些企业设有运维部门,但许多企业没有。对于大多数企业而言,它们的运维团队要像开发团队那样熟悉CI/CD工具和实践。本文介绍...

01/15 13:38
8
0
常用的持续集成工具

持续集成(continuous integration)作为敏捷编程的基石现在已经被绝大多数的开发团队所广泛采用。 一个比较简单的定义如下: 持续集成(CI)是一种实践,可以让团队在持续的基础 上收到反馈并...

01/16 14:16
13
0
介绍面向系统管理员的7个CI/CD工具

持续集成、持续交付和持续部署(CI/CD)在开发者社区已存在了多年。一些企业设有运维部门,但许多企业没有。对于大多数企业而言,它们的运维团队要像开发团队那样熟悉CI/CD工具和实践。本文介绍...

01/15 10:45
10
0

没有更多内容

加载失败,请刷新页面

返回顶部
顶部