ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

ServiceNow替换国产ITSM平台:从选型到数据迁移的完整实践

ServiceNow替换国产ITSM平台:从选型到数据迁移的完整实践 我们组去年接了一个挺头疼的活儿把一套已经用了快五年的ServiceNow实例整体替换成国产的轻帆云ITSM平台。ServiceNow在IT服务管理领域确实是标杆但定制化程度越高历史包袱就越重加上许可成本和本地化服务的问题很多企业都在做类似的替换评估。这项目做完回头梳理发现整个过程中踩的坑、总结的方法论比平台本身的技术细节更有价值。所以我把这套实践拆解开从头到尾捋一遍希望能给正在做或者准备做ServiceNow替换的团队一些参考。1. 替换ServiceNow的整体思路与设计考量1.1 为什么会动替换ServiceNow的念头先说背景。我们当时用的ServiceNow版本不算老功能也没问题但有几个痛点越来越明显许可成本居高不下。ServiceNow按照用户数、模块数计费随着业务扩张IT服务台覆盖的部门和人员越来越多每年的软件订阅费用是一笔很大的开销。管理层算过一笔账按当时的规模五年下来许可费加实施费足够采购两套国内主流ITSM平台再加三年维保。定制化过度导致升级困难。前几任管理员在ServiceNow上做了大量自定义脚本和流程设计有些甚至是绕过了官方最佳实践硬塞进去的业务逻辑。每次ServiceNow发布新版本我们都要花大量精力做回归测试生怕某个自定义脚本挂掉影响线上流程。本地化服务响应慢。出了问题提工单到国外原厂一来一回沟通成本很高而且很多业务场景的调整建议原厂顾问并不了解国内企业真实的运维习惯和合规要求。轻帆云进入视野的契机也很偶然。当时团队在评估国内主流的几款ITSM产品轻帆云是其中一个候选。我们对它的第一印象是流程引擎配置灵活、界面符合国内用户的操作习惯而且底层采用Java技术栈便于我们二次开发。更重要的是它的数据模型和表单设计器能比较完整地对标ServiceNow的核心表结构这意味着迁移不会是一场伤筋动骨的推倒重来。1.2 替换方案的选型分析与适配边界确认替换平台不是一个简单的安装部署问题核心是搞清楚哪些能力必须保留、哪些可以变化、哪些要趁机优化。我们当时定了三个原则一是业务不中断。替换期间服务台、事件管理、问题管理、变更管理这些核心流程必须持续可用不能出现员工提交不了工单的情况。二是数据不丢失。ServiceNow里沉淀了几万条历史工单、配置项数据、知识库文章这些数据资产必须完整迁出并且映射到新平台的对应模型中。三是流程不降级。替换后的工单流、审批流、SLA计时、通知规则等功能不能缩水否则业务部门会有很大意见。在这三个原则下我们圈定了适配的核心范围事件管理、服务请求、问题管理、变更管理这四个ITIL核心流程必须完整对标。资产配置管理CMDB需要在字段层面做数据映射但允许调整分类维度。知识库可以保留大部分原有分类但附件格式需要做兼容处理。报表和看板可以重新搭建但核心指标的计算逻辑必须一致。系统集成接口与企业微信、监控平台、AD域控的对接全部需要重新适配。范围确认这个环节特别重要。我们第一版规划想把ServiceNow上所有功能都1:1还原到轻帆云后来发现根本不现实也不合理。ServiceNow是国际化的产品很多字段和流程设计在国内业务场景下是冗余的。轻帆云的架构更贴近国内企业的运维习惯强行照搬反而会拖慢项目进度。后来我们调整了思路把重点放在核心流程和关键数据的适配上外围功能能简化的简化、能合并的合并项目就顺畅多了。1.3 为什么选轻帆云而不是其他国产平台国内ITSM产品其实不少走查了一圈各家都有各自的特点。我们最后定轻帆云除了成本和本地化服务响应之外还有几个技术层面的原因流程引擎的灵活性。轻帆云的流程设计器支持可视化的节点编排同时允许在节点上挂Java脚本或者调用第三方接口。这种设计既能满足业务人员自己调整流程又能让开发人员做深度定制比一些纯配置类的平台上限高很多。表单设计器的数据建模能力。ITSM的核心其实不是流程本身而是围绕工单流转的数据模型。ServiceNow之所以灵活是因为底层的字典Dictionary和表结构设计非常开放。轻帆云的表单设计器同样支持自定义字段、字段之间的联动规则、数据校验逻辑这对于迁移CMDB和复杂工单模板来说非常关键。与国产技术栈的兼容性。我们的运维环境里有达梦数据库、麒麟操作系统、信创中间件这些国产组件轻帆云对这些环境的支持是原生级别的。这个在项目后期做全面国产化适配时省了很大力气对接Flowable工作流引擎和达梦数据库的兼容方案直接由平台方提供我们只需要做参数配置和联调。开源的生态和社区。轻帆云核心代码有开源版本社区活跃度不错。这意味着遇到问题我们可以自己排查代码逻辑不用完全依赖厂商支持这种可控性在企业级项目里非常重要。2. 核心功能适配与平台配置实操2.1 功能对标分析与差距评估在动手配置之前我们做了一张很详细的功能对标表。把ServiceNow上的所有模块、字段、流程、角色权限、SLA策略全部梳理出来一条条对应到轻帆云的实现方式上。ServiceNow模块/功能轻帆云对应能力适配方式差距说明事件管理Incident事件工单字段映射流程重建核心字段基本一一对应状态流转需要按轻帆云的状态机模型重建服务请求Service Catalog服务目录服务项表单设计器重建服务项的分类层级需重新设计富文本模板需要调整问题管理Problem问题工单字段映射关联事件支持问题与事件的关联但根因分析字段需要自定义变更管理Change变更工单流程重建审批链配置变更审批流程按企业实际审批链重新搭建CMDB配置管理资产配置管理数据迁移分类映射字段映射工作量大CI类型需要重新整理知识库Knowledge知识中心数据迁移附件转换存量知识直接迁移分类体系保留并补充SLA管理SLA策略重新配置计时规则计时条件、暂停条件、升级规则逐条核对报表与看板报表中心仪表盘重新创建老的报表逻辑重新用SQL/API实现从这张表能看到真正能做到零改动的模块几乎没有但也不需要全部推翻。核心思路是流程规则用新平台的引擎重建数据模型通过字段映射对接历史数据清洗后批量导入。这样既保留业务延续性又充分利用新平台的能力。2.2 流程配置与表单设计的关键步骤轻帆云的流程设计器是可视化的拖拽式操作但企业内部流程通常比Demo复杂得多。我们把ServiceNow里跑的几条核心流程拿来做对标这里用变更管理流程举例说说具体是怎么搭的。变更管理流程在ServiceNow里是Change模块核心节点包括变更申请提交、变更类型判断标准变更/普通变更/紧急变更、影响度与风险等级评估、审批链路由技术经理审批/变更顾问委员会审批、实施任务分派、变更关闭与回顾。在轻帆云中我们这样适配第一步建立一张变更工单的表单。字段从ServiceNow的变更表映射过来变更编号、变更标题、变更类型、变更原因、影响范围、风险评估、实施计划、回退方案、审批记录、实施结果、关闭代码。轻帆云的表单设计器支持分组布局我们把基本信息、风险评估、审批信息分成三个页签方便不同角色快速定位关键信息。第二步搭状态机。状态从“草稿”到“待审批”到“审批中”到“已批准”到“实施中”到“已完成”加上“已拒绝”和“已回退”两个终态。每个状态的流转条件都做了限定比如“待审批”状态下不允许直接编辑工单字段必须退回“草稿”才能改。第三步配置审批链。这里是我们踩坑最多的地方。ServiceNow的审批逻辑全部写在脚本里迁到轻帆云之后我们把审批节点设计成多级并行或串行的审批链。规则是普通变更经技术经理一级审批重大变更再加一级变更经理审批紧急变更走独立的快速审批链只需要变更经理审批即可但需要事后补录完整评估信息。第四步做自动化动作。轻帆云的流程节点上可以挂按钮和动作比如“发起变更”按钮点击后自动检查变更窗口、自动创建变更工单、自动发通知给审批人。这些动作配置的灵活度很高基本不用写代码通过拖拽和配置就能完成。表单设计这块有一个很关键的细节禁用字段的条件配置。ServiceNow里很多字段是根据类别或者状态变化的比如“紧急变更”不需要填“标准变更模板”里的计划字段。轻帆云的表单设计器支持字段的显隐规则和必填规则一定要把这些规则配全否则业务人员在填写工单时会看到一堆无关字段体验非常差。2.3 SLA策略与通知规则适配SLA是ITSM的命脉如果SLA计时不准整个平台的可信度就没了。ServiceNow的SLA引擎很强大我们当时在迁移时花了很多精力。轻帆云的SLA策略配置界面比ServiceNow直观核心逻辑是对工作时间、计时暂停条件、升级规则做重新定义。我们遇到的一个典型问题是SLA的暂停条件不同。ServiceNow里工单状态为“等待用户回复”时SLA暂停计时轻帆云里需要通过“SLA暂停条件”配置相同的规则但字段对应的状态值不一样必须逐一核对。比如ServiceNow的状态值“Awaiting User Info”对应轻帆云的自定义状态“等待用户补充信息”需要在暂停条件里关联到这个状态。SLA升级规则我们也做了完整的迁移。一级升级是SLA剩余时间低于30%且工单状态未关闭时自动通知服务台班长二级升级是SLA超时未关闭自动通知IT经理并在工单上打上“SLA违反”标签。这些规则在轻帆云里都是可视化配置可以精确到分钟级。通知规则方面轻帆云支持多种通知渠道站内信、邮件、企业微信、钉钉。我们把原来ServiceNow的邮件通知模板全部改写成轻帆云的模板格式同时补齐了企业微信的渠道通知这个在ServiceNow上原本是需要额外开发对接的轻帆云原生就支持适配起来顺带把通知体验升级了。3. 数据迁移与系统集成的适配实践3.1 数据迁移策略与字段映射方案数据迁移是替换项目中最脏最累的活。ServiceNow里沉淀了几万条工单、几千条配置项、几百篇知识文章而且要保证迁移后的数据在主外键关系上不丢不串。我们的迁移策略分了三步第一步数据盘点与清洗。从ServiceNow里导出全量数据先做一次完整性检查看有没有空值主键、孤儿外键、重复编码。这一步绝对不能省因为ServiceNow的表结构设计得很灵活业务人员在使用过程中会手动创建一些非标准的记录这些脏数据如果不洗掉迁到新平台会直接影响流程的正常流转或者统计报表的准确性。第二步字段映射与枚举值转换。在轻帆云里新建一张字段映射表把ServiceNow的字段名对应到轻帆云的字段名并且把字段值里的枚举项逐条做翻译。比如ServiceNow里的“Priority”字段值是“1 - Critical”轻帆云里对应的枚举是“P1紧急”这种转换必须写成规则不能靠人工判断。第三步分批导入与校验。我们用轻帆云提供的数据导入模板做分批导入每批次几百条数据导入后立刻校验主键唯一性、外键完整性、必填字段完整性。整个过程做了好几轮特别是CMDB的配置项数据CI之间的依赖关系非常复杂一旦导入顺序不对就会报错或者产生孤立数据。导入工具的选择上我们参考了Flowable适配达梦数据库时总结的经验。之前一个项目里用过Flowable作为工作流引擎在适配达梦数据库时发现直接调用JPA自动建表会有兼容性问题需要手动调整数据库方言配置和数据类型的映射。轻帆云的数据迁移工具设计得相对友好底层自动处理了大部分兼容问题我们只需要关注业务字段的映射关系。3.2 核心数据初始化与历史工单处理历史工单要不要迁移迁移多少这个问题我们在项目初期纠结了很久。后来确定了一个原则在用工单全量迁移已关闭工单只保留最近一年的完整数据更早的工单只迁移汇总数据工单编号、标题、时间戳、关闭代码正文和附件不迁。这样做的好处很明显既保证了现有业务的可追溯性又避免了把几年前的陈旧数据全部搬进新平台导致数据库膨胀、查询变慢。在用工单的正文和审批记录必须完整迁移。ServiceNow里审批记录是独立的表通过外键关联到工单。迁移时要把审批人、审批动作、审批意见、审批时间都对应到轻帆云的审批记录表。有一点需要特别提醒ServiceNow的审批状态里有一个“已委派”的状态在很多企业里用得很少但偶尔会出现轻帆云没有这个状态迁移时统一处理成“已审批”。知识库数据的迁移相对简单但要注意知识文章里的图片和附件。ServiceNow存储附件的方式是把附件二进制写到独立存储中导出时需要同时把附件文件下载下来然后重新挂接到轻帆云的知识文章上。我们写了一个脚本自动匹配附件文件名和文章编号批量处理。3.3 系统集成适配AD域控、企业微信与监控告警对接ITSM不能是个信息孤岛必须跟周边系统打通。原来ServiceNow对接了AD域控做统一认证对接企业微信做消息通知对接Zabbix做告警自动建单。AD域控对接这块轻帆云支持标准的LDAP协议和OAuth2.0我们直接把ServiceNow的LDAP配置平移到轻帆云但需要注意ServiceNow的属性映射字段名跟轻帆云不完全一样比如ServiceNow里的“user_name”对应轻帆云里的“account”需要调整映射规则之后才能正常同步。企业微信对接是我们的新增需求。ServiceNow原生不直接支持企业微信之前是走邮件网关的间接方式体验很差。轻帆云原生集成了企业微信的审批消息卡片和扫码登录这个在替换后很快得到了业务部门的正面反馈。监控告警对接是最需要小心的。原来ServiceNow有一个API来接收监控平台推送的告警事件自动创建事件工单。我们在轻帆云上重新写了一个API接收端点同样的数据结构轻帆云的映射逻辑稍有不同需要把监控平台的字段值翻译成轻帆云的事件字段值。举例来说Zabbix的告警级别“Disaster”要翻译成轻帆云的“紧急”告警级别“High”要翻译成“高”。对接过程中我们遇到过一个问题监控平台的告警频率很高有时候同一个故障会触发多条重复告警ServiceNow里可以做告警去重合并轻帆云默认没有这个功能。后来我们在API接收入口加了一段逻辑按“主机IP监控项”做时间窗口内的去重处理这个功能虽然小但上线后效果非常明显工单量减少了一半左右。4. 实操过程中的常见问题与排查经验4.1 平台适配期的典型问题汇总整个替换过程前后大概花了三个月其中有配置开发的阶段有数据迁移的阶段还有并行试运行的阶段。每个阶段都遇到了一些典型问题我挑几个最有代表性的列出来问题一流程节点的脚本执行异常。轻帆云支持在流程节点上挂脚本我们有几个流程节点需要调用外部系统的API获取数据。适配初期脚本频繁报超时后来排查发现是轻帆云脚本引擎默认的超时时间设置得比较短而外部接口响应慢。调整了超时配置和加了重试机制之后问题解决。问题二历史工单附件批量导出时文件名乱码。ServiceNow导出的附件文件名是数字ID跟系统的文件名不匹配批量导入轻帆云的时候经常出现附件挂错文章的问题。我们写了一个脚本做文件名映射校验在导入前做比对确保每个附件落在正确的工单或知识条目下。问题三审批人加载速度慢。当工单流转到审批节点时系统要动态加载这个工单对应的审批人列表在数据量大的时候加载速度会慢到用户无法接受。排查后发现是审批人计算逻辑里做了多级组织的递归查询深度过大导致性能瓶颈。后来把组织层级提前缓存到一张表中查询时就快了。问题四SLA计时跟实际不符。并行试运行期间用户反馈有些工单的SLA剩余时间明显不对。排查后发现是工作时间日历配置的问题。ServiceNow里我们有一套自定义的节假日日历迁到轻帆云时节假日的日期格式没有正确导入导致系统把休息日也算进了工作时间。重新核对了日历配置后解决。问题五数据迁移时外键约束导致导入中断。CMDB配置项导入的时候CI的父子关系经常因为没有按照顺序导入而触发外键约束报错。解决方法是写了一个拓扑排序算法先把没有依赖关系的CI类型导入再导入有依赖关系的最后处理依赖环上的数据。4.2 针对性与系统化的排查思路上面这些问题其实背后是几类共性的原因第一类是数据层面的问题比如历史数据格式不规范、编码不一致、主外键关系错乱。这类问题没有捷径只能靠前期数据盘点做细迁移前写一堆校验脚本把数据洗干净。第二类是配置层面的问题比如字段映射漏项、枚举值翻译错误、日历规则配置错误。这类问题靠功能对标阶段的细致程度来预防上线前必须做一轮全流程的业务验收测试让真实的业务用户来试用。第三类是性能层面的问题比如脚本超时、数据量过大导致的查询缓慢。这类问题需要在适配阶段就做好性能压测不能等到上线后再去补否则用户会直接失去信心。排查思路上我们形成了一个相对固定的流程先复现问题再定位模块边界然后检查日志和配置最后做针对性修复并进行回归验证。这个流程不复杂但在多方协作的替换项目里非常管用能避免“问题发生、互相甩锅、无从下手”的尴尬局面。4.3 业务适配固化与知识转移平台替换不仅仅是技术问题也是一个管理问题。系统切换容易真正难的是让业务用户和管理员都接受新平台、用好新平台。我们在上线前做了一轮面向服务台操作员和管理员的培训培训材料不照搬产品文档而是把ServiceNow的操作习惯跟轻帆云的操作方式做了对照讲解。比如原来在ServiceNow里怎么创建事件工单轻帆云里对应的入口和字段是什么这种对照式的培训用户接受度很高。同时我们把适配过程中总结的技术要点、配置手册、常见问题解决方案全部整理成内部知识库文档转交给了轻帆云的运维团队。这个动作很重要因为ServiceNow的运维经验是不能直接迁移到轻帆云上的新的运维团队必须从零开始理解新平台的架构和配置方式。还有一个心得上线后的第一个月安排专人做“护航”。处理日常工单的同时重点关注新平台上是否有异常情况用户反馈的问题争取当天解决。这个阶段积累的信任感比任何培训都有效。5. 适配落地的几点经验心得项目做完之后回头看整个替换过程如果让我给正在计划做ServiceNow替换的团队一些建议我会重点强调下面几点。第一替换的动机和预期管理一定要前置。ServiceNow做替换很少是单纯因为技术落后更多是成本、国产化、服务响应等综合因素。这些理由要跟业务部门讲清楚争取支持。否则很容易出现IT部门忙得热火朝天业务部门觉得新平台不如旧平台的现象。第二功能对标表一定要做细。这个表不只是给项目组自己看的也是跟平台厂商沟通需求的依据。我们能比较顺利地说服轻帆云的顾问配合我们调整一些配置很大程度上就是因为这张对标表足够细致每一条差异点都有业务场景和数据支撑。第三数据迁移宁可慢不可乱。几万条历史数据哪怕多花两周清洗校验也好过上线后发现数据对不上再回滚。我们的经验是在正式迁移前至少做三次完整的演练迁移每次演练都记录耗时、报错、修复过程第三次演练跑通了再执行正式迁移。第四一定要预留并行试运行期。ServiceNow和轻帆云并行跑了两周每周核对两边关键数据的一致性。并行期内如果发现异常业务还在老平台上处理不会影响正常服务。两周的运行数据比对验证通过后我们才正式切流量。第五也是最容易被忽视的一点要重视平台运行的可观测性。替换之后工单处理时长、SLA达标率、用户满意度这些运营指标需要持续监控定期跟ServiceNow时期做对比用数据向管理层证明替换的成效。我们在轻帆云上搭了一套运营指标看板上线三个月后服务台的平均响应时间反而比ServiceNow时期缩短了15%这个数据让整个项目获得了很高的评价。ServiceNow的替换本质上不是一道技术题而是一道管理题加工程题。技术方案选得好只解决了三分之一的问题剩下的三分之二靠的是细致的业务调研、扎实的数据治理和周密的上线计划。希望这套实践拆解能帮到正在做类似项目的团队少走一些弯路。
返回列表