Skip to content

Commit f26d4bc

Browse files
authored
[zh] Add demo/requirements/ pages (#7768)
Signed-off-by: windsonsea <haifeng.yao@daocloud.io>
1 parent 6c03fd2 commit f26d4bc

File tree

3 files changed

+100
-0
lines changed

3 files changed

+100
-0
lines changed
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
---
2+
title: 演示要求
3+
linkTitle: 要求
4+
default_lang_commit: beee9035dba8128dc3b970aa73e8b2a8d17d16dc
5+
---
6+
7+
以下文档记录了演示应用、OpenTelemetry (OTel) 和共享演示应用的系统要求。
8+
这些要求是在正在进行的 SIG 会议中决定的。
9+
10+
1. [应用要求](application/)
11+
2. [OpenTelemetry 要求](opentelemetry/)
12+
3. [系统要求](system/)
13+
14+
## 目标用户角色 {#target-persons}
15+
16+
我们在构建演示应用时考虑了几个不同的目标用户角色:
17+
18+
1. **爱好者**:公司里的个人可以使用演示应用来推动 OTel 在组织中的应用。
19+
2. **开发者**:具备特定语言技能,想要了解更宏观的全貌。
20+
3. **APM 厂商**:可以评估 OTel,或需要为客户演示其 OTel 功能。
21+
4. **企业**:正在考虑采用 OTel,并希望了解接近生产环境的轻量化体验。
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
---
2+
title: 应用要求
3+
linkTitle: 应用
4+
aliases: [application_requirements]
5+
default_lang_commit: beee9035dba8128dc3b970aa73e8b2a8d17d16dc
6+
---
7+
8+
在定义应用将产生哪些 OpenTelemetry (OTel) 信号,以及何时应添加对未来 SDK 的支持时,会产生以下要求:
9+
10+
1. 每种支持的语言中,只要其 Traces 或 Metrics SDK 已 GA(正式发布),就必须至少有 1 个服务示例。
11+
- 移动端支持(Swift)不是初始优先事项,不包含在上述要求中。
12+
13+
2. 应用进程必须与语言无关。
14+
- 在可用的情况下优先使用 gRPC,不可用时使用 HTTP。
15+
16+
3. 服务应设计为可替换的模块化组件。
17+
- 各个服务可以且应鼓励提供多种语言选项。
18+
19+
4. 架构必须允许可能集成平台通用组件,例如数据库、队列或对象存储。
20+
- 对特定组件类型没有要求,但通常应至少包含 1 个通用组件。
21+
22+
5. 必须提供一个负载生成器,用于模拟用户对演示的负载。
Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
---
2+
title: 架构要求
3+
linkTitle: 架构
4+
aliases: [architecture_requirements]
5+
default_lang_commit: beee9035dba8128dc3b970aa73e8b2a8d17d16dc
6+
cSpell:ignore: dockerstatsreceiver
7+
---
8+
9+
## 概述 {#summary}
10+
11+
OpenTelemetry 社区演示应用旨在展示如何将 OpenTelemetry API、SDK 和工具用于轻量生产级别的云原生应用中。
12+
这个演示应用的总体目标不仅是提供一个规范性的 OpenTelemetry 组件“演示”,
13+
还要作为一个框架,供终端用户、厂商和其他利益相关者进一步定制。
14+
15+
### 要求 {#requirements}
16+
17+
- [应用要求](../application/)
18+
- [OpenTelemetry 要求](../opentelemetry/)
19+
- [系统要求](../system/)
20+
21+
### 应用目标 {#application-goals}
22+
23+
- 为开发者提供一个强大的示例应用,帮助他们学习 OpenTelemetry 的插桩方法。
24+
- 为可观测性厂商提供一个单一的、受良好支持的演示平台,他们可以进一步定制(或直接开箱即用)。
25+
- 为 OpenTelemetry 社区提供一个可持续更新的工件,用于展示 OTel API、SDK 和工具的功能与能力。
26+
- 为 OpenTelemetry 维护者和工作组提供一个平台,用于在真实环境中展示新功能和新概念。
27+
28+
以下是演示应用逻辑组件的常规描述。
29+
30+
## 主应用 {#main-application}
31+
32+
演示应用的主体是一个自包含的、基于微服务的应用,能够完成一些有用的“真实世界”工作,例如电商网站。
33+
此应用由多个服务组成,这些服务通过 gRPC 和 HTTP 相互通信,并运行在 Kubernetes(或本地 Docker)上。
34+
35+
每个服务都应使用 OpenTelemetry 进行插桩,支持链路、指标和日志(随应用/可用性有所差异)。
36+
37+
每个服务应当可以与执行相同业务逻辑的其他服务互换,这些服务需实现相同的
38+
gRPC 端点,但可以用不同的语言或实现编写。
39+
40+
每个服务应能够与特性开关服务通信,以便启用或禁用故障,用于展示遥测如何帮助解决分布式应用中的问题。
41+
42+
## 特性开关组件 {#feature-flag-component}
43+
44+
特性开关是云原生应用开发的重要组成部分。演示使用 CNCF 孵化项目 OpenFeature 来管理特性开关。
45+
46+
特性开关可通过 flagd 配置器用户界面进行设置。
47+
48+
## 编排与部署 {#orchestration-and-deployment}
49+
50+
所有服务均运行在 Kubernetes 上。OpenTelemetry Collector 应通过 OpenTelemetry Operator
51+
部署,并以边车 + 网关的模式运行。来自每个 Pod 的遥测应从 Agent 路由到网关,
52+
网关默认应将遥测导出到一个开源的链路 + 指标可视化工具。
53+
54+
对于本地/非 Kubernetes 部署,Collector 应通过 compose 文件部署,不仅监控应用的链路/指标,还要通过
55+
`dockerstatsreceiver` 监控 Docker 容器。
56+
57+
本项目的设计目标之一是包含一个 CI/CD 流水线,用于在云环境中实现自部署。本地开发时可以跳过此步骤。

0 commit comments

Comments
 (0)