背景

云效依托于阿里巴巴研发效能多年规模化持续交付,赋能云上开发者专为云端用户提供的一站式研发协作平台。Kubernetes,由Google开源的容器集群管理平台,面向运维侧提供自动化的集群和应用管理解决方案。
 
一站式交付体验:云效+Kubernetes,云效持续集成流水线 Flow属于企业级持续集成和持续交付工具,通过构建自动化、集成自动化、验证自动化、部署自动化,完成从开发到上线CICD过程。通过持续向团队提供及时反馈,让交付过程高效顺畅。
 

核心能力

 
通过结合云效与Kubernetes可以有效打通从研发协作,持续交付以及自动化运维的整个软件交付生命周期。
 
  • 研发管理:通过看板持续管理和跟踪团队需求,缺陷。并通过持续度量发现研发中的瓶颈并作出改进。
  • 持续交付:通过流水线管理代码的持续集成,测试,部署以及发布行为,通过自动化的方式定义软件的整个交付过程。
  • Kubernetes: 屏蔽云端基础设施差异,提供多云的一致性基础设施和应用管理体验。
全功能团队协作
 
在一个典型的全功能团队中,一般会包含以下角色:
  • 开发人员:持续提交代码并且通过持续集成运行单元测试,构建等任务,快速获取反馈。在完成持续集成后,能够自动部署代码到开发测试环境,以便在需要的时候能够对新开发的功能进行快速验证。
  • 测试人员:相对于开发来说,测试希望有一个相对较稳定的验收测试环境,并且能按需部署代码到测试环境(一般是开发人员自测完成后)。
  • 运维人员:唯一拥有将版本部署到生产环境改的权限,能一键完成生产环境部署,但对权限和安全发布有更高的要求。
云效持续交付流水线
 
持续交付流水线专注于从代码到发布的端到端自动化过程。基于云效提供的流水线编排能力,如上所示,基于云效持续交付流水线,我们可以快速编排一个持续交付流水线来承载全功能团队协作的需求。
说明
立即体验:云效流水线Flow
 
 
基于流水线的团队协作
 
在流水线中我们分别创建:CI(持续集成),Dev(开发环境部署),Test(测试环境部署),Prod(生产环境部署)4个阶段。同时为了实现不同角色之间的协作与工作流转。我们将CI,Dev阶段设置为自动执行,Test,Prod为手动执行,并且增加了相应的人工卡点以确保只有相应角色的人员能够确认开始执行部署动作。
 
如下所示,每次开发人员提交代码后都能够触发并自动完成CI以及Dev环境的部署,如果CI流程有任务的异常都能够通过钉钉以及其他方式快速获取到反馈。
 
 
 
 
由于Test阶段定义为手动执行,因此当需要部署测试环境时,测试人员可以手动触发该阶段的部署,为了确保测试环境不被其它角色进行误操作,在执行部署动作前需要具有测试owner角色的人员来手动验证,以开始测试环境部署。
 
 
 
当Dev以及Prod阶段均成功以后,运维人员就可以按需对生产环境进行部署。
 
 
 
上述我们定义了一个最简单的支持开发,测试,运维进行协同工作的持续交付流水线。
 
更多扩展玩法 基于流水线的流程编排能力,我们可以在上述流水线基础上按需扩展更多的玩法。 例如:在生产发布之前,我们可以添加一个Beta测试环境增加更多的环境来确保生产环境的安全部署。
 
 
 
或者在Beta以及Prod阶段再增加一个只包含人工卡点的阶段,在这种场景中我们可以由专门角色的人员负责正式部署前Beta环境的验证,并且只有在验证通过之后才能进行Prod环境的发布:
 
 
 
一站式交付体验:云效+Kubernetes,云效持续集成流水线 Flow属于企业级持续集成和持续交付工具,通过构建自动化、集成自动化、验证自动化、部署自动化,完成从开发到上线CICD过程。通过持续向团队提供及时反馈,让交付过程高效顺畅。

