网站大量收购闲置独家精品文档,联系QQ:2885784924

自动化部署代码实践.docx

  1. 1、本文档共17页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
自动化部署代码实践重点讲义

一、自动化部署代码实践早期手动部署代码纯手动scp上传代码。纯手动登陆,git pull 或者svn update。纯手动xftp上传代码。开发发送压缩包,rz上传,解压部署代码。缺点:全程运维参与,占用大量时间。如果节点多,上线速度慢。人为失误多,目录管理混乱。回滚不及时,或者难以回退。设计自动部署代码流程设计,确定目标。1、自动部署环境1)开发环境开发者本地有自己的环境,运维配置公共开发环境,大家可共用的服务。例如:开发数据库MySQL,redis,Memcached等。2)测试环境功能测试以及性能测试。3)预生产环境生产环境集群中的某一个节点,并且连接生产库。(不对外,不做破坏型操作。)4)灰度环境根据不同的区域进行划分分。(生产环境)5)生产环境对用户提供服务的环境。预生产环境由来:数据库不一致,测试环境和生产环境数据库是不一样的。使用生产环境的联调接口;例如:支付接口。(电商业务)2、自动部署规划已经有一个可以上线的代码在git仓库。我们现在要做10个集群节点的一键部署,秒级回滚。所有的web服务,都应该使用普通用户。(强烈建议)所有的web服务都不应该监听80端口,除了负载均衡。那我们如何设计一套生产自动化部署系统。规划。实现。?总结和扩展。(PDCA方法论)?生产环境应用。实现思路:1)代码放置位置Git(首先)、Svn2)获取最新代码获取最新分支获取版本号获取tag包3)差异解决各个节点之间差异代码仓库和实际的差异。配置文件是否放在代码仓库中。(配置单独进行存放,config.example )短信接口,支付,等敏感信息不让所有开发知道统一的.集群有10个节点。(Job节点 crontab.xml 配置文件不一样)4)项目名称如何设计项目名称_环境名称_版本_分支_时间_某开发提交测试: rainbow_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)串行,并行机器少的情况串行感觉不出什么。如果机器过多则会很慢。分组部署并行部署,以及分组测试。测试一个预生产环境,通过则继续部署,如果失败,退出部署操作。10)部署服务器双机防止部署系统down机,部署机代码丢失,误操作。11)如何执行。shell执行web界面点击(自定义或jenkins)12)如何实现正常回退,以及紧急回退(回滚的必要性)通过软链接的方式来实现代码秒级别回退。3、自动部署难点在大公司推进自动化部署上线,是有许多的难点,根据个人公司的不同,来选择不同的方法来进行推进。自动化推进难点:能力(个人能力,团队能力)责任(责任能否承担,敢于承担责任)公司流程、人员、组织架构。可通过如下方法推进:目标化沟通。责任划分 ITIL项目管理:PMBOOK自动部署实践整个集群自动化部署流程设计如下:可根据如下思路,结合公司实际业务来编写shell脚本或者Python。?获取最新代码编译(可选)配置文件(软连接或者拷贝)。打包(tar,加速传输)文件分发(ScpRsync Salt)(不需要密码验证)将目标服务器移除集群(注释配置文件)解压防止webroot站点目录scp差异文件(可能有一个节点配置文件不一样)重启Web服务测试正常回退实践列出回滚版本?目标服务器移除集群?执行回滚?重启并测试?加入集群紧急回退实践列出回滚版本(ls -l或find查出对应的历史版本)。?执行回滚操作(删除软链接,重建软链接)。?重启对应服务。自动部署采坑自动化部署php环境或者java环境的过程中,那么你一定遇到了如下的问题。如何应用到你的生产环境。回退到“上一个”“正常”版本。自动部署软连接的坑。PHP如果开启Opcache,需要重启PHP,或者清理opcacheJava Tomcat是必须要重启,最好每次清理work,tmp缓存目录。二、自动化系统构建实践环境准备首先在执行脚本前,先做好初始化环境,最好是通过saltstack来完成。我这里没有那么多机器,就先用两台演示。linux-node1 01linux-node2 021、创建普通用户useraddxuliangweipasswdxuliangwei2、配置密钥3、创建相关目录4、配置Nginx5.配置好git环境centos7部署gitlab?克隆项目最终效果如下:剖析脚

文档评论(0)

dajuhyy + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档