背景

云效依托于阿里巴巴研发效能多年规模化持续交付,赋能云上开发者专为云端用户提供的一站式研发协作平台。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. 云原生学习筑基 ~ 组网必备知识点 ~ DNS服务

    @ 目录 一.为啥写这篇文章? 二.DNS的作用 三.域 四.DNS工作原理 五.搭建DNS服务器 5.1.Bind 5.2.系统环境准备 5.3.安装 5.4.查看bind的相关文件 5.5.查看b ...

  2. mybaits源码分析--事务管理(八)

    一.事务管理 写到这也快进入收尾阶段了了,在介绍MyBatis中的事务管理时不可避免的要接触到DataSource的内容,所以接下来会分别来介绍DataSource和Transaction两块内容. ...

  3. K8S命令行工具——kubectl

    1.kubectl概述 2.kubectl命令的语法 例子: 3.kubectl子命令使用分类 (1)基础命令 (2)部署和集群管理命令 (3)故障和调试命令 (4)其他命令 4.kubectl命令例 ...

  4. 110_SSM框架

    目录 需求分析->功能设计->数据库设计 环境要求 环境 要求 数据库环境 基本环境搭建 创建maven项目 pom.xml添加依赖,添加资源导出 idea连接数据库 提交项目到Git 创 ...

  5. 基于ECDHE的TLS握手流程

    <!doctype html>3.3 基于ECDHE的TLS握手流程 html { overflow-x: initial !important } :root { --bg-color: ...

  6. openswan IPSec专栏目录锦集

    为了方便查阅现有的文章,特准备一个目录页供后续查询使用 专栏序言 1. 基础知识 openswan任务调度基础知识之信号 2. openswan环境搭建 openswan框架和编译时说明 opensw ...

  7. 用java代码遍历excel文件并回显

    今天需要完成282个指标,分析后发现好多都是可复用的字段和方法,生成的dao类也是很多重复的代码,所以写下了简单的自动化遍历excel的test方法, excel业务逻辑如下,用了 HSSFSheet ...

  8. Java基础系列(13)- 包机制

    包机制 为了更好的组织类,Java提供了包机制,用于区别类名的命名空间 包语句的语法格式为: package pkg1[. pkg2[. pkg3...]]; 一般利用公司域名倒置作为报名 为了能够使 ...

  9. Selenium多浏览器处理 (Chrome/Firefox/IE)

    测试用例文件:test_selenium/test_hogwarts.py 使用pytest框架 定义一个变量,通过外部传入变量,确定使用哪个浏览器 browser = os.getenv(" ...

  10. git 报错 gitThere is no tracking information for the current branch. Please specify which branch you w

    新建本地分支后将本地分支推送到远程库, 使用git pull 或者 git push 的时候报错gitThere is no tracking information for the current ...