“服务器到不了货”——一次差点搞砸的系统部署,及实施团队的极限应变

“服务器还没到?”

信息科李主任的声音,让项目经理小张头皮发麻。

距离V4.0系统在XX医院正式上线,还有10天。

部署清单上,第一批要进场的设备:

– 数据库服务器 2台(高端,双路CPU)

– 应用服务器 3台(中端)

– 存储设备 1台(全闪存阵列)

– 网络交换机 1台

这些都还没到货。

供应商说:因为芯片短缺,交货期延迟三周。

“有没有替代方案?”李主任问。

“暂时没有。”小张硬着头皮说。原计划是全新硬件,软硬一体方案。

李主任摔了电话。

1. 部署方案被颠覆:从”搭新房子”变成”旧房改造”

小张连夜找周总商量。

周总也急了:”我们是软硬件一体方案,服务器都是定制配置,换其他品牌不行吗?”

“客户已经指定品牌了,合同里写了’原厂设备’。”

“那能不能先用云服务器过渡?”

“医院不允许数据上云,安全合规过不了。”

两人面面相觑。

原计划:

“`
新硬件到货 → 上架 → 装系统 → 装软件 → 测试 → 数据迁移 → 上线
“`

现在,第一步就卡住了。

周总说:”别慌,我们还有B计划。”

“什么B计划?”

“用现有设备升级——把V3.0的老服务器,扩容后跑V4.0。”

小张眼睛一亮。

但随即又摇头:”老服务器是五年前的配置,跑V4.0会不会太慢?而且,V3.0还在跑,不能停。”

“那就做虚拟化——老物理机上架虚拟化平台,再开虚拟机跑V4.0。”

“有风险…”

“但有总比没有强。”

2. 从”新建数据中心”到”旧房改造”:风险的维度

方案变了。

原来的”新建数据中心”变成”旧房改造”。

小张带着团队,做了三天的技术评估,结论是:

可以运行,但有风险:

1. 老硬件性能不足(CPU是五年前的E5-2620,V4.0推荐配置是E5-2680),V4.0是微服务,组件多,资源消耗大,预计性能打七折

2. V3.0还在跑,不能停机,迁移时要”热迁”或双跑——两个系统同时运行,隔离要求高

3. 老系统的数据迁移复杂,新旧系统数据结构差异大(V4.0重构了数据模型)

4. 老硬件稳定性堪忧(硬盘用了五年,有免保期,但随时可能坏),万一上线后崩了…

小张的评估报告里写:

> 建议:如果两周内新硬件到不了,再考虑此方案。否则建议延期。

但两周后新硬件也到不了——全球芯片短缺至少持续三个月。

周总拍板:”干。”

3. 部署前,我们做了”预演”:仿真环境的生死测试

小张知道,这次部署,无路可退。

他做了一件 normally 不会做的事:在全仿真环境,完整演练一遍部署流程

仿真环境,是用VMware搭的,配置尽量接近生产环境(虽然实际生产是老硬件)。

演练的内容:

1. 硬件上架(模拟)

2. 安装虚拟化平台(VMware ESXi 6.7)

3. 创建虚拟机网络(隔离V3.0和V4.0)

4. 部署V4.0所有微服务(18个)

5. 数据迁移(从V3.0到V4.0)

6. 验证业务功能

7. 切换流量

演练了三遍,发现一堆问题:

问题1:虚拟机网络配置错误

– V3.0和V4.0的虚拟网络,应该完全隔离(不同VLAN,无路由)

– 但配置时,有一个vSwitch连错了,导致两个虚拟网络互通

– 如果真这么部署,V4.0流量会冲击V3.0,导致老系统崩溃

问题2:数据迁移脚本性能不足

– 测试数据只有1/10(80万 vs 800万)

– 迁移100万条记录要30分钟

– 生产环境有800万条,要4小时

– 但业务窗口只有2小时(深夜到凌晨)

– 需要优化

问题3:回滚方案缺失

– 如果迁移一半失败,怎么回滚?

– 不能简单删V4.0数据库,因为V3.0还在跑,数据可能不一致

– 要有”双向数据同步”机制——迁移失败后,能回到V3.0状态

问题太多,小张头皮发麻。

第三遍演练,加了回滚。

4. 真正的部署日:如履薄冰的72小时

部署日,周五晚上。

小张带着四个工程师, arrive 信息科机房。

李主任也在,盯着看。

第一步:物理检查。

– 确认老服务器状态正常(5年没关机,但昨天剛做了硬件诊断,OK)

– 确认网络连通

