20. local machine CI server
Acceptance Git Acceptance Acceptance
Package Package Publish
Standalone Repo Standalone Staging
the same as local
CI EC2/VMW
Repo are
Dist
Repo
Prod A Prod B
QA / Performance / BAT … Pre-Production Production
EC2/VMW EC2/VMW EC2/VMW
are are are
21. OS: centos
node server: apache
app: tomcat + war
config files
web db
environment
back
search
end
QA test uat staging
perfomance
showcase
test
部署到 QA 环境测试,部署到 UAT 环境验收,部署到 Pre-Production 环境,部署到 Production 环境ASAP尽早部署,尽量真实实例:cache和apache
新加入的 Dev 搭建开发环境,持续集成新加入构造节点,部署给 Dev 重现 bug,Dev 需要依赖组件的节点新人、新机器,多久能跑通 build?如何快速部署指定的版本?多个 team 共用一个 Amazon 的 VPC,测试、build、showcase 等环境,支持 centos、debian。可以通过命令自动化的创建、provision、维护实际案例:10team、250nodes分布式团队开发,使用云很方便。系统设施更接近于生产环境。可以自由使用多个节点搭建环境。持续集成服务器,QA, UAT, Showcase 等测试环境,Dev使用的节点pre-production 环境,production 环境,两者一致(互相切换),使用和部署 AmazonVPC 相同的 chef 自动化部署,rundeck等辅助管理,同样的 chef 保证了产品能够顺利上线。两者之间越接近真实越好。真实案例,loadbanlancer没有,导致一些apache 配置的问题。可以使用 rundeck 等工具辅助管理。快速响应环境的需求平台标准化,屏蔽底层的硬件物理实现实现对环境搭建的可重复性可以维护环境基线,根据镜像或副本复制环境可以对环境中的每个节点进行有效监控
之前都有自动化了,如何自动化部署。写一个 shell 脚步?其实之前的项目也搞过。复杂, 不易维护,不能针对不同的环境,需要 QA 来部署,需要 business 来部署,需要 Ops来部署。不同的环境:单机、云、虚拟机provisioning、configuration、integrationchef-solo,chef-server,node,chef community cookbook对 chef 的测试,https://github.com/exceedhl/toft项目中:50+cookbooks:jenkins, java, apache, tomcat, rails, mySql …50+ roles:持续集成服务器、应用服务器、数据库服务器、管理服务器…
虚拟私有云,VPN虚拟私有网络中nagious监控基础设施,CPU、Network等new relic 监控软件,Java、DB等通过 fog 来管理Elastic Compute Cloud,Elastic Block Store
vagrant 基于 virtualbox,可以很方便的创建本地虚拟机。使用同一套 chef 向不同的环境部署,很多工具直接支持 chef 比如 vagrant,或者只要有sshd 就可以