前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >数据库运维开发环境的调试模式演进

数据库运维开发环境的调试模式演进

作者头像
jeanron100
发布2021-12-28 08:16:42
9900
发布2021-12-28 08:16:42
举报

这是学习笔记的第 2393篇文章

昨天同事反馈了一个问题,原本的办公机环境中的虚拟机是可以对外暴露办公机的IP,提供相应的数据库运维API服务,比如办公机的IP是192.168.10.100,而虚拟机使用virtualbox,使用了主机模式,IP可能是192.168.56.100,那么192.168.56.100上面的API服务可以对外使用192.168.10.100来访问。一般开发环境测试完成之后,就推送到GitLab,经过验证就发布了,所以测试有测试的相关服务,线上有线上的相关服务,IP方式模式都是相对固定的。

听起来是一件挺简单的事情,最近这种多服务间进行联调的模式不可用了,也就是上图红色的部分所示,如果使用桥接模式的IP,在网络那边有明确的限制,也是不可行的,所以原本简单粗暴的测试联调就得转换思路了。

我们想了一种思路,那就是申请一台新的Linux服务器,保持和线上一致的环境,然后开启桌面模式,那么办公机就可以通过vnc等方式连接到Linux服务器了,然后在Linux下开发测试,提交代码变更,听起来是一件很不错的主意,而且统一的Linux环境还可以共享基础的配置,免去了很多人重复配置环境的苦恼,整体设计如下图所示:

但是这种模式有几个问题,其中一个是测试Linux服务器上面的代码是大家分别测试,但是提交是个问题,如果要想最大限度的保证效率,那么可能大家都可以向主分支提交代码,那样一来就有点乱了,而且麻烦的是一旦发现冲突,其实就确实一个统一去merge的角色。另外一点是远程桌面的办公模式是相对可行的,如果网络不够好,还是比较痛苦的,退一万步来讲,肯定开发的效率是本机最方便效率最高的。

期间我们也讨论了干脆申请一台统一的Windows服务器,排除Python依赖库的差异,我们不能确认的是在Windows上正常运行的服务,是否在Linux上完全可用,所以这个方案也被我们很快抛弃了。

还有一种模式,是我们使用办公机来开发逻辑,假设我们通过一种机制把变更的代码先推送到开发服务器(Linux)上面,那么这个服务就是一个相对固定的访问模式了,在开发联调中的问题如果要修改,可以不断的调整,直到满足业务场景的测试,那么问题就来了,有什么样的机制能够保证我们可以把代码随时同步发布到IDC的开发服务器,如下图红色部分所示:

这个时候有很多潜在的解决方案,我先想到了两种:

1)第一种,我们使用Filezilla在办公机上面文件的传输,也算是一种快速发布模式

2)第二种,我们可以在办公机上面配置一个bat脚本,实现文件从虚拟机上面下载,然后推送到测试环境

虽然都可行,但是感觉流程还是缺点东西,所以我们继续想,有了下面的方案,也就是IDC测试服务器上面配置一个WEB文件服务,默认的Python文件服务也就是一条命令的事情,但是这里我们得做下额外的工作,那就是得保证WEB文件服务可以上传文件,所以需要简单写一个Python脚本来实现,改进后的方案如下:

这种方案带来的好处就是我们可以制定策略,来满足个性化的配置和快速发布。

比如有A,B,C三个人,那么三个人在IDC测试服务器上面可以使用不同的目录,使用不同的WEB文件服务,比如:

A,配置7001的API端口,配置9001的WEB文件服务

B,配置7002的API端口,配置9002的WEB文件服务

C,配置7003的API端口,配置9003的WEB文件服务

如此一来,经过测试,整个过程是可以随意发布,随意测试,而且对其他人都没有直接的影响,而经过测试的代码就可以按照测试情况进行提交,合并到主分支了。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-12-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 杨建荣的学习笔记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
测试服务
测试服务 WeTest 包括标准兼容测试、专家兼容测试、手游安全测试、远程调试等多款产品,服务于海量腾讯精品游戏,涵盖兼容测试、压力测试、性能测试、安全测试、远程调试等多个方向,立体化安全防护体系,保卫您的信息安全。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档