2023-12-18 软件开发“白痴指数”


“白痴指数”,用来计算某个制成品的成本比其基本材料的成本高多少。软件开发“白痴指数”,用来计算计算机软件总成本比功能相关成本高多少。

  • 总成本(功能相关 + 非功能相关):设计、开发、测试、部署、配置
  • 功能相关:设计、开发

测试、部署、配置等非功能相关的成本越高,项目水分越大。

为什么我突然想写《软件开发“白痴指数”》 ?

今天我负责 release 一个新版本,需要配置一个 connection token,我花了大约 3~4 个小时才完成,差点没把我累死。😭

就是一个环境变量啊,干嘛搞得这么复杂呢?

美其名曰:架构安全。但是软件系统的安全是木桶效应,瓶颈不在最高的那块板,而是在最低的那块板。DevOps 搞得这么复杂,复杂到 DevOps developers 都不能完全理解和 100% 保证正确。最低的那块板就变成了维护如此复杂 DevOps 的人了。这里推荐阅读《社会工程学》 😂

简单记录一下我今天干了什么:

  1. 使用 terraform 在 GCP 创建一个 Secret Manager,用来储存密钥。
  2. 在 k8s 中配置 secret-manager client,用来在读取密钥。
  3. 使用 terraform 为 k8s 配置 Secret Manager 权限,没有权限读不到密钥
  4. 更新 k8s container image tag,得到 k8s load-balancer 切换 pod。
  5. 使用 Postman 调用 health endpoint,并查看 container image tag 是否正确
  6. 查看 metabase 已确定 database migrations 正确执行
  7. 查看 datadog, Google Pub/Sub subscriptions, 等等周边服务

关键是上面这些操作全都要通过 gitlab MR 和 CICD,美其名曰 GitOps,😂

  1. 编写 yaml
  2. 提交 gitlab MR
  3. 请求 review
  4. 合并 MR,并等待 CICD
  5. 确认 CICD 结果

我累死了,也傻掉了,太麻烦了。反复在 gitlab repositories 间横跳、提交 code、等待 review、执行 merge、继续等待,啊啊啊啊啊啊

最后再说一遍

软件开发“白痴指数”,非功能相关的成本越高,项目水分越大。