– 确认UPS供电正常(电压稳定)

第二步:安装虚拟化平台。

– 在每台服务器上装ESXi(旧版本)

– 配置vCenter统一管理

– 创建资源池:一半给V3.0(不能动),一半给V4.0(新建)

– 这一步花了两个小时。服务器老旧,安装速度比预期慢。

第三步:网络隔离。

– 创建两个vSwitch,一个连V3.0虚拟机,一个连V4.0虚拟机

– 两个vSwitch之间不通,防火墙策略确认

发现:有一个端口组配置错了,导致V4.0的某个管理网卡能ping通V3.0——危险,修正。

第四步:部署V4.0微服务。

– 有20多个微服务,每个都要部署、配置、启动

– 用Ansible自动化部署,但老服务器性能差,Ansible执行慢

– 遇到一个服务启动失败:MySQL连接超时。因为数据库还没迁完,但应用已经起来在连数据库。

“能不能调整启动顺序,先起数据库,后起应用?”工程师问。

“调整,数据库服务设为’启动后30秒再启动应用’。”

第五步:数据迁移。

这是最关键、风险最大的一步。

开始迁移。

前两个模块(用户、权限)顺利。

第三个模块(门诊挂号),出现数据冲突:

– V3.0有一个挂号记录,患者ID为12345,就诊ID为abc

– V4.0里,患者ID变了(新的患者表主键重新生成,使用UUID),但V3.0数据里还是老ID(自增整数)

– 迁移时,映射关系找不到

“停。”小张喊。

问题出在”患者ID映射表”——这个表在迁移过程中生成,但因为某个中间步骤数据量大(800万条),内存不足,没生成全。

部分患者,在新库里的ID映射丢失了。

“现场生成映射。”小吴说。

他写了一个脚本,根据姓名、身份证号、就诊日期,去V3.0里查,生成映射关系。

又花了40分钟。

此时已是凌晨四点。

5. 凌晨五点的抉择:强行”双跑”

迁移到早上五点,进度85%。

还剩核心模块:医嘱、住院登记、收费。

但时间只剩一小时了——七点门诊要开始。

小吴说:”来不及了。”

小张知道,来不及了。

他做了个冒险的决定:强行切换,不迁完

“把医嘱、住院、收费模块的迁移,放到上线后做渐进式迁移。”

意思是:上线时,这几个模块用V3.0的数据,但V4.0的服务也起来,V3.0和V4.0并行运行,V4.0慢慢接数据。

这是个”双跑”方案,风险高,但没别的选择。

他给李主任打电话:”李主任,我们方案有变。核心模块不能一次性迁完,要分两天。但门诊可以先开V4.0,不影响。”

李主任语气很冲:”你敢在上线日不迁完?”

“迁不完硬迁,数据错了更麻烦。”小张说,”双跑是唯一选择。”

李主任沉默几秒:”出问题你负责。”

七点,门诊开始。

小张紧张地盯着监控。

挂号正常(V4.0)、医生开医嘱正常(V3.0)、护士执行正常(V3.0)——V3.0和V4.0在共存。

“这也能行?”李主任惊了。

“临时方案,风险是数据不一致。但至少门诊没堵。”

6. 上线后48小时:在”拆炸弹”

小张知道,双跑方案是把达摩克利斯之剑悬在头上。

V3.0和V4.0的数据,必须尽快合并,不能长期双跑。

但合并不简单:有些数据在V4.0产生(如挂号),有些在V3.0产生(如医嘱),要保证合并后不丢、不错。

小张团队用了48小时,做”渐进式整合”:

– 第一天,把V4.0已经有的数据,合并回V3.0(作为备份)

– 第二天,所有新产生的业务,强制使用V4.0,V3.0只读

– 第三天,停V3.0,全部切到V4.0

每一步都有验证。

周一早上,全部完成。

系统终于”单飞”了。

李主任问小张:”这次部署,虽然惊险,但最后成功了。关键是什么?”

7. 小张的复盘:没有完美的计划,但有充分的预案

小张说:”没有完美的计划,但有充分的预案。”

– 我们有B计划(旧硬件升级),不然第一天就卡死

– 我们有仿真演练,不然网络配置会错

– 我们有回滚预案,不然迁移一半失败就完了

– 我们有”双跑”应急方案,不然上线日就崩了

“但最关键的,是敢于’不完美’上线。”

“什么意思?”

“我们原计划是100%数据迁完再切换。但时间不允许,我们选择了85%+双跑方案。”

“虽然不完美,但业务没受影响——门诊能挂号,医生能开医嘱,药房能发药。”

