查看原文
其他

干货 | 携程IT数字办公平台iDesk的运营实践

Xiaoxing&Hui 携程技术 2023-03-23

作者简介

Xiaoxing,携程IT资深软件工程师,深耕前后端全栈技术,专注WinForm应用,自动化、效率提升类工具开发。Hui,携程IT桌面支持经理,致力于用户服务相关平台、工具的功能优化和体验升级。

术语

本地服务:以系统权限(Local System)运行的本地服务程序,用于同iDesk页面进行本地程序交互、授权等操作;

小应用:针对iDesk中的各类模块进行按需定制的独立功能程序,主要用于辅助iDesk页面与客户端系统操作及数据交互的功能,以降低iDesk对本地服务的重度依赖,提升iDesk功能的可扩展性;

本地模组:将本地服务中的一些核心功能剥离并汇总到独立的功能模组程序中(如软件操作类、信息交互类等),以解耦本地服务依赖,同时便于功能的更新迭代。

一、iDesk服务平台产生的背景

现代IT服务注重效率与用户体验,而提升IT服务效率一方面依赖于工程师技术能力的提升,另一个核心要素是如何缩短用户中断时间。传统IT服务依赖人工服务,用户付出了大量等待时间,甚至出现问题解决1分钟,排队1小时的尴尬场景,高质量的用户自助服务可以获得效率与用户体验的双赢,我们以此为突破口,分析了历史事件后发现诸如软件安装等需求类事件量大,操作工艺相对标准化,具备实现自动化的前提。

我们与同行等进行交流,借鉴大厂用户自助平台的成熟方案不断提升平台稳定性,结合报修事件集挖掘用户新痛点,从最初仅提供软件安装、垃圾清理等基础服务,衍生到提供在家办公检测、安全加固、换机数据迁移、自助重装系统等十多项应用,经过2年的更新迭代,一个以用户为中心的iDesk服务平台逐渐成型。

二、iDesk服务平台的发展阶段

iDesk平台核心是稳定性和功能性,主要经历了3个发展阶段:


iDesk 1.0 ~ 1.6

iDesk 1.7 ~ 1.8

iDesk 2.0 至今

概述

从0到1的起步阶段,满足主要需求场景

关注并持续优化用户体验,同时扩展新功能

发挥技术创新,以技术驱动产品体验,攻坚克难解决疑难问题

用户端核心功能

  • 支持公网环境,接入cloud提升海外用户体验

  • 支持81款常用软件静默安装

  • MSI程序支持卸载

  • 工具箱提供电脑优化,chrome故障自助,账号密码,在家办公查询等功能

  • 权限开通支持管理员权限自助开通,Host文件修改,远程访问权限申请

  • 可识别已安装软件

  • 支持无法静默的软件安装,覆盖超150个软件,并根据用户岗位新增“为你推荐”栏

  • 支持80%的软件卸载

  • 新增数据转移,一键重装功能

  • 工具箱新增PC安全加固

  • 新增PC性能检测功能

  • 支持mac用户安装软件

  • 商业软件流程重构,新增非长期授权模式,帮助用户合理降低成本

  • iDesk-mac重构,流程与体验与win端基本同步

  • 优化了错误提示功能,C盘满,UAC打开,通讯中断等实现提示

  • 优化信息同步机制,新用户,新电脑实现实时同步,设备领用后即可通过验证开始使用

后端架构

  • TP内嵌轻量化部署

  • 通过本地服务调用system权限实现提权操作

  • 自动判断用户网络环境,选择最优下载路径

  • 打通其他系统接口完善数据共享

  • 授权模式重构,解决不支持静默安装包的问题

  • 优化socket通信,提升加载速度

  • 模块显示支持黑白名单

  • 各地文件服务器同步自动化

  • 对接IT Service和Helpdesk服务号,特定问题实现引导,跳转至iDesk

  • 核心服务解藕,仅进行授权服务,其他功能以独立模块方式运行

  • 日常单个模块功能可独立更新,不影响iDesk运行,实现用户透明

  • 新增守护进程,建立心跳机制,iDesk异常早发现

