迁移只是容易的那一半
重点: 一家新加坡医疗科技公司的核心系统跑在储藏室改造出来的机房里,两台已过保四年的服务器上,而两年没有人做过一次真正的恢复演练。董事会批准了上云。迁移花了六周。但关于打补丁归谁、备份由谁验证、账单由谁复核、半夜由谁被叫醒——这场讨论要长得多,而且真正决定这次搬迁值不值的,是这场讨论,不是迁移本身。
为什么储藏室里的那台服务器能活这么久
新加坡有相当密集的一批医疗科技与医疗器械公司,规模刚好落在最尴尬的区间——七十到一百一十人左右:基础设施已经实实在在地承载着业务,但公司里并没有一支基础设施团队。这类公司通常从一个产品想法和几名工程师起步,拿下第一个像样的客户,然后跟着这个客户的扩张一起长大。在头两年的某个时点,有人买了一台服务器。当时这是对的决定:便宜、快、而且完全掌握在那个从头到尾懂产品的人手里。
后面发生的事情并不是疏忽,而是一家公司在"每一小时工程师注意力前面都排着一队面向客户的活"这种状态下,完全理性的行为。服务器在跑。它一直在跑。换掉它做不出任何新功能,赢不来任何新客户,也不会出现在任何路线图上。于是这个决定一年一年往后推,而每推一年,代价就比上一年略高一点——不是现金上的,而是体现在有多少东西如今悄悄依赖着这台自交付以来就没有人主动重启过的机器。
新加坡的具体环境让这件事在两个方面更尖锐。第一,商业空间昂贵,所以所谓"机房"往往根本不是机房,而是一间改造过的储藏室、茶水间旁边的柜子,或者办公室角落里对着一台家用分体空调的一块地方。第二,新加坡的医疗科技公司几乎一开始就在做区域生意。一家一个办公室、九十号人的公司,可能同时服务着四五个市场的客户,而这些客户在采购环节问出的问题,是这家公司自己的基础设施从来没被设计来回答的。
第二点通常就是把一个被推迟的决定变成董事会议题的那根导火索。工程团队提了两年硬件风险,没有效果。然后某个客户的采购问卷问到:数据实际存放在哪里、恢复目标是多少、上一次测试恢复是什么时候——储藏室里那台服务器一下子从技术问题变成了商务问题。这是我们见得最多的触发方式,值得直说:迁移很少是因为公司内部终于理解了风险才被批准的,而是因为公司外部有人问了一个公司答不上来的问题。
场景:那两台机器上到底跑着什么
来看一个说明性的复合情境——不是某个具名客户,而是从这一细分市场反复出现的项目形态里提炼出来的模式。一家新加坡医疗科技公司,约九十名员工,向亚洲几个市场的医院集团和专科诊所销售一套临床流程产品。它的生产平台早就跑在某家云上,那部分很现代,也理解得很清楚。问题出在除此以外的一切。
储藏室里放着两台物理服务器,都已过保四年。第一台跑着一套业务系统——处理订单管理、设备序列号追踪、服务排程,以及支撑客服团队的客户档案。当年部署它的系统集成商此后已被并购过两次。第二台跑着一个全公司都依赖的文件共享:临床文档模板、法规申报的过程文件、销售资料,以及十年间按照只有三个人完全看得懂的规则组织起来的项目目录。
还有一个数据库。它就在第一台服务器上,支撑着那套业务系统,是整栋楼里没有人愿意去碰的唯一一个对象。它的表结构在六年里被非正式地扩展过很多次。管理层依赖的两份报表直接查询它。真正搞懂它索引设计的那个人,2023 年就离职了。
备份在跑。正是这个细节让整个局面显得比实际安全。有一个备份任务,它能跑完,并且在某人当年搭的看板上打出一个绿色对勾。缺的是一次经过测试的恢复。上一次有人主动从这份备份里恢复出一套系统、并确认结果确实可用,已经是两年多以前的事——而且做那件事的人是当作一次性的动作来做的,并不属于任何常设流程。所以这不是备份。这是一个关于备份的假设。
最后,还有一名工程师。不是差的工程师——通常反而相当出色——他搭起或接手了这套环境,是唯一知道某些东西为什么是现在这个样子的人。这个人也正是这套环境一直没倒的原因。而从风险角度看,他同时是清单上分量最重的单项,而且所有人都清楚这一点,包括他自己。
这套局面真正制造出来的问题
单个问题都不难列举。要命的是它们互相叠加:每一个都让其余几个更难修,这也是为什么这类环境往往会一直冻在原地,直到某个外部事件把它推动起来。
- 硬件过保,且没有备件路径。 用了四年的服务器不会体面地坏掉。当一块硬盘、一张阵列卡或一个电源出问题时,问题不是"修要多久",而是"这一代的替换件这周在新加坡还找得到吗"。公司没有备件策略,因为当初就没打算让这批硬件服役到今天。
- 从未按这个负载设计过的制冷与供电。 家用分体空调维持的是让人舒服的室温,它维持不了持续负载下服务器进风口的温度,而且它出故障时不会安全地降级。供电是办公室的一路电,和旁边随便插着的东西共用。可能有一台 UPS,但它的电池现在还能不能撑住,通常没人知道。
- 备份一直在跑,却从未被恢复过。 值得重复,因为这是整个场景里被低估得最厉害的风险。备份软件报告成功,说明的是任务跑完了。它不说明数据完整、应用能起来、数据库能挂载,也不说明恢复能在业务可以接受的时间内完成。
- 销售团队现在开始被追问的数据驻留问题。 数据放在哪里、谁能访问、依据什么合同条款、终止合作时会发生什么——这些会出现在客户的采购问卷里,而指着一间储藏室是没法可信地回答的。这是对增长的商业约束,不只是 IT 议题。
- 单点知识。 只有一个人理解这套环境。文档"存在",仅限于当年确实有一部分被写下来过。如果这名工程师在故障发生时正在休假,恢复时间就不再由技术决定。
- 根本没有定义过恢复目标。 从来没有人被问过:业务在没有那套业务系统的情况下能撑多久?能接受丢多少数据?没有这两个数字,任何设计讨论都只是意见之争,而不是工程。
其中两点值得特别注意,因为它们最常在迁移过程中被错误地划出范围。未验证备份这个问题,不会因为上云就消失——一份从未恢复过的云备份,和一份从未恢复过的本地备份,未经证实的程度完全一样。而单点知识的问题在好转之前会先恶化,因为迁移期间那名工程师会比平时更加不可替代。
真正要做的决定:整体搬迁还是重构平台
一旦上云获批,技术讨论会很快收敛到一个问题上。与其把其中一个答案说成显然正确,不如老实地把取舍摆出来。
整体搬迁(lift-and-shift) 就是把现有服务器原样复制成云上的虚拟机。更快、执行成本更低、项目风险最小,而且通常完全不用碰应用。它同时也把问题原样保留了下来:同样没有文档的构建、同样非正式演化的表结构、同样的操作系统版本、同样那个没人搞得懂的数据库——只是现在跑在别处,并且按月计费。整体搬迁消除了硬件风险、制冷风险和那间储藏室,但它没有消除任何运维风险。
重构平台(re-platform) 改变的是这套东西的形态:用托管数据库服务替代自己运维的数据库,用托管文件服务替代文件服务器,身份与访问由平台而不是本地账号来管。它更慢、执行成本更高,而且会把公司一直成功忽略着的问题翻出来——通常表现为某个从没有人记录过的应用依赖。但它确实减少了公司此后需要运维的东西的数量。
真正的决定因素通常不是技术,而是这套应用还要活多久。如果那套业务系统计划在十八个月内被替换掉,重构它基本上是浪费钱——原样搬走,先把硬件风险摘掉,把工程投入放到替换项目上。如果它五年后还会在跑,那么整体搬迁就是一笔带利息的延期,重构的工作只会推迟发生,而且届时条件更差、当年那批人也走得更多。
实务上,这种形态的环境多数最后是拆开处理的:文件共享和数据库被重构到托管服务上,因为运维负担实际就压在这两处;而业务系统原样搬走,把决定推到以后。这是一个正当的结果,不是妥协——前提是它是有人刻意做出的决定,而且那个"以后再定"的事项被挂上了一个日期。
博迅的观点:迁移改变的是"哪种故障归谁"
"上云"总被描述成一个项目,有开始日期、结束日期和预算。正是这种表述,制造了之后常见的那种失望。迁移本质上不是一个技术事件,而是运维责任分布的一次改变;而如果这次再分配没有被明确决定,它就会默认回到原来那个人身上——也就是那名本来就超载的工程师,只不过现在他运维的是一套自己比原来更不熟悉的环境。
切换完成之后,有四个问题决定这次搬迁到底有没有降低风险。
- 谁打补丁? 操作系统、应用运行时、数据库引擎。云厂商为你虚拟机底下的平台打补丁,但不为虚拟机里面的东西打补丁。这是整体搬迁之后最常见的误解,其后果是环境在迁移一年后的补丁状况反而比迁移前更差。
- 谁验证备份能恢复? 不是谁配置备份,而是谁按周期真的做一次恢复,并确认恢复出来的系统可用。如果答案是"没人,但它现在在平台上",那么未验证备份这个问题只是跟着数据一起迁走了。
- 谁在账单翻倍之前复核它? 云成本不会停在第一天的位置。实例在故障处理时被调大,之后再没调回去。快照越堆越多。为测试开出来的环境活得比它的用途还久。没有指定负责人和月度复核,第一次不愉快的意外通常落在第四到第九个月之间。
- 半夜谁被叫醒? 凌晨两点,系统现在在别处,而懂它的那个人联系不上。一条终止于某一个人的升级路径,不是升级路径。
一次没有回答这四个问题的迁移,并没有降低公司的风险。它只是把风险搬了个地方、加了一张月度账单,并且拿掉了那种至少还能走过去看一眼的实体机器所带来的心理安慰。
做对了的运维模式长什么样
替代方案不是更多技术,而是一组明确的常设责任——在切换之前谈定,而不是在切换之后发现。
- 把打补丁做成常设服务,而不是一种意愿。 明确的维护窗口、覆盖操作系统及虚拟机内组件的明确范围,以及能显示"打了什么、推迟了什么、为什么推迟"的报告。补丁管理是博迅托管 IT 方案在每一档服务级别都包含的十三项内容之一,和 7×24 监控、服务台并列——是基线,不是加购项。
- 要有经过测试的恢复,而不是绿色对勾。 博迅的云托管备份服务,核心就是由服务指挥中心进行的 7×24 备份任务监控,以及定期的恢复演练以验证备份完整性。"报告成功的备份"和"被证明能恢复的备份"之间的区别,正是这项服务的全部意义所在。备份与容灾(含不可变备份)同样在每一档方案中都包含。
- 有意识地选定备份拓扑。 这项服务定义了四种成文模式——本地全量加关键数据上云、本地全量加全部数据上云、双向完全冗余,以及纯云。一家要离开储藏室的公司通常会落在纯云模式上,但那应当是一个带着明确恢复目标做出的选择,而不是恰好变成这样的默认值。
- 成本治理要有指定负责人和月度节奏。 规格适配复核、清理无主资源,以及月度成本与性能报告。博迅的托管云服务以通过规格适配把云资源浪费降低 20–40% 为目标,而这只有在真的有人按周期去看账单时才可能实现。
- 升级路径不能终止于某一个人。 分级支持配合明确的响应承诺,让内部那名工程师回到"理解业务上下文的人"这个位置,而不是"每一次故障都必须由他本人醒着"的那个人。
至于平台本身怎么选,诚实的回答是:取决于客户在哪里。博迅的云解决方案实践覆盖 Azure 与 Microsoft 365、AWS、阿里云和腾讯云——后两者对于成长路径包含中国大陆的公司尤其重要,在那里符合 ICP 要求的托管是一个现实约束而不是偏好问题。对于一家面向东南亚销售的新加坡公司,平台决定通常比较直接;而对于路线图里包含中国的公司,值得早点定下来,免得迁两次。
三种做法,老实地对比
- 继续留在本地。 成本已知、没有迁移项目、完全掌控。代价是:老化且没有备件路径的硬件、从未按这个负载设计过的制冷与供电、单点知识,以及一个会持续让你丢单的数据驻留答案。对于客户不问基础设施问题的公司,这是个说得通的立场——但在医疗科技领域,这样的客户越来越少。
- 自建自运维上云。 灵活性最大、不依赖第三方、设计完全自主。代价是:过去被分担掉或被默默忽略的每一项运维工作,现在都明确落在你身上——打补丁、验证备份、复核成本、监控、非工作时间升级。对一家九十人、只有一名基础设施工程师的公司来说,这个选项最常见的结果是:迁移在技术上成功了,但运维状况比它取代的那间储藏室还糟。
- 托管云(博迅模式)。 迁移规划与执行,外加一套明确的切换后运维模式:打补丁与监控作为每一档方案都包含的常设服务、带排期恢复演练而非看板对勾的备份、月度成本与性能报告,以及有指定负责人的分级升级路径。代价是:这是一段有月度成本的商务关系,并且要求公司把恢复目标真正定义出来,而不是含糊带过——这是要花功夫的,而这恰恰也是重点。
接下来该怎么做
如果你储藏室里那两台服务器已经过保,而上一次测试恢复的时间比你现任工程负责人的入职时间还早,那么下一步有用的动作并不是一份迁移方案,而是一次诚实的盘点:每台机器上跑着什么、什么东西依赖它、业务能承受失去什么、在缺少每一套系统的情况下还能运转多久。这些答案决定设计。没有它们,任何迁移计划都只是一个附了架构图的猜测。
博迅自 2007 年起在亚洲交付托管 IT 与云服务,2021 年起总部设于新加坡,也做过这一具体形态的项目——包括在一次并购过程中,为一家全球医疗科技公司提供云架构设计与长期托管基础设施支持,覆盖 Azure 与 Microsoft 365 E5、Intune、身份体系以及区域终端更新。你可以在托管 IT 支持页面上看到方案结构和每一档包含的内容,或者直接联系我们,聊聊你储藏室里实际放着什么。
常见问题
我们该整体搬迁还是重构平台?
按这套应用预计还要用多久来决定,而不是按技术来决定。如果这套系统会在大约十八个月内被替换,就整体搬迁:低成本地摘掉硬件风险,把工程投入放到替换项目上。如果它五年后还会在跑,就把承载运维负担的部分重构掉——通常是数据库和文件共享——否则这件事只会推迟发生,届时时间更紧、当年参与过的人还剩得更少。一部分搬迁、一部分重构的拆分结果很常见,也完全正当。
我们的数据实际会放在哪里?
这是你自己做的设计决定,不是迁移替你决定的事,而且应该在任何负载搬动之前定下来。所有主流平台都允许你把负载固定在特定区域,新加坡在各家平台上都覆盖得很好。关键在于:这个答案有文档、它与销售团队在采购问卷里告诉客户的说法一致,并且它把备份和任何副本放在哪里也算了进去——这两者经常和主体不在同一个区域,也经常被忽略。至于某种具体安排是否满足某项特定监管义务,那是你自己的法律顾问和相应监管机构的问题;我们可以说明数据放在哪里、访问如何受控,但那个判定不由我们做出。
迁完之后打补丁归谁?
归你写在合同里的那一方。云厂商为你虚拟机底下的平台打补丁;虚拟机里面的操作系统以及跑在上面的一切,除非你把它委托给了某一方,否则仍然是你的责任。在托管安排下,补丁管理是博迅每一档方案都包含的项目之一,配有明确的维护窗口,以及关于"应用了什么、推迟了什么"的报告。在自运维安排下,它属于你的工程师,应该被明确排期和配置资源,而不是被默认。
我们怎么知道备份真的有效?
按周期把它恢复出来,并确认结果可用。没有别的方法。一个跑完的备份任务只证明任务跑完了;它不证明应用能起来、数据库能挂载,也不证明恢复能在业务可接受的时间内完成。博迅的云托管备份正是为此包含定期恢复演练,同时提供 7×24 任务监控。如果这篇文章你只带走一件事,就带走这一件:无论你对上云做什么决定,这个季度先把最重要的那套系统做一次测试恢复。
上云会比我们已经拥有的服务器更贵吗?
如果拿来和你已经付过钱的硬件采购价相比,通常是更贵——但那个比较没有意义。有意义的比较应当包含:你即将不得不购买的替换硬件的成本、你目前所暴露的停机风险的成本,以及你那个数据驻留答案正在影响的订单的商业成本。确实成立的一点是:云成本在没有治理的情况下会往上漂。实例在故障处理时被调大之后再没调回去,快照越堆越多,测试环境活得比用途还久。规格适配和月度成本复核才是让这个数字保持诚实的东西——博迅的托管云实践正是以这一纪律为手段,目标是把云资源浪费降低 20–40%。
我们内部那名工程师的角色会怎样?
以我们的经验,这才是大家真正在意的问题,而诚实的回答是:这个角色通常会变好。消失掉的是没有差异化的运维负荷——打补丁、盯着备份看板、当那个凌晨两点唯一能响应的人。留下并且会成长的,是需要懂你业务的那部分:产品怎么运作、客户需要什么、哪一周哪套内部系统最要紧、以及如何做出好的架构决定。一段托管关系应当让你的工程师更有效、也更没那么不可替代——顺序就是这个顺序。
这样一次迁移要多久?
对于这种形态的环境——两台服务器、一套业务系统、一个文件共享和一个数据库——规划得当的迁移通常以周而不是以月计;博迅执行的同类 Microsoft 365 与云迁移项目,从需求分析到上线通常是两到六周。但真正要紧的时间线不是切换本身,而是切换之后把运维模式谈定要花多久:补丁归属、恢复测试节奏、成本复核、升级路径。在切换前就把这些定下来的公司,这个项目只做一次。把它们往后推的公司,往往会在几个月之后发现:他们搬走的是风险,而不是减少了风险。
分享:
📬 亚太IT月报
中国合规动态、网络安全预警及亚太IT实践指南,每月一期。
不发垃圾邮件,随时可取消订阅。