文档章节

我们应该如何基于容器来进行软件的持续交付(二)?

wise2c
 wise2c
发布于 2016/12/26 17:06
字数 1584
阅读 156
收藏 5

概述

接着上一篇的内容,我们有讲到“持续交付是文化,自动化是基石,垮职能团队协作是根本”,本文将以软文的形式介绍持续交付平台WiseBuild结合Rancher容器管理平台我们是如何进行跨职能团队协作的。

文末有彩蛋!文末有彩蛋!文末有彩蛋!

 

基础设施自动化

使用Rancher理由很简单,Rancher是目前市面上唯一一个能满足开箱即用的容器管理平台,同时能够支持多种编排引擎,如Rancher自己的Cattle,Google的K8S,以及Docker官方的Swarm作为容器编排引擎。同时Rancher提供的Catalog应用商店能够帮助研发团队自主创建所需要的服务实例。

基于Rancher提供的Environment我们分别为开发,测试,以及运维创建了独立的环境。确保不同职能人员之间对于环境的隔离性需求。

 

持续交付流水线

建立持续交付流水线的核心问题是如何定义企业的软件交付价值流动。

正如上文所说,创建持续交付流水线的本质就是定义软件的交付的价值流动,反应正式的软件交付流程。价值的流动则涉及到团队中各个职能的成员的高度协同。

基于容器的持续交付实践当中以镜像作为在不同职能人员之间的价值传递物。

 

开发流水线

开发人员:频繁提交持续集成,通过持续的编译,打包,测试,镜像构建,自动化验收测试等环节产生可测试的候选镜像列表(如:0.1-dev)。

 

  • 以源码仓库为起点,开发人员频繁提交,每一次代码变更都要立即在流水线中传递;WiseBuild持续交付平台支持定时周期触发,代码变更检查以及Webhook等多种触发方式。

  • 提交测试阶段从技术角度断言整个系统是可运行的,该阶段会进行编译,运行一套单元测试,并进行代码质量分析,WiseBuild持续交付平台设计遵循“Build In Docker, Build With Docker, Run With Docker" 基于容器技术全面减少对于异构构建环境的支持,并且默认提供了当前主流的编程语言的编译,以及测试支持。同时用户可以根据需要在持续交付流水线中集成Sonarqube进行代码的质量跟踪和管理。

  • 自动化测试阶段,从功能交付断言整个系统是能够满足客户规范和要求的,WiseBuild持续交付平台支持基于Rancher或者Rancher Compose在柳树县中自动部署镜像到Rancher平台,同时内置了Selenium,Robotframework,Cucumber等主流自动化测试工具和框架。

  • 手动测试阶段,当新的代码提交部署到rancher环境后,开发人员同时可以快速的进行手动测试,确保新提交的代码在测试环境中是可用的,并且满足相关的功能需求。

  • 镜像构建,当代码提交通过了整个流水线的持续验证后将会产生响应版本的镜像文件。

基于流水线中的过程质量和代码质量数据,团队可以快速处理典型的代码质量问题,避免技术债务的产生。

 

总而言之,开发流水线可以帮助团队频繁的进行代码集成并且通过单元测试,代码静态分析,自动化验收测试等技术实际帮助开发人员快速的发现和解决问题,并且产生可待测试的镜像列表。

 

 

测试流水线

测试人员:从候选测试镜像列表中,选择需要测试的目标镜像,标记为测试版本(将0.1-dev标记为0.1-test),并且将待测试镜像自动部署到验收测试环境,完成手动探索性测试,对于已测试完成的镜像标记为预发布版本(0.1-test 标记为 0.1-beta)。

在待测试镜像列表中选择镜像,发布到开发用Docker Registry仓库。

对于测试人员而言,流水线的起点则变为待测试的镜像列表,基于WiseBuild创建Docker类型流水线,可以支持测试人员快速创建测试环境并且运行相关的自动化测试脚本,同时满足手动探索性测试的需求。

 

支持使用自动化触发方式,如‘1.0.*-beta’的形式,当监听docker registry有符合规则的镜像产生后自动触发流水线。

支持手动触发,测试猿人可以手动选择服务该规则的镜像进行手动触发,一键准备测试环境,运行自动化验收测试等。

 

自动化部署流水线

运维人员:从预发布镜像列表中选择镜像部署到预发布环境,并且在验证通过后标记为release版本(如将0.1-beta 标记为 0.1-release),并且发布到生产环境。

