注册 登录  
 加关注
查看详情
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

世界的瞭望哨

认识自己 认识世界

 
 
 

日志

 
 

《持续交付》阅读笔记 - 项目发布反模式  

2013-06-12 15:06:38|  分类: 持续集成 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

前言

项目发布总是令人提心吊胆,上线真有那么可怕么,还是存在啥问题?

发布反模式 之 手动部署

Deploying Software Manually - 手动执行部署,具体特征

  • The production of extensive, detailed documentation that describes the steps to be taken and the ways in which the steps may go wrong - 有丰富详尽的上线文档,但文档总是会出错的 - 尘泥之:以自动化部署脚本代替文档,靠SVN存储,稳定可靠,有历史可查

  • Reliance on manual testing to confirm that the application is running correctly - 手动验证上线是否正常

  • Frequent calls to the development team to explain why a deployment is going wrong on a release day - 上线过程中频繁召唤开发解释问题

  • Frequent corrections to the release process during the course of a release - 上线过程中频繁矫正上线步骤

  • Environments in a cluster that differ in their configuration, for example application servers with different connection pool settings, filesystems with different layouts, etc.

  • Releases that take more than a few minutes to perform

  • Releases that are unpredictable in their outcome, that often have to be rolled back or run into unforeseen problems - 上线不确定性大,常常紧急回滚 or hotfix

  • Sitting bleary-eyed in front of a monitor at 2 A.M. the day after the release day, trying to figure out how to make it work

  • Manual deployments depend on the deployment expert. If he or she is on vacation or quits work, you are in trouble - 手动部署依赖于专家 - 尘泥之:我们经常看到代码Merge及上线等高科技工作把控在少数高级开发手里,这并不是好事,背后隐藏着极大的风险

解决之道

Over time, deployments should tend towards being fully automated. There should be two tasks for a human being to perform to deploy software into a development, test, or production environment: to pick the version and environment and to press the “deploy” button. 

整个部署过程应该高度自动化,人唯一应该做的事:选择版本号,选择部署环境,点击部署按钮

The automated deployment process must be used by everybody, and it should be the only way in which the software is ever deployed

部署脚本应该人人可用,且是唯一的部署手段 - 尘泥之:一旦拥有了稳定可靠的自动化部署工具(例如:我们在Jenkins上配置的一键部署脚本)它应该成为大家唯一的部署手段

Software release can—and should—be a low-risk, frequent, cheap, rapid, and predictable process

低风险,频繁,廉价,快速,可预测的软件发布是我们的目标

We helped them to implement a sophisticated automated build, deploy, test, and release system and to introduce the development practices and techniques necessary to support it.

尘泥之:不仅仅是自动化部署流水线这套硬件,还要有development practices and techniques等软件支撑,在我看来,说服及培训开发 or 测试人员采用新方法/新流程远比搭建框架等硬件设施来的难

  评论这张
 
阅读(220)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018