安全性

  • 文件传输过程中进行加密

  • 软件下载后校验hash,保障安装文件完整性和安全性

  • 本地服务接到用户请求是临时新建管理员账户,且使用随机强密码,杜绝账号泄露被横向的可能性

  • 临时账户用完即删,提升客户端安全性

  • 识别已有管理员权限的用户,跳过授权步骤不生成临时管理员账户,进一步降低安全隐患

稳定性

  • OS兼容性测试

  • 集团安全软件加白处理,避免程序被误杀

  • iDesk文件通过证书授权,实现主流安全软件不拦截,不误杀

改进点

  • 不支持非静默安装包

  • 不支持macOS

  • 安全软件有误杀

  • 已安装软件无提示,用户重复安装

  • iDesk加载耗时长

  • 核心服务较重,升级频率高

  • 会被第三方安全软件拦截

  • Mac软件安装依赖第三方agent,修复复杂度高

  • iDesk运行时才进行自检,报告异常,影响用户使用

  • 建立有效的iDesk修复机制

  • 随着内容的增多,运营费力度较高,人工操作项多,易发生配置错误


三、iDesk服务平台的架构

3.1 架构简述


iDesk的整体架构以客户端程序的形式作为主要的用户交互及操作端。为了适应公司应用的统一化、集成化,采用了“页面+服务”的交互方式,将iDesk嵌入到TripPal工作台中。

  • 用户通过TripPal工作台中的iDesk页面进行相应操作,页面根据用户操作,发送指令给本地服务程序;

  • 本地服务接收指令、进行相应操作(如文件下载、软件安装、系统信息查询等)并将操作结果返回用户页面。


3.2 iDesk客户端核心服务的架构迭代

v1版服务架构

v2版服务架构

v1版服务架构

v2版服务架构

所有页面请求均由主服务负责识别、执行

主服务仅负责页面、模组间的交互通信;维护模组版本更新

核心功能代码均集成在主服务中,若有功能需要修正、更新就必须更新整个服务

模组在被主服务唤起后可按需与页面进行独立通信、执行后退出;

模组功能单一化、小型化(小于1MB),便于无感更新,提高稳定性

无健康汇报机制,客户端服务异常后台无法知晓

子服务定时进行客户端健康检测并向后台汇报检测结果


成果:V1架构受iDesk服务偶发故障影响导致服务覆盖率长期在98.5%左右,V2改造后提升至99.9%以上。

3.3 iDesk授权逻辑


iDesk会识别用户权限,按需授权,以满足符合公司安全策略下的操作:

  • 有管理员用户:直接以用户权限进行软件安装操作、应用程序运行等操作;
  • 非管理员用户:在安装过程中生成临时管理员进行安装(或运行)授权,在完成后销毁。

同时,iDesk会根据用户设备所在环境(地点、网络环境),自动分派指定的文件下载服务器地址,支持内网、外网(包括海外)用户的文件下载。

3.4 架构特色

iDesk虽然借鉴了大厂的经验,但并不是简单的套用,俗话说适合的才是最好的,出于对携程客户端场景的深度理解,iDesk选择了BS+Service的模式,相较于传统的BS或CS架构,可以做到与TripPal的高度集成,用户费力度极大减轻,同时功能应用独立,按需下载,本地服务轻量化资源占用小。


针对普通用户权限的PC使用场景,传统的提权操作通过调用SYSTEM权限仅能提供用户静默安装、卸载软件,特别在卸载层面,容易发生错误导致卸载失败,但用户无法直观的看到错误内容,IT介入后仍需手动提权再次实施卸载才能提取错误内容,效率不佳,因此在iDesk2.0改造时,我们进行了新技术的实践,过往不支持静默卸载的app可以实现用户自助卸载:


针对user权限的普通用户,调用SYSTEM权限生成的临时管理员可以在当前用户界面显示操作窗口,用户交互体验更好,有些因磁盘不足,文件错误的故障用户甚至可以自行处理。

四、核心功能

4.1 软件管理

软件管理是iDesk的核心版块,为用户提供自助软件下载、安装、卸载等。


专为开发人员提供的开发者中心版,同时提供工具下载和开发环境自动配置。


4.2 iDesk常用版块

(1)在家办公环境检测:

检测设备及个人在家办公所依赖的各类软件、硬件及权限是否正常。


