作者简介
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工作台中。
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平台功能的扩展,结合灰度框架及加密安全校验,有效控制程序准确、安全的使用,这种快捷灵活的模式实现了设备检测、数据转移、系统重装等独立工具完成界面适配即可快速上线。
例如:
五、iDesk与服务号的联动
iDesk作为效率工具的一个重要目的就是缩短用户中断时间,新平台运营之初除了宣传和引导,还要培养用户使用习惯,为此我们上线了服务号联动功能:
六、iDesk运营体系
iDesk提供用户透明的交互体验,后台运行着大量逻辑,运营模式也要实现松耦合和灵活性,充分考虑故障发生时将影响面控制在最小范围;运维工程师也从0到1不断摸索参与到运营体系的建设中,目前的运营平台已经实现了多个重要功能:
同时,结合ArtNova数据看板,实时了解iDesk运营情况,我们建立了自助率,各版本覆盖率,服务健康度,首页打开稳定性,软件安装,各类模块使用状态,错误日志等指标。
自助率看板(分析现有功能无法满足用户需求的场景,通过功能迭代提高产品解决问题的能力)
覆盖率看板(按照每日在线设备统计iDesk服务覆盖情况,对未覆盖设备精准定位)
除了标准化的指标外,运营过程中通过错误日志还会发现其他影响服务的因素,比如在今年上半年,我们针对第三方软件影响iDesk服务运行做了专项监控和治理。
七、iDesk运营成果
上线后用户自助和满意度持续提升,较之前大幅降低了软件安装,数据迁移,权限开通的人工事件量,平均缩短用户等待时间31分钟/次。
八、后期规划和思考
iDesk热更新架构探索:
当前本地文件(服务、模组程序)的更新主要依赖以下两个途径:
弊端比较明显,打开iDesk时更新过程有一定的等待耗时(更新包下载、安装更新文件),用户需要等待停留,影响体验;桌管工具推送升级受任务下发队列影响,略有滞后性。借助于本次2.0改造,可以结合守护服务实现本地定时任务,自主进行本地文件的检测,利用碎片时间进行更新包的下载、更新操作,实现用户iDesk的打开即最新版,即开即得,提升用户使用体验。