“如果死磕100%完美,可能拖到下午才能上线,影响更大。”

有时候,接受”可用但不完美”,比追求”完美但不可用”,更重要。

8. 周总的总结:系统稳定性是”冗余”堆出来的

老周后来总结这次部署:

– 硬件不靠谱(老服务器),就用软件方案补(虚拟化、双跑)

– 时间不够(10天),就用策略补(分阶段上线)

– 数据不一致风险,就用验证补(每步验证)

– 人员紧张,就用预案补(演练)

(“系统稳定性,不是’设计出来’的,是’冗余出来的”)

冗余不仅是硬件冗余,更是方案冗余、时间冗余、人力冗余。

没有B计划的部署,是赌博。

有B计划,哪怕B计划看起来不完美,也能保底。

9. 这次部署的”五个教训”

老周把这次经历写成案例,给公司所有实施人员培训:

教训一:永远要有B计划

– 硬件不靠谱,怎么办?

– 时间不够,怎么办?

– 人员生病,怎么办?

教训二:仿真演练不能省

– 这次发现的问题,如果在生产环境才发现,就是灾难

– 演练不是”走过场”,是”找问题”

– 演练一遍不够,要演练三遍

教训三:接受”不完美”的上线

– 不是所有功能一次搞定

– 分阶段上线,保证核心业务先跑

– “可用”优先于”完美”

教训四:回滚方案必须提前测试

– 不能光有计划,要演练回滚

– 回滚失败比不迁更糟

教训五:客户沟通要透明

– 小张一开始没告诉李主任”85%方案”,差点被骂

– 后来说明了,李主任理解了

– 透明能降低客户焦虑

10. 给所有实施人员的建议:预案做到极致

最后,老周说:

“实施工作,本质上是在’不确定性中寻找确定性’。”

– 时间不确定(会不会延迟?)

– 资源不确定(人手够不够?)

– 客户态度不确定(验收会不会卡?)

– 环境不确定(网络通不通?)

我们能做的,就是把确定性做到极致

– 预案做全

– 演练做实

– 沟通做透

– 方案做细

“这次部署,我们准备了一份70页的部署手册,但只用上了20页。那50页是’可能用不上’的预案。”

“但真出事时,那50页,救了我们。”

互动话题

你经历过最惊险的一次系统部署/上线是什么情况?最后是怎么挺过来的?

> 基于真实医院场景改编,人物均为化名


立即免费试用门诊系统https://app.kmhis.com/
International Versionhttps://app.kmhis.com/multi/
了解软佳门诊管理系统详情https://www.kmhis.com/outpatient-management-system.html


扫码预约

手机扫码试用患者预约。请勿输入个人真实信息(点击图片可查看原图)

支持8种语言:简体中文、繁体中文、香港中文、English、藏文、泰文、老挝语、越南语


说真的。这类问题我见过太多了。每次看到医院同事为选型头疼。我就想,要是早点有人把这些经验分享出来就好了。毕竟。选择不对。后面全是麻烦。选择对了。省心省力。还能提升整个机构的运行效率。希望这篇能帮到正在纠结的你。

你如果有具体需求。也可以去 www.kmhis.com 看看。那里有更详细的技术方案和案例。

杨院长生日,收到了一条”奇怪”的祝福短信:客户关系维护的长期主义与”非销售”艺术

杨院长生日那天,早上八点,手机响了。

一条短信:

> “杨院长您好,我是昆明软佳的小张。您最近在忙关于HIS系统二期的事情吗?听说你们想加一个慢病管理模块,我们最近做了两家医院的方案,如果需要参考,我可以发给您。——小张,138xxxx”

杨院长愣住了。

她确实在考虑HIS系统二期,要加慢病管理,但还没跟任何人说。连信息科李主任都不知道。

这个”小张”怎么知道的?

她回复:”谢谢,你怎么知道我考虑这个?”

小张秒回:”上次您开会时说’要关注慢病患者管理’,我记下了。刚好我们公司最近在做这方面的产品,就跟您分享一下。”

杨院长心里一暖。

这是个用心的销售。

但更让她感慨的是:这是她收到的唯一一条”生日祝福”,不是群发的,是有实质内容的

1. “客户关系”不是”节日群发”:小张做对了什么?

杨院长把这事跟李主任说了,顺便问:”你们信息科跟软佳谁对接?”

“小张,客户成功经理。”

“他怎么样?”

李主任苦笑:”这就是小张啊。软佳的客户经理,跟华通的赵某完全是两种人。”