一站式交付体验:云效+Kubernetes的更多相关文章

  1. 什么是云效 Projex,云效Projex企业级高效研发项目管理平台

    云效项目协作Projects是一款企业级高效研发项目管理平台, 提供了快速实践的敏捷研发项目管理机制,提供对需求.迭代.缺陷各个维度的协同管理以及相关的统计报告,让研发团队高效协作.践行敏捷并持续交付 ...

  2. 高效使用Java构建工具,Maven篇|云效工程师指北

    大家好,我是胡晓宇,目前在云效主要负责Flow流水线编排.任务调度与执行引擎相关的工作. 作为一个有多年Java开发测试工具链开发经验的CRUD专家,使用过所有主流的Java构建工具,对于如何高效使用 ...

  3. 如何使用云效Flow做质量检测,保障高质量的交付速度

    使用云效Flow做质量检测,保障高质量的交付速度,云效「Flow」 提供代码扫描. 安全扫描和各种自动化测试能力,支持人工测试卡点.自动化验证卡点等多种质量红线,确保业务质量.云效流水线 Flow 流 ...

  4. 云效Flow如何实现阿里云ECS多环境发布

    一.背景 云效Flow基于标签功能实现阿里云ECS多环境发布,在软件开发和部署过程中,我们的软件往往需要在不同的运行环境中运行,例如:开发人员本地开发环境.测试团队的测试环境.还有类生产环境和生产环境 ...

  5. 为智能硬件提供一站式解决方案——机智云GoKit评测

    为智能硬件提供一站式解决方案——机智云GoKit评测 2014年12月24日 作者: ladouyu 3 17,414+ 4 EMW3162GoKit开发板STM32F103智能硬件机智云2.0 从物 ...

  6. 什么是云效持续集成?如何关联Jenkins进行持续集成?

    什么是云效持续集成?如何关联Jenkins进行持续集成?云效流水线 Flow是一款企业级.自动化的研发交付流水线, 提供灵活易用的持续集成.持续验证. 持续发布功能,帮助企业高质量.高效率的交付业务. ...

  7. 别再自建仓库了,云效Maven仓库不限容量免费用

    别再自建仓库了,云效Maven仓库不限容量免费用云效制品仓库 Packages提供maven私有仓库.npm私有仓库.通用制品仓库等企业级私有制品仓库,用于maven.npm等软件包和依赖管理.不限容 ...

  8. 如何通过云效Flow完成自动化部署—主机部署

    如何通过云效Flow完成自动化部署-主机部署,云效流水线Flow是持续交付的载体,通过构建自动化.集成自动化.验证自动化.部署自动化,完成从开发到上线过程的持续交付.通过持续向团队提供及时反馈,让交付 ...

  9. 如何从阿里云Code升级至云效Codeup

    如果你还在使用阿里云Code,不防看看如何从阿里云Code升级至云效Codeup,云效代码管理Codeup是阿里云出品的一款企业级代码管理平台,提供代码托管.代码评审.代码扫描.质量检测等功能,全方位 ...

随机推荐

  1. for循环练习之打印三角形

    public class TestDemo01 { /** * 打印三角形 * 1.打印空格 * 2.打印三角形 */ public static void main(String[] args) { ...

  2. C#开源类库SimpleTCP

    目录 简介 使用方法 实现客户端 实现服务端 总结 简介 工作中经常遇到需要实现TCP客户端或服务端的时候,如果每次都自己写会很麻烦且无聊,使用SuperSocket库又太大了.这时候就可以使用Sim ...

  3. 一篇文章搞懂Nginx

    Nginx 的产生 Nginx 同 Apache 一样都是一种 Web 服务器.基于 REST 架构风格,以统一资源描述符(Uniform Resources Identifier)URI 或者统一资 ...

  4. Vue获取Abp VNext Token

    Abp VNext默认没公开访问Token的Api,但有个问题Cookie方式如果是手机或桌面程序不如Token方便 Axios默认是Json方式提交,abp登录需要使用application/x-w ...

  5. Python - poetry(2)命令介绍

    poetry 语法格式 poetry [-h] [-q] [-v [<...>]] [-V] [--ansi] [--no-ansi] [-n] <command> [< ...

  6. 3gcms导航,实现当前栏目高亮的办法

    <volist name="menu" id="vo" offset="0" length='8' key='k'> <l ...

  7. EcShop首页显示特定分类的精品新品热销特价等推荐商品

    EcShop首页显示特定分类的精品新品热销特价等推荐商品 很多大型的B2C商城都有特定分类专区,该分类下的[分类名称].[推荐子分类 或 推荐品牌].[大图片/推荐单品].[推荐商品].[促销商品]. ...

  8. ecshop调用指定栏目下的文章的方法

    打开 index.php 添加 fun函数一个,需放在<php与?>中间. /** * 获得指定栏目的文章列表. * @param int $cid 栏目ID * @param int $ ...

  9. LateX出坑

    1 公式是用$ 包围着的  $ 2 \begin{equation} 里面的公式自动编号   \end{equation} 要达成这样的效果,暂时想到如下方法: 1 \begin{equation} ...

  10. PHP 一个树为另一棵树的子结构 [TO BE CONTINUED]

    输入两棵二叉树A,B,判断B是不是A的子结构.(ps:我们约定空树不是任意一个树的子结构) <?php class TreeNode { private $val; private $left; ...