饮墨

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

Backstage 搭建内部开发者门户(IDP):从 0 到生产的落地实战

痛点

团队规模到了 50+ 工程师,微服务数量膨胀到上百个,典型混乱场景:

  • 新人入职找不到服务文档,不知道该服务归谁维护
  • 部署流程散落在 Wiki、Confluence、Slack 消息里,每个团队一套做法
  • 想创建一个新服务,需要手动配 CI/CD、K8s manifests、监控面板,耗时 2-3 天
  • 技术债务没人跟踪,安全漏洞修复进度不透明

这就是 Platform Engineering 要解决的问题——而 Backstage 是目前最成熟的开源 IDP(Internal Developer Platform)方案。

方案概述

Backstage 由 Spotify 开源,20...

Read more

用 KEDA 实现 Kubernetes 事件驱动弹性伸缩:3 步让 Pod 按消息队列深度自动扩缩容

痛点

Kubernetes 原生 HPA 只能根据 CPU/内存或已暴露的 Metrics 做伸缩,但大量运维场景的瓶颈不在计算资源,而在外部事件源

  • 消息队列(Kafka/SQS/RabbitMQ)积压 → 需要更多消费者
  • 定时批处理任务 → 凌晨突发大量 Job
  • Redis List 长度暴涨 → 需要动态扩 Worker
  • 数据库连接数接近上限 → 触发限流或扩容

HPA 对这些场景无能为力,你要么写 CronJob 定时硬扩,要么手动干预。KEDA(Kubernetes Event-Driven Autoscaling) 正是为此而生——它在 HPA 之上增加了 60+ 种事件...

Read more

OpenTofu 替代 Terraform:生产环境迁移实战指南

痛点

2023 年 HashiCorp 将 Terraform 许可证从 MPL 2.0 切换为 BSL 1.1,对商业用途施加限制。对于中大型团队,这意味着:

  • 合规风险:如果你的产品或服务与 HashiCorp 构成竞争关系,继续使用 Terraform 可能违反许可证
  • 供应商锁定:BSL 限制了社区分发和二次开发的自由度
  • 长期成本不确定性:未来可能进一步收紧许可或推商业版

OpenTofu 是 Linux Foundation 托管的 Terraform 开源分支(fork),保持 MPL 2.0 许可,API 兼容 Terraform 1.6+,并持续迭代新特性(如 state...

Read more

Coolify:自托管 PaaS 平替 Heroku,5 分钟部署你的应用平台

痛点

Heroku 免费层取消后,小团队和个人开发者的部署选择变得尴尬:要么付费用 Render/Railway,要么手搓 Docker Compose + Nginx + Let's Encrypt。前者按量计费容易超预算,后者维护成本高、配置分散。

更大的问题在企业内部:开发团队想要"Git Push 即部署"的体验,但 Kubernetes 太重、CI/CD 管道配置复杂,运维被迫在便利性和可控性之间反复权衡。

Coolify 正是为解决这个痛点而生——一个开源自托管 PaaS,提供类 Heroku/Vercel 的部署体验,同时数据和基础设施完全在你自己手里。

方案概览

Cool...

Read more

Cilium 替代 kube-proxy:Kubernetes 高性能网络实战

痛点

kube-proxy 是 Kubernetes 默认的服务代理组件,但在大规模集群中它的 iptables/IPVS 模式存在明显性能瓶颈:

  • iptables 模式:规则数量随 Service/Endpoint 线性增长,万级 Service 场景下规则链遍历延迟显著增加,每次规则更新需全量刷新
  • IPVS 模式:虽比 iptables 好,但仍需 conntrack 表维护,UDP 场景下易出现 conntrack 表溢出,且与 NetworkPolicy 联动复杂
  • 节点资源开销:kube-proxy 在每个节点生成大量 iptables 规则或 IPVS 条目,内存占用随集群规...

Read more

Kamal 2 实战:不用 Kubernetes 也能优雅部署容器化应用

不是所有团队都需要 Kubernetes。当你的服务只有 3-10 台机器,K8s 的学习成本和运维复杂度远超收益。Kamal 2 让你用一条命令把 Docker 容器部署到任意 Linux 服务器,零停机、自动 SSL、滚动发布——没有 etcd,没有 kubelet,没有 YAML 地狱。


痛点:小规模部署的尴尬处境

  1. Kubernetes 太重 —— 3 台机器跑个 API 服务,为此搭一套 K8s 控制面(etcd + apiserver + scheduler + controller-manager),运维成本远超业务本身
  2. 裸 Docker 太原始 —— docker-...

Read more

Kubernetes Pod Security Admission 实战:3 步替换 PodSecurityPolicy,落地 Pod 安全基线

痛点

PodSecurityPolicy(PSP)在 Kubernetes 1.25 正式移除,但大量集群至今没有配置替代方案。结果就是:Pod 可以随意挂载 hostPath、使用特权模式、以 root 运行——任何一个容器逃逸漏洞都能直接拿下节点。

Pod Security Admission(PSA)是 K8s 内置的替代方案,无需安装第三方 admission controller,配置简单、开箱即用。本文带你用 3 步完成从"裸奔"到安全基线全覆盖。


方案概述

PSA 基于三个安全级别(Pod Security Standards):

级别 含义 典型场景
pr...

Read more

用 pgvector 把 PostgreSQL 变成向量数据库:AI 应用落地最省心的方案

痛点

你在做 RAG、语义搜索或推荐系统,需要一个向量数据库。调研一圈:Pinecone 要钱、Milvus 太重、Chroma 只适合原型。团队已经有 PostgreSQL 集群在跑,运维体系成熟,监控备份一套全的。这时候再引入一个独立的向量数据库,意味着:多一套运维、多一份数据同步、多一个故障点。

核心矛盾:AI 应用需要向量检索,但你不想为了这一个能力再养一套基础设施。

pgvector 的答案很直接——给 PostgreSQL 装个扩展,原地升级为向量数据库。事务、权限、备份、高可用全部复用现有体系,零额外运维成本。


方案概览

pgvector 是 PostgreSQL 的开源...

Read more

用 Crossplane 在 Kubernetes 中管理云基础设施:3 步实现 IaC 从 Terraform 到 K8s 原生的演进

痛点:Terraform 好用,但和 Kubernetes 生态割裂

运维团队普遍面临一个尴尬局面:应用部署用 Kubernetes + GitOps(ArgoCD/Flux),基础设施管理用 Terraform + 独立 Pipeline。两套工具、两套工作流、两套状态管理,带来几个实际问题:

  1. 状态分裂 — Terraform state 在 S3/Consul 里,K8s 资源状态在 etcd 里,跨系统联动靠胶水脚本
  2. 权限模型不统一 — Terraform 需要云账号 AK/SK,K8s 用 RBAC,开发者自助申请资源要走两套审批
  3. 漂移检测各管各 — Terraform pla...

Read more

用 Steampipe 以 SQL 查询云资源与安全合规:运维人的瑞士军刀,5 分钟上手实操

痛点:云资源查询散落在各种 CLI 和 Console 里

运维日常离不开这些场景:

  • "哪些 EC2 实例没打特定标签?" — 要写 aws ec2 describe-instances 加一堆 --filtersjq
  • "跨 3 个账号找出所有公开的 S3 Bucket" — 每个账号切一遍 profile,脚本写半天
  • "安全审计要检查所有 Security Group 是否开放了 0.0.0.0/0" — 手动翻 Console 翻到崩溃

核心问题:云资源数据分散在不同 API、不同格式里,缺少统一查询层。AWS CLI 输出 JSON 嵌套很深,jq 写复杂过滤几乎不可读,...

Read more