虚拟云桌面是什么呢?用户桌面 PC 机换成了一个云桌面客户端,所有的 CPU、内存、硬盘都在云端。云端跑满虚拟机,用户桌面通过瘦客户端连入虚拟机使用 Windows。其中,虚拟机采用 QEMU 加 KVM 实现,云环境是用进行管理,远程桌面协议是第三方高度定制、修改过的 spice 协议。
第一,运维成本。PC 部署以及系统软件安装耗时较长,云桌面后台 5 分钟一台自动交付可供用户使用的虚拟机;PC 扩大部署投入巨大,云桌面只需要购买少量服务器接入云系统,快速扩大部署。
第二,故障处理效率。PC 有问题,有可能需技术人员到用户现场开箱检查,故障排查耗时较长,严重点的硬件问题如需更换配件,等待周期更长。云桌面故障标准是 5 分钟处理完毕。对于 5 分钟无法解决的问题,只需后台更换虚拟机解决。
第三,运维管理。PC 分散在用户桌面,运维需要用户配合(比如保持开机)。云桌面提供了运维系统,只需设定好时间、安装任务参数,系统会全自动进行安装维护。同时,瘦客户端轻量,无任何用户数据,对用户也带来极大便利。典型的如用户位置迁移,云桌面无需搬移,只需用户到新位置登录即可。
运维是云桌面的一大难题,为此我们专门设计了运维系统,通过两套 SaltStack 系统实现了对瘦客户端与虚拟机的管理;通过 Portal 系统实现对整个系统的管理。具体功能上,运维上,实现了对虚拟机、宿主机的可视化监控、管理,并能对虚拟机实现远程管理;对 IT 管理人员,实现了自动化的软件安装、文件下发、密码修改、数据找回,、发送通知等功能;对资产管理员,实现了 TC 状态监控,TC 异常情况及时发现。还有其它大量工作仍在开发进行中。
监控方面,除了常规的服务器、操作系统层面的监控,我们实现了大量业务层监控。比如通过监控已经连接云桌面的瘦客户端用户输入事件,实现实时活跃用户监控,使得我们能实时监控系统负载、用户数量。通过对比部门排班,第一时间发现用户数异常。同时,对 OpenStack 的各种告警、ERROR 的也添加了监控,确保云平台的稳定。对虚拟机网络、CPU 等也进行了相应监控,确保虚拟机对于用户的高可用性。
通过在瘦客户端实现用户输入输出模拟,我们实现了全自动的测试环境。我们搭建了专门的云桌面测试实验室,数十台盒子进行 7x24 小时自动测试,全力验证系统各项变更,支持业务各种研究探索,保障系统稳定性。同时,通过传统的 CI 框架,我们搭建了代码的单元测试、集成测试环境,已经大量的线上测试用例,不仅有力的保障了软件质量,还能定期对线上系统进行体检,第一时间发现系统异常。