vault backup: 2026-01-05 13:03:55
This commit is contained in:
@@ -0,0 +1,54 @@
|
||||
---
|
||||
title: Design Your Habits
|
||||
tags: [personal-development, habits, productivity]
|
||||
lang: en
|
||||
created: 2025-12-29
|
||||
updated: 2025-12-29
|
||||
---
|
||||
|
||||
Teacher: [[Tiago Forte]]
|
||||
|
||||
## Highlights:
|
||||
|
||||
3 part of habits
|
||||
- Trigger
|
||||
- Behavior
|
||||
- Reward
|
||||
|
||||
If the reward was positive is reinforced
|
||||
|
||||
Different kinds of habits,
|
||||
- Emotional and mental habits
|
||||
- Keystone habits
|
||||
- Productivity habits
|
||||
- Goal oriented habits
|
||||
|
||||
Keystone are one that form structure for other habits to build on
|
||||
|
||||
Should be short, specific, repeatable, daily
|
||||
|
||||
Habit chosen: Wakeup at 8:00 every day
|
||||
|
||||
Best trigger are other habits, anchor habits
|
||||
|
||||

|
||||
|
||||
It should be consistent, precise, frequent (around the same frequency as the habit), logical
|
||||
|
||||
Trigger chosen:
|
||||
- alarm clock
|
||||
- lights on and going to work message
|
||||
|
||||
Best reminder are unavoidable and automated
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
---
|
||||
title: Excitement map
|
||||
created: 2025-12-30
|
||||
updated: 2025-12-30
|
||||
tags: []
|
||||
---
|
||||
|
||||
<ul><li><div>Take a sheet of paper</div></li><li><div>Put life in the middle </div></li><li><div>Add 10-20 things around life that are exciting to you</div></li><li><div>Add another layer of details for each things</div></li><ul><li><div>What excited you about it, why are you excited about it</div></li><li><div>Those points brings to mind research material, ideas, thing to collect</div></li></ul></ul>
|
||||
@@ -0,0 +1,14 @@
|
||||
---
|
||||
title: Personal Development
|
||||
type: area-hub
|
||||
tags: [area, para, personal-development, growth]
|
||||
created: 2025-12-29
|
||||
updated: 2025-12-29
|
||||
---
|
||||
|
||||
### Notes
|
||||
```dataview
|
||||
table file.ctime as Date from "200-area/Personal Development"
|
||||
sort file.name
|
||||
```
|
||||
|
||||
@@ -0,0 +1,68 @@
|
||||
---
|
||||
title: 架构目标 · 产出(Deliverables)知识点总结
|
||||
tags: [architecture, deliverables, knowledge-base]
|
||||
created: "<% tp.file.creation_date('YYYY-MM-DD') %>"
|
||||
updated: "<% tp.file.last_modified_date('YYYY-MM-DD HH:mm') %>"
|
||||
---
|
||||
|
||||
> 只保留“应知应会”的**知识点**:定义、必要字段、度量要点、生命周期、常见坑。
|
||||
|
||||
## 1. 核心产出一览(知道它们各自解决什么问题)
|
||||
- **SLO 定义**:把“好到什么程度”量化(可用性/性能/错误率的阈值+窗口)。
|
||||
- **Error Budget 策略**:把“差多少还能忍”制度化(预算→动作→解除条件)。
|
||||
- **观测规范(OTel/RED/USE)**:统一指标/日志/追踪口径,避免“各说各话”。
|
||||
- **发布与回滚策略**:降低变更风险(金丝雀/止损/自动回滚/证据化)。
|
||||
- **韧性配置基线**:容错与隔离的“默认安全网”(超时/重试退避/熔断/隔离舱/限流/降级)。
|
||||
- **容量与压测报告**:峰值与冗余的事实依据(假设→方法→瓶颈→复验)。
|
||||
- **接口契约(OpenAPI/Proto)**:稳定演进与兼容治理(版本/弃用策略)。
|
||||
- **数据主权与一致性图**:谁是“真源”与一致性策略(强一致/最终一致/补偿)。
|
||||
- **成本模型与看板(FinOps)**:单位经济性(Cost/Txn、资源分摊、优化项)。
|
||||
- **合规与审计材料**:可证合规(驻留/留存/脱敏/DSR 流程与证据)。
|
||||
- **ADR + Trade-off**:决策可追溯(背景→选项→量化权衡→回滚)。
|
||||
- **Runbook & 演练记录**:告警到行动的闭环(症状→动作→诊断→事后)。
|
||||
|
||||
## 2. 每个产出的“最少集”字段(记住这 6 个)
|
||||
- **目标值**(阈值+窗口)
|
||||
- **判定条件**(什么算“可用/成功/达标”)
|
||||
- **数据源**(指标/仪表板/追踪链接)
|
||||
- **触发动作**(止损/回滚/冻结/降级)
|
||||
- **责任人与节奏**(Owner、评审/更新频率)
|
||||
- **证据化**(压测/截图/演练/工单编号)
|
||||
|
||||
## 3. 度量与验证(避免“看不见/对不齐”)
|
||||
- **统一口径**:端到端 vs 单服务要**分开**;不要混用。
|
||||
- **分桶**:按路由/版本/地区/用户群细分,避免均值掩盖尾部。
|
||||
- **以请求为单位聚合**:避免“实例均值”稀释问题。
|
||||
- **抽样策略**:追踪 1–10% + 核心路径全量;日志冷热分层(7/30/90 天)。
|
||||
|
||||
## 4. 生命周期(它们不是一次性交付)
|
||||
- **创建**:立项/里程碑前产出“初版” → 过架构/安全/变更评审。
|
||||
- **运行**:与监控/告警/发布管道**绑定**(门禁/止损/回滚自动化)。
|
||||
- **复盘**:月度 SLO/成本/事故复盘→更新 SLO、韧性基线、Runbook。
|
||||
- **淘汰/替换**:ADR 记录弃用与替代方案,给出迁移窗口与兼容策略。
|
||||
|
||||
## 5. 交叉约束(这些关系要牢记)
|
||||
- **SLO ↔ Error Budget**:预算透支 → 冻结发布/仅修复;预算结余 → 允许做成本优化。
|
||||
- **观测规范 ↔ 发布门禁**:没有 RED/USE 指标就**不能放量**。
|
||||
- **韧性基线 ↔ 性能目标**:超时/重试参数会影响 P95/P99,需协同调参与压测。
|
||||
- **数据主权 ↔ 接口契约**:谁是“真源”决定契约变更节奏与兼容窗口。
|
||||
|
||||
## 6. 检查清单(评审时逐条过)
|
||||
- [ ] 目标值/判定条件/数据源**齐全且一致**(SLO 文档可复算 Error Budget)。
|
||||
- [ ] 有**证据链**:压测报告、金丝雀对比、演练记录、合规材料链接。
|
||||
- [ ] 发布门禁生效(止损条件、自动回滚、合格截图/链接)。
|
||||
- [ ] 观测到 Runbook **成链闭环**(告警直接指向可执行操作)。
|
||||
- [ ] 成本与合规有**看板与记录**,更新节奏明确。
|
||||
- [ ] ADR 完整(选项、量化权衡、回滚、指标),能追溯历史决定。
|
||||
|
||||
## 7. 常见反模式(踩坑黑名单)
|
||||
- **只有口号**:SLO 没有“可用判定条件/数据源/验证方法”。
|
||||
- **口径混乱**:端到端/单服务、客户端/服务端混用导致对账不一致。
|
||||
- **证据缺失**:放量或回滚没有前后对比与链接。
|
||||
- **韧性缺省**:无统一超时/重试/熔断,导致雪崩或放大故障。
|
||||
- **契约裸奔**:API 无版本/兼容/弃用计划;数据“共享大水库”无主数据。
|
||||
- **仅建监控不建 Runbook**:告警没人知道下一步干啥。
|
||||
|
||||
## 8. 记忆卡(一分钟回顾)
|
||||
- 产出=**目标**(SLO/预算)+ **看到**(观测)+ **变更安全**(发布/回滚/韧性)+ **事实**(压测/证据)+ **治理**(ADR/合规/成本)。
|
||||
- 每份产出都要回答:**“怎么判定好、谁来量、触发什么动作、有无证据、谁负责、多久更新?”**
|
||||
@@ -0,0 +1,373 @@
|
||||
---
|
||||
title: 决策方法
|
||||
created: 2025-12-30
|
||||
updated: 2025-12-30
|
||||
tags: []
|
||||
---
|
||||
|
||||
|
||||
tags: [architecture, decision, ATAM, ADR, tradeoff, risk, wsjf]
|
||||
created: "<% tp.file.creation_date('YYYY-MM-DD') %>"
|
||||
updated: "<% tp.file.last_modified_date('YYYY-MM-DD HH:mm') %>"
|
||||
|
||||
> 目标:让架构决策 **可解释 / 可量化 / 可追溯 / 可回滚**。
|
||||
## 1) 方法家族(知道用什么)
|
||||
|
||||
- **ATAM**:以“质量属性场景”驱动的架构权衡;产出风险/敏感点/权衡点、Utility Tree。
|
||||
|
||||
- **ADR**:单条架构决策记录;背景→选项→量化权衡→决策→回滚→验证。
|
||||
|
||||
- **Trade-off Matrix**:把可用性/成本/复杂度/交付周期等维度量化对比。
|
||||
|
||||
- **Utility Tree**:质量属性(可用/性能/安全…)→ 场景化 → 重要度×难度评分。
|
||||
|
||||
- **WSJF / CoD**:对一篮子能力排序(价值/时效/风险降低 ÷ 规模)。
|
||||
|
||||
- **风险分析**:风险登记(概率×影响)、敏感性(Tornado)、决策树(期望值)。
|
||||
|
||||
- **实验驱动**:金丝雀/灰度/A-B;以 **SLO & Error Budget** 作为放量门禁。
|
||||
|
||||
|
||||
## 2) 统一流程(Playbook)
|
||||
|
||||
1. 对齐业务目标与 **NFR/SLO**
|
||||
|
||||
2. 列出 ≥ 2 个候选(含“不做/延后”)
|
||||
|
||||
3. **Utility Tree** 场景化:重要度 (BI) × 难度 (TR)
|
||||
|
||||
4. **Trade-off** 量化:可用/性能/成本 (TCO)/复杂度/交付
|
||||
|
||||
5. 风险登记:概率×影响 + 缓解/触发器/应对
|
||||
|
||||
6. 做出决策并写 **ADR**(含回滚条件与验证指标)
|
||||
|
||||
7. 金丝雀验证 → 复盘(按月/季度迭代)
|
||||
|
||||
|
||||
## 3) 最小公式(随手可用)
|
||||
|
||||
- Error Budget(同窗) = `1 - SLO`;例:99.95%/月 ≈ **22 分钟**
|
||||
|
||||
- Burn Rate = `实际消耗 / 线性应消耗`(> 1 表示过快)
|
||||
|
||||
- 串行可用性近似:`A_total ≈ ∏ A_i`;并联冗余:`A = 1 - ∏(1 - A_i)`
|
||||
|
||||
- WSJF = `(业务价值 + 时效性 + 风险降低) / 规模`
|
||||
|
||||
- 风险评分 = `概率(1–5) × 影响(1–5)`(> 12 需强缓解)
|
||||
|
||||
- 停机成本 ≈ `分钟 × 单位损失 × 影响用户占比`
|
||||
|
||||
- 年度 TCO ≈ `计算+存储+网络+日志+监控 + 人力×系数 + 预留 10%`
|
||||
|
||||
|
||||
## 4) 权衡维度(打分建议)
|
||||
|
||||
- **可用性**(预期 SLO / RTO / RPO)
|
||||
|
||||
- **性能**(P95 / P99 目标可达性)
|
||||
|
||||
- **成本**(一次性 vs 年度 TCO)
|
||||
|
||||
- **复杂度**(开发/运维/组织)
|
||||
|
||||
- **交付周期**(从 PoC 到可用上线)
|
||||
|
||||
- **风险**(技术/合规/运营)
|
||||
|
||||
|
||||
> 建议:评分用 1(优)~ 5(差);或直接用定量值(SLO%、$TCO、周数)对比。
|
||||
|
||||
## 5) 模板速用
|
||||
|
||||
### 5.1 Trade-off Matrix(权衡矩阵)
|
||||
|
||||
|方案|SLO/可用性|年 TCO|复杂度|交付周期|关键风险|结论|
|
||||
|---|--:|--:|--:|--:|---|---|
|
||||
|A|99.9%|$X|3|1|区域单点|过渡|
|
||||
|B|99.95%|$X+30%|4|2|跨区复制/切换|✅|
|
||||
|C|99.99%|$X+80%|5|4|一致性冲突|暂缓|
|
||||
|
||||
### 5.2 Utility Tree(简版)
|
||||
|
||||
```yaml
|
||||
availability:
|
||||
- scenario: "Region 故障 30m 内恢复"
|
||||
BI: 5 # Business Importance
|
||||
TR: 4 # Technical Risk
|
||||
performance:
|
||||
- scenario: "峰值 5k QPS P95≤250ms"
|
||||
BI: 5
|
||||
TR: 3
|
||||
security:
|
||||
- scenario: "密钥自动轮换/静态加密"
|
||||
BI: 4
|
||||
TR: 2
|
||||
```
|
||||
|
||||
### 5.3 ADR(Architecture Decision Record)
|
||||
|
||||
```markdown
|
||||
# ADR-XXXX: <标题>
|
||||
## 背景
|
||||
目标 / SLO / 约束(预算/期限/团队)
|
||||
## 选项
|
||||
A / B / C(含“不做”)
|
||||
## 量化权衡
|
||||
权衡矩阵 + TCO + 停机成本 + 风险表
|
||||
## 决策
|
||||
选择 X(理由与 SLO/成本对齐)
|
||||
## 回滚计划
|
||||
触发条件(p95>阈、burn_rate>2x…)与一键脚本
|
||||
## 验证
|
||||
金丝雀步骤、成功判据、观测指标(RED/USE)
|
||||
## 后续
|
||||
里程碑、技术债、风险缓解任务
|
||||
```
|
||||
|
||||
### 5.4 风险登记(Risk Register)
|
||||
|
||||
|ID|风险|概率|影响|分数|缓解|触发器|应对|
|
||||
|---|---|--:|--:|--:|---|---|---|
|
||||
|R1|复制延迟超阈|3|4|12|增带宽/压测|lag>15s|降级读主库|
|
||||
|R2|切流脚本失败|2|5|10|预演|回滚>5m|手动 Runbook|
|
||||
|
||||
### 5.5 WSJF / CoD(优先级)
|
||||
|
||||
|能力/改造|价值|时效|风险降|规模|WSJF|
|
||||
|---|--:|--:|--:|--:|--:|
|
||||
|自动回滚|7|9|8|4|6.0|
|
||||
|观测统一|6|8|7|5|4.2|
|
||||
|跨区主备|8|7|6|8|2.6|
|
||||
|
||||
## 6) 验证要点(决策“落地就绪”)
|
||||
|
||||
- 有 **回滚条件与脚本**(已演练)
|
||||
|
||||
- 金丝雀/灰度 **与 SLO/预算** 绑定(stop_if 明确)
|
||||
|
||||
- 成本/停机损失 **有计算来源**(表/链接可追溯)
|
||||
|
||||
- 风险登记 **有触发器与应对动作**
|
||||
|
||||
- **ADR 已归档**,并在 PR / 变更单中引用
|
||||
|
||||
|
||||
## 7) 常见反模式(避免)
|
||||
|
||||
- 只有口头结论、无 ADR / 无量化
|
||||
|
||||
- 只看一次性成本,不看年度 **TCO** 与 **停机成本**
|
||||
|
||||
- 无回滚/未演练;金丝雀只是“形式”
|
||||
|
||||
- 风险登记没有触发器,告警不连 Runbook
|
||||
|
||||
- 用平均延迟代替 P95/P99,掩盖体验尾部
|
||||
|
||||
|
||||
## 8) 记忆卡(60 秒回顾)
|
||||
|
||||
- **工具箱**:ATAM / ADR / Trade-off / Utility Tree / WSJF / 风险登记
|
||||
|
||||
- **关键四问**:值不值?做得成?能按时?出事能回?
|
||||
|
||||
- **落地三件套**:SLO & 预算门禁、回滚脚本、ADR 可追溯
|
||||
|
||||
|
||||
下面给你一份“**按实际操作最常用**”的架构决策方法清单——偏**工程落地**,少理论。每条都写**什么时候用、产出、优缺点**,最后给一套“80/20 标配组合”。
|
||||
|
||||
---
|
||||
|
||||
## 现在最常用的决策方法(工程实践版)
|
||||
|
||||
### 1) RFC / 设计提案评审(Design Doc / RFC Review)
|
||||
|
||||
- **场景**:中大型改造、跨团队影响、有外部依赖的变更。
|
||||
|
||||
- **怎么做**:一页或多页设计文档(问题→方案A/B/C→权衡→风险→回滚),线上异步评审+同步评审会。
|
||||
|
||||
- **产出**:评审结论、改动清单、遗留问题、后续指标。
|
||||
|
||||
- **优点**:共识快、成本低、适配组织协作;易留档。
|
||||
|
||||
- **缺点**:如果不强制“量化对比”,容易拍脑袋。
|
||||
|
||||
- **要点**:文档内嵌**Trade-off 表**与**回滚计划**,引用 SLO&预算。
|
||||
|
||||
|
||||
---
|
||||
|
||||
### 2) 权衡矩阵(Trade-off Matrix)
|
||||
|
||||
- **场景**:在 2–3 个候选架构/云上拓扑/中间件里做选择。
|
||||
|
||||
- **怎么做**:对**可用性/性能/成本(TCO)/复杂度/交付周期/风险**打分或填入实数(推荐实数)。
|
||||
|
||||
- **产出**:1 张表 + 结论 + 假设与数据来源。
|
||||
|
||||
- **优点**:直观、团队对齐快;适合管理沟通。
|
||||
|
||||
- **缺点**:维度权重主观;需配真实数据支撑。
|
||||
|
||||
- **要点**:把**SLO、停机成本、年度 TCO**放进表里,避免空话。
|
||||
|
||||
|
||||
---
|
||||
|
||||
### 3) ADR(Architecture Decision Record)
|
||||
|
||||
- **场景**:任何会影响系统边界/接口/成本的决定(无论大小)。
|
||||
|
||||
- **怎么做**:每个决定 1 条 ADR(背景→选项→量化权衡→决策→回滚→验证)。
|
||||
|
||||
- **产出**:可追溯的决策档案;PR/变更单引用。
|
||||
|
||||
- **优点**:治理性强、可回溯;适合审计与人员更替。
|
||||
|
||||
- **缺点**:只记录、**不替代**分析;若无模板易变成流水账。
|
||||
|
||||
- **要点**:强制包含**回滚触发条件**与**验证指标**(如 burn rate、P95)。
|
||||
|
||||
|
||||
---
|
||||
|
||||
### 4) 轻量 ATAM(场景化权衡)
|
||||
|
||||
- **场景**:质量属性冲突明显(可用性↔成本、性能↔一致性)。
|
||||
|
||||
- **怎么做**:把 NFR 拆成**场景**(如“Region 挂 30 分钟仍对外 99.95%”),对**重要度×难度**打分,找**敏感点/风险点**。
|
||||
|
||||
- **产出**:简化版 Utility Tree、风险/敏感点列表。
|
||||
|
||||
- **优点**:能把“质量属性”落到可验证场景。
|
||||
|
||||
- **缺点**:完整 ATAM 成本高;建议做**轻量版**(半天内搞定)。
|
||||
|
||||
- **要点**:每个场景都要有**验证口径**(数据源+SLO/阈值)。
|
||||
|
||||
|
||||
---
|
||||
|
||||
### 5) 实验/金丝雀 + 守护指标(Experiment / Canary with SLO Gates)
|
||||
|
||||
- **场景**:对性能、稳定性有不确定性的变更或新中间件上线。
|
||||
|
||||
- **怎么做**:5%→25%→100% 放量,**stop_if**:`P95>阈`、`错误率>阈`、`burn_rate>2x` 自动回滚。
|
||||
|
||||
- **产出**:放量对比截图/链接、是否推广的结论。
|
||||
|
||||
- **优点**:用事实说话;能避免“大爆炸上线”。
|
||||
|
||||
- **缺点**:需要可观测性底座与自动回滚脚本。
|
||||
|
||||
- **要点**:把**SLO & Error Budget**作为发布门禁,而不是“建议”。
|
||||
|
||||
|
||||
---
|
||||
|
||||
### 6) WSJF / RICE(优先级排序)
|
||||
|
||||
- **场景**:多项能力/改造同时竞争资源(平台建设、韧性改造、性能优化)。
|
||||
|
||||
- **怎么做**:WSJF =(价值+时效+风险降低)/ 规模;或 RICE = Reach × Impact × Confidence ÷ Effort。
|
||||
|
||||
- **产出**:有理有据的 Roadmap 排期。
|
||||
|
||||
- **优点**:跨团队对齐投资顺序很有效。
|
||||
|
||||
- **缺点**:打分主观;需定期复盘更新分值。
|
||||
|
||||
- **要点**:把**停机成本/合规风险**折算进“价值/时效”。
|
||||
|
||||
|
||||
---
|
||||
|
||||
### 7) 风险登记+触发器(Risk Register with Triggers)
|
||||
|
||||
- **场景**:跨区复制、数据一致性、迁移/割接、重大高风险变更。
|
||||
|
||||
- **怎么做**:列出风险,**概率×影响**评分;为每条风险设**触发器**(如 `lag>15s/10m`)与**应对动作**。
|
||||
|
||||
- **产出**:风险台账、演练计划、应对 Runbook。
|
||||
|
||||
- **优点**:让风险可运营、可预案,不是“备忘录”。
|
||||
|
||||
- **缺点**:没有触发器就会沦为形式。
|
||||
|
||||
- **要点**:触发器必须对接**告警**并链接**Runbook**。
|
||||
|
||||
|
||||
---
|
||||
|
||||
### 8) 成本模型 / TCO 评估(含停机成本)
|
||||
|
||||
- **场景**:云上选型、多活/主备、日志与追踪留存策略、CDN 与边缘。
|
||||
|
||||
- **怎么做**:测算**年度 TCO** + **停机成本**(分钟损失×影响用户),放入权衡矩阵。
|
||||
|
||||
- **产出**:成本对比表与单位经济性(Cost/Txn、Cost/1k req)。
|
||||
|
||||
- **优点**:管理层买单的通用语言。
|
||||
|
||||
- **缺点**:参数需持续校准;早期估算误差较大。
|
||||
|
||||
- **要点**:与 SLO 联动:**SLO 提升→停机成本下降**可抵消一部分 TCO 增量。
|
||||
|
||||
|
||||
---
|
||||
|
||||
## 80/20 标配组合(推荐你实际落地就用这套)
|
||||
|
||||
> 小团队/中型组织都适用,投入小、收益高。
|
||||
|
||||
1. **RFC + Trade-off 表**(所有非小改都走)
|
||||
|
||||
2. **ADR**(每个决定 1 条,PR 必须引用)
|
||||
|
||||
3. **金丝雀 + SLO 门禁**(stop_if 自动回滚)
|
||||
|
||||
4. **轻量 ATAM**(半天工作坊:列场景→标敏感点)
|
||||
|
||||
5. **WSJF**(季度 Roadmap 排序)
|
||||
|
||||
6. **风险登记(带触发器)**(迁移/跨区/数据一致性类必配)
|
||||
|
||||
7. **成本模型**(年度复盘,纳入权衡矩阵)
|
||||
|
||||
|
||||
---
|
||||
|
||||
## 一页式对照表(可贴墙)
|
||||
|
||||
|方法|典型时机|输入|产出|用时|负责人|
|
||||
|---|---|---|---|---|---|
|
||||
|RFC/设计提案|中大型变更|问题/约束/选项|评审结论 & TODO|0.5–2 天|方案 Owner|
|
||||
|Trade-off|多选其一|SLO、TCO、性能/复杂度|权衡矩阵 & 选择|1–3 小时|架构师|
|
||||
|ADR|任意决定|RFC/评审结论|可追溯记录|30–60 分钟|Owner|
|
||||
|轻量 ATAM|质量冲突|NFR 场景|Utility Tree & 风险点|半天|架构+SRE|
|
||||
|金丝雀+门禁|上线放量|SLO & Budget|对比证据/回滚与否|持续|Dev+SRE|
|
||||
|WSJF/RICE|排期取舍|候选能力列表|排序表 & Roadmap|2–4 小时|PM/架构|
|
||||
|风险登记|高风险变更|风险清单|触发器 & Runbook|1–2 小时|Owner|
|
||||
|成本模型|选型/复盘|账单/流量/人力|年度 TCO & Unit Cost|1–3 天|FinOps|
|
||||
|
||||
---
|
||||
|
||||
## 可复制的最小模板片段
|
||||
|
||||
**Trade-off(行内版)**
|
||||
`A: 99.9% / $X / 复杂度3 / 1周 | B: 99.95% / $X+30% / 复杂度4 / 2周 -> 选 B(停机成本年省≈$91k)`
|
||||
|
||||
**ADR 抬头**
|
||||
`ADR-2025-10-XX 多Region主备:选 B;回滚触发=burn_rate>2x 或 P95>+20%;验证=金丝雀 5%→25%→100%`
|
||||
|
||||
**金丝雀 stop_if**
|
||||
`["p95_ms>阈","error_rate>阈","burn_rate_any>2x"] 触发自动回滚 + 切流`
|
||||
|
||||
**风险登记一条**
|
||||
`R1 跨区复制延迟:概率3 影响4=12;触发=lag>15s/10m;应对=降级读主库 + 补偿队列;季度演练`
|
||||
|
||||
---
|
||||
|
||||
想让我把这套“标配组合”打成一份 Obsidian 模板(带 Front-matter 和 Templater 变量)吗?我可以直接给你可粘贴的文件结构和占位内容。
|
||||
@@ -0,0 +1,88 @@
|
||||
---
|
||||
title: 架构目标(Architecture Goals)总结
|
||||
tags: [architecture, goals, SLO, NFR, governance]
|
||||
created: "<% tp.file.creation_date('YYYY-MM-DD') %>"
|
||||
updated: "<% tp.file.last_modified_date('YYYY-MM-DD HH:mm') %>"
|
||||
---
|
||||
|
||||
> 架构目标 = 面向业务的**可度量**NFR 套件 + **清晰边界与取舍** + **工程化落地**(观测、演练、回滚)+ **持续复盘**。
|
||||
|
||||
## 1. 目标框架(Framework)
|
||||
- 业务价值:增长/转化/留存/合规/成本
|
||||
- 质量属性(NFR):可用性、性能、安全、可维护性、可扩展性、可观测性、韧性、成本、合规
|
||||
- 约束:预算、交付周期、团队能力、地域/数据主权、遗留系统边界
|
||||
- 产出:SLO/阈值、数据源、验证方法、Error Budget、ADR/Trade-off 记录
|
||||
|
||||
## 2. 维度与指标(Dimensions & KPIs)
|
||||
| 维度 | 典型指标 |
|
||||
|---|---|
|
||||
| 可用性 | 月度 SLO(如 99.95%)、MTTR、MTBF、Error Budget |
|
||||
| 性能 | P95/P99 延迟、QPS/TPS、并发连接、队列时长 |
|
||||
| 可靠性/韧性 | 错误率、降级成功率、熔断/限流命中、故障演练通过率 |
|
||||
| 安全 | 高危漏洞处置时限、证书/密钥轮换周期、加密覆盖率、审计合规 |
|
||||
| 可维护性 | 变更 Lead Time、变更失败率、回滚时长、代码可测试性 |
|
||||
| 可扩展性 | 扩缩容时间、峰值利用率、容量裕度 |
|
||||
| 可观测性 | RED/USE 覆盖率、追踪采样策略、告警→行动闭环率 |
|
||||
| 成本 | Cost/Txn、成本结构占比(计算/存储/网络/日志/监控) |
|
||||
| 合规 | 数据驻留/留存期/可删除、审计通过率 |
|
||||
|
||||
## 3. SMART 化表达(Examples)
|
||||
- 可用性:**99.95%/月**;“可用”定义= P95 ≤ 400ms 且错误率 ≤ 0.2% → Error Budget ≈ 22 分钟/月
|
||||
- 性能:`/checkout` **P95 ≤ 250ms、P99 ≤ 600ms** @ 5k QPS
|
||||
- 安全:高危漏洞 **≤ 24h** 修复;静态数据加密 **100% 覆盖**
|
||||
- 维护:主干集成 Lead Time **≤ 1 天**;单键回滚 **≤ 15 分钟**
|
||||
- 成本:**Cost/1000 req ≤ $0.08**;监控+日志成本 **≤ 18%**
|
||||
|
||||
## 4. 制定流程(Playbook)
|
||||
1) 业务对齐 → 明确北极星指标
|
||||
2) 关键路径建模 → C4 + 时序 + 依赖图
|
||||
3) 设定 SLO 与成本上限 → 基于历史与压测基线
|
||||
4) 明确约束与非目标(不做/后做)
|
||||
5) 方案权衡 → Trade-off Matrix + ADR
|
||||
6) 接入度量/告警/演练 + 灰度/回滚策略
|
||||
7) 月度/季度复盘 → 目标、成本、事故与技术债
|
||||
|
||||
### Trade-off Matrix(简表)
|
||||
| 方案 | 可用性 | 成本 | 复杂度 | 交付周期 | 结论 |
|
||||
|---|---:|---:|---:|---:|---|
|
||||
| 单 Region 多 AZ | 高 | 中 | 中 | 快 | 先上 |
|
||||
| 多 Region 主备 | 更高 | 高 | 高 | 中 | 次阶段 |
|
||||
| 多 Region 多活 | 最高 | 最高 | 最高 | 慢 | 暂缓 |
|
||||
|
||||
## 5. 落地抓手(Engineering Levers)
|
||||
- 变更安全网:金丝雀 + 自动回滚 + 契约测试 + DB 迁移对称脚本
|
||||
- 韧性底座:超时/重试退避/熔断/隔离舱/限流/降级 **统一库 + 配置化**
|
||||
- 容量模型:峰值 N 倍冗余;弹性扩容 **≤ 5 分钟**
|
||||
- 观测默认开启:RED/USE 指标、端到端追踪、Runbook 与告警绑定
|
||||
- 数据主权:谁是“真源”、一致性策略(强一致/最终一致/CQRS/Outbox)
|
||||
|
||||
## 6. 冲突与解法(Trade-offs)
|
||||
- 可用性 ↔ 成本:分层 SLO + 主备先行,逐步演进多活
|
||||
- 性能 ↔ 一致性:核心写强一致,读侧 CQRS + 最终一致
|
||||
- 安全 ↔ 体验:风险分层验证(低风险免验证,高风险二验)
|
||||
- 可观测性 ↔ 成本:追踪采样 + 热点全量;日志冷热分层
|
||||
|
||||
## 7. 评审清单(Checklist)
|
||||
- [ ] 与业务北极星对齐,定义“可用/达成”的**判定条件**
|
||||
- [ ] 每个目标 **可度量**(阈值、数据源、验证方法)
|
||||
- [ ] 明确 **非目标/边界** 与阶段性演进计划
|
||||
- [ ] 关键链路有端到端观测与 **Runbook/告警**
|
||||
- [ ] 具备 **压测与容量评估**、留足冗余
|
||||
- [ ] 灰度/回滚/契约测试/DB 迁移流程完备
|
||||
- [ ] 安全与合规评审通过,关键证据归档
|
||||
- [ ] 成本上限与分摊模型可视化
|
||||
- [ ] ADR/Trade-off 文档化并归档
|
||||
|
||||
## 8. 模板(Templates)
|
||||
|
||||
### 8.1 SLO 模板
|
||||
```text
|
||||
【目标名称】结算服务端到端可用性
|
||||
SLO:99.95% / 月;滑动窗口:5 分钟
|
||||
“可用”定义:P95 ≤ 400ms 且 错误率 ≤ 0.2%
|
||||
Error Budget:≈ 22 分钟/月
|
||||
数据源:Prometheus / OTel(checkout_end_to_end_*)
|
||||
发布策略:金丝雀 + 自动回滚
|
||||
韧性参数:依赖超时 800ms;重试指数退避上限 2 次
|
||||
演练计划:季度混沌、半年度跨 AZ 切流
|
||||
负责人:结算团队 TL
|
||||
@@ -0,0 +1,164 @@
|
||||
---
|
||||
title: 系统架构分析员知识体系
|
||||
created: 2025-12-30
|
||||
updated: 2025-12-30
|
||||
tags: []
|
||||
---
|
||||
|
||||
# 系统架构分析员·知识点清单(精要版)
|
||||
|
||||
> 只保留“应知应会”的知识点;去重、分类、层级化;按「必会 / 进阶 / 选修」标注。
|
||||
|
||||
---
|
||||
|
||||
## 0. 基本方法与思维(必会)
|
||||
- 架构目标:业务价值对齐、风险可控、成本可控、可演化
|
||||
- 分析范式:功能性 vs 非功能性(NFR);质量属性权衡(可用/可靠/性能/安全/可维护/成本)
|
||||
- 决策方法:ATAM、Trade-off Matrix、ADR(架构决策记录)
|
||||
- 可演化架构:小步演进、可替换性、逆向依赖最小化
|
||||
- 系统思维:反馈环、瓶颈识别(Theory of Constraints)
|
||||
|
||||
---
|
||||
|
||||
## 1. 架构原则与模式(必会)
|
||||
- 设计原则:高内聚低耦合、SRP/OCP/DIP/ISP、组合优于继承、面向接口
|
||||
- 分层与边界:分层架构/六边形/洋葱/Clean;限界上下文(DDD)
|
||||
- 常用模式:微服务、事件驱动、Serverless、服务网格、CQRS、Event Sourcing、Saga
|
||||
- 接口契约:REST/GraphQL/gRPC、OpenAPI/Proto/AsyncAPI、契约测试
|
||||
- 抗脆弱性:熔断、限流、隔离舱、重试退避、幂等、去抖动、优雅降级
|
||||
|
||||
---
|
||||
|
||||
## 2. 需求与建模(必会)
|
||||
- 需求采集:业务目标→用例/用户故事→NFR 列表(SLO/安全/合规/性能/可观测性)
|
||||
- 建模工具:UML(用例/时序/部署)、BPMN、DFD、C4(C1~C4)
|
||||
- DDD 要点:限界上下文、上下文映射、聚合/实体/值对象、领域事件、应用服务
|
||||
- 边界识别:有界上下文间通信、数据主权(谁是“真源”)、一致性策略
|
||||
|
||||
---
|
||||
|
||||
## 3. 后端与中间件(必会)
|
||||
- 语言/框架:Java/Kotlin(Spring)、Go(Echo/Fiber)、Python(FastAPI)、Node(NestJS)
|
||||
- 通信:HTTP/2、gRPC、GraphQL、WebSocket/SSE;序列化(JSON/Proto/Avro)
|
||||
- 配置与发现:Consul/etcd、配置中心、Feature Flag
|
||||
- 消息与事件:Kafka/RabbitMQ/NATS(有序性、语义:至多一次/至少一次/恰好一次)
|
||||
- API 管理:网关(Nginx/Envoy/Traefik)、鉴权/配额/金丝雀/灰度
|
||||
|
||||
---
|
||||
|
||||
## 4. 数据与存储(必会)
|
||||
- 数据建模:ER/范式与反范式、索引/分区/分片、冷热分层
|
||||
- 引擎选择:RDBMS(PostgreSQL/MySQL)、KV/文档(Redis/Mongo)、搜索(Elasticsearch)、列存(ClickHouse)
|
||||
- 一致性:ACID/BASE、读写分离、二阶段提交/Outbox/Saga
|
||||
- 性能要点:慢查询分析、连接池、批量/流水线、缓存穿透/击穿/雪崩治理
|
||||
- 数据生命周期:归档/脱敏/血缘/主数据(MDM)/数据质量
|
||||
|
||||
---
|
||||
|
||||
## 5. 基础设施与云原生(必会)
|
||||
- 容器与镜像:Docker/OCI、镜像分层与最小基镜像、SBOM
|
||||
- 编排:Kubernetes/K3s、Helm、HPA/VPA、Pod 反亲和、节点污点/容忍
|
||||
- 网络:CNI、Ingress/Service/EndpointSlice、eBPF 概念
|
||||
- 存储:CSI、PVC、状态有/无服务部署策略(StatefulSet vs Deployment)
|
||||
- 平台工程:IaC(Terraform/Ansible)、GitOps(ArgoCD)、平台与自助化门户
|
||||
|
||||
---
|
||||
|
||||
## 6. CI/CD 与发布治理(必会)
|
||||
- 流水线:构建→测试→扫描(SAST/DAST/License)→制品库→部署→回滚
|
||||
- 策略:蓝绿/金丝雀/分批、Feature Flag、数据库变更(迁移/回滚/对称脚本)
|
||||
- 质量门禁:测试金字塔(单元/契约/集成/端到端)、覆盖率与变更风险
|
||||
- 运行制品:容器镜像签名、供应链安全(SLSA)
|
||||
|
||||
---
|
||||
|
||||
## 7. 安全(必会)
|
||||
- 身份与鉴权:OIDC/OAuth2、SAML、RBAC/ABAC、最小权限
|
||||
- 数据安全:TLS、mTLS、密钥管理(KMS/Vault)、加密(静态/传输/字段级)
|
||||
- 应用安全:OWASP Top 10、CSRF/XSS/注入、依赖与容器镜像扫描
|
||||
- 网络安全:零信任、WAF、DDoS 基础、分段与边界
|
||||
- 合规:日志留存/可审计性、隐私(GDPR/数据最小化/可删除)
|
||||
|
||||
---
|
||||
|
||||
## 8. 可靠性与韧性(必会)
|
||||
- SLI/SLO/SLA:可用性、延迟、错误率、吞吐、成熟度指标
|
||||
- 灾备:RPO/RTO、主备/多活/异地容灾、演练(GameDay)
|
||||
- 故障注入:混沌工程、失效域隔离(AZ/Region/Cell)
|
||||
- 容量规划:QPS/并发/连接数、排队论基础、峰值与冗余策略
|
||||
|
||||
---
|
||||
|
||||
## 9. 性能工程(必会)
|
||||
- 指标与基线:P50/P95/P99、吞吐-延迟曲线、抖动/长尾
|
||||
- 端到端优化:算法/IO/锁竞争/内存分配、N+1 查询、批量化与并发模型
|
||||
- 压测方法:负载模型(恒定/阶梯/突刺)、数据与会话保真度、环境隔离
|
||||
- 缓存:多级缓存、TTL/主动失效、热点/大 Key、写策略(WT/WB/W-through)
|
||||
|
||||
---
|
||||
|
||||
## 10. 可观测性(必会)
|
||||
- 三要素:日志/指标/追踪(OpenTelemetry)
|
||||
- 指标体系:RED(Rate/Errors/Duration)、USE(Utilization/Saturation/Errors)
|
||||
- 工具:Prometheus/Grafana、Loki/ELK、Jaeger/Tempo
|
||||
- 告警:症状优先、静态阈值 vs 自适应、抑制/合并、值班与Runbook
|
||||
|
||||
---
|
||||
|
||||
## 11. 前端与客户端(进阶)
|
||||
- 架构:SPA/MPA/微前端、组件化/状态管理
|
||||
- 性能:首屏/TTI/资源拆分、CDN/边缘渲染
|
||||
- 通信:GraphQL/Gateway、WebSocket、离线与同步策略
|
||||
- 可访问性与国际化:a11y、i18n、RUM 观测
|
||||
|
||||
---
|
||||
|
||||
## 12. 成本与治理(进阶)
|
||||
- 成本模型:云账单矩阵(计算/存储/网络/日志/监控)、单位经济性(Cost per Txn)
|
||||
- 架构治理:技术债台账、依赖健康度、版本治理/弃用策略
|
||||
- 文档化:C4 图谱、ADR 目录、运维手册/Runbook/手术刀式文档
|
||||
|
||||
---
|
||||
|
||||
## 13. 领域化知识(选修,按行业取舍)
|
||||
- 电商:库存一致性、幂等支付、促销引擎、风控与反刷
|
||||
- 金融:清算/对账/合规模型、强一致与审计、短路保护
|
||||
- 通信与IM:会话/漫游/离线推送、实时性/有序性、扩散/收敛模型
|
||||
- IoT:MQTT/CoAP、设备影子、OTA、边缘与断连一致性
|
||||
- AI/ML 平台:模型注册/版本/特征库、在线推理/批推理、GPU 调度与缓存
|
||||
|
||||
---
|
||||
|
||||
## 14. 反模式与常见坑(必会)
|
||||
- 过度微服务化、耦合的“分布式单体”
|
||||
- 无契约的接口演进、未做幂等与重试退避
|
||||
- 数据作为“共享大水库”,无主数据/血缘
|
||||
- 缺失 SLO/告警洪水/无归因的 MTTR 拉长
|
||||
- 无灰度/不可逆 DB 变更、无回滚策略
|
||||
- 监控多而乱,无“症状→行动”的告警设计
|
||||
- 混合云/多Region 架构未验证真实流量切换
|
||||
|
||||
---
|
||||
|
||||
## 15. 清单与模板(实用)
|
||||
- 质量属性清单:可用性/性能/安全/可维护/可观测/成本→量化目标
|
||||
- 架构评审清单:边界/数据主权/一致性/扩展性/容灾/SLO/部署/回滚
|
||||
- 上线前检查:契约测试/迁移脚本/金丝雀/回滚演练/告警阈值
|
||||
- 运行手册:故障树、Runbook、Dashboard 链接、演练计划
|
||||
|
||||
---
|
||||
|
||||
## 16. 术语速览(检索用)
|
||||
- 一致性:强/因果/最终、一致性语义(At-most/At-least/Exactly-once)
|
||||
- 可用与容灾:RTO/RPO、Multi-AZ/Region/Cell
|
||||
- 指标:RED/USE、P95/P99、Error Budget、SLO/SLI
|
||||
- 模式:CQRS/Event Sourcing/Saga、熔断/限流/隔离舱
|
||||
- 图模:C4(C1~C4)、UML(用例/时序/部署)、BPMN
|
||||
|
||||
---
|
||||
|
||||
# 学习路径(对标知识点)
|
||||
- 初级(必会 0~6,10 基础):能画 C4、写 ADR、搭建可用链路、具备基本 SLO/监控
|
||||
- 中级(补齐 7~10、11、12):掌握韧性/容量/成本与治理,能独立做灰度与回滚
|
||||
- 高级(14~15 强化、13 选修):能做企业级架构治理与跨域系统整合、度量驱动演进
|
||||
|
||||
@@ -0,0 +1,36 @@
|
||||
---
|
||||
title: remark42
|
||||
created: 2025-12-30
|
||||
updated: 2025-12-30
|
||||
tags: []
|
||||
---
|
||||
|
||||
google auth
|
||||
|
||||
AUTH_GOOGLE_CID=935204735749-4jvsveemaohtblrip12n2r3jqc3cd9q0.apps.googleusercontent.com
|
||||
|
||||
AUTH_GOOGLE_CSEC=yQh4_H7BgeG8mf2_yMy0yE-D
|
||||
|
||||
github
|
||||
|
||||
AUTH_GITHUB_CID=`62127bb1a774bb05ce16`
|
||||
|
||||
AUTH_GITHUB_CSEC=`7d1b0c35b777bdeea30dcb2749908bbe66015156`
|
||||
|
||||
```text-plain
|
||||
AUTH_GITHUB_CID=62127bb1a774bb05ce16
|
||||
AUTH_GITHUB_CSEC=7d1b0c35b777bdeea30dcb2749908bbe66015156
|
||||
```
|
||||
|
||||
`AUTH_TWITTER_CID=CjyfOrHd6C90Yox97WBOOGYDw`
|
||||
|
||||
`AUTH_TWITTER_CSEC=XwxSvqF1Pf9qn8Oyk23EZpTSdlhaG6ybxrSvVqXuOeV5CKssk4`
|
||||
|
||||
```text-plain
|
||||
ADMIN_SHARED_ID=github_20924f5ace2e27ff9b98801b837b8a495308d782
|
||||
```
|
||||
|
||||
```text-plain
|
||||
NOTIFY_TYPE=telegram
|
||||
NOTIFY_TELEGRAM_TOKEN=1312138212:AAFhKNaLXTT1-cqPrcOiLTLKr3656uviRLE
|
||||
```
|
||||
Reference in New Issue
Block a user