基于Sermant实现小游戏出海场景的微服务治理
基于Sermant实现小游戏出海场景的微服务治理
作者: 肖钊 Sermant社区Committer 李来 华为云高级工程师
摘要:某公司专注于休闲小游戏和APP开发,面对海外市场扩展的挑战,通过选择Sermant框架,实现了零侵入式服务治理,提升了监控、动态日志等核心能力,显著降低了改造和运维成本。
一、 背景
某公司以自主研发为核心,专注于休闲小游戏和应用APP的研发与运营,产品覆盖App Store、Google Play、国内安卓APP商店等多个发行渠道。公司致力于为全球手机用户提供优质易用的移动游戏产品,并为广告业主提供精确的互联网广告营销方案。
在公司成立初期,容器化、微服务等成熟技术方案尚未普及,而初创企业往往缺乏足够的资源去构建复杂的基础设施。小游戏服务端的业务逻辑相对简单,因此在架构设计上多采用单体模式或烟囱式架构,部署流程也较为直接。然而,随着国内游戏版号政策的收紧,众多小游戏厂商开始转向海外市场,以寻求新的业务增长点。这一战略转变带来了诸多挑战:不同国家和地区的玩家需求差异显著,业务复杂性急剧上升;同时,合规性要求、网络环境多样性、业务逻辑的复杂性以及部署难度等问题也成倍增加。正是在这一背景下,小游戏厂商面临着微服务架构改造的迫切需求,以应对全球化运营中的种种挑战。
二、 服务现状
截至目前,该公司的中台服务体系已涵盖了80多个核心服务,在业务高峰期,服务实例数量超过900个,单个服务的峰值QPS达到5K以上。同时,海外流量占比超过50%,业务覆盖范围遍及全球170多个国家和地区。
在这样的业务规模和技术背景下,该公司面临着复杂多样的基础设施环境:自建机房、IDC机房、多家主流云服务商的公有云资源,以及国内外多区域部署的网络架构。这种混合云和多区域部署的复杂性,对微服务架构提出了更高的要求。不仅需要确保服务的高可用性和稳定性,还要兼顾跨区域、跨平台的网络优化和资源调度效率。因此,对微服务架构设计必须充分考量这些复杂的网络环境和业务需求,以实现全球化部署和高效运维的目标。
三、 微服务架构选型
在微服务架构演进的落地实践中,该公司探索了多种架构升级的解决方案,包括 Nacos SDK 接入、Consul Agent 方案、Service Mesh 网格化架构,以及阿里开源的 Koupleless 模块化方案。这些方案各具特色,在不同应用场景下有一定优势,同时也存在明显的局限性。
3.1 SDK方案(如Nacos)
优势:成熟度高,与Spring Boot等框架无缝集成,适合快速搭建基础能力。
痛点:存量系统改造需业务方全量升级代码、测试验证,该企业80+服务为例,历史系统(如老旧订单模块)改造需跨团队协调,周期长达数月,且后续能力迭代仍需业务侧同步适配,协调成本极高。
3.2 Agent方案(如Consul)
优势:无代码侵入,通过独立进程提供服务发现等基础功能。
痛点:无法深度集成业务逻辑(如基于业务参数的流量控制),且Agent进程需独立维护,升级时易引发兼容性问题(如与JDK版本的冲突)。
3.3 Service Mesh方案
优势:治理能力与业务解耦,支持精细化流量管理。
挑战:强依赖容器化技术,传统非容器化系统(如物理机部署的支付服务)改
造成本陡增,且Sidecar代理增加链路延迟,对高并发场景性能影响显著。
3.4 模块化方案(如Koupleless)
优势:轻量化模块拆分,降低新业务接入成本。
风险:技术生态尚未完善(如监控工具缺失),复杂业务场景下模块依赖管理易失控,生产环境稳定性验证案例不足。
四、 为什么选择Sermant
Sermant是一款创新的Proxyless Service Mesh框架,其设计理念和技术实现极具巧思。它基于Java Agent技术构建,与业务服务运行在同一个进程中,因此性能损耗极低,同时能够实现对业务服务的高度控制,完全满足各种个性化需求。首先,由于采用Java Agent的实现方式,Sermant对业务代码做到了零侵入,业务方无需修改任何代码即可接入。其次,框架的升级与业务服务完全解耦,维护和管理更加便捷,大幅降低了运维成本。
与业界常见的Java Agent框架相比,Sermant的独特之处在于其完整的功能覆盖。虽然许多Java Agent框架主要用于调用链追踪、监控等可视化场景,但Sermant将其扩展到了全面的服务治理领域,包括流量管理、服务发现、监控、多活容灾等核心功能。
五、 基于Sermant实现的功能
基于Sermant框架层,该公司自主研发了一系列功能强大的插件,全面提升了服务治理的能力。这些插件覆盖了监控、服务注册与发现、配置中心、动态日志管理、日志染色等核心领域,构建了一个完整且高效的服务治理体系。

