文章目录
前言
上线算是我工作中最害怕的事情之一,另外一个事情就是领导叫我(领导有事一般都是给我发消息,不叫我)。上线的过程不亚于参加了一次马拉松,全程心率都很高。但我还是要说,不要过度紧张,保持紧张感就行了。
一、上线流程
上线的整个流程还是很简单的。我们这里上线流程是这样的
1.把已经写好的且经过审查和测试的远程代码分支合并到master,需要看看两个分支的区别是不是这次需要发布的代码。
2.检查master和branch流水线,如果出问题了,先自己看看是什么原因,找不到再去找QA
3.如果master流水线OK,就进行发布
4.在devops平台进行发上线单,通过QA,RD,OP的审查之后,开始执行上线单
5.根据上线单,一步步执行上线单,一般都是灰度发布,先发一台,然后在一台机器上再测试现在的代码有没有问题,没有问题再在全部的机器上进行上线
6.执行上线回归测试。
但是每一步都可能会出问题,尤其是,如果你的这个代码,需要跟其他的项目(比如前端,比如需要从其他的后端项目取数据)进行配合,你就放心吧,上线绝对会出问题。
二、各种问题
流水线问题
根据流水线配置不同,会出现各种各样的问题。下面是我遇到问题的一个盘点。
1.编译问题
我遇到两次编译出现问题,这个不用怀疑,一定是代码哪里出现了问题,看看是不是哪里的代码没有给提交上,或者哪里的代码写的有问题给提交上了。
2.单测问题
单测的代码也是代码兄弟。不要不当回事。大公司对代码的单测覆盖率有要求的,所以对单测代码的质量也要保证。不要写垃圾的单测。在每次上传之前,都要保证单测能过。
具体可以看看我写的单测篇。
3.磁盘空间问题
磁盘空间满了流水线就操作不了了,会报对应的bug,这个找QA解决就行了。
发单问题
我们公司上线,是通过发上线单,然后通过执行上线单来上线。这样说可能比较抽象,你可以理解为二次封装的宝塔。对宝塔再进行了一次封装,不用配IP,不用配nginx,不用配https等等。只用点点点就能上线了,配置在我来之前各种配置就已经配置好了。
发上线唯一会出现的问题就是,你没有把配置选对,然后上面说审查,但是他们忙的很,看都不看一眼就给你过了。
还有就是OP会拷问你,问你各种问题(我觉得OP谨慎是好事),我一般是答不出来,我就甩给我领导。
上线后的问题
前后端合作的情况
如何是前后端合作的上线,我这里一般是后端先上线,然后前端再上线。前后端分离会出现,我目前遇到的最大的问题就是跨域问题或者说玄学问题。
跨域问题可好解决啦,我们后端只需要配置好跨域请求头就好了,难的是,把跨域请求头配置的都对,但是前端还是有跨域问题。汗流浃背了。这种问题,我只能说你等等,等一会就好了。八成是公司你不知道的地方,哪里有问题。
还有就是,在上线之前,一定一定要跟前端沟通清楚,跟PM沟通清楚。问清楚PM想要的是什么,然后前端把他们的开发文档写完之后,后端也一定要看,我们后端把开发文档写完之后,也一定要发给前端看。不清楚哪里就出问题了。
我后面也会写一篇有关职场沟通的。可以关注一下。
后端项目和后端项目合作的情况
这个标题一看可能会比较抽象,怎么会后端和后端合作呢?简单来说就是,我这个项目需要去其他的后端项目拿数据。
为什么会出现这个情况呢?我们组是一个大的项目,然后领导把一个大的项目拆成了几个小项目。这些项目的部分接口就需要相互配合。
最恶心的是,你对别人负责的项目不熟悉,拿不到想要的数据,就会发生各种各样的情况。
记住,如果需要跟别的后端项目配合,一定要留好时间,别人也在上班,也有事情要做。
我也不知道领导为什么不上微服务。虽然现在的代码跟微服务相比是多了一点,但项目的理解程度会好很多。
后端项目和小程序合作的情况
这种情况,你也要做测试,跟领导要小程序相关的权限,然后做测试。
这种情况其实还好。
自己的项目代码的情况(无任何合作)
这种情况就是求之不得,一般上线自己的代码,跟其他没有依赖的,我到目前上线还没遇到过问题。
发单问题
我们公司如果在发单的时候,配置没选对,可能会把机器上的项目给干下线。
亲身经历。对于这种情况,我只能跟你说尽量选对。不然你要撤销本次发单,然后再重新发单上线,接收OP的拷打。
我脸皮有点薄,不善长跟别人沟通,很讨厌别人拷打我的。