饮墨

子安饮墨馀三斗,留与卿儿作赋来

Qdrant 向量数据库生产级集群部署:从单机到高可用的完整实践

痛点

AI 应用落地后,向量检索是绕不过的核心环节。pgvector 适合轻量场景,但当向量数据量超过千万级、QPS 要求 > 1000、需要多租户隔离时,你需要一个专用的向量数据库。

Qdrant 是当前最活跃的开源向量数据库之一(Rust 编写,性能优异),支持分布式集群、丰富的过滤条件、多向量存储。问题在于:从 Docker 单机跑通到生产集群稳定运行,中间有大量避坑细节

本文给出从 0 到生产就绪的完整路径。

方案概览

维度 选型/配置
部署形态 Kubernetes StatefulSet,3 节点 Raft 集群
存储 NVMe SSD(IOPS 敏...

Read more

用 gh-ost 在线改造 AWS Aurora 6000 万行大表:一次生产实战复盘

痛点

某生产 Aurora MySQL 集群上有两张日历相关的大表,需要把两个 varchar(255) 字段扩展到 varchar(500)。看似只是一条 ALTER TABLE MODIFY COLUMN,但这两张表分别是 6000 万行 / 37GB3500 万行 / 28GB,而且集群还被另一套业务共用。

如果直接执行原生 ALTER TABLE,会踩到 MySQL 的一个经典陷阱:

InnoDB 的 MODIFY COLUMN 在涉及字符集 / COLLATE 变更时,会强制走 ALGORITHM=COPY(全表重建),即使你显式写 ALGORITHM=INPLACE ...

Read more

Istio Ambient Mesh 实战:告别 Sidecar,服务网格轻量化落地

痛点:Sidecar 模式的运维之痛

Istio 从诞生起就以 Sidecar(Envoy)注入为核心架构。每个 Pod 旁边跑一个 Envoy 代理,虽然实现了透明流量劫持,但在生产中带来了真实的运维负担:

  • 资源开销大:每个 Pod 多吃 100-200MB 内存、0.1-0.5 vCPU,千级 Pod 集群下额外资源成本可观
  • 升级复杂:Sidecar 版本与数据面绑定,升级需重启所有注入 Pod,灰度困难
  • 启动延迟:Pod 启动时需等待 Sidecar Ready,init container 注入 iptables 规则增加 2-5s 启动时间
  • HBONE 兼容性差:某些 Job...

Read more

Grafana Pyroscope 持续性能剖析:Kubernetes 生产环境落地实战

痛点:监控告警之后,性能瓶颈定位的最后一公里

你有 Prometheus 监控 CPU/内存指标,有 Tempo 追踪请求链路,有 Loki 聚合日志——但当 P99 延迟飙升时,你知道哪个服务慢了,却不知道慢在哪一行代码

传统做法是:SSH 进容器 → 手动 pprof / perf → 抓一次快照 → 本地分析。问题显而易见:

  • 故障窗口短,手动操作来不及
  • 没有历史基线,无法对比「正常时段 vs 异常时段」
  • 多实例 Pod 不知道该抓哪个

持续剖析(Continuous Profiling) 解决的就是这个问题:7×24 自动采集每个进程的 CPU、内存分配、Goroutine ...

Read more

AI Agent 安全防护实战:Prompt 注入防御与权限隔离架构

痛点

AI Agent 已从实验走向生产。当 Agent 能调用工具、访问数据库、执行命令时,安全边界被彻底打破——一条精心构造的用户输入就能让 Agent 执行未授权操作。2025 年 OWASP Top 10 for LLM Applications 将 Prompt Injection 列为首要威胁,而多数团队的 Agent 部署仍处于"裸奔"状态:无输入过滤、无权限分层、无操作审计。

真实案例:某企业内部 Agent 集成了 SQL 查询工具,攻击者通过间接 Prompt 注入(将恶意指令嵌入外部文档),让 Agent 执行了 DROP TABLE 操作。根因:Agent 对工具...

Read more

Redis Cluster 热 Key 问题排查与优化实战:从发现到根治

痛点

线上 Redis Cluster 突然出现单节点 CPU 飙升到 90%+,其他节点负载却很低。业务端大量超时报错,监控告警不断。排查发现:某个 Key 的 QPS 占该节点总请求的 60% 以上 —— 典型的热 Key(Hot Key)问题。

热 Key 是 Redis Cluster 架构下最常见的性能瓶颈之一。由于 Cluster 按 slot 分片,同一个 Key 只会落在一个节点上,无论集群规模多大,单 Key 的流量天花板就是单节点的处理能力。秒杀活动的库存 Key、热门商品详情缓存、全局计数器 —— 这些场景都是热 Key 的重灾区。

方案概述

解决热 Key 问题的...

Read more

AI Agent 评估与测试:从 Vibe Check 到系统化质量保障的生产实践

痛点:Agent 上线后翻车,根因是缺乏系统化评估

你部署了一个 AI Agent,Demo 效果炸裂,老板拍板上线。结果第一天就出事:Agent 幻觉输出了不存在的 API 端点,用户按着执行直接打挂了生产环境。

这不是个例。AI Agent 与传统软件最大的区别在于 非确定性——相同输入可能产生不同输出,工具调用链路可能走向完全不同的分支。传统的单元测试、集成测试那套打法,在 Agent 场景下严重不足。

核心问题:

  • Agent 的输出质量如何量化?"看着还行"不是指标
  • 多步推理 + 工具调用的链路怎么做回归测试?
  • Prompt 改一个字,怎么确保不引入退化?
  • 生产环境中 Agen...

Read more

Kyverno 实战:用 YAML 原生策略引擎替代 OPA Gatekeeper,5 步落地 Kubernetes 准入控制

痛点

Kubernetes 集群治理离不开准入控制策略——限制特权容器、强制资源 Limits、禁止 latest 标签等。传统方案 OPA Gatekeeper 功能强大,但 Rego 语言学习曲线陡峭,运维团队写一条策略往往要翻半天文档。ValidatingAdmissionPolicy(CEL)虽是原生方案,但仅支持验证、不支持资源变更(Mutate),且需要 K8s 1.30+ 才 GA。

核心矛盾:运维需要快速落地策略,但现有工具要么门槛高,要么能力不够。

Kyverno 用纯 YAML/JSON 编写策略,零学习新语言成本,同时覆盖 Validate/Mutate/Gener...

Read more

SpinKube 实战:在 Kubernetes 上运行 WebAssembly Serverless 工作负载

痛点

容器虽然解决了环境一致性问题,但在边缘计算、Serverless 函数等场景下暴露了明显短板:

  • 冷启动慢 — 一个最小化 Go/Python 容器也要 200ms+ 启动时间,对延迟敏感的 API 场景不可接受
  • 资源开销大 — 每个 Pod 至少需要 ~20MB 内存 overhead,千级函数规模成本吃紧
  • 安全边界粗 — 容器共享内核,逃逸漏洞频出(CVE-2024-21626 等)

WebAssembly(Wasm)提供了一条新路径:微秒级冷启动、MB 级内存占用、沙箱隔离比容器更强。但问题是——如何把 Wasm 工作负载无缝集成到现有 Kubernetes 集群?

Spi...

Read more

Gatus:轻量级健康监控与状态页,5分钟替代臃肿的 Uptime 方案

痛点

运维团队经常面临这样的困境:Prometheus + Alertmanager 体系虽强大,但对于 "服务到底通不通" 这个最基本的问题,配置链路却异常冗长——要写 blackbox_exporter 配置、Prometheus scrape job、告警规则、Alertmanager 路由,最后还得搭个 Grafana dashboard 给业务方看。

而商业方案(Datadog Synthetics、PagerDuty、UptimeRobot Pro)月费动辄几百美元,对中小团队或内部项目来说性价比极低。

核心需求其实很简单: - 定时探测 HTTP/TCP/DNS/gRPC ...

Read more