ZEGO 自研客户端配置管理系统 —— 云控
常规客户端配置的弊端
客户端配置信息通常会通过一个静态文件进行管理,或存放在本地或者通过远程获取。存在本地最大的问题是不易更新,所以通常做法是通过远程获取。
我们通过两种常见的场景来看看静态文件管理的客户端配置存在的问题:
1. 一些配置参数的值是要依赖客户本地环境参数(机型、系统版本、客户端版本、网络环境、硬件设备),客户本地环境参数发生了变化,那么配置参数要有相应的值来匹配,否则有可能会导致客户端的用户体验变差甚至功能不可用。举个例子,是否开启硬件编码加速,在 macOS+ 系统版本的条件下要关闭,而在 iOS 下要打开。
2. 客户端新开发的功能希望能根据用户或者用户所在地区、操作系统、机型等维度进行灰度上线。
通过上面列举的两种场景可以看到,静态文件要支持根据用户的环境来匹配合适的配置信息,有一个办法就是枚举所有可能的情况,客户端根据用户本地环境匹配其中一种情况,但是带来的问题也是显而易见的:
1. 客户端配置文件过大,客户拉取配置文件的时间会变长,影响客户体验;服务器的流量和带宽存在不必要的浪费;
2. 配置文件内容结构复杂,不易于管理,难以维护;
3. 客户端解析配置文件的逻辑复杂且不灵活。
随着客户端的功能增加和优化,配置参数也会越来越多,会进一步加剧以上问题。
ZEGO 自研客户端配置管理系统——云控系统
考虑到静态文件的客户端配置在开发和日常运营管理中可能产生的种种问题,为了达到最好的用户体验,同时保证开发、运营管理效率,ZEGO 自研了客户端配置管理系统,内部也称之为“云控系统”。
以下是云控系统的简易版架构图:
解决客户端配置信息动态化需求
云控系统通过以下几方面解决了客户端配置信息动态化需求:
1. ZEGO Settings SDK(云控 SDK)统一了配置信息拉取和解析能力:
各产品只需要集成了 ZEGO Settings SDK 就拥有了统一的配置信息拉取、解析、配置变更通知能力,上层产品根据通知自行决定是否立即生效。
2. 动态获取配置信息:
客户端通过 ZEGO Settings SDK 将用户环境信息发送给配置服务(云控服务),配置服务根据用户环境信息计算返回定制化的、无冗余的客户端配置信息。
客户端信息也可以根据用户或者用户所在地区、操作系统、机型等维度进行灰度上线。
3. 可靠的全球接入的通讯链路:
客户端通过 ZEGO 自研的智能路由 MSDN 系统,依托主流云商的全球节点,全球 200+ 机房部署无死角覆盖,保障了配置服务(云控服务)全球可靠稳定的访问通讯链路.
4. 分布式:
云服务的配置信息存储节点 220+,任一节点有异常,其他节点都能迅速补上,保证了配置信息存储服务的高可用。
通过以上几个方面解决了配置文件动态化的需求,保证了最好的用户体验同时,提高了开发、日常配置管理效率,同时为实时解决单个用户环境问题提供了可能性。
ZEGO
以上是关于 ZEGO 即构科技如何支持动态化的下发客户端配置系统的内容分享。通过云控系统解决了用户级别的客户端个性化配置,为保证最佳的客户端用户体验提供了保障。
此外,ZEGO 自研客户端配置管理系统支持多产品多模块的客户端配置信息管理,提高了各产品模块客户端配置信息的管理能力,为快速解决客户的线上问题提供了可能性。