赵某是华通的销售,逢年过节群发祝福短信,内容都是”尊敬的X总,值此佳节…”,连名字都不带换的,杨院长收到过好几次,直接删。

但小张不一样。

“你知道他做了什么吗?”李主任问。

杨院长摇头。

“去年冬天,我们儿科有个新生儿严重黄疸,需要转上级医院。但转院要HIS系统出转诊单,那功能我们没有买。小张知道后,连夜联系他们公司,免费给我们开了个临时授权,让我们用了一个月。”

“这种事,他们收费吗?”

“不收。他说’病人要紧’。”

“然后呢?”

“然后我们就买了那个模块。但不是因为他’献殷勤’,是因为他真的理解我们的需求。”

2. “销售”和”客户成功经理”,有什么区别?

小张的身份,从销售,变成了”客户成功经理”。

这是软佳两年前做的组织变革。

以前,销售签完合同就交给实施团队,自己再去追新客户。实施团队交付完,交给运维,自己再去实施下一个项目。运维解决报障,但不会主动联系客户。

客户在软佳的体验,是(“断点式服务”)——每个环节都有人,但环节之间有 gap。

变革后,每个客户,从销售开始,就有一个(“成功经理”)全程跟进。

小张就是XX医院的成功经理。

他的职责不是”卖更多产品”,而是”让客户成功”。

具体做:

每月至少一次上门拜访,不聊销售,只了解需求

每季度提供一份”系统健康报告”(性能、故障、使用率)

每半年做一次”需求工作坊”,帮客户梳理下一步要做什么

客户遇到任何问题,第一个联系他,他协调公司内部资源

“这不就是售后吗?”杨院长问。

李主任:”售后是被动响应,客户有问题才找你。成功经理是主动服务。他会提前发现客户可能遇到的问题。”

比如,小张最近发现XX医院的”医患沟通记录”功能使用率很低——这个功能是医生和患者在线沟通的,但医生不爱用。

小张没直接问”为什么不用”,而是去门诊待了一上午,看医生怎么和病人交流。

他发现:

– 医生在诊室,电脑上一边开医嘱一边跟病人说话,没空打字

– 而且有些患者是老人,不会用手机看消息

小张回去后,没跟客户说”你们得用这个功能”,而是提了个建议:把”医患沟通”和”语音病历”集成,医生说话,自动转文字发给患者

医院采纳了,这个功能的使用率从5%飙升到70%。

这就是(“卖解决方案,不是卖功能”)

3. “客户成功”怎么衡量?KPI决定行为

软佳给成功经理定的KPI,很奇怪:

客户健康度评分(系统可用率、故障次数、用户满意度调研)

客户续约率(不是”销售额”)

客户增购率(在原有合同基础上,买更多模块)

NPS(净推荐值)——客户是否愿意推荐给别人

小张的KPI里没有”本月签单金额”。

但奇怪的是,有了这个岗位,公司的:

– 续约率从70%提升到95%

– 增购率从20%提升到40%

– 客户流失率从15%降到5%

“因为客户感受到,你是真为他好。”杨院长说。

“赵某就 never 这样。”李主任说。

赵某也有KPI——”本月销售额”。所以他见客户,三句话不离”买这个模块””那个功能要不要””我们新产品很好”。

客户觉得他是来收割的,不是来帮忙的。

小张相反。他上门,first 问的是”最近有什么问题””什么功能不好用””你们明年准备做什么”。

问得多,说得少。

但问多了,他就知道客户真正要什么。

4. 生日短信的背后:长期主义的胜利

那天晚上,杨院长把小张发来的”慢病管理方案”研究了一下。

确实,做得很用心。方案里不仅有产品功能,还有:

– 三家已上线医院的运营数据(脱敏的)

– 患者满意度

– 医护人员使用率

– 投资回报率分析

这说明小张是真的调研过,不是随便发个模板来应付。

杨院长回复:”方案收到,很有参考价值。我们下周三开班子会讨论这个事,如果你方便,可以来参加,做个简短汇报。”

小张回复:”谢谢杨院长!我一定到,但不会推销产品,只分享案例。”

杨院长笑了。

她知道,下周三如果小张做得让她满意,二期项目很可能还是软佳的。即使不是全给他们,至少分一块蛋糕。

而这一切,都源于那条生日短信。

(杨院长不知道的是,那条短信,是小张花了两个小时写的——他查了杨院长半年的公开活动,发现她在一个学术会议上提到”慢病管理”,才有的放矢。)

5. 客户关系,不是”搞定一个人”,而是”搞定一个组织”