与自动化测试流水线相同,运维人员可以建立独立的部署流水线,从待发布的镜像列表中选择镜像发布到生产环境Registry中,并且设置流水线的自动或者手动触发,实现对于预生产环境的一键部署。

 

 

小结           

WiseBuild持续交付平台支持对接基于Dokcer Registry标准的镜像仓库服务,包括Docker Hub, Docker Registry, Habor,阿里云等等。

在基于容器的持续交付实现方案当中,我们以镜像为价值传递的单元,通过镜像的持续测试以及验证,完成镜像从开发,测试到可发布的状态转变,完成软件的交付流程。

  • 开发人员频繁提交,持续集成,持续反馈。

  • 测试人员自服务部署一键准备测试环境。

  • 运维人员执行一键式部署预生产环境。

 

© 著作权归作者所有

wise2c
粉丝 2
博文 13
码字总数 26332
作品 1
深圳
私信 提问
我们应该如何基于容器来进行软件的持续交付(一)?

概述 在过去的一段时间里容器已经大量的使用到了IT软件生产的各个环节当中:从软件开发,持续集成,持续部署,测试环境到生产环境。 除了Docker官方的Docker Swarm, Docker Machine以及Docke...

wise2c
2016/12/22
163
0
如何利用容器构建持续交付/持续发布系统?

概述 提到软件发布确实是很令人头疼的一个过程,且还是高风险动作。借用一句话:“99%的故障是由于变更引起的”。本次分享内容着重介绍使用容器技术实现自动化构建、部署和测试过程,并使得开...

张春源
2016/11/30
0
0
基于Docker的Jenkins持续交付实践

本文根据DBAplus社群第101期线上分享整理而成。 主题简介: Jenkins pipeline基础概念 Jenkins pipeline如何带来工作便利 基于容器的Jenkins CI流程 Jenkins、Docker、Kubernetes整合的集成部...

叶峰
2017/05/03
0
0
基于Docker的Jenkins持续交付实践

本文根据DBAplus社群第101期线上分享整理而成。 主题简介: Jenkins pipeline基础概念 Jenkins pipeline如何带来工作便利 基于容器的Jenkins CI流程 Jenkins、Docker、Kubernetes整合的集成部...

叶峰
2017/05/03
0
0
利用容器技术构建持续交付/持续发布系统

原文链接:https://github.com/billycyzhang/containerization/blob/master/activity-sharing/ci-cd/ci-cd.md 各位好,我是希云cSphere技术总监张春源;今天和大家分享一下为何会选择容器技术...

dockerer
2016/12/07
86
0

没有更多内容

加载失败,请刷新页面

加载更多

Android Camera原理之camera service与camera provider session会话与capture request轮转

上层调用CameraManager.openCamera的时候,会触发底层的一系列反应,之前我们分享过camera framework到camera service之间的调用,但是光看这一块还不够深入,接下来我们讨论一下camera serv...

天王盖地虎626
1分钟前
0
0
科技赋能成效显著!金融壹账通两大赋能项目荣获IDC大奖

7月19日,2019IDC中国未来金融论坛曁颁奖典礼于北京举办。由金融壹账通赋能的长春农商银行多人视频面审智能风控系统、包头农商银行互联网银行SaaS服务两大项目因在项目的创新性、技术领先性、...

IFTNews
昨天
0
0
HTTP协议

HTTP简介 HTTP协议(HyperText Transfer Protocol,超文本传输协议)是因特网上应用最为广泛的一种网络传输协议,所有的WWW文件都必须遵守这个标准。 HTTP是一个基于TCP/IP通信协议来传递数据...

Eappo_Geng
昨天
0
0
聊聊spring cloud consul的TtlScheduler

序 本文主要研究一下spring cloud consul的TtlScheduler TtlScheduler spring-cloud-consul-discovery-2.1.2.RELEASE-sources.jar!/org/springframework/cloud/consul/discovery/TtlSchedule......

go4it
昨天
0
0
内存狂挤牙膏Intel跪了!10nm玩出6种花样

不同于CPU处理器等逻辑芯片的制造工艺都精确到具体数值,闪存、内存工艺一直都是很模糊的叫法,比如10nm-class(10nm级别),只是介于20nm和10nm之间,然后又分为1xnm、1ynm、1znm等不同版本,...

linuxCool
昨天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部