(2)视频会议环境检测:

检测当前设备的摄像头、麦克风及扬声器使用状态是否正常。


(3)电脑优化:

检测当前设备的日志,缓存,临时文件等,用户自助选择清理。


(4)电脑性能检测:

以用户实际场景进行性能诊断。


4.3 iDesk小应用模式

“小应用”(独立程序)作为iDesk平台功能的扩展,结合灰度框架及加密安全校验,有效控制程序准确、安全的使用,这种快捷灵活的模式实现了设备检测、数据转移、系统重装等独立工具完成界面适配即可快速上线。

例如:

  • 更换设备时可使用【数据迁移助手】进行新、老设备之间的数据转移;

  • 系统异常或使用缓慢时,可通过【一键重装】进行操作系统的自助重装(暂时只支持windows);

  • 长时间未使用设备等导致系统脱域,可通过【自动加域】快速恢复域连接;

  • 针对公司信安评估的岗位和人员,使用【安全加固】自助加固设备安全环境,提升客户端安全等级;

  • 其它应用,例如:网络检测、开发环境配置、浏览器故障修复、电脑优化等。



五、iDesk与服务号的联动

iDesk作为效率工具的一个重要目的就是缩短用户中断时间,新平台运营之初除了宣传和引导,还要培养用户使用习惯,为此我们上线了服务号联动功能:

  • 发挥与TripPal集成的架构优势,实现支持精确链接跳转:软件安装、应用运行等;
  • 联动服务号wiki,通过用户话术自动推送iDesk一键链接,转变用户以前看文档,现在点鼠标自助的使用习惯。


  • 与IM+对接,人工服务窗口也能便捷的为用户发送一键链接。


六、iDesk运营体系

iDesk提供用户透明的交互体验,后台运行着大量逻辑,运营模式也要实现松耦合和灵活性,充分考虑故障发生时将影响面控制在最小范围;运维工程师也从0到1不断摸索参与到运营体系的建设中,目前的运营平台已经实现了多个重要功能:

  • 各功能入口灰度控制,单一功能发生故障可独立关闭,用户照样可以使用其他功能,新功能上线可以针对用户,邮件组,部门灰度开放,实现精确控制;
  • 软件管理模块详细记录了进程名,版本,安装路径,安装、卸载运行参数,关键字,图标,MD5码,是否需要管理员权限等,同时也支持灰度控制;
  • 小应用管理模块,通过MD5码确保小程序运行指定的版本,避免用户执行过期版本,同时杜绝恶意程序植入导致安全隐患;
  • 商业软件模块,集中配置商业软件资源信息,实现商业软件全生命周期管理。


同时,结合ArtNova数据看板,实时了解iDesk运营情况,我们建立了自助率,各版本覆盖率,服务健康度,首页打开稳定性,软件安装,各类模块使用状态,错误日志等指标。

自助率看板(分析现有功能无法满足用户需求的场景,通过功能迭代提高产品解决问题的能力)


覆盖率看板(按照每日在线设备统计iDesk服务覆盖情况,对未覆盖设备精准定位)


除了标准化的指标外,运营过程中通过错误日志还会发现其他影响服务的因素,比如在今年上半年,我们针对第三方软件影响iDesk服务运行做了专项监控和治理。

七、iDesk运营成果


上线后用户自助和满意度持续提升,较之前大幅降低了软件安装,数据迁移,权限开通的人工事件量,平均缩短用户等待时间31分钟/次。

八、后期规划和思考

iDesk热更新架构探索:

当前本地文件(服务、模组程序)的更新主要依赖以下两个途径:

  • 用户打开iDesk时触发检测更新;

  • 使用桌管进行后台推送更新。


弊端比较明显,打开iDesk时更新过程有一定的等待耗时(更新包下载、安装更新文件),用户需要等待停留,影响体验;桌管工具推送升级受任务下发队列影响,略有滞后性。借助于本次2.0改造,可以结合守护服务实现本地定时任务,自主进行本地文件的检测,利用碎片时间进行更新包的下载、更新操作,实现用户iDesk的打开即最新版,即开即得,提升用户使用体验。

【推荐阅读】



 “携程技术”公众号

  分享,交流,成长



您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存