一步步实施 DevOps (五)

Netkiller DevOps 手札

Mr. Neo Chan, 陈景峯(BG7NYT)

中国广东省深圳市望海路半岛城邦三期
518067
+86 13113668890

<netkiller@msn.com>

Copyright © 2010-2018 netkillercss

版权声明html

转载请与做者联系,转载时请务必标明文章原始出处和做者信息及本声明。html5

 
http://www.netkiller.cn
http://netkiller.github.io
http://netkiller.sourceforge.net
 
微信订阅号 netkiller-ebook (微信扫描二维码)
QQ:13721218 请注明“读者”
QQ群:128659835 请注明“读者”

请首先阅读:git

  1. 一步步实施 DevOps (一)
  2. 一步步实施 DevOps (二)
  3. 一步步实施 DevOps (三)
  4. 一步步实施 DevOps (四)
  5. 一步步实施 DevOps (五)
  6. 一步步实施 DevOps (六)

自动化部署github

本章节重点谈自动化部署,每一个人对自动化部署都有本身的理解,每一个企业对自动化部署的需求也不一样。数据库

目前不少云平台开始推出一些列 DevOps 工具,体验了一下,仍然处在初级阶段,也不十分红熟。严格的说他们实现的 CD (持续部署)。缓存

前面讲过持续集成不是 DevOps,这里我要说持续部署也不是 DevOps。CD是从CI中分离出来的,将部署单独提炼出来。服务器

自动化部署远比 CD 要复杂,涉及包括:微信

 

  1. 网络层:网络设备管理,负载均衡切换,路由表管理
  2. 系统层:基础设施,操做系统,软件运行环境,
  3. 软件层:软件部署,CD部分
  4. 缓存层:缓存的刷新
  5. 搜索层:重建全文索引
  6. 数据层:数据库结构管理,数据库数据管理
  7. 日志层:谁,什么时间,作了什么操做,结果怎样
  8. 除此以外,管理上还须要提案和审批流程等等

因此 CD (持续部署)解决不了企业的生产环境自动化部署需求,CD牢牢是CI (持续集成)运行完成后,将构建物部署到指定的运行环境中。一般CD并不提供回撤功能,因此极少由企业使用 CD 部署生产环境。网络

Git -> 编译 -> 测试 -> 打包 -> 构建物 -> 部署 -> 运行

CI/CD 的流水线做业只能部署单一项目,对于大型网站就无能为例,例如不少大型网站:

  1. 构建过程很是复杂,不单单是一个项目打包, 而是须要多个模块,处理复杂的配置过程。
  2. 一次部署多台服务器,每一个服务器可能有多个实例,实例间相互依赖关系
  3. 须要遵照严格的部署和启动顺序
  4. 记录部署日志,文件的新增,覆盖,删除
  5. 部署时间点
  6. 升级不单单是代码,还有数据库,缓存……
  7. 须要改变负载均衡设备节点,设置防火墙策略
  8. 须要有完备的回撤方案
  9. 除此以外好虚考虑增量部署和差别部署,例如部署100mb 以上的大文件,甚至GB尺寸的文件

不少 DevOps 方案注重 Docker,K8s解决方案。但实际状况 Docker 并不适用于全部场景,更可能是物理服务器,虚拟机,云主机,刀片服务器…

使用 Docker 的前提是,Docker必须部署在宿主主机上,在云主机中部署 Docker 意义不大。

不少企业大量使用云主机,对 Docker 并没有强烈的需求。

运维须要怎样的自动化部署工具:

 

  1. 项目管理:升级提案,工做流转,工做审批
  2. 备份管理:任何生产环境部署前都须要备份,必须实现增量备份和差别备份。
  3. 环境管理:环境部署,基础设施管理
  4. 阶段管理:开发,测试,生产
  5. 仓库管理:分支切换,分支保护(例如只容许合并不容许提交)
  6. 配置管理:每一个阶段拥有本身的配置
  7. 文件过滤:排除过滤,包含获取,替换过滤(替换指定文件中的内容,用户不一样阶段的差别区分)
  8. 覆盖删除:覆盖指定文件,删除指定文件
  9. 内容优化:Grup, Webpack 优化,压缩js, css,html5, 图片雪碧图…..
  10. 自动构建:编译,测试,测试报告,打包
  11. 部署管理:节点管理,增量部署,差别部署,md5sum 校验检查
  12. 部署脚本:部署前脚本(中止),部署后脚本(启动)或者环境初始化,解决部署依赖
  13. 时间线:谁,什么时间,作了部署,能够指定时间点随时回撤到指定版本。
  14. 部署日志:谁,什么时间,作了什么操做,产生什么结果
  15. 部署报告:生产 Issue或Ticker 报告
相关文章
相关标签/搜索