但小张也有失败的时候。

有一次,他极力推荐一个”智能分诊”模块,说能极大提升门诊效率——AI分诊,患者手机填写症状,系统推荐科室。

但信息科李主任试用了,说:”这玩意儿不实用。它让患者自己在手机上选症状,但很多患者描述不清楚,选错了,反而增加医生工作量。”

小张没坚持,回去跟公司说:”这个产品不适合XX医院,我们先不推。”

“那不等于放弃这个客户了吗?”同事问。

“不是,是更信任我们了。”小张说,”如果我们强推一个不适合的东西,客户会怀疑我们之前推的东西,是不是也不适合。”

这就是(“有时不卖,才是最好的卖”)

杨院长后来才知道这事。

“小张这个人,能处。”她说。

6. “关系”的三个层次:从交易到伙伴

李主任把软佳的客户关系维护,总结为三个层次:

第一层:交易关系

– 你给我钱,我给产品

– 履约即结束

– 容易替代(谁便宜选谁)

第二层:服务关系

– 有问题,响应快

– 有需求,能满足

– 有感情,但不多

– 不太容易被替代

第三层:伙伴关系

– 主动发现客户问题

– 帮客户规划未来

– 为客户的失败感到难过,为客户的 success 感到高兴

– 很难被替代——因为客户觉得你”懂”他

软佳在向第三层努力。

而华通,还在第一层——赵某每次来,就是”我们有个新功能,您要不要看看?”

7. 一个细节,让关系升华:搬家前的”免费检查”

去年冬天,XX医院搬新院区。

搬家前一天,小张带着两个工程师, arrive 医院, free 帮他们检查新院区的网络、机房、AP信号。

“这不是你们的事吧?”李主任问。

“是也不是。”小张说,”如果你们新院区网络有问题,我们的系统用着也不顺。帮你们,也是帮我们自己。”

他们忙到晚上十点,发现一个机房的网线标签贴错了(核心交换机和汇聚交换机接反了),及时纠正。如果搬家后才发现问题,得折腾三四天。

杨院长听说后,送来一箱水果:”你们真是…”

“应该的。”小张说。

杨院长 later 说:”搬家那次,让我 seeing 了什么是’靠谱’——不是签了合同才负责,是客户的事都是事。”

8. 关系的本质:把客户当成”活生生的人”

小张后来在一次内部培训上说:

“很多人觉得’客户关系’就是送礼、请吃饭、逢年过节送月饼。”

“但真正的客户关系,是(‘把客户当成活生生的人’)。”

他有KPI要完成,有领导要汇报,有病人要看,有投诉要处理。

你帮他把事做成,就是最好的关系。

你送他茅台,但他的系统三天两头崩,他 pressure 很大,他烦死了,他哪有心思喝茅台?

相反,你帮他解决一个问题,他记一辈子。

有时候,一句话的力量,胜过一万块礼品。

比如,客户生日,你送个蛋糕,不如发条短信说’记得您曾经提过X事,我帮您留意了,有进展’。

客户会觉得:你把我当人,你记得我说过的话。

这比什么都贵。

9. “客户成功经理”的制度设计:释放一线人员的善意

软佳的客户成功经理制度,有几个关键点:

① 独立性

– 成功经理不属于销售部门,也不属于实施部门

– 直接向”客户成功委员会”汇报(跨部门)

– KPI不与销售额挂钩

② 授权

– 可以调动公司内部资源(技术、产品、实施)

– 可以批准小额”免费服务”(如临时授权、紧急支持)

– 可以直接向高层反馈客户问题

③ 考核

– 客户NPS(占40%)

– 续约率(占30%)

– 健康度评分(占20%)

– 内部协作评分(占10%)

④ 客户数量

– 每个成功经理负责不超过15个客户

– 保证每月至少有一次面对面沟通

10. 长期主义的胜利:信任是最深的护城河

周总后来在一次内部会说:

“客户关系,是慢慢养出来的。”

不要指望签单时就亲如兄弟,而是:

– 第一次故障时,你响应快

– 第一次需求变更时,你理解

– 第一次升级时,你稳定

– 第一次续约时,你主动

每一次互动,都是一次”存款”或”取款”。

存多了,关系就稳了。

取多了,关系就崩了。

软佳的”客户关系账户”,一直在存钱。

华通的”客户关系账户”,一直在取钱(卖新功能、加价、推卸责任)。

所以,华通的客户,稍微有点风吹草动(谣言),就动摇。

而软佳的客户,即使有谣言,也不信——因为他们的”信任余额”够厚。

