Glossary
Words and phrases from infrastructure and SRE interviews, with notes on when to say them. Whole sentences live in Patterns. Fluency is self-rated: Raw means I understand it but would not reach for it; Fluent means it comes out on its own.
253 / 253
面试表达35
- walk me through带我过一遍
面试官开场最常用的句式;你自己讲架构时也可以说 let me walk you through…
Walk me through how a request gets from the extension to your backend.
- trade-off取舍
system design 里每个决定后面都要跟一句 the trade-off is…
The trade-off is lower latency at the cost of a more complex failover story.
- blast radius爆炸半径
讲 Terraform state 拆分、IAM 最小权限、分集群时用
Splitting state per environment keeps the blast radius small.
- single point of failure单点
口语里常缩成 SPOF,念 spoof
The dedicated line was a single point of failure, so we kept a VPN as a fallback.
- back-of-the-envelope粗略估算
设计题里算 QPS、存储量时先说这句,给自己留余地
Back-of-the-envelope, that is about 2,000 requests per second at peak.
- ballpark大概的数量级
被问「大概多少」时用;a ballpark figure / in the ballpark of
Ballpark, the EU region cost us around ten thousand a month.
- rule of thumb经验法则
My rule of thumb is to keep 30 percent headroom on the node pool.
- low-hanging fruit最容易拿的成果
讲成本优化、入职前 90 天计划时用
Spot runners were the low-hanging fruit on cost.
- push back推回去 / 反对
BQ 里讲拒绝需求;名词是 pushback
I pushed back on giving developers kubectl access to production.
- take ownership of对…负责到底
Trust Wallet 价值观里有 extreme ownership,这个词多用
I took ownership of the migration end to end.
- ramp up上手 / 逐步加量
两个意思:新人上手(ramp-up time),或者流量逐步切(ramp up traffic)
We ramped canary traffic up from 1 to 10 to 50 percent.
- edge case边界情况
The edge case is a pod that passes readiness but cannot reach the database.
- happy path正常路径
和 failure path 对着说
That is the happy path; the interesting part is what happens when the upstream times out.
- table stakes基本门槛 / 起码要有的
mTLS between services is table stakes for a wallet backend.
- guardrails护栏
JD 原词。指不靠人自觉、靠机制拦住的东西:policy、admission、CI 检查
The guardrail is an admission policy, not a wiki page asking people to be careful.
- golden path / paved road推荐路径 / 铺好的路
平台工程的核心词:默认路径最省事,偏离要自己承担
The golden path is a Helm chart plus an ArgoCD ApplicationSet; anything else you own yourself.
- source of truth唯一真相源
Git is the source of truth; anything applied by hand is drift.
- drift漂移
实际状态偏离声明的状态;Terraform 和 ArgoCD 都用这个词
ArgoCD flags the drift and self-heals it within a few minutes.
- greenfield / brownfield从零新建 / 在已有系统上改
简历里的 0 to 1 就是 greenfield
The EU region was greenfield, so we could enforce GitOps from day one.
- from scratch从零
I built the observability stack from scratch.
- tech debt技术债
The FluxCD setup had accumulated a lot of tech debt in the form of hand-written kustomizations.
- over-engineering过度设计
设计题里主动说「这里我不会 over-engineer」是加分的
Multi-region active-active would be over-engineering for this traffic level.
- moving parts活动部件 / 复杂环节
Istio adds a lot of moving parts; you need a reason to pay for that.
- in hindsight事后看
讲错误、复盘时的自然开头
In hindsight, we should have load-tested the runner pool before cutting over.
- off the top of my head不假思索地说的话 / 凭印象
被问数字又记不准时用,比编一个数强
Off the top of my head, it was around 40 percent, but I would want to check.
- root cause根因
动词化用法也常见:root-cause the issue
The root cause was conntrack table exhaustion on the NAT gateway node.
- mitigate / remediate止血 / 修复
故障里两个阶段:先 mitigate(回滚、切流),再 remediate(修根因)
We mitigated by rolling back, then remediated the config in the next release.
- sane defaults合理的默认值
The chart ships sane defaults so most teams never touch the values file.
- opinionated有明确主张的(工具/平台)
形容平台不给太多选择、替用户做决定
The platform is opinionated: one way to deploy, one way to get logs.
- out of the box开箱即用
Istio gives you per-route latency histograms out of the box.
- leaky abstraction漏的抽象
讲平台封装到什么程度时用:封太多,底层出问题时用户看不懂
Hiding Kubernetes completely becomes a leaky abstraction the first time a pod is OOMKilled.
- lift and shift原样搬迁上云
Phase one was lift and shift; containerisation came later.
- non-negotiable没得商量的
For a wallet, key material never touching the server is non-negotiable.
- circle back回头再说
设计题里先跳过某个细节时用
Let me circle back to caching once the write path is clear.
- to be fair公平地说
承认对方观点或承认自己的方案有缺点时的缓冲
To be fair, ambient mode has closed most of that gap.
SRE & 可靠性32
- SLI / SLO / SLA指标 / 目标 / 协议
SLI 是测量,SLO 是内部目标,SLA 是对外承诺带赔偿。三个不要混着说
The SLI is the success ratio at the ingress gateway; the SLO is 99.9 percent over 30 days.
- error budget错误预算
1 减 SLO 就是预算;烧完了停发布,这是 SLO 唯一有牙齿的地方
Once the error budget is exhausted, feature releases pause until it recovers.
- burn rate预算燃烧速度
告警打在 burn rate 上,不打在 SLI 低于 SLO 上;多窗口多 burn rate 是标准答案
A 14x burn rate over one hour pages; a 1x burn rate over three days opens a ticket.
- golden signals四个黄金信号
latency, traffic, errors, saturation。被问「你看什么指标」时的骨架
- tail latency / p99长尾延迟
念 p ninety-nine;平均值没意义要说出口
Average latency looked fine; p99 had doubled because of connection pool exhaustion.
- on-call rotation轮值
配套词:primary / secondary, handover, follow-the-sun
We ran a weekly rotation with a primary and a secondary.
- page / pager呼叫 / 呼叫器
动词用法:get paged, page someone。只有用户可见的问题有资格 page
I got paged at 3 a.m. for a disk-full alert that should have been a ticket.
- escalation policy升级策略
If the primary does not acknowledge in 10 minutes, PagerDuty escalates to the secondary.
- runbook / playbook操作手册
runbook 偏具体步骤,playbook 偏决策流程;面试里混用也没人纠正
Every paging alert links to a runbook with the first three things to check.
- postmortem故障复盘(报告)
拉丁语 post mortem 是「死后」,原义是医学尸检;工程里借来指故障结束后写的那份文档:时间线、影响、根因、行动项。出处是 Google SRE 书第 15 章 Postmortem Culture: Learning from Failure,核心是 blameless —— 默认每个人当时都在用手头的信息做合理决定,追问的是系统为什么允许这个错误发生,而不是谁犯的;更早的 Etsy 那篇 Blameless PostMortems(John Allspaw, 2012)也常被引。中文「复盘」也用于项目总结,和面试官说 postmortem 更准确;PagerDuty、Atlassian 的文档也都用这个词,少数团队叫 incident review 或 retrospective。念 post-MOR-tem,重音在中间。
We ran a blameless postmortem the next day; the action item was an alert on consumer lag, not a reminder to be more careful.
- toil琐碎运维(可自动化的重复性手工操作)
日常英语里 toil 是「苦役、辛劳」;SRE 语境里是 Google SRE 书第 5 章 Eliminating Toil(Vivek Rau)给的专门定义:和运维服务相关、手动、重复、可以被自动化、战术性、没有长期价值、随服务规模线性增长的工作。它不等于「杂活」:写文档、开会不算 toil(没长期价值但不随规模涨),半夜手动重启卡住的消费者算。Google 给的目标是 SRE 时间里 toil 不超过 50%,剩下做工程。中文没有统一译法,「琐事」「重复劳动」都有人用,当面说英文 toil 最省事。面试用法:讲 on-call 改进时,「我们把 X 这个 toil 自动化掉了」比「我们优化了流程」具体得多。
Restarting stuck consumers was pure toil, so I wrote a controller that does it and pages only when the restart does not help.
- MTTR / MTTD平均恢复时间 / 平均发现时间
念字母;讲可观测性收益时用 MTTD,讲 runbook 和自动化收益时用 MTTR
- incident commander故障指挥
大故障时一个人只做协调不动手;缩写 IC
The incident commander keeps the timeline and decides when to roll back.
- severity / sev1故障级别
念 sev one;不同公司定义不同,面试里先问他们怎么定
A sev1 is user-facing and has no workaround.
- graceful degradation优雅降级
If the price feed is down, the balance still loads; we just hide the fiat value.
- load shedding主动丢弃负载
过载时按优先级拒绝请求;和 rate limiting 的区别是它看的是自身健康度
Under overload the gateway sheds low-priority traffic like NFT metadata first.
- backpressure反压
下游慢时把压力传回上游,而不是无限排队
Bounded queues give you backpressure instead of an OOM.
- circuit breaker熔断器
配套:half-open 状态,outlier detection(Istio 的实现)
Istio outlier detection acts as a circuit breaker per upstream host.
- retry storm / thundering herd重试风暴 / 惊群
讲为什么重试要 exponential backoff with jitter 和 retry budget
Without jitter every client retried at the same second and we got a retry storm.
- exponential backoff with jitter带抖动的指数退避
- idempotent幂等
念 eye-DEM-po-tent;讲重试安全性、GitOps reconcile 都用
The reconcile loop is idempotent, so re-running it is always safe.
- bulkhead舱壁隔离
把资源按用途隔开,一个坏了不拖垮全部;连接池分开、节点池分开都算
- failover / failback故障切换 / 切回
Failover to the replica was automatic; failback we did by hand the next morning.
- active-active / active-passive双活 / 主备
多区域设计题第一句要表态选哪个、为什么
- RTO / RPO恢复时间目标 / 数据丢失容忍
RTO 多久恢复,RPO 丢多少数据;先问业务要什么再设计
With an RPO of five minutes, async replication is enough; zero RPO means synchronous.
- headroom余量
We keep about 30 percent headroom so an AZ failure does not trigger scale-up under load.
- capacity planning容量规划
- chaos engineering / game day混沌工程 / 故障演练日
We ran a game day where we killed the primary database to test the runbook.
- gray failure灰色故障
没挂但变慢、部分失败,健康检查看不出来的那种
A gray failure like 5 percent packet loss is worse than a clean outage.
- kill switch紧急开关
feature flag 的一种用法:不用发版就能关掉功能
- symptom-based alerting按症状告警
告警打在用户能感知的东西上,不打在 CPU 高这种原因上
We moved from cause-based alerts like high CPU to symptom-based alerts on error ratio.
- alert fatigue告警疲劳
Alert fatigue was the real problem: 200 alerts a week and nobody read them.
Kubernetes & Service Mesh36
- control plane / data plane控制面 / 数据面
K8s 和 Istio 都这么分;讲 Istio 时 istiod 是控制面,Envoy sidecar 是数据面
- reconcile loop调和循环
controller 的核心:不断把实际状态拉向期望状态;ArgoCD 也是这个词
The operator's reconcile loop compares desired and actual state every few seconds.
- desired state / actual state期望状态 / 实际状态
- admission webhook准入 webhook
mutating 改对象,validating 只放行或拒绝;简历上的 Java Agent 注入就是 mutating
I wrote a mutating admission webhook in Go that injects the Java agent.
- CRD / operator自定义资源 / 算子
We manage the pipeline as a CRD and an operator built with Operator SDK.
- PodDisruptionBudgetPod 中断预算
缩写 PDB;node drain 和升级时保证最少可用副本
Without a PDB, a node upgrade can take down every replica at once.
- HPA / VPA / KEDA水平 / 垂直 / 事件驱动扩缩容
HPA 按指标加副本,VPA 调 requests,KEDA 按队列深度这类外部指标
- Cluster Autoscaler / Karpenter节点扩缩容
Karpenter 直接按 pod 需求开节点,不走 node group;AWS 上现在的默认选择
- node pool / node group节点池
GKE 叫 node pool,EKS 叫 node group
- taint / toleration / affinity污点 / 容忍 / 亲和
Spot nodes carry a taint so only stateless workloads with the toleration land there.
- requests / limits资源请求 / 上限
requests 决定调度和 QoS,limits 决定 OOMKill 和 throttling
- QoS class服务质量等级
Guaranteed / Burstable / BestEffort,决定 eviction 顺序
- OOMKilled内存超限被杀
念 oom-killed;exit code 137
Exit code 137 means OOMKilled; the first thing I check is the memory limit versus the JVM heap.
- CPU throttlingCPU 被限流
CFS quota 导致的延迟毛刺;p99 高但 CPU 使用率不高时想到它
CPU throttling showed up as p99 spikes even though average utilisation was 40 percent.
- eviction / preemption驱逐 / 抢占
eviction 是节点压力赶走 pod,preemption 是高优先级 pod 挤走低优先级
- readiness / liveness / startup probe就绪 / 存活 / 启动探针
readiness 失败摘流量,liveness 失败重启;liveness 配错会造成重启风暴
- rolling update / maxSurge / maxUnavailable滚动更新参数
- cordon / drain禁止调度 / 排空节点
Cordon the node first, then drain it respecting PDBs.
- graceful shutdown / terminationGracePeriod优雅退出
SIGTERM 之后要先摘流量再退出;preStop sleep 是常见的补丁
We add a preStop sleep so the endpoint is removed before the process gets SIGTERM.
- sidecar / ambient mode边车 / 无边车模式
sidecar 每个 pod 一个 Envoy;ambient 用节点级 ztunnel,省资源但更新;诚实说没在规模上运维过 ambient
- mTLS双向 TLS
念 em-TLS;PeerAuthentication STRICT 模式
Istio gives us mTLS between services without touching application code.
- VirtualService / DestinationRuleIstio 路由 / 目标策略
VS 管怎么路由(权重、header 匹配),DR 管到了目标怎么处理(subset、连接池、outlier)
- traffic shifting / traffic mirroring流量切分 / 流量镜像
mirroring 也叫 shadowing,复制一份请求到新版本但不返回给用户
We mirrored 10 percent of production traffic to the new version before shifting any real traffic.
- outlier detection异常主机剔除
Envoy 的被动健康检查,连续 5xx 就把这个 endpoint 摘一段时间
- ingress gateway / Gateway API入口网关 / 新的网关标准
Gateway API 正在替代 Ingress 资源,Istio 已支持
- NetworkPolicy网络策略
默认 deny-all 再放行是标准答案;需要 CNI 支持(Calico / Cilium)
- RBAC / ServiceAccount权限控制 / 服务账号
- IRSA / Workload IdentityPod 级云身份
AWS 叫 IRSA(IAM Roles for Service Accounts),GCP 叫 Workload Identity;不再往 pod 里塞长期 AK
With IRSA each service account maps to one IAM role, so there are no long-lived keys in the cluster.
- Pod Security AdmissionPod 安全准入
替代了 PodSecurityPolicy;三个级别 privileged / baseline / restricted
- kube-proxy / iptables / IPVSService 转发实现
ClusterIP 是 iptables 或 IPVS 规则,不是真实进程;Cilium 可以完全绕过 kube-proxy
- CoreDNS / ndots集群 DNS / 搜索域次数
ndots:5 导致外部域名先查 4 次集群内后缀;高 QPS 服务 DNS 慢的经典原因
- EndpointSlice端点切片
Service 后面真正的 pod IP 列表;readiness 失败就从这里摘掉
- noisy neighbour吵闹的邻居
多租户里一个应用吃光节点资源拖累别人;答案是 requests/limits、quota、独立节点池
- ResourceQuota / LimitRange命名空间配额 / 默认限制
- Helm chart / values / releaseHelm 三件套
chart 是模板,values 是参数,release 是装进集群的一个实例
- kustomize overlaykustomize 环境覆盖层
IaC / GitOps / 安全31
- remote state / state locking远端状态 / 状态锁
S3 + DynamoDB 锁是 AWS 上的标准答案;新版本 S3 原生锁也行
State lives in S3 with DynamoDB locking so two applies cannot race.
- plan / apply预览 / 执行
面试里要说清楚:plan 在 PR 里看,apply 只在 merge 后跑
- AtlantisPR 驱动的 Terraform 自动化
JD 原词。在 PR 里评论 atlantis plan / atlantis apply,plan 结果回贴 PR,带锁防并发
Atlantis posts the plan on the PR and locks the directory until it is applied or unlocked.
- drift detection漂移检测
定时 plan 看有没有非零 diff;有人 ClickOps 了就能抓到
- ClickOps点控制台改配置
贬义;drift 的主要来源
Every ClickOps change shows up as drift in the nightly plan.
- module / versioning模块 / 版本化
模块要 pin 版本;根模块和子模块的边界怎么切是常见追问
- workspaceTerraform 工作区
同一份代码多套状态;很多团队更喜欢按目录分环境而不是 workspace
- prevent_destroy / lifecycle防误删 / 生命周期规则
The RDS instance has prevent_destroy so a bad refactor cannot delete it.
- terraform import / moved block导入已有资源 / 资源改名
- App of Apps用一个 Application 管一堆 Application
ArgoCD 的引导模式;简历上用过,要能讲为什么后来还要 ApplicationSet
- ApplicationSet / generator批量生成 Application
generator 有 list、cluster、git directory、matrix 几种
A git directory generator creates one Application per service folder automatically.
- sync wave / sync hook同步顺序 / 同步钩子
wave 控制资源先后(先 CRD 后 CR),hook 跑 PreSync / PostSync 任务(如数据库迁移)
- self-heal / prune自愈 / 清理多余资源
self-heal 把手改的东西拉回来,prune 删掉 Git 里已经没有的资源;prune 要小心开
- pull-based vs push-based拉模式 / 推模式部署
GitOps 是 pull:集群里的 agent 去拉 Git;CI 直接 kubectl apply 是 push
- OIDC federation基于 OIDC 的身份联合
GitHub Actions 到 AWS 不用长期 key 的标准做法;短期 token 换 IAM role
GitHub Actions assumes the role through OIDC, so there is no AWS key stored in the repo.
- short-lived credentials短期凭证
- least privilege最小权限
- secret sprawl密钥散落各处
Secret sprawl was the real risk: the same key lived in three CI systems and a wiki.
- External Secrets / Sealed Secrets / SOPS三种 GitOps 密钥方案
External Secrets 从云 secret manager 同步,Sealed Secrets 加密后进 Git,SOPS 文件级加密
- secret rotation密钥轮换
- supply chain attack供应链攻击
Trust Wallet 2025 年底 extension 事件就是这一类;讲 CI 安全时必提
A compromised build dependency is a supply chain attack; signing and provenance are the defence.
- SBOM软件物料清单
念 S-bomb;列出镜像里所有依赖,漏洞出来时能查影响面
- image signing / cosign镜像签名
配合 admission policy 只允许签过名的镜像跑
Images are signed with cosign and the admission policy rejects anything unsigned.
- provenance / SLSA来源证明 / 供应链等级框架
念 salsa;证明这个制品是哪次构建、从哪个 commit 产出的
- pin / pinning锁死版本
第三方 GitHub Action 要 pin 到 commit SHA,不要 pin tag
We pin third-party actions to a full commit SHA, not a tag.
- policy as code / OPA / Kyverno策略即代码
Gatekeeper 是 OPA 的 K8s 封装;Kyverno 用 yaml 写策略更简单
- vulnerability scanning / CVE漏洞扫描
Trivy、X-ray;区分「扫出来」和「阻断」两个阶段
- shift left左移
把安全检查提前到 PR 阶段;DevSecOps 的标准说法
- zero trust零信任
不信任网络位置,每个请求都验身份;Cloudflare Access / Tunnel 是他们大概率在用的实现
- bastion / jump host堡垒机
zero trust 语境下常被 Cloudflare Tunnel 或 SSM Session Manager 替代
- audit log审计日志
K8s API server audit、CloudTrail;安全题里「谁在什么时候改了什么」靠它
云 & 网络 & 成本29
- VPC / subnet / CIDR虚拟网络 / 子网 / 网段
CIDR 念 cider;设计题里 CIDR 规划别和其他区域重叠是常见追问
- NAT gateway / egress出网网关 / 出向流量
NAT gateway 按流量计费,是 AWS 账单里常见的隐形大头
Half the network bill was NAT gateway egress from pods pulling images.
- VPC peering / Transit Gateway对等连接 / 中转网关
- PrivateLink / VPC endpoint私有链接 / 私有端点
访问 S3、ECR 走 endpoint 不走 NAT,省钱也更安全
- security group / NACL安全组 / 网络 ACL
SG 有状态、挂在实例上;NACL 无状态、挂在子网上
- ALB / NLB应用层 / 传输层负载均衡
ALB 七层,NLB 四层;gRPC 和固定 IP 需求选 NLB
- cross-AZ traffic跨可用区流量
简历上 PVC 迁移单 AZ 就是为了这个;topology-aware routing 是另一条路
- spot / preemptible竞价实例
AWS 叫 spot,GCP 叫 preemptible 或 spot VM;要能讲被回收时怎么处理
- reserved instances / savings plan / committed use discount预留 / 节省计划 / 承诺使用折扣
AWS 前两个,GCP 是 CUD
- rightsizing调整到合适规格
- showback / chargeback成本可见 / 成本分摊到账
showback 只展示,chargeback 真扣预算;简历上的 GKE Metering 看板是 showback
- unit economics单位经济
每个用户 / 每千次请求多少钱;比总账单更有说服力的成本指标
Cost per thousand requests dropped 30 percent after moving runners to spot.
- edge / PoP边缘 / 接入点
Cloudflare 的核心概念:请求先到最近的 PoP
- origin源站
Cloudflare 后面的真实服务;要讲怎么保证只有 Cloudflare 能打到 origin(authenticated origin pulls、IP allowlist)
We lock the origin down so only Cloudflare IPs can reach the load balancer.
- WAFWeb 应用防火墙
念 waff;managed rules 加自定义规则
- DDoS mitigationDDoS 防护
crypto 是 DDoS 重灾区;Cloudflare 在 L3/L4 和 L7 都挡
- rate limiting限流
分层:Cloudflare 边缘、网关、服务内部;按什么 key 限(IP、API key、钱包地址)是追问点
- bot management机器人流量管理
- Cloudflare Workers边缘无服务器函数
swill.fun 就跑在上面,可以拿来举例
- Cloudflare Tunnel / Access出向隧道 / 零信任访问
不开入站端口就能把内网服务暴露给通过身份验证的人;替代 VPN 和堡垒机
- cache hit ratio / TTL缓存命中率 / 存活时间
- anycast任播
同一个 IP 在全球多个 PoP 宣告,就近接入;Cloudflare 的 DNS 和网络都靠它
- DNS failover / health checkDNS 故障切换
多区域切流的最简单办法,代价是 TTL 内切不干净
- global load balancer全局负载均衡
- cold start冷启动
serverless 和新节点都有这个问题
- data residency数据驻留
简历上 AWS EU 的动机;数据必须存在某个地理范围内
- landing zone云账号基线
多账号结构、SSO、网络、日志、guardrails 的一整套起手式
- multi-account / organization unit多账号 / 组织单元
AWS 按环境或团队分账号是隔离和成本归属的基础;SCP 在 OU 上做护栏
- SCP服务控制策略
AWS Organizations 层面的权限上限,root 也绕不过
可观测性22
- metrics / logs / traces三大支柱
被问「可观测性怎么建」先说三个各解决什么问题,再说怎么关联
- cardinality基数
label 组合数;user_id 这种高基数 label 会把 Prometheus 打爆
Putting wallet address on a label would blow up cardinality; that belongs in logs or traces.
- recording rule预计算规则
SLO 的 SLI 都应该先做成 recording rule,告警和看板都查它
- histogram / percentile / bucket直方图 / 分位数 / 桶
histogram_quantile 是从 bucket 估算的,不是精确值;bucket 边界要按 SLO 阈值设
- scrape / exporter / remote write抓取 / 导出器 / 远端写入
- Thanos / Mimir / CortexPrometheus 长期存储与多集群方案
多集群设计题里的标准答案之一;Thanos sidecar 上传 S3,querier 聚合
- retention保留期
本地 Prometheus 15 天,长期进对象存储;日志同理分 hot / warm / cold
- span / trace context propagation跨度 / 上下文传播
OTel 的核心:trace ID 通过 header(traceparent)在服务间传下去
Without context propagation you get islands of spans instead of one trace.
- head sampling / tail sampling头采样 / 尾采样
head 在入口决定采不采,便宜但会丢慢请求;tail 在 collector 看完整个 trace 再决定,能保留所有错误
- OpenTelemetry CollectorOTel 采集器
receiver → processor → exporter 三段;部署成 agent(DaemonSet)或 gateway
- instrumentation埋点
auto-instrumentation(agent 注入)和 manual;简历上 Java Agent 注入就是 auto
- RED / USE method两套指标方法论
RED 看服务:Rate, Errors, Duration;USE 看资源:Utilisation, Saturation, Errors
- structured logging结构化日志
JSON 一行一条,带 trace_id 字段才能和 trace 关联
- log correlation / trace ID日志与链路关联
- Sentry / error tracking错误追踪
JD 原词。按堆栈聚合错误、带 release 和用户上下文;和 metrics 的分工是「哪一行代码」vs「多少比例」
Sentry tells you which line threw; Prometheus tells you what fraction of requests failed.
- release health版本健康度
Sentry 的功能:按版本看 crash-free 率;客户端(extension / mobile)团队最看这个
- dashboards as code看板即代码
Grafana dashboard 的 JSON 进 Git,用 Grafana Operator 或 Terraform provider 部署
- blackbox / synthetic monitoring黑盒 / 拨测
低流量服务没有足够样本算 SLI,靠拨测补
- paging alert vs ticket呼叫级告警 vs 工单级
只有用户可见且需要人立刻处理的才 page,其他进工单
- runbook link / annotation告警上的手册链接
- flow logs网络流日志
简历上把 GCP flow log 转成 Prometheus 指标;讲怎么看流量模式和排查安全组问题
- consumer lag消费延迟
消息队列的核心 SLI,不是成功率
Go22
- goroutine leak协程泄漏
阻塞在 channel 或没被取消的 goroutine 永远不退出;pprof goroutine 数持续涨就是它
A goroutine leak showed up as the goroutine count climbing in pprof over a day.
- context cancellation / deadline propagation上下文取消 / 截止时间传播
每个出站调用都要带 ctx;HTTP 和 gRPC 都会把 deadline 传给下游
The handler's context carries the deadline, so the database call gives up when the client already has.
- channel / select / buffered channel通道 / 多路选择 / 带缓冲通道
- sync.Mutex / RWMutex / sync.Map互斥锁 / 读写锁 / 并发安全 map
sync.Map 只适合读多写少、key 固定的场景;Trust Wallet 那个落选反馈就点名了滥用 sync.Map
- race detector竞态检测器
go test -race;面试里主动说 CI 跑 -race 是加分
- errgroup / worker pool带错误的并发组 / 协程池
errgroup.WithContext 是并发扇出的标准写法;有界并发用 semaphore 或 worker pool
- error wrapping / errors.Is / errors.As错误包装与判断
fmt.Errorf 里用 %w;sentinel error 和自定义 error 类型的取舍
- http.Client timeout / TransportHTTP 客户端超时 / 传输层配置
默认 http.Client 没有超时;连接池参数在 Transport 上(MaxIdleConnsPerHost 默认只有 2)
The default MaxIdleConnsPerHost is 2, which is why we saw connection churn under load.
- keep-alive / connection pool长连接 / 连接池
- graceful shutdown / http.Server.Shutdown优雅关闭
收到 SIGTERM 后先 readiness 失败、等 in-flight 请求完成、再 Shutdown
- gRPC unary / streaming一元 / 流式调用
- gRPC interceptor / middleware拦截器 / 中间件
日志、metrics、auth、tracing 都在这一层;OTel 有现成的 interceptor
- gRPC deadline / status codegRPC 截止时间 / 状态码
DeadlineExceeded、Unavailable 可重试,InvalidArgument 不可;重试策略按状态码区分
- protobuf / backward compatibility协议缓冲 / 向后兼容
字段只加不删、不复用编号
- pprof性能剖析
CPU、heap、goroutine、block、mutex 五种 profile;生产上通过 /debug/pprof 采
- GC pause / GOGC / GOMEMLIMITGC 停顿 / GC 调参
容器里设 GOMEMLIMIT 和 memory limit 对齐,避免 OOMKilled
- escape analysis / allocation逃逸分析 / 内存分配
深度追问才会到;知道 go build -gcflags=-m 能看就行
- client-go informer / watchK8s 客户端缓存 / 监听
简历上 DaoCloud 的服务发现就是 watch API server;informer 是带本地缓存和 resync 的 watch
An informer keeps a local cache and hands you add, update and delete events instead of polling.
- controller-runtime / Operator SDK控制器框架
- table-driven tests表驱动测试
Go 的惯用测试写法;take-home 里用这个写法是加分项
- go.mod / vendoring / semantic versioning模块管理 / 依赖锁定 / 语义化版本
- linter / golangci-lint静态检查
Web3 & 钱包23
- self-custody / non-custodial自托管 / 非托管
私钥在用户设备上,服务端永远没有;这是 Trust Wallet 和交易所的本质区别,后端所有设计都从这句推
Because the wallet is non-custodial, nothing on our side can move funds; the backend only reads chain state and serves data.
- seed phrase / mnemonic助记词
12 或 24 个词,能推出所有私钥;泄露等于全丢
- private key / signing私钥 / 签名
交易在设备上签名,后端只负责广播
- hot wallet / cold wallet热钱包 / 冷钱包
联网 / 不联网;硬件钱包是冷的
- RPC node / JSON-RPC链节点 / 节点接口
钱包读余额、发交易都是调节点的 JSON-RPC;eth_getBalance、eth_sendRawTransaction
The backend fronts a pool of RPC nodes so the app never talks to a single provider directly.
- node provider节点服务商
Alchemy、Infura、QuickNode;自建节点 vs 买服务是成本和可靠性的取舍
- full node / archive node全节点 / 归档节点
archive 保留所有历史状态,查历史余额要它,存储贵好几倍
- indexer链上数据索引服务
把链上事件整理成可查询的数据库;交易历史、代币余额都靠它,不能每次去扫链
- block height / finality / reorg区块高度 / 最终性 / 链重组
reorg 会让已经显示的交易消失;显示「已确认」前等几个块
We wait for finality before marking a deposit confirmed, because a reorg can drop the block.
- mempool待打包交易池
- gas / gas price / nonce手续费 / 费率 / 交易序号
nonce 必须连续,卡住一笔后面全堵;后端估 gas 的服务是常见的可用性痛点
- chain ID / EVM / L2链标识 / 以太坊虚拟机 / 二层网络
EVM 兼容链共享工具链;L2 便宜快但有自己的最终性规则
- multi-chain多链
Trust Wallet 支持 100+ 链,意味着几十套异构节点要一起运维
- bridge跨链桥
历史上被盗最多的一类基础设施
- swap aggregator / DEX兑换聚合 / 去中心化交易所
钱包内 swap 是后端调多个 DEX 报价再选最优,是一条典型的对外依赖链
- dApp / WalletConnect去中心化应用 / 钱包连接协议
JD 里「developers building on Trust Wallet」主要就是 dApp 开发者
- on-chain / off-chain链上 / 链下
后端大部分是链下服务:价格、通知、索引、推送
- price feed / oracle价格源 / 预言机
- airdrop空投
流量洪峰的典型触发源,设计题里可以拿来举例
- drainer / phishing / approval scam盗币脚本 / 钓鱼 / 授权诈骗
钱包用户的主要损失来源;安全团队的日常
- MEV / front-running最大可提取价值 / 抢跑
深水区,听得懂就行
- Trust Wallet Core他们开源的跨平台签名库
C++ 写的,extension / mobile / desktop 共用;体现「一套核心多端」的架构
- TWTTrust Wallet 的代币
AI & DevX23
- LLM coding assistant大模型编码助手
Claude Code、Copilot、Cursor;说清楚你用哪个、用在哪一步
- agentic workflow代理式工作流
模型自己调工具、跑命令、看结果再改;和「补全」的区别要能一句话说清
The agentic part is that it runs the tests, reads the failure and fixes it, instead of just suggesting a line.
- prompt pattern提示词模式
JD 原词。可复用的提示结构:角色 + 约束 + 示例 + 输出格式
- system prompt / project rules系统提示 / 项目规则文件
CLAUDE.md、AGENTS.md 这类放在 repo 里的约束;swill.fun 的分层规则就是现成例子
We keep the conventions in a CLAUDE.md so every session starts with the same guardrails.
- guardrails护栏
AI 语境下指:权限边界、只读模式、需要人确认的操作、不能碰生产
The guardrail is simple: the agent can plan Terraform but a human applies.
- human in the loop人在回路
- hallucination幻觉
讲 AI 写 Terraform 编 provider 参数、写 K8s 编字段的真实例子
- context window上下文窗口
- tool use / function calling工具调用
- MCP模型上下文协议
把 Grafana、K8s、GitHub 这类系统以标准接口接给模型;讲权限模型时要提最小权限和只读
An MCP server for Grafana lets the agent pull the dashboard during an incident without giving it write access.
- RAG检索增强生成
念 rag;把 runbook 和 postmortem 喂给模型的常见方式
- eval / evaluation评测
prompt 改了怎么知道变好了:固定一组用例跑分
- AI code reviewAI 代码审查
跑在 PR 上的 reviewer;要能讲误报、噪音、代码泄露三个问题怎么处理
- AI-assisted incident responseAI 辅助故障响应
告警触发后自动汇总日志、trace、最近变更,给 on-call 一个起点;边界是它只建议不执行
- DORA metrics四个交付指标
deployment frequency, lead time for changes, change failure rate, time to restore;JD 说 measuring impact 就是这四个
We measure AI impact through DORA: lead time dropped, and change failure rate did not go up.
- lead time for changes变更前置时间
从 commit 到上生产
- change failure rate变更失败率
- developer experience (DevX)开发者体验
- inner loop / outer loop内循环 / 外循环
inner 是本地写码测试的分钟级循环,outer 是 PR 到上线;AI 目前主要加速 inner
- cognitive load认知负荷
平台工程的目标函数:减少开发者要知道的东西
- self-service自助
- platform as a product平台即产品
把内部开发者当用户,有 roadmap、有反馈渠道;对应 JD 的 interfacing with users
- skill / slash command技能 / 斜杠命令
可复用的 AI 工作流封装;swill.fun 的 /cover-letter 就是一个,面试里可以拿来当例子