(图片来源网络,侵删)
术语本地服务:以系统权限(Local System)运行的本地服务程序,用于同iDesk页面进行本地程序交互、授权等操作;小应用:针对iDesk中的各类模块进行按需定制的独立功能程序,主要用于辅助iDesk页面与客户端系统操作及数据交互的功能,以降低iDesk对本地服务的重度依赖,提升iDesk功能的可扩展性;本地模组:将本地服务中的一些核心功能剥离并汇总到独立的功能模组程序中(如软件操作类、信息交互类等),以解耦本地服务依赖,同时便于功能的更新迭代一、iDesk服务平台产生的背景现代IT服务注重效率与用户体验,而提升IT服务效率一方面依赖于工程师技术能力的提升,另一个核心要素是如何缩短用户中断时间传统IT服务依赖人工服务,用户付出了大量等待时间,甚至出现问题解决1分钟,排队1小时的尴尬场景,高质量的用户自助服务可以获得效率与用户体验的双赢,我们以此为突破口,分析了历史事件后发现诸如软件安装等需求类事件量大,操作工艺相对标准化,具备实现自动化的前提我们与同行等进行交流,借鉴大厂用户自助平台的成熟方案不断提升平台稳定性,结合报修事件集挖掘用户新痛点,从最初仅提供软件安装、垃圾清理等基础服务,衍生到提供在家办公检测、安全加固、换机数据迁移、自助重装系统等十多项应用,经过2年的更新迭代,一个以用户为中心的iDesk服务平台逐渐成型二、iDesk服务平台的发展阶段iDesk平台核心是稳定性和功能性,主要经历了3个发展阶段:三、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的打开即最新版,即开即得,提升用户使用体验【作者简介】Xiaoxing,携程IT资深软件工程师,深耕前后端全栈技术,专注WinForm应用,自动化、效率提升类工具开发Hui,携程IT桌面支持经理,致力于用户服务相关平台、工具的功能优化和体验升级
0 评论