做易趣部署的一点感想

长舒一口气,终于上线了···

易趣相关部署工作将近一个月,有一些感想,记一下。

1、大型项目的部署会很复杂。当然也会简单,前提是你真的清楚身在何处,要做什么。
一个像eachent这样大型的网站项目,本身的架构层级很多,涉及到的软硬件资源也很多,乍看上去繁杂无比,令人望而却步。这会造成一种紧张气氛,萦绕在部署团队周围。不过只要能够静下心来,整理清楚资源和流程,便可以做到繁而不乱。

  • 整理一份软硬件资源清单列表。依照分类列清,无论是数据库服务器还是缓存服务器,无论是负载均衡还是中间环路,把每个资源个体的相关的信息(如IP、端口、说明等等)都写全,一些敏感数据除外(如DB用户名、密码等),把这份清单放在大家触手可及、抬眼可看(如交流白板)的地方,放到版本库中也是个不错的方法,记得要做到及时更新。不建议通过邮件的形式传来传去。
  • 整理每个模块、每个项目的部署流程和部署架构。一个模块或者一个项目的代码,它的周边资源该如何准备,准备好后是如何将可用代码上传到服务器,而且是方便、快速、准确的上传到指定的一台或多台服务器。线上、中转服务器、版本库如何协同,保持步调一致。灾难恢复的流程又是怎样。总之,就是做到部署动作可以按照一定的模式重演,这也会为日后的自动化部署提前打下基础。
  • 整理负责人。DBA是谁?前台机器的管理员是谁?构建代码又归谁负责?这很重要,哪个地方出了问题,可以知道找谁,而不是像无头苍蝇一样到处打探。当然,这份清单同样需要人手一份。

做好这一步,并不需要花太多时间,却会为日后的部署省去很多麻烦。

2、记住部署过程中的每一条问题。
即使有最初的看似精细的部署文档,也不一定能够应付多变的实际情况。遇到问题我们就要解决问题,但是有时候常常忘记将这些问题(这里不包括程序代码的问题)产生的原因和解决方法及时的记录下来,等到系统成功上线再回头总结,怕是不能一一想起了。

3、再大的线下Bug也是小Bug,再小的线上Bug也是大Bug。
程序到生产环境后,常常会暴露出一些bug,这个时候就需要修改程序。我觉得应该确立这样一条原则,在部署期间所修改的代码,一定要经过测试,而不应该慌忙的更新到线上,因为再小的bug被放到线上,也会被无限放大。

4、谁的责任?
系统上线,每个人的压力都很大,一旦发现某个部署问题是由于个别人的疏忽所导致的,应该先事后人,毕竟,解决问题最重要。不要急于旗帜鲜明的确立是谁的责任,这些事情可以放到最后~

5、部署VS开发经验。
如果你有开发经验,而且还是部署自己熟悉语言的项目,那简直是一件不能再好的事了。你甚至可以协助PD很快的定位错误所在。相反,如果面对的是一个一无所知的语言领域,则会总有一种被牵着鼻子走的感觉。熟悉开发、熟悉部署项目的开发语言,虽然不是必须的,但会令你事半功倍。

6、结对部署。XP中有结对编程,而结对部署在实际操作中的效果也是不错的。假如有两个模块,分成两个人一人部署一个模块和两个人一起部署两个模块,后者的效率要比前者高。两个人能够互相监督彼此的操作,还能针对一些问题进行讨论,这也大大降低了部署的出错率。此外,这对降低人力风险也有帮助。

7、万恶的权限!哈,这算是一句牢骚吧,也算是一个小建议。如果你在部署中遇到问题,首当其冲的要想到是不是哪的读、写、执行权限没设对~

出于商业机密的原因,我只是提炼了一些普遍层面的东西,权当抛砖引玉吧。
最后,欢迎大家访问新的易趣平台~

6条评论

  1. diva:

    写了一大坨,结果沙发都没人坐,打击积极性啊~:???:
    所以我就吃点儿亏坐个沙发好了,嘎嘎~:twisted:

  2. 非主流童话:

    经验之谈,收藏。
    如果有机会触及这个项目,虽然辛苦点也值了,呵呵。
    当然,这是部署方面的多一些,
    如果lee兄有开发之类的经验,也希望能贴上来。
    另,这个系统算正式上线了?原来的下线了?

  3. xLight:

    原来你在忙这个阿。

    辛苦了辛苦了,哈哈

  4. thankwsx:

    :twisted:

  5. mayo:

    已然一项目经理的工作了!:cool:

  6. cox:

    super

发表评论