自动化部署代码实践.docx_第1页
自动化部署代码实践.docx_第2页
自动化部署代码实践.docx_第3页
自动化部署代码实践.docx_第4页
自动化部署代码实践.docx_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论