互动话题

你有过最感动的一次客户服务/售后服务经历吗?是什么让你觉得”值了”?

> 基于真实医院场景改编,人物均为化名


立即免费试用门诊系统https://app.kmhis.com/
International Versionhttps://app.kmhis.com/multi/
了解软佳门诊管理系统详情https://www.kmhis.com/outpatient-management-system.html


扫码预约

手机扫码试用患者预约。请勿输入个人真实信息(点击图片可查看原图)

支持8种语言:简体中文、繁体中文、香港中文、English、藏文、泰文、老挝语、越南语


说真的。这类问题我见过太多了。每次看到医院同事为选型头疼。我就想,要是早点有人把这些经验分享出来就好了。毕竟。选择不对。后面全是麻烦。选择对了。省心省力。还能提升整个机构的运行效率。希望这篇能帮到正在纠结的你。

你如果有具体需求。也可以去 www.kmhis.com 看看。那里有更详细的技术方案和案例。

一个看似不可能的任务:我们在三天内解决了XX医院的”绝症”问题

“你们能不能在三天内解决这个问题?如果不能,我们就换人了。”

会议室里,XX医院信息科李主任的声音很平静,但每个字都像一块石头,砸在我们项目经理小张的心上。窗外的春日阳光斜斜地照进来,照亮了空气中漂浮的尘埃,却照不进会议室里压抑的气氛。空调吹出的冷风扫过每个人的后背,让人不寒而栗。

这是合同签订后的第二个月,我们的HIS系统在XX医院上线测试的第五天。第五天,一个我们从未遇到过的数据同步问题浮出水面——门诊缴费数据无法实时同步到住院系统。简单说,病人在门诊交了费,住院处查不到,导致重复收费、漏收费,护士站怨声载道,财务科王科长已经来投诉三次了。

我们派出的工程师小刘已经熬了三个晚上,问题依旧。他黑着眼圈,头发凌乱,手指在键盘上飞舞,屏幕上的日志滚动如瀑布。测试环境一切都好,一到生产环境就出问题。日志里只有一堆”timeout”和”connection reset”,看不出所以然。

李主任给我们下了最后通牒:”三天,要么解决问题,要么走人。”他的眼神里没有威胁,只有一种深深的疲惫——那是被问题折磨了一个月后的绝望。

1. 表面的技术问题,背后是管理混乱

回公司的路上,车里没人说话。

车窗外的城市灯火璀璨,但车内一片阴沉。我们在技术圈子里摸爬滚打这么多年,什么疑难杂症没见过?数据库死锁、网络分区、应用OOM…但为什么这次被一个简单的数据同步卡住了?

小张盯着窗外飞驰而过的街景,思绪万千。他想起三年前在另一家医院做数据迁移时,也遇到过类似问题,但那次只用了半天就定位了。这次为什么这么难?

小刘突然说:”哥,我总觉得问题不在代码里。”

“那在哪里?”

“在医院网络的防火墙策略。我怀疑他们在应用层做了流量限制,或者中间有某个设备在做SSL拦截。”

小刘是公司最年轻的高级工程师,26岁,话不多,但一针见血。他打开笔记本电脑,快速画出数据流向图:从门诊收费终端,到HIS应用服务器,再到住院数据库,中间经过三道网络设备——防火墙、WAF、负载均衡。

“如果中间有设备做深度包检测,可能会拦截某些SQL语句。”小刘说。

张哥点点头:”但为什么测试环境没问题?”

“因为测试环境没有那三道设备,直接连数据库。”

2. 七台设备,两个未知节点

第二天一早,我们没带电脑,只带了笔记本和笔,直接去了XX医院的网络机房。

机房在住院部地下二层,恒温恒湿,蓝色LED灯闪烁。机房管理员老陈是个四十多岁的中年人,戴着眼镜,表情很冷淡,正在低头修一台交换机。

听说我们要查网络设备,他直摇头:”你们厂商就是喜欢折腾设备。问题是你们的软件有问题。”

“陈师傅,”小刘递上一支红塔山,”我们不急,就想看看贵院的网络拓扑,特别是HIS系统这条链路上有哪些设备。”

老陈犹豫了一下,接过烟:”跟你们说了也没用,这是内部网络结构,涉密。”

“我们签了保密协议。”李主任也来了,掏出协议给他看。

他扫了一眼,终于松口:”好吧,就看看,不能拍照。”

老陈拿出一张A3纸,画了一张拓扑图,用不同颜色的笔标注:

