根据 2017 年的 DevOps 发展报告,高效能组织和低效能组织在软件交付的效率上有数量级上的差异。技术组织的软件交付能力是一种综合能力,涉及众多环节,其中发布是尤为重要的环节。 作为技术人员,大家可能听说过“滚动发布”和“蓝绿发布”等术语,但是很多人并不清楚这些术语背后的原理。本文试图总结当前主流的发布策略,每个的优劣,适用性,让开发人员特别是架构师对现代发布技术有一个更为清晰全面的认识,让大家能够根据自己的企业上下文,对发布策略做出正确的选型和实践。 一、单服务器组发布 先解释下单服务器组的概念,早先我们机器资源比较紧张,不像现在云计算和虚拟化(包括容器技术)这么发达,所以应用机器基本是预先静态分配好的(一般由运维负责分配),原来应用 A 住在这 n 台机器上,那么下次升级发布的应用 A 也住在这 n 台机器上,所以称为单服务器组发布方式。
需求缘由        最近接收了一个新的工具业务:ipublish发布系统,刚接手这个业务的时候,发现每次发布新的代码 需要到群里告知大家,我要停服务几分钟,准备更新代码啦。这尼玛 哪个公司都不敢这么牛逼的和用户说,我们网站要停服务几分钟,准备发布的。        基于这个原因我要对ipublish进行优化,如何优雅的发布代码,而用户是无感的功能需求发布系统自己更新迭代需求的过程中,不能停止服务,对用户是无感知的实现设计方案其实这个问题基本都知道解决方案,我这里就王婆卖瓜自卖自夸吧,来一张架构图架构非常简单,通过一个LB作为反向代理,然后将所有请求转发到 后端的tomat ,后端有两个tomcat ,但是提供服务的只能是某一个tomcat操作步骤前提条件LB 使用的Nginx 监听 80端口配置两个tomcat 一个 8080
引言代码发布系统是互联网公司必备的运维系统,作用主要用户发布业务代码 到 业务服务器为什么需要代码发布系统有的同学可能说,我们公司服务器就那么一台,做个发布系统太麻烦了? 不认同这说法发布系统有如下好处流程管理,加上权限管理,可以在系统记录 谁 做了 什么 操作减少人工误操作影响,登录服务器本身操作就是有误操作的可能的运维自动化  为运维工作减负加快发布速度  不用人工登录N台服务器发布方便快速回滚版本技术选型git:代码管理工具  git使用笔记rsync:同步代码到指定服务器Yii2:php mvc 框架Bootstrap3:前端框架jquery:js库代码发布系统流程框架图Web界面化操作,流程化管理 ,提交发布任务定时脚本 获取发布任务制定同步策略 发布代码界面化操作,流程化管理流程化管理在人员比较多的时候优势特别明显,人多手杂很容易出问题。所以在代码发布系统中加入流程化管理也是与时俱进上图是我画的一个比较完善的流程图(以前公司实现过这么复杂的流程)
  • 微信公众号 微信小程序
  • 微信机器人
  • 群1:1046090432
  • 群2:585567981