开发者社区> netkiller> 正文

一步步实施 DevOps (五)

简介: 本章节重点谈自动化部署,每个人对自动化部署都有自己的理解,每个企业对自动化部署的需求也不同。 目前很多云平台开始推出一些列 DevOps 工具,体验了一下,仍然处在初级阶段,也不十分成熟。严格的说他们实现的 CD (持续部署)。
+关注继续查看

请首先阅读:

  1. 一步步实施 DevOps (一)
  2. 一步步实施 DevOps (二)
  3. 一步步实施 DevOps (三)
  4. 一步步实施 DevOps (四)

自动化部署

本章节重点谈自动化部署,每个人对自动化部署都有自己的理解,每个企业对自动化部署的需求也不同。

目前很多云平台开始推出一些列 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 报告

版权声明

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

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
了解DevOps文化和一些实施方法
太多的错误,太多的时间投入生产功能,编码了数周,太多可避免的事件,今天每个人都意识到了:开发人员和运维必须相互交谈。好的。但是一旦我们说了那句话,具体我们该怎么做呢?本文的目的是告诉您更多有关DevOps 的信息,以及如何在业务中实施 DevOps。
90 0
阿里巴巴DevOps实践指南(七)| 规模化实施路径
为了支持组织的全面数字化转型,DevOps 的规模化应用是必然选择。但,规模化实施绝不等于实施复杂的规模化框架。恰恰相反,在规模化的路径选择上,我们应该以业务为驱动,寻求简单、可持续的方案,而“系统”和“普惠”是 DevOps 规模化的最终目标。
527 0
阿里巴巴DevOps实践指南(三)| 阿里巴巴 DevOps 实施的价值主张
数字化转型是对互联网公司和产业内公司的共同挑战。产业公司要应用数字化能力,提升用户体验和运作效率;互联网公司要将数字化能力与具体的产业结合,带来更广更深的创新。共同点是,它们都需要升级 IT 的交付和运行模式,都离不开 DevOps 的能力。
324 0
一步步实施 DevOps (三)
持续集成是一种软件开发实践,即团队开发成员经常集成他们的工作,通常每个成员每天至少集成一次,也就意味着每天可能会发生多次集成。每次集成都通过自动化的构建(包括编译,发布,自动化测试)来验证,从而尽快地发现集成错误。
1859 0
一步步实施 DevOps (二)
2005 第一次接触自动化测试,十年已经过去了,着眼身边的企业,真正实施自动化测试的企业非常少。 大部分企业,测试仍然处在,点鼠标阶段。测试人员通常是验收交付,而没有参与整个软件开发周期。
1428 0
一步步实施 DevOps (一)
首先DevOps 不是一个产品,其次软件工程方法论也不准确。 在 DevOps 模式下,产品,设计,开发,测试和运维团队更紧密地结合在一起,贯穿应用程序的整个生命周期。 通过自动化工具替代手工操作,实现快速,高效,安全的测试,构建,部署项目。
2271 0
云效2.0助力企业成功实施DevOps,让软件交付质量更快更好
DevOps是近几年非常热门的话题,企业如何成功实施DevOps,是企业迫切想要解决的。在2017杭州云栖大会企业高效研发实践专场上,阿里巴巴研发效能事业部高级技术专家章屹,为大家分享了《云效2.0助力企业成功实施DevOps》议题,为大家提供了解决思路和实施方案。
2693 0
+关注
netkiller
Nickname:netkiller | English name: Neo chen | QQ: 291379 | 订阅号:netkiller-ebook | 网站:http://www.netkiller.cn
文章
问答
文章排行榜
最热
最新
相关电子书
更多
DevOps权威指南:IT效能“新基建”(试读版)
立即下载
Serverless 时代 DevOps 的最佳打开方式
立即下载
应用管理:云上资源DevOps最佳实践
立即下载