记一次项目上线过程

1,630 阅读4分钟

我记得在学校的时候,代码写出来之后就完了,根本没有上线这个流程。只到现在我才知原来上线不是那么简单。

前言

  • 上线需要准备📝什么
  • 上线有哪些注意⚠️事项
  • 后续该如何避免线上🤔问题

01 前期工作

最近社区团购这个概念炒的比较热,基本上每个互联网公司都会想着在其中分一杯羹,我司也不例外。因为时间比较急,加上人手也不够,我们这次的项目做的也比较粗糙,我认为是没有达到上线标准的。

但是也没办法,自从接了这个项目以来已经连续上班大半个月,基本上是没有休息的状态。直到这个周末上线之后稍微闲了一点。

不管怎么说,至少现在是顺利上线了。后续有问题也是可以顶得住的。

但是我想跟大家聊一下关于上线这个操作,是怎么一个过程。

机器+域名申请:

申请服务器和域名这个事情,其实应该在很早时候就应该准备好,不能等到最后一刻才匆忙准备。我们最终要记住一件事情就是,只管部署代码才是真正的上线,其他都是准备工作。

前端接口依赖检查:

这次的准备暴露很多的问题,其中我觉得最大的就是正式环境的东西没有准备好,来回修改。

因为我们现在很多时候都是在测试环境进行代码的开发和测试,然后测试完成之后就部署预发版本。其实这两个环境都没有什么问题,因为大家都会关注。

但是接口合并到master分支就会有很多问题:

  • 代码冲突
  • 搭车上线
  • 代码依赖
  • 环境配置
  • 脏数据

其实上面的问题只是其中主要的问题而已,实际上我们遇到的问题可能比上面更多。很多时候上线都是一个人在操作,其他人一般不会留下,所以合并代码的时候就会遇到冲突不知道该怎么解决的问题。

正式环境接口检查:

一般我们除了确认后端代码正确合并之外,我们也要确认他们的接口是可用的。就像这次上线一样,检查后端代码确实没有问题之后,上线了。但是后来发现他们有些接口是没有部署到网关的,所以我们访问是不行的。

给大家的建议就是,我们上线之前一定要做的就是上线checklist。

把需要准备的环境、接口、代码都一一列举出来,然后最后的时候就对着检查。不只是检查常规的数据,我们还要检查本次上线特殊的,比如跳转的第三方链接等。

02 上线时间

时间也是一个比较重要的节点。

但是我们现在是第一次上线,所以我们对时间的要求是准备好了就可以。另外我建议大家一定不要太晚上线了,据我们的经验来说,一般上线之后肯定会有一点小问题需要修复的。没人用还好,要是要人在使用那就必须要紧急修复了。

这次我们在晚上9点多才开始准备,然后10点多开始第一次上线。然后不出所料产生了几个问题,随后经过一番调整,开始了第二波的上线。

不出所料还有一点问题。

其实当我们遇到一次问题的时候不用立马理解当前的问题(在没人使用的情况下)。我们应该继续检查是否还存在其他的问题,一并解决就好,来回反复浪费的时间更多。

上线之后我们还是需要验证完整的流程的,这也是一个比较费时的事情。

03 避免问题

避免问题的根源在于我们需要细心准备好所有的东西。

除了上面提到的一些问题我们应该要避免的之外,还有一个重要的事情就是我们要熟悉上线的流程。

  • 代码合并

按照开发规范来合并代码的话基本上是不会存在很多冲突的,基本上是没有。我们要保证上线分支是一个干净的分支。

  • 严格测试

覆盖率是测试比较关心的一个点,我们希望测试能够把用户的操作尽可能的覆盖完全,那么即便我们有一些小问题,主流程还是可以跑通的。

  • 代码逻辑

要是说从根源上避免,那么我们的代码的就是最根源的。只要逻辑上没有问题,那么其实我们的后续的问题就不是很多了。

就像我们现在开发的多了,基本上测试提的bug我们心里也有数。我们在研发阶段就应该自测一下,确保流程的问题我们应该避免。