知名互联网房屋租赁服务公司物联网关键业务迁移上云实践
导语
国内某知名互联网房屋租赁服务公司基于自身物联网平台产品及服务,已为近 50 万业主、300 万客户提供服务,管理房源超过 100 万间。 通过打造涵盖 To C 和 To B 的品质居住产品、智慧生活服务、智能家装家居、智慧社区组织运营四大板块,逐步实现城市居住生活领域全链条的线上化、数据化、智能化的平台能力。
为了实现智能化服务能力,该公司依托物联网平台在设备侧承载了智能门锁、智能家居(其他设备类型)等智能设备的远程数据接入。在平台建设初期,公司选择了分布式物联网消息中间件 EMQX 开源版来支撑设备侧与应用层之间的 MQTT 消息接入与消息路由。随着业务规模的不断扩大,平台发展开始面临新的挑战。
业务高速发展下的物联网接入瓶颈
到 2021 年中,该公司物联网平台已累计接入 MQTT 设备超过 50 万台,峰值并发连接数超过 10 万,承载了公司 80% 的业务。随着业务的飞速发展,针对 EMQX 接入层的运维工作也面临以下挑战:
- 可靠性要求提高:由于平台设备接入量与支撑对应用越来越多,业务侧对整体平台的可靠性与可运维性提出了更高的要求,所以 EMQX 集群的运维 SLA 也需要达到 99.99% 。
- 跨版本升级:由于之前平台采用相对较老的 EMQX 2.x 版本构建,存在的一些问题需要升级到 EMQX 最新版本才能解决。而目前 EMQX 最新版本已经升到 4.x,对于跨大版本的升级,尤其要求不影响业务运行的情况下,对运维团队来说有较高难度。
- 自动水平扩展:考虑到后续平台承接业务不断增加,运维团队对于后续设备接入量扩容以及业务应用的增加也需要 EMQX 集群具备相对自动化的水平扩展能力,以满足业务不断扩展过程中的快速按需扩容的需求。
- 运维监控提升:EMQX 开源版提供的运维监控 API 有限,而运维团队需要更多的性能监控指标来对可能发生的系统风险提前作出反应。一方面要求 EMQX 产品提供更多监控数据,另一方面也需要运维团队对运维监控的阈值判定和响应能力作出提升。
综合以上因素,公司考虑采用 EMQ 提供的商业产品与服务来快速提升当前平台性能与能力,支撑业务发展。
全托管 MQTT 消息服务支撑业务升级
EMQX 目前提供两种模式的商业版产品:分别是私有部署的 EMQX Enterprise 和全托管的公有云服务 EMQX Cloud。
- EMQX Enterprise 可以提供安装部署与系统迁移以及 7*24 的技术支持服务。但是由于软件部署在客户私有环境中,EMQ 团队一般无法直接进行中间件的日常运维服务。
- EMQX Cloud 则可以提供基于公有云基础架构的全托管 MQTT 消息接入服务,同时由技术服务团队帮助客户进行 7*24 的日常运维管理,免除客户的后顾之忧。
同时,结合公司研发与运维团队针对产品版本升级、运维监控提升等方面的需求,EMQX Cloud 还具有以下优势:
- EMQX Cloud 作为全托管的 MQTT 接入服务,可由客户选择部署在国内外主流云厂商机房中,通过 VPC 对等连接等方式直接打通 EMQX Cloud 集群所在的 VPC 与用户业务应用所在的 VPC,通过内网方式进行数据对接,既节省流量又能保证数据传输稳定性与带宽;
- EMQ 提供 7*24 小时的全天候运维支撑服务,可为用户提供 99.99% 的 SLA。基于原厂对 EMQX 产品的理解与多年商业服务经验,EMQX Cloud 包含了丰富的集群运维监控指标与预警能力,在风险发生之前就可以通知客户及时作出调整。
- EMQX Cloud 基于云原生架构设计,提供自动安装、自动集群生命周期管理以及弹性伸缩能力。配合 EMQX 的热更新热配置能力,可以实现最快速度的集群扩容与版本升级,将升级与扩容对业务的影响降到最低。
基于 EMQX Cloud 所提供的便利性与高可用保证,该公司团队经过审慎的方案对比与考量,最终决定采用 EMQX Cloud 服务逐步代替 EMQX 开源版的架构。
短期内实现系统平滑迁移
为了保证业务平滑地从该公司自运维的 EMQX 开源版集群迁移到 EMQX Cloud 服务中,EMQ 团队全程配合提供了完整的测试与迁移服务。
- 部署方案制定:根据现有业务与短期内的设备接入量与数据吞吐量需求,EMQ 团队为其定制了部署配置与迁移方案,并派出了专有技术团队与其开发运维团队保持持续对接沟通。
- 部署环境功能测试:在正式服务迁移之前,EMQX Cloud 团队根据部署方案部署了相应的测试环境,客户研发与运维团队挑选了少量非生产环境设备对接 EMQX Cloud 服务。测试内容包括公网 IP 与域名设置、SSL 安全证书生成与导入、设备配置更新、设备连接、应用对接、设备数据采集与设备控制测试等。通过了完整的业务测试后,设备与业务应用对接的基本功能验证完成。
- 性能测试:正式迁移之前,根据客户对平台的设备连接数与数据吞吐量需求,EMQ 团队对 EMQX Cloud 部署实例进行了模拟性能测试。通过 EMQ 提供的 XMeter 大并发性能测试平台,在生产环境上模拟用户的设备连接与消息吞吐进行性能测试。通过测试验证了并发连接与吞吐满足客户需求的同时,也对后续集群上限容量、监控阈值、扩容方案作出了定制化方案,为后续平台的稳定运行提供可靠的性能基线数据。
- 灰度迁移:由于该公司生产环境设备数量庞大,为了保证迁移过程平稳可控,整体迁移过程采用了灰度迁移的方式。设备端按不同业务类型设备,分批更新迁移到 EMQX Cloud 服务中;业务应用侧采用灰度发布方式,基于后台微服务架构的灰度发布能力使迁移到 EMQX Cloud 的设备对接新配置的应用服务,而尚未迁移的设备仍然对接原服务。
整个迁移过程按每周 10% 设备量进行迁移。每迁移一部分设备后都会运行一段时间,并随时监控系统运行状况,在确认系统稳定运行一段时间后再进行下一批次的设备迁移。从 2021 年 12 月到 2022 年初,经过多批次的迁移,基本完成了大部分设备与 EMQX Cloud 的对接工作。
项目进展与收益
自 2022 年初设备迁移结束完成对接以来,目前生产环境中的 EMQX Cloud 部署实例总设备连接已有近 20 万,并发在线客户端峰值数量超过 13 万,平均消息吞吐量超过 16K TPS 。平台已经稳定运行超过三个月,期间业务未出现任何问题。
由于 MQTT 设备接入服务由 EMQX Cloud 全托管,预计每年可以节省 2-3 人/年的运维工作,为该公司研发与运维团队节省了大量的运维人工成本,可以将更多精力放在其他服务与新业务拓展中。后续 EMQ 也将持续通过专业高效的产品与服务为客户业务发展保驾护航。