5.1 监控场景
通过集成Sermant和Prometheus,先实现了实时采集服务运行的关键指标,提供多维度的可视化分析,包括JVM监控、接口监控、服务调用外部监控、SQL执行监控等。例如SQL执行监控可以实时监控SQL语句的执行性能,包括执行时间、扫描行数、锁等待等关键指标,识别慢查询与潜在优化点,提升数据库操作效率,降低系统负载。
基于Sermant技术,实现了线上服务的无缝监控接入,无需进行任何代码改造或业务逻辑调整。该解决方案已成功应用于1000+线上服务节点,有效降低了服务治理过程中对业务系统稳定性的影响,显著提升了系统的可观测性和运维效率。通过非侵入式的服务治理方式,确保了业务系统的连续性和稳定性,为大规模微服务架构的监控管理提供了可靠的技术支撑。

5.2 动态日志与日志染色
基于Sermant,该公司开发了动态日志与日志染色核心能力,来解决企业实现高效运维的问题。其中动态日志支持运行时动态调整日志级别,无需重启服务即可在高负载场景减少日志输出以降低性能损耗,或在排查问题时快速开启详细日志,平衡系统性能与诊断效率;日志染色通过为请求链路注入唯一标识,实现跨服务全链路日志精准追踪,复杂业务场景下问题定位效率显著提升。两项能力均通过Java Agent技术实现,业务零代码侵入,分钟级完成接入,避免传统方案改造风险,同时支持策略实时生效,降低运维成本。
5.3 注册中心
服务注册与发现插件实现了服务实例的自动化管理和高效路由;企业的集中式网关架构可以借助 SpringBoot 注册插件实现去网关并接入 Nacos 等注册中心,逐步向云原生无代理服务网格架构演进,并具有如下优势:
• 代码无侵入,降低企业接入成本。
• 服务治理功能升级只需更新 Sermant,业务应用不用重新出包,降低升级成本。
• 微服务可以灰度接入,保证架构升级的平滑演进,如下图所示。

5.4 配置中心
基于Sermant实现了优先级加载、灰度发布和动态配置的能力。通过灵活的优先级管理,能够在复杂环境中精准控制配置的加载顺序,避免配置冲突,提升系统的可维护性;在可控范围内验证配置变更的效果,确保业务平滑过渡,最大限度减少对线上环境的影响。通过动态配置能力,能够快速适应业务需求变化,同时确保系统稳定性,为业务的持续迭代与优化提供坚实的技术保障。
·

六、 落地实施
· 全面落地应用:已实现全量接入,覆盖 80+ 服务 和 900+ 实例,形成了稳定的应用生态。
· 成本显著优化:有效节省 20% 的运维成本 和业务沟通成本,提升了整体协同效率。
· 插件化能力输出:公司公共组件通过 插件化 形式提供,减少了业务侧频繁进行 SDK 升级的工作量,大幅降低了升级推动的难度与成本。

七、 展望
基于Sermant框架,自主研发插件,期望解决多数据中心和跨区域服务发现的复杂问题,实现高效的跨区域网络访问。具体而言,插件通过智能路由和负载均衡机制,能够自动识别并选择最优的数据中心或区域节点,确保服务调用的高效性与稳定性。
同时,为了进一步提升系统性能,期望通过拦截请求的方式,将同步调用转化为异步化处理,并结合虚拟线程技术,降低跨区域访问的延迟,提升系统的并发处理能力。

Sermant的实践充分展现了字节码增强技术在微服务治理领域的巨大潜力。通过零侵入、高性能的技术特性,该公司成功解决了传统微服务架构中的诸多痛点,为业务提供了更加灵活、高效的治理能力。Sermant开源社区和行业伙伴持续深入合作,分享实践经验,共同探索字节码增强技术的创新应用,致力于微服务治理领域的持续发展与突破。
Sermant作为专注于服务治理领域的字节码增强框架,致力于提供高性能、可扩展、易接入、功能丰富的服务治理体验,并会在每个版本中做好性能、功能、体验的看护,广泛欢迎大家的加入。
• Sermant官网:https://sermant.io
• GitHub仓库地址:https://github.com/sermant-io/Sermant
• 扫码加入Sermant社区交流群

- 点赞
- 收藏
- 关注作者
评论(0)