如何跟踪与开发环境有物理隔绝的生产环境下的代码变更?

owen1759 2013-01-03 01:15:28
其实我不是什么管理人员,只是某个金融IT公司小小的程序员而已
虽然命比纸薄却还是心比天高,对于公司的代码变更完全不管理感到忧心忡忡。

事情起源于上星期对报表系统的两次维护:
一次是所有功能全部报错、系统几乎瘫痪,所查询的表数据全部丢失,客户大叫“我的数据呢?”。查找许久才发现,某存储过程的内容是清空全表,然后从数据来源的表中查询数据插入表中,而insert语句提供的值居然比表结构还多出三个字段。想来应该是有谁试图增加新功能,在自己机器上调试好了拿来改的,却忘了在表中加上这三个字段。修正之,运行正常。
然后,没过几天,同事告诉我,他被要求在报表末尾添加合计,但是无论怎么加总是不显示。查找许久发现,模板文件中负责显示的代码0..$len-1不知被谁改成了$len-2,修正之,运行正常。没敢告诉客户“你们前几天的报表可能都丢失了最后一行”。

于是我就自己尝试在客户服务器上创建了个“更新记录”文本文件,每次更新记录下更新内容、涉及文件、待解决。但这毕竟仍然不是很好的解决方法…
至于为什么不用SVN之类的说法,金融IT你懂的,为了安全他们的网络常常是跟互联网物理隔离的,要进行维护还得跑到他们公司去、甚至进到机房去。话说在机房待一天真不好受啊,耳朵都震聋了(不是像大学机房的那类,而是IDC那种满是机架的那类)

像这样下去也不是个办法啊,对代码的变更完全没有跟踪,谁都不知道在自己上次维护后又有谁做了哪些改动,是什么动机。至于说为什么不先开发后实施,我们确实是先开发后实施的,安装在客户服务器上的是开发好的系统,但是各种各样的原因甚至包括客户需求的变化导致仍然需要各种更改。甚至你无法做到在本机上调试后再拷贝到客户服务器,正因为代码变更没有跟踪,除了在服务器面前,你永远不知道它正在运行的是什么代码。
...全文
290 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
owen1759 2013-01-06
  • 打赏
  • 举报
回复
1.这里说的“管理”是管理什么呢?“存档”又是存档什么东西呢? 2.只是部署有个前提是你要提前在开发环境做好更新包,然后才能部署,可是现实的情况是在上服务器前你根本不知道问题出现的原因会是什么,有时客户甚至连把故障的现象描述清楚的能力都没有,又如何提前做好更新包呢?最后结果就是,不得不在生产环境下查找故障原因,甚至进行调试,虽然明知这样有多危险。 3.模拟环境也是十分难以建立的,因为是金融IT,客户数据往往涉及大量机密,所以不可能允许拷贝或导出真实数据,而自行发生模拟的数据(我们公司目前好像没有数据发生器之类的),往往不能反映真实情况,以至于无法复现客户故障。 附:并且我们公司往往是在自己开发的一套程序的基础上,经过不同的配置,然后部署到不同客户的服务器。而随着程序本身的更新,导致不同客户服务器上安装的都是各个不同的版本,因为已经部署,经过了各种不同的改动,所以也无法统一更新到最新版,只能各自在各自部署时的版本上维护,就更加大了复杂度。
wjlsmail 2013-01-05
  • 打赏
  • 举报
回复
1、去现场前要有管理、要有存档; 2、在客户现场,只是部署,不能再有新的改动; 3、重点客户,建立模拟环境,每次更新前测试验证。

1,265

社区成员

发帖
与我相关
我的任务
社区描述
软件工程/管理 管理版
社区管理员
  • 研发管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