代码上线注意事项

说明

在工作中,代码上线是很重要的,而作为上线人员,对流程要严格把控,对需要上线代码的更新是需要仔细研究!!

向持续交付前行
在保证上线质量的前提下,如何提高上线效率,做到自动化部署,持续交付,这是一个值得深入和持久关注的问题。

代码上线流程

svn代码更新-->测试环境上线测试-->测试OK后发送邮件告知测试结果给运维,并说明可以上线代码svn_revision -->上线前记录svn_revision,对比上次上线时的改动,判断对各服务连接有无影响,注意配置文件的修改-->汇报上级(确定上线后)-->上线需将所有测试OK的所有代码统一上线(提前做好备份,方便出现问题回滚。注意配置文件的变动,防止更新后各服务不通)-->对上线后的功能进行测试(通知公司人员进行测试)-->OK邮件通知全员。

注:打标签(svn tag)是一个更通用的做法。

代码中运维需要处理的配置

<?php

return [
    //缓存中无数据时,是否从db中读取数据
    'read_data_from_db'=>true,
    //用户头像
    'user_avatar' =>[
        //默认的用户头像,不包含域名
        'default_avatar' => 'default.jpg',

    ],
    //经纪人头像
    'broker_avatar' =>[
        //默认的经纪人头像,不包含域名
        'default_avatar' => 'default.jpg',
        //经纪人头像域名

    ]
];

保持项,key和svn中的一致性
其中对应的项、key的前后顺序保持和svn中的一样,这样对于开发人员、测试人员来说,出现问题后便于对比。对于运维来说,仅需要修改对应key下的value即可,根据线上的实际情况进行修改。对相应的注释,项和key不要随意修改,也不要调整其前后顺序,如果需要调整,则需要到svn中进行调整,并且和开发人员进行交流核实。

** 上线中遇到的问题 **

下面列举一个上线遇到的问题,再次记录,避免下次出错:
昨日通知上线后,首先我将svn代码进行更新,记录svn_flag位置点为1392,询问上传代码人员无误并无严重修改后,更新代码上线,因为是首次上线,所以将所有代码一次性部署到线上,完成后测试无问题。结束报告。

在回到家中,公司人员反映,出现问题,无法登陆,便上去查看api日志访问日志,发现有error,但无处理结果,次日到公司商议解决。

来后,询问编写代码人员,查看api日志发现此error后,发现有一个配置文件仍然是旧版本,进行核对后重新上线代码。问题得到解决!

** 简述原因 **

因为代码中有一个config目录,在上线后运维需在config目录下修改配置,连接mysql及redis,所以在上代码前我提前将旧版本和此目录做好备份,待新代码上线后,将config目录替换,本以为一切配置无改变。

但是在日志中发现,api接口调用错误,返回配置文件发现,虽然我将旧的config目录替换,但是此目录下也做了更新,所以上线并没有做到同步。

错误总结

通过此次的错误,认识问题的严重性,如果当次类问题发生在正式产品线上,后果很严重,所以需要严格反思,总结文档,提高警惕,避免以后出现同样的错误。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,009评论 19 139
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,638评论 25 708
  • 源代码管理工具的起源 为什么会出现源代码管理工具? 为了解决在软件开发过程中,由源代码引发的各种蛋疼繁琐问题 源代...
    小白文_Vincent阅读 3,220评论 2 8
  • 一、编译源码目录使用内置宏,定义在build/core/envsetup.mk里面有定义,如果只是拷贝文件使用pr...
    lutery阅读 270评论 0 0