莱伍泰斯特的持续交付指南

Agile, CMMI, MSF

持续集成:Go-CI

http://www.go.cd/

Pipelines Group -> Pipelines

  • Stages
  • Jobs (unordered)
  • Tasks

配置管理

https://www.chef.io/

https://docs.chef.io/

https://docs.chef.io/chef_overview.html

https://docs.chef.io/chef_overview.html

CI vs CD vs CD

http://capistranorb.com/

A remote server automation and deployment tool written in Ruby.

Copy -> Start service -> Cleanup

Copy -> Start service -> Cleanup

Copy -> (Re)Start service -> Cleanup

小练习:在本地Box中构建持续交付环境

1. 使用Vagrant搭建本地Node(一台CI环境,一台产品环境)

相关文件:eportfolio/deploy/local/Vagrantfile

2. 在本地CI环境上安装最新版Go-CI(可以先尝试一下手动安装)

相关文件:eportfolio/deploy/config/deploy/ci.rb和eportfolio/deploy/config/deploy.rb

3. 在本地产品环境上安装依赖软件(Web、App、db、Index、Cache)和准备目录

相关文件:eportfolio/deploy/config/deploy/production.rb和eportfolio/deploy/config/deploy.rb

4. 在本地产品环境上部署代码

相关文件:eportfolio/eportfolio/config/deploy/production.rb和eportfolio/eportfolio/config/deploy.rb

5. 在本地CI环境上实现3、4的自动化

总结:莱伍泰斯特Style的持续交付

1. Bootstrap + Provision (eportfolio/deploy)

 

cap env bootstrap

cap env provision

 

2. Deploy (eportfolio/eportfolio)

 

cap env deploy

技术债实战:

1. 在eportfolio/deploy/config/deploy.rb:68我们尝试在CI环境中以Xvfb模式运行headless feature test,但没有成功,请尝试查找问题并解决(只要实现Headless FT based on CentOS 6.5 即可)。

 

2. chef-solo的功能在最新版chef中已经移入chef-client,而我们仍采用较旧的chef-solo,请尝试把chef-solo替换为chef-client。

 

3. 莱伍泰斯特的Capistrano Core版本是2.15.5,而最新的Capistrano 3已经发布了2年。请调查一下2 vs 3的区别,并尝试升级至Capistrano 3。

 

Made with Slides.com