工作总结:上线篇

文章目录


前言

上线算是我工作中最害怕的事情之一,另外一个事情就是领导叫我(领导有事一般都是给我发消息,不叫我)。上线的过程不亚于参加了一次马拉松,全程心率都很高。但我还是要说,不要过度紧张,保持紧张感就行了。


一、上线流程

上线的整个流程还是很简单的。我们这里上线流程是这样的

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的拷打。

我脸皮有点薄,不善长跟别人沟通,很讨厌别人拷打我的。

相关推荐
依瑾雅14 分钟前
Lua语言的云计算
开发语言·后端·golang
程序员林北北3 小时前
玩转Gin框架:Golang使用Gin完成登录流程
开发语言·golang·gin
网络风云6 小时前
golang命令大全10--命令扩展与实践
开发语言·后端·golang
csucoderlee11 小时前
Go语言指针的解引用和间接引用
开发语言·后端·golang
Amd79411 小时前
PostgreSQL:数据库迁移与版本控制
postgresql·自动化·数据库管理·软件开发·devops·版本控制·数据库迁移
csucoderlee16 小时前
Go语言中的函数闭包
开发语言·后端·golang
老大白菜16 小时前
使用 Go 语言调用 DeepSeek API:完整指南
后端·golang·deepseek
焱齿19 小时前
golang开发技能
开发语言·后端·golang
梦想画家20 小时前
Golang 并发机制-5:详解syn包同步原语
golang·并发机制