wu-sheng commented on a change in pull request #112: URL: https://github.com/apache/skywalking-website/pull/112#discussion_r471215703
########## File path: docs/zh/blog/2020-08-11-observability-at-scale-skywalking-it-is.md ########## @@ -0,0 +1,104 @@ +## SkyWalking为超大规模而生 +- 作者:吴晟 +- 翻译:董旭 金蝶医疗 +- 原文链接:[Tetrate.io blog](https://www.tetrate.io/blog/observability-at-scale-skywalking-it-is/) + +SkyWalking做为Apache的顶级项目,是一个开源的APM和可观测性分析平台,它解决了21世纪日益庞大、分布式和异构的系统的问题。它是为应对当前系统管理所面临的困难而构建的:就像大海捞针,SkyWalking可以在服务依赖复杂且多语言环境下,获取服务对应的指标,以及完整而有意义的性能视图。 + +SkyWalking是一个非常全面的平台,无论你的微服务是否在服务网格(Service Mesh)架构下,它都可以提供高性能且一致性的监控。 + +让我们来看看,SkyWalking是如何解决大规模集群的可观测性问题,并从一个纯粹的链路跟踪系统,发展成为一个每天分析百亿级跟踪数据,功能丰富的可观测性平台。 + +### 为超大规模而生 + +SkyWalking的诞生,时间要追溯到2015年,当时它主要应用于监控顶级电信公司(例如:中国联通和中国移动)的第一代分布式核心系统。2013-2014年,这些电信公司计划用分布式系统取代传统的单体架构应用。从诞生那天开始,SkyWalking首要的设计目标,就是能够支持超大型分布式系统,并具有很好可扩展性。那么支撑超大规模系统要考虑什么呢? + +### 拉取vs推送 + +与数据流向息息相关的:拉取模式和推送模式。Agent(客户端)收集数据并将其推送到后端,再对数据进一步分析,我们称之为“推送”模式。究竟应该使用拉取还是推送?这个话题已经争论已久。关键因素取决于可观测性系统的目标,即:在Agent端花最小的成本,使其适配不同类型的可观测性数据。 + +Agent收集数据后,可以在短时间内发送出去。这样,我们就不必担心本地缓存压力过大。举一个典型的例子,任意服务都可以轻松地拥有数百个甚至数千个端点指标(如:HTTP的URI,gRPC的服务)。那么APM系统就必须具有分析这些数量庞大指标的能力。 + +此外,度量指标并不是可观测性领域中的唯一关注点,链路跟踪和日志也很重要。在生产环境下,SkyWalking为了能提供100%采样率的跟踪能力,数据推送模式是唯一可行的解决方案。 + +SkyWalking即便使用了推送模式,同时也可进行数据拉取。在最近的8.x的发版本中,SkyWalking支持从Prometheus-instrumented services获取终端用户的数据,这样就减少了所谓的“一次性工程”建设,减少资源浪费。比较常见的是基于MQ的传输构建拉取模式,Kafka消费者就是一个比较典型的例子。SkyWalking的Agent端使用推送模式,OAP服务器端使用拉取模式。 + +结论:SkyWalking的推送模式是首选方式,但拉取式模式也适用于某些特殊场景。 Review comment: ```suggestion 结论:SkyWalking的推送模式是原生方式,但拉取式模式也适用于某些特殊场景。 ``` ---------------------------------------------------------------- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org