标签:代码上线 灰度发布
小型公司一般只有几个开发人员,并且网站核心程序大多都是PHP语言开发,为了方便,会直接通过FTP直接上传程序代码到线上服务器,随时随地上线更新。
优点:发布快,及时,随时随地就可以发布代码。
缺点:开发人员发布的代码不经过测试人员的测试,用户刷新网页可能发现页面改变,也可能刷新瞬间程序在更新,到时无法访问,对网站用户的体验较差,如果开发写错了代码,造成的影响就更大了,这是拿用户做测试的上线方案。
据统计,网站中大概50%以上的故障是和开发程序代码有关的,比如,开发写错了一个循环代码,导致了死循环,此时大量用户访问这个程序,就能把服务器资源耗尽,搞死服务器。
在中小公司网站出了问题一般是运维人员的问题(例如网站宕机),但是这种情况下,问题大多可能由开发人员或代码引起的,这里比较好的策略是开发项目负责制。
开发人员需在个人电脑搭建LNMP环境测试开发好的网站代码,并且在办公室或IDC机房的测试环境测试通过,最好有专职测试人员。
程序代码上线规定时间,例如:三天上线一次,如网站需经常更新可每天下午17点上线,这个看网站业务性质而定,原则就是影响用户体验最小。
代码上线需备份,网站程序问了问题方便回退,另外,从上线技巧上来说,上传代码尽可能先传到服务器网站临时目录,传完整后一步MV过去,或者通过lN做软连接。
代码全部复制到网站,不要增量复制
中型企业上线,一般是规范运维人员操作步骤,指定统一的上线操作脚本,备份文件名称,备份文件路径,使操作人性化,统一化,自动化。
对于PHP上线方法:发布代码时(也需要测试流程)可以直接发布到正式线临时目录,然后mv或更改link的方式发布到正式线目录,不需要重启http/php服务。
对于JAVA上线方法:需要分组平滑上线。例如,首先从负载均衡上摘掉一半的服务器,发布代码后,重启服务器测试,没问题后,挂载上线完成一半,再卸载另外一半。如果前端有DNS智能解析,上线还可以分地区上线若干服务器,逐渐普及到全国的服务器,这个称为灰度发布。
上线的流程里:办公测试环境-------IDC测试环境------正式生产环境。所有环境中的所有软件均应版本统一,其次,尽量单一,否则将后患无穷(开发测试成功,IDC测试可能有问题)。例如:操作系统,web服务器,jdk,php,tocat等版本
采用全量升级,而不是增量。
本文出自 “写个博客骗钱” 博客,转载请与作者联系!
标签:代码上线 灰度发布
原文地址:http://dadonggg.blog.51cto.com/12672150/1949046