赞
踩
作者简介
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的起步阶段,满足主要需求场景 | 关注并持续优化用户体验,同时扩展新功能 | 发挥技术创新,以技术驱动产品体验,攻坚克难解决疑难问题 |
用户端核心功能 |
|
|
|
后端架构 |
|
|
|
安全性 |
|
|
|
稳定性 |
|
|
|
改进点 |
|
|
|
三、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的打开即最新版,即开即得,提升用户使用体验。
【推荐阅读】
“携程技术”公众号
分享,交流,成长
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。