从HIS服务器(位于信息中心机房)到住院收费终端(分布在门诊楼、住院楼各楼层),中间经过七台设备:

1. 核心交换机(华为S7700,位于信息中心)

2. 防火墙(深信服AF-1000,位于信息中心)

3. WAF(Web应用防火墙,自研,位于安全接入区)

4. 负载均衡(F5 BIG-IP,位于应用前端)

5. 路由交换机(思科Catalyst 6500,住院楼核心)

6. 二层交换机(华为S5700,各楼层)

7. 住院收费终端(PC机,运行Windows 10)

问题出在数据从第3台WAF到第4台负载均衡之间。我们的服务调用住院数据库接口,先过WAF做安全检测,再过负载均衡分发到住院应用服务器。

小刘指着WAF和负载均衡之间的连线:”这里,我们要抓包。”

“抓不了。”老陈说,”WAF是省信息中心统一部署的,我们没有管理权限,只有使用权限。抓包要找省里审批。”

“那WAF的策略是谁维护?”

“省信息中心安全科。他们每季度更新一次规则,但从不告诉我们具体规则是什么。”

张哥心里一沉。这意味着我们要联系省里,走流程,申请排查。七天?一个月?都不够。

小刘却笑了:”哥,我有个想法。”

3. 绕开防火墙,但不能绕过规则

小刘的想法是:不直接连接住院数据库,通过门诊数据库做中转

“如果我们把门诊缴费成功的记录,先存到门诊库,然后让医院现有的数据同步工具(他们有个ETL任务,每5分钟同步一次),把数据从门诊库同步到住院库呢?”

张哥摇头:”住院实时缴费怎么办?病人缴费后要马上生成住院预交金,如果同步有延迟,病人没法办理手术。”

“我们可以加一个中间表,记录所有待同步的数据,再写一个监听程序,确保每条缴费记录都同步到住院库。同步失败就重试,重试三次还失败,就人工介入。”

“但如果数据不一致,财务对账会出大问题。”

“我们可以做到99.99%一致。”小刘眼神坚定,”我在之前项目用过类似方案。”

张哥知道,这方案最大的风险在于:这只是一时之计。如果长期这样,数据延迟会导致住院处无法实时掌握病人费用,影响医疗决策。

而且,一旦住院库有问题,门诊库也会被拖累——数据链路变长了,故障点变多了。

“这个方案能撑多久?”

“至少撑到我们拿到省里的WAF策略调整许可。”小刘说,”我打听到,省信息中心下个月要做一次WAF规则优化,我们可以把我们的情况报上去,申请白名单。”

张哥想想,这也是无奈之举。

4. 说服的关键:不是技术,是态度

我们带着方案去见李主任。

这一次,张哥没有带笔记本,而是带了一叠A4纸,上面手绘了数据流对比图:现状(直接连住院库)vs 临时方案(门诊库中转)。

他开门见山:”李主任,我们有两个方案。方案A:继续等省里审批,预计时间1-2个月,期间系统会持续不稳定。方案B:我们先上线一个临时方案,绕过WAF的误拦截,保证业务正常,同时我们去省里协调。”

李主任皱眉:”临时方案会不会影响数据安全?”

“不会。数据仍在医院内网流转,只是多了一步中转。而且,我们会加日志记录,所有数据流动可追溯。”

“那什么时候能彻底解决?”

“如果省里配合,一个月内。如果不配合,我们只能长期用这个方案,但我们会持续优化,确保延迟在3秒内。”

李主任看向网络管理员老陈:”你觉得呢?”

老陈说:”WAF确实是我们控制不了的。我建议先临时方案,同时周总你们去省里跑,我们医院也给省里发个函,说明业务影响。”

5. 72小时不眠不休

接下来的72小时,是我们职业生涯中最漫长的一段。

小刘带人写中转服务,这是一个Java应用,要监听门诊库的binlog,捕获缴费成功事件,然后写入住院库的中间表,再触发住院库的同步。

张哥在医院现场协调:

– 第一天:改造门诊收费模块,增加数据双写(同时写门诊库和中间表)

– 第二天:开发和部署中转服务,与住院系统联调

– 第三天:数据一致性验证,灰度上线

李主任几乎没回家,吃住都在医院,随时决策。

第三天凌晨四点,系统终于上线。

上线前,我们做了三轮压力测试:

– 模拟门诊高峰,1000个并发缴费请求,中转延迟平均1.2秒,最大3秒

– 住院端查询,数据一致率100%

– 故障切换:如果中转服务挂掉,门诊收费仍能正常进行,只是同步暂停,人工补同步

