天津市神州商龙科技公司成立于 1998 年,是一家专为餐饮行业提供数字化整体解决方案及咨询业务的高新技术企业。秉承着“产品是第一生产力”的发展理念,神州商龙凭借过硬的产品与服务质量,为呷哺呷哺、大董、新荣记、刘一手、巴庄、小龙坎、五谷渔粉、陶陶居等 10 万余家知名餐饮企业的用餐体验保驾护航。
在千万百姓线下用餐体验背后,是容不得一分一秒的服务中断。因此,业务稳定性成为重中之重。一路走来,从 IT 自建到迁移到阿里云。神州商龙团队在探索云原生化的同时,也在积极探索如何借助可观测提升业务稳定性。
业务技术架构多样性,如何打通数据孤岛构建统一监控技术栈
神州商龙作为餐饮 SaaS 领域的龙头企业,借助阿里云的算力和 PaaS 服务支撑了几十套在线 SaaS 业务应用。每套业务应用由于需求不同、不同时期研发、业务属性不同等特点,技术架构差异较大。有些业务使用 PaaS 云服务较多,有些应用使用自建中间件多,整体上运维管理痛点突出。与此同时,随着新项目全部上云,部分存量项目还在自建基础设施中。如何让处在不同基础设施上的业务可以使用相对一致的监控技术栈,是团队一直追求和研发的方向。
海量业务背后的高可用要求,性能监控与异常检测困难
神州商龙服务 10 万余家餐饮厂商,一旦业务出现问题影响范围巨大。良好的可观测性建设可以更快地发现风险、定位故障、解决问题。与此同时,为了实现更加敏捷的应用开发,神州商龙尝试微服务架构,但随着微服务数量不断增加,单个服务性能监控和故障诊断变得越来越复杂。传统的监控工具在实时性和准确性上都不太能够满足需求,特别是在大规模分布式系统中。当系统出现性能瓶颈时,很难快速定位问题所在的微服务或具体的方法。
如何提升资源利用率,更清晰地进行成本核算
随着企业不断发展,如何更高效地控制 IT 成本、持续优化资源利用率成为技术团队不断挑战的目标。传统工具在多租户、大规模环境下,资源监控粒度和准确性都存在不足,导致资源利用率不高,运营成本增加。需要实时监控并分析资源的使用情况,以确保资源的高效利用。然而不同的项目对于运营团队来说需要独立核算成本,控制资源使用。良好的可观测数据为控制成本带来了数据抓手,需要在可观测数据中能够清晰、简单地隔离不同的项目或业务。
完善的可观测数据池
选用阿里云全栈可观测产品,可以让技术团队专注于挖掘数据价值而不用再考虑工具建设,同时需要一种能覆盖客户端到服务端、中间件到应用、指标到日志的统一数据架构。
统一的可观测数据平台(集中管理、全局视图、关联分析)
Prometheus 和日志服务 SLS 为神州商龙提供了一个集中化的可观测数据平台,可以覆盖需要的所有数据类型。这大大减轻了管理多个独立系统的负担。通过统一的平台,可以获得从应用性能到系统资源使用情况的全局视图,有助于进行全面的分析和优化。通过统一的数据视图,可以轻松关联不同服务之间的监控数据和日志,有助于快速定位和解决复杂问题。
高性能和高扩展性的监控能力(实时性、大规模、自动化)
日志服务 SLS 和 Prometheus 提供了高效的实时数据采集和存储能力,能够及时捕捉和处理性能数据,以及快速发出报警。同时,Prometheus 和 SLS 都具备高扩展性,能够轻松应对不断增长的微服务数量和日志数据量。
灵活的查询和分析能力
Prometheus 提供的 PromQL 查询语言,和 SLS 的 SPL 查询能够实现灵活地定义和检索监控指标,进行深入分析。SLS 支持复杂的查询功能,可以对日志数据进行深度分析和过滤,帮助定位问题根源。整体查询性能很好,这使得问题排查更加高效,减少故障解决时间。另外平台也基于不同场景提供的开箱即用的分析视图,包括应用分析、链路追踪分析、各种云服务性能分析、自建中间件和基础设施分析等。只需要根据业务自身需要定义一些聚合分析大盘和偏向于业务的分析大盘即可。
数据打标能力
对于从客户端到应用到后台中间件的监控指标数据、链路追踪数据,都需要将所属监控对象、业务标签、项目标签等基础数据与监控指标关联。从而实现从不同维度的数据分析和数据利用,这是实现不同项目、不同业务精细化观测和成本控制的关键。在使用阿里云提供的监控数据时发现其已经具备了较为完善的标签。例如每一个项目使用的基础设施和中间件服务都会在云资源上打上项目标签,当分析应用或服务的监控数据时,需要能够基于项目的维度进行分析,这就要求基础监控指标、应用指标和中间件服务指标都可以具备项目标签。
数据采集 Serverless 化
对于项目组和运维团队来说,由于云上的技术架构多样性,数据采集难度很高。希望能够平台实现端到端的数据采集,对于企业来说不需要关注数据采集端的稳定性和性能等。正好阿里云的全栈可观测方案将应用、服务、计算资源的数据采集探针尽可能 Serverless 化或自动化。基本上不需要关注数据采集,只需要根据标准的标签去标注需要采集的目标即可。
优化成本
可观测数据越多、成本越大,甚至在有些情况下数据发散,导致远远超出算力成本。因此主要从几个方面来控制成本:
只选择重要数据。对于指标池中的数据进行优先级打标。默认情况下只获取重要的数据,其他数据按需获取。这就依赖于阿里云提供的数据说明和数据按需取用能力;应用自埋点指标按照最佳实践指南,杜绝出现发散指标;应用日志区分业务日志和 Debug 日志,只针对有价值的结构化日志建立索引;充分进行采样,对于不同业务、不同应用的 APM 应用差异化采样规则。
引入日志服务 SLS 和 Prometheus
由于业务经历过 Prometheus 和 Elasticsearch 自建过程,存量应用大多都已经遵循了 Prometheus 规范进行了业务埋点,团队对于 Prometheus 的使用经验积累也较为充足。因此所有业务线切换到阿里云 Prometheus 几乎没有架构改造和升级。主要做的就是制定了一套多项目、多应用关联的标签规范,在云上将所有资源进行打标以丰富可观测数据的维度。在日志数据这一块主要要求业务线合理区分日志类型,切分出业务日志做主要治理和应用。
实现数据的打通和关联分析
建立了统一的数据收集和处理系统,针对部分线下业务和自建业务,实现指标、日志数据统一到阿里云。所有监控指标和日志数据都中央化存储和管理,通过统一界面进行查看和关联分析。可以实现轻松地跨服务、跨系统进行排查和分析,提高故障排查效率。
优化资源监控和管理
结合阿里云可观测产品,建立了细粒度的资源监控框架。通过 Prometheus 监控每个容器、每台服务器资源使用情况,包括 CPU、内存、网络和存储等。SLS 则用于分析日志资源,确保日志数据完整性和一致性。利用阿里云自动化调度和扩展策略对资源进行动态调整。例如,在负载高峰期,系统可以自动扩展更多的计算资源,而当负载降低时,系统会自动缩减资源,确保资源利用率最大化,降低运营成本。
自动化告警和响应机制
通过日志服务 SLS 和 Prometheus 的智能报警能力,针对各类异常情况(如 CPU 使用率过高、内存泄漏、请求延迟增加等)进行实时报警。例如网络拥堵或资源不足时,可以自动进行扩容、重新部署或触发其他响应措施,确保系统持续稳定运行。
通过 Prometheus 和 SLS 的统一监控和日志平台,不同团队可以共享和分析同一套数据。这使得开发、运维和技术支持团队能够协同工作,快速解决问题,并实现跨团队协作的数据共享和工作流整合。当某个异常报警触发时,可以自动生成问题工单并分派给相关团队进行处理,确保问题得到及时有效解决。这些改造和升级不仅解决数据孤岛问题,同时也大幅提升性能监控能力,优化资源利用并改善跨团队协作效率。通过这些改造,建立了一个高效、可扩展、智能的可观测体系,为业务稳定运行提供强有力支持。
针对神州商龙痛点,在使用可观测产品方案后,对业务产生以下价值:
监控效率的提升
通过统一监控平台,运维人员不再需要在不同的监控系统之间频繁切换,显著提升整体监控的效率和准确性。
有效缩短故障排查时间
借助实时性能监控和日志分析,运维人员能够快速定位问题根源,将故障排查时间缩短。这不仅提高系统可用性,也大大减少因故障导致的业务中断时间。
大幅提升系统稳定性
通过自动报警和实时响应机制,系统整体稳定性与服务可用性得到显著提升。
有效优化资源利用率
通过精细资源监控和管理策略,资源利用率的提高不仅减少不必要的资源浪费,也显著降低运营开支。
在未来,神州商龙对可观测性还有以下期待和规划:
引入机器学习和 AI 技术,全面增强智能化能力
希望在现有监控系统中集成更多的机器学习和人工智能技术。通过分析历史数据和实时监控数据,预测潜在的性能问题和异常行为,做到提前预警和预防。例如通过训练模型识别异常模式,可以在问题发生前采取措施,减少故障发生率和影响范围。
提升自动化运维水平
希望进一步深化自动化运维的实践,通过自动化工具和编排系统,实现从监控、报警到响应、恢复的全流程自动化管理。当系统检测到异常时,自动触发恢复脚本和扩容策略,尽量减少人工干预,提高系统的自愈能力。
更深入的可观测性集成
希望将更多业务系统和第三方服务的监控数据整合到统一平台中,实现更全面的可观测性。通过打通不同来源数据,实现更精准的关联分析和全局监控。
更低的平台使用门槛
随着企业业务规模持续扩大,项目越来越多。不同项目从立项到上线,可观测能力希望可以智能识别,一键接入。无需运维管理人员反复梳理技术架构也可观测需求,平台能够按照项目技术架构直接提供最佳实践。