自动化部署代码实践

自动化部署代码实践

ID:40884785

大小:377.40 KB

页数:17页

时间:2019-08-09

自动化部署代码实践_第1页
自动化部署代码实践_第2页
自动化部署代码实践_第3页
自动化部署代码实践_第4页
自动化部署代码实践_第5页
资源描述:

《自动化部署代码实践》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、一、自动化部署代码实践早期手动部署代码1.纯手动scp上传代码。2.纯手动登陆,gitpull或者svnupdate。3.纯手动xftp上传代码。4.开发发送压缩包,rz上传,解压部署代码。缺点:1.全程运维参与,占用大量时间。2.如果节点多,上线速度慢。3.人为失误多,目录管理混乱。4.回滚不及时,或者难以回退。设计自动部署代码流程设计,确定目标。1、自动部署环境1)开发环境开发者本地有自己的环境,运维配置公共开发环境,大家可共用的服务。例如:开发数据库MySQL,redis,Memcached等。2)测试环境功能测试以及性能测

2、试。3)预生产环境生产环境集群中的某一个节点,并且连接生产库。(不对外,不做破坏型操作。)4)灰度环境根据不同的区域进行划分分。(生产环境)5)生产环境对用户提供服务的环境。预生产环境由来:a.数据库不一致,测试环境和生产环境数据库是不一样的。b.使用生产环境的联调接口;例如:支付接口。(电商业务)2、自动部署规划·已经有一个可以上线的代码在git仓库。·我们现在要做10个集群节点的一键部署,秒级回滚。·所有的web服务,都应该使用普通用户。(强烈建议)·所有的web服务都不应该监听80端口,除了负载均衡。·那我们如何设计一套生产

3、自动化部署系统。a.规划。b.实现。 c.总结和扩展。(PDCA方法论) d.生产环境应用。实现思路:1)代码放置位置Git(首先)、Svn2)获取最新代码·获取最新分支·获取版本号·获取tag包3)差异解决·各个节点之间差异·代码仓库和实际的差异。配置文件是否放在代码仓库中。(配置单独进行存放,config.example)短信接口,支付,等敏感信息不让所有开发知道·统一的.集群有10个节点。(Job节点crontab.xml配置文件不一样)4)项目名称如何设计项目名称_环境名称_版本_分支_时间_某开发提交测试:rainbow

4、_test_v1.1.1_dev_2016-08-11_12:12_xuliangwei生产:rainbow_pro_v1.1.1_master_2016-08-11_11:11_xuliangwei5)如何更新php,tomcat需要重启,重新软链接。6)如何测试·测试(关键的页面,API,后台等)·测试一个预生产环境,通过则继续部署,如果失败,退出部署操作。7)记录日志·可以部署统计。·成功多少次。·失败多少次。·回滚多少次。8)多人同时执行脚本防止多人操作导致重复上线失败。通过lock锁对文件进行控制。9)串行,并行机器少的

5、情况串行感觉不出什么。如果机器过多则会很慢。分组部署并行部署,以及分组测试。测试一个预生产环境,通过则继续部署,如果失败,退出部署操作。10)部署服务器双机防止部署系统down机,部署机代码丢失,误操作。11)如何执行。·shell执行·web界面点击(自定义或jenkins)12)如何实现正常回退,以及紧急回退(回滚的必要性)通过软链接的方式来实现代码秒级别回退。3、自动部署难点在大公司推进自动化部署上线,是有许多的难点,根据个人公司的不同,来选择不同的方法来进行推进。自动化推进难点:a.能力(个人能力,团队能力)b.责任(责任

6、能否承担,敢于承担责任)c.公司流程、人员、组织架构。可通过如下方法推进:a.目标化沟通。b.责任划分c.ITILd.项目管理:PMBOOK自动部署实践整个集群自动化部署流程设计如下:可根据如下思路,结合公司实际业务来编写shell脚本或者Python。 1.获取最新代码2.编译(可选)3.配置文件(软连接或者拷贝)。4.打包(tar,加速传输)5.文件分发(ScpRsyncSalt)(不需要密码验证)6.将目标服务器移除集群(注释配置文件)7.解压8.防止webroot站点目录9.scp差异文件(可能有一个节点配置文件不一样)1

7、0.重启Web服务11.测试正常回退实践1.列出回滚版本 1.目标服务器移除集群 2.执行回滚 3.重启并测试 4.加入集群紧急回退实践1.列出回滚版本(ls-l或find查出对应的历史版本)。 2.执行回滚操作(删除软链接,重建软链接)。 3.重启对应服务。自动部署采坑自动化部署php环境或者java环境的过程中,那么你一定遇到了如下的问题。1.如何应用到你的生产环境。2.回退到“上一个”“正常”版本。3.自动部署软连接的坑。a.PHP如果开启Opcache,需要重启PHP,或者清理opcacheb.JavaTomcat是必须要

8、重启,最好每次清理work,tmp缓存目录。二、自动化系统构建实践环境准备首先在执行脚本前,先做好初始化环境,最好是通过saltstack来完成。我这里没有那么多机器,就先用两台演示。linux-node1192.168.90.201linux-n

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。