李主任看着测试报告,紧绷的脸终于有了一丝松动:”上线吧。”

6. 事后复盘,我们做对了什么?

一周后,系统运行稳定。

李主任请我们吃饭。酒桌上,他举杯:”说实话,那三天,我没想到你们能搞定。”

“为什么?”

“换别家厂商,遇到我们这种’受制于省里’的情况,早就推脱了。你们没推脱,而是给我们一个临时方案,让我们业务不停摆。”

张哥说:”关键不是技术方案多巧妙,是不放弃。”

李主任点头:”而且你们没把我们当外人——所有的决策,都让我们参与;所有的风险,都提前告诉我们。这种透明,让我们很放心。”

7. 省里协调:一个月后的好消息

与此同时,张哥跑省里的工作也有了进展。

他找到省信息中心安全科的科长,是一个45岁的技术男。张哥没有直接要策略,而是先做了三件事:

1. 准备数据:统计了XX医院过去一个月因WAF拦截导致的业务异常次数(37次),以及影响的患者数量(约5000人次)

2. 提供方案:写了一份详细的白名单申请,只申请对HIS系统的特定接口放行,并附上了安全自评报告

3. 承诺责任:如果因为放行导致安全事件,由软佳承担全部责任

科长被诚意打动,两周后批复:同意对XX医院HIS系统加白名单,为期一年,期满可续。

消息传来,李主任第一时间打电话给张哥:”你们怎么做到的?”

“周总说过:(‘解决问题,要找到问题的根源’)。问题的根源不是WAF,是沟通。”

8. 这次事件,让我们明白的五个道理

第一,技术问题往往是管理问题的表象

如果XX医院自己有WAF策略管理权,问题早就解决了。但因为他们把安全外包给了省里,就失去了主动性。我们作为供应商,只能适应环境,不能改变环境。

第二,临时方案不是妥协,是策略

永久方案需要时间,但业务不能等。临时方案的价值是赢得时间,同时不让客户受损。很多厂商不愿意做临时方案,觉得”不完美”,但客户才不管完美不完美,客户只要能用。

第三,信任建立在”困难时刻”

如果一切顺利,客户看不出供应商的差别。只有在困难时刻,才知道谁靠得住。那72小时,我们所有人都拼了,这种拼劲,客户 seeing 到了。

第四,跨层级协调是能力

我们不仅要解决技术问题,还要学会和省里、和其他部门协调。这种能力,比技术能力更重要。

第五,透明沟通比技术方案更重要

客户不关心你的技术多高深,客户关心的是:问题能不能解决?什么时候解决?过程中有什么风险?把一切都透明化,客户就不会猜疑。

9. 三个月后:系统稳定,客户满意

三个月后,XX医院HIS系统可用率达到99.95%,数据同步延迟平均0.5秒,住院处投诉率为零。

杨院长在一次IT座谈会上说:”我们信息化,最怕两种供应商:一种是技术不行,一种是服务不行。软佳两种都不占。他们技术扎实,服务到位,关键是有担当。”

这次事件,也成了软佳内部的经典案例,被写进新员工培训教材,标题是:《如何在72小时内解决一个看似不可能的问题》。

10. 核心观点:问题的大小,取决于你的态度

小刘后来在一次技术分享会上说:

“很多问题,看起来很大,是因为你把它当成’问题’。

如果你把它当成’任务’,就有思路;

如果你把它当成’机遇’,就有动力;

如果你把它当成’证明自己的机会’,就一定能解决。

(‘态度决定高度,高度决定角度’)

你用什么样的心态面对问题,问题就会以什么样的结果回报你。”

互动话题

你遇到过最棘手的技术问题是什么?是怎么解决的?

> 基于真实医院场景改编,人物均为化名


立即免费试用门诊系统https://app.kmhis.com/
International Versionhttps://app.kmhis.com/multi/
了解软佳门诊管理系统详情https://www.kmhis.com/outpatient-management-system.html


扫码预约

手机扫码试用患者预约。请勿输入个人真实信息(点击图片可查看原图)

支持8种语言:简体中文、繁体中文、香港中文、English、藏文、泰文、老挝语、越南语


说真的。这类问题我见过太多了。每次看到医院同事为选型头疼。我就想,要是早点有人把这些经验分享出来就好了。毕竟。选择不对。后面全是麻烦。选择对了。省心省力。还能提升整个机构的运行效率。希望这篇能帮到正在纠结的你。

你如果有具体需求。也可以去 www.kmhis.com 看看。那里有更详细的技术方案和案例。