
背景:
腾讯智慧零售部面临着多账号公有云、自研云、内网k8s等复杂环境,多个部署平台(TAF、TKE、TKEX)带来了巨大的管理挑战。在线服务异常无法快速定位,缺乏统一的web管理界面和服务性能诊断工具,这些问题严重影响了业务的正常运行。
解决方案:
为了解决这些问题,腾讯选择了SkyWalking作为微服务的监控工具,并基于此构建了腾讯云微服务观测平台(TSW)。TSW的架构主要包含三个部分:上报端Client、数据接收端Collector和web展示UI。核心原理包括使用Java Agent探针技术进行JVM与行为数据采集,内部使用HTTP和gRPC协议进行通信,使用GraphQL和HTTP进行UI展示,并支持H2和Elasticsearch存储。
实施过程:
1. 服务上报:腾讯有数的后台服务使用Spring Boot技术栈,为了降低开发成本,他们使用SkyWalking的Agent进行数据上报。通过修改启动命令,添加-javaagent参数来指定Agent的绝对路径,如:
bash
$ java -javaagent:/e/apache-skywalking-apm-bin/agent/skywalking-agent.jar -Dspring.profiles.active=dev -jar target/youshu-app.jar
这样,服务在启动时就会自动向TSW上报数据。
2. 数据处理:数据上报到Server端时,首先会由Pulsar Function(消息队列)削峰填谷。对不同开源客户端上报的数据,Adapter适配器会将数据转换为统一的Opentracing兼容格式,以供后续使用。统一数据格式后,链路数据会被直接存储,同时会根据数据的使用场景,分配给实时计算算子与离线计算算子。实时计算算子为用户提供实时监控、统计数据展示,并对接告警平台快速响应。离线计算算子处理长时段大量数据的统计汇聚,利用大数据分析能力提供业务价值。
3. 存储:TSW的存储层设计可满足不同数据类型的使用场景,适配Server层的写入与Data Usage层的查询与读取请求,同时存储层增加了HBase和HDFS的存储方式。
4. 数据使用:TSW提供腾讯云统一的控制台操作、数据展示和告警功能。通过可视化的UI,用户可以查看服务的调用关系拓扑图和调用链路Trace,快速了解服务的运行状态和性能瓶颈。
成果:
通过TSW,腾讯实现了对微服务的全链路性能监测,能够快速定位和解决服务异常。借助腾讯云的能力,由专业团队负责SkyWalking的日常运营,大大降低了运维成本,提高了开发效率。
背景:
企业用云从单一云时代逐渐过渡到混合多云时代,多云环境中各种模块和服务数量剧增,如何实现全链路追踪、故障定位和性能优化成为亟待解决的问题。
解决方案:
基调听云与DaoCloud合作,推出了云原生智能可观测性平台。该平台以DaoCloud Enterprise云操作系统为底座,结合基调听云智能可观测性平台,提供了云原生计算、网络和存储能力。平台具有全量的数据采集、全链路数据事务追踪、代码级根源分析、调用链日志溯源、健康度和智能告警能力,全面覆盖了最终用户体验、应用性能、业务性能、基础架构和云平台等客户IT环境。
实施过程:
1. 数据采集与传输:通过在应用程序中嵌入探针,平台能够采集到详细的性能数据,包括服务响应时间、吞吐量、错误率等。采集到的数据通过高效的传输机制发送到平台进行分析。
2. 全链路追踪:平台利用调用链技术,将业务监控、应用监控、日志监控、Kubernetes平台监控和容器监控等有机地关联在一起,实现端到端的一体化监控。通过可视化的拓扑图,展示服务间的依赖关系和调用链路,帮助运维团队快速定位问题。
3. 智能告警:平台内置智能告警系统,能够根据预定义的规则自动检测异常并触发告警。告警信息可以通过多种渠道(如邮件、短信、即时通讯工具等)发送给相关人员,确保问题能够及时得到处理。
4. 性能优化:通过对采集到的数据进行深度分析,平台能够识别性能瓶颈并提供优化建议。例如,通过分析调用链找出响应时间较长的服务,针对性地进行优化。
成果:
云原生智能可观测性平台帮助企业显著提升了在复杂多云环境下的应用性能和可靠性。通过全链路追踪和智能告警,企业能够快速响应并解决问题,减少故障对业务的影响。平台的性能优化建议帮助企业提高了系统的整体效率,降低了运营成本。
背景:
Netflix是一家领先的流媒体服务提供商,随着用户数量的增加和业务的扩展,其传统的单体架构面临着诸多挑战,如部署速度慢、可扩展性差和维护成本高等。
解决方案:
Netflix决定采用微服务架构来重构其应用系统。通过将大型单体应用分解为多个小型、独立的服务,每个服务负责特定的业务功能,服务间通过轻量级的通信机制(如RESTful API)进行交互。这种架构使得Netflix能够快速迭代和部署新功能,提高系统的可扩展性和容错性。
实施过程:
1. 架构拆分:Netflix将其应用系统按照业务功能垂直拆分,形成多个微服务。每个微服务拥有自己的数据库和业务逻辑,相互之间通过API进行通信。这种拆分方式提高了系统的灵活性和可维护性。
2. 服务治理:为了有效管理大量的微服务,Netflix引入了服务发现和注册机制,使用Eureka作为服务注册中心。服务实例在启动时向Eureka注册自己的信息,其他服务通过Eureka查找并调用所需的服务。Netflix还采用了Ribbon进行客户端负载均衡,确保服务的高可用性。
3. API网关:Netflix使用Zuul作为API网关,负责处理所有外部请求。Zuul实现了请求的路由、过滤和安全校验等功能,对外提供统一的API接口,隐藏内部服务的实现细节,提高了系统的安全性和可管理性。
4. 配置管理:Netflix使用Archaius进行分布式配置管理,实现了配置信息的集中管理和动态更新。通过这种方式,Netflix能够在不重启服务的情况下更新配置,提高了系统的灵活性和运维效率。
成果:
通过微服务架构的转型,Netflix实现了快速部署和迭代新功能,大大提高了系统的可扩展性和容错性。这种架构使Netflix能够更好地应对不断增长的用户需求和业务复杂性,提升了用户体验。
背景:
Amazon作为全球最大的电子商务平台之一,面临着巨大的流量和复杂的业务需求。其传统的单体架构难以满足高并发和快速变化的业务要求,因此需要一种更加灵活和可扩展的架构。
解决方案:
Amazon逐步采用微服务架构来构建其电子商务平台。通过将大型应用分解为多个小型服务,每个服务独立开发、部署和扩展,服务间通过轻量级通信机制进行交互。这种架构使Amazon能够快速响应市场变化,提高系统的可扩展性和容错性。
实施过程:
1. 架构拆分:Amazon按照业务功能将其电子商务平台垂直拆分为多个微服务,如用户管理、商品管理、订单管理等。每个微服务拥有自己的数据库和业务逻辑,相互之间通过API进行通信。这种拆分方式提高了系统的灵活性和可维护性。
2. 服务治理:Amazon使用AWS Cloud Map作为服务注册中心,服务实例在启动时向Cloud Map注册自己的信息,其他服务通过Cloud Map查找并调用所需的服务。Amazon还采用了AWS Elastic Load Balancing进行负载均衡,确保服务的高可用性。
3. API网关:Amazon使用Amazon API Gateway作为API网关,负责处理所有外部请求。API Gateway实现了请求的路由、过滤和安全校验等功能,对外提供统一的API接口,隐藏内部服务的实现细节,提高了系统的安全性和可管理性。
4. 配置管理:Amazon使用AWS Systems Manager Parameter Store进行分布式配置管理,实现了配置信息的集中管理和动态更新。通过这种方式,Amazon能够在不重启服务的情况下更新配置,提高了系统的灵活性和运维效率。
成果:
通过微服务架构的转型,Amazon实现了系统的快速扩展和高可用性,能够轻松应对购物高峰期的高流量。这种架构使Amazon能够快速响应市场变化,提升了用户体验和运营效率。
背景:
Uber作为全球领先的交通服务平台,业务的快速增长和复杂的运营环境使其传统的单体架构面临巨大挑战。为了支持全球范围内的业务扩展和高并发需求,Uber需要一种更加灵活和可扩展的架构。
解决方案:
Uber决定采用微服务架构来重构其应用系统。通过将大型单体应用分解为多个小型、独立的服务,每个服务负责特定的业务功能,服务间通过轻量级的通信机制(如RESTful API)进行交互。这种架构使得Uber能够快速迭代和部署新功能,提高系统的可扩展性和容错性。
实施过程:
1. 架构拆分:Uber将其应用系统按照业务功能垂直拆分,形成多个微服务,如用户管理、行程管理、支付管理等。每个微服务拥有自己的数据库和业务逻辑,相互之间通过API进行通信。这种拆分方式提高了系统的灵活性和可维护性。
2. 服务治理:为了有效管理大量的微服务,Uber引入了服务发现和注册机制,使用Consul作为服务注册中心。服务实例在启动时向Consul注册自己的信息,其他服务通过Consul查找并调用所需的服务。Uber还采用了Fabio进行客户端负载均衡,确保服务的高可用性。
3. API网关:Uber使用Envoy作为API网关,负责处理所有外部请求。Envoy实现了请求的路由、过滤和安全校验等功能,对外提供统一的API接口,隐藏内部服务的实现细节,提高了系统的安全性和可管理性。
4. 配置管理:Uber使用etcd进行分布式配置管理,实现了配置信息的集中管理和动态更新。通过这种方式,Uber能够在不重启服务的情况下更新配置,提高了系统的灵活性和运维效率。
成果:
通过微服务架构的转型,Uber实现了全球范围内的快速扩展和高可用性,能够轻松应对交通高峰期的高流量。这种架构使Uber能够快速响应市场变化,提升了用户体验和运营效率。
云原生APM在微服务架构中的实践案例涵盖了多个行业的领先企业,包括互联网、电子商务、流媒体和交通服务等。这些案例展示了云原生APM如何帮助企业应对复杂的分布式系统管理挑战,提升系统的可观察性、性能和可靠性。通过实施云原生APM,企业能够实现快速故障定位、性能优化和持续改进,从而在激烈的市场竞争中取得优势。
Lei
April 25, 2025
技术探讨