In Pursuit of Production Minimalism

查看原文

本文讲述了一个观点:生产环境应当尽可能简单,最小化。这可以认为是 KISS 原则的推论。作者列出了 Heroku 系统设计的一些实践:

  • Heroku 管理所有用户数据库元信息的那个数据库,最后也变成了一个 Heroku Postgres -- 也变成了被管理的那个数据库。 // 尽管我觉得加剧了全部死翘翘的风险?
  • 底层技术的革新,可以让我们丢掉整个上层产品,例如因为 SNI 的引入,可以直接丢掉 ssl:ip
  • 所有用 Scala 写的产品都废弃了,用尽可能少的语言写产品,系统更好维护,有更多人力可以维护。
  • 合并一些 microservices,简化运维。

总结起来,有以下这些基本点:

  • 废弃老技术
  • 标准化,标准到一种数据库,一种语言,一种人物队列,一种webserver,一种反向代理。如果做不到,做到尽可能少。
  • 系统中的啥东西都尽可能少。
  • 刚发布的东西再观察观察。用那种发布了很多年的稳定软件。
  • 能用别人写好的技术,尽可能不自己造车。
  • 服务是要人运维升级的。如果有人已经写好了一个服务,用它就好了。