洞察 技术栈

“无聊”的技术栈正在胜出,这是好消息

一个关系型数据库、服务端渲染的页面、一家大家都熟悉的云。去年我们见过最可靠的系统,用的全是没人会放上大会幻灯片的组件。

每隔几年,行业就会重新发现:能工作的最简单架构,通常真的就能工作。今年正是这样的一年。过去十二个月里我们为客户评审过的系统中,运行最便宜、最容易交接、改起来最快的那些,都有一个共同点:它们很“无聊”。

这里的“无聊”有具体含义:一个关系型数据库,通常是 Postgres;大部分页面在服务端渲染的应用;只用一家云厂商,而且主要用它最朴素的服务;真正需要队列的地方才用队列;一套新同事第一天下午就能看懂的部署流程。

钟摆为什么摆了回来

过去十年,行业为“规模问题”准备了一整套工具:微服务、事件流、多种数据库混用、一切都放在客户端。这些都是解决真实问题的真实工具。麻烦在于,大多数新西兰企业并没有这些问题。一家有四万客户、十来个开发者的公司,面对的不是 Netflix 式的难题,而是招人难、交接难、预算紧。

复杂度有持续的运行成本,而这笔成本很少出现在最初的商业论证里。每多一个服务,就多一样要监控、打补丁、做安全、写说明的东西;每多一个数据存储,就多一个记录可能对不上的地方。等最初搭建它的团队离开,架构图就成了考古文物。

我们的默认技术栈
任何偏离这个默认方案的决定,都要书面论证,并算上运行成本。

“无聊”能换来什么

  • 出错的方式更少。 一个单体应用连一个数据库,故障模式屈指可数,而且都有完善的文档。分布式系统的故障是排列组合。
  • 人更好招。 Postgres、主流 Web 框架、标准云平台,这些技能在奥克兰或基督城都能招到,不用付猎头溢价。
  • 改得更快。 一个功能只动一个代码库、一套表结构,一天就能上线;要动四个服务,就得先开个会。
  • 成本透明。 一台数据库服务器加几个应用实例,账单能预测到几个百分点以内。

“无聊”不等于“陈旧”

这不是在反对新技术。现代 Postgres 能做的事,过去要三个独立产品:JSON 文档、全文检索、用于 AI 检索的向量相似度、逻辑复制。现代服务端渲染框架能做出交互丰富的页面,而不必下发一兆字节的 JavaScript。选择“无聊”,是选择成熟工具的当前版本,而不是停留在 2012 年。

它也不意味着永远不拆分。当系统中某一部分确实有不同的扩展、安全或发布需求——支付集成、繁重的批处理、有自己客户的公共 API——就把它拆出去。检验标准是:你能不能说出是哪一种具体压力让这条边界值得存在。

一个好用的默认选项

开始一个新项目时,我们的默认方案是:一个代码仓库、一个可部署的应用、一个 Postgres 数据库、服务端渲染页面并只在值得的地方加交互、托管式部署。任何偏离这个默认方案的决定,都要书面论证,并把运行成本算进去。

大多数项目从来不需要偏离它。需要偏离的那些,也会因为被迫说清理由而变得更好。

继续阅读
全部洞察

从两周诊断开始。

先做 60 分钟评审,再进行固定费用的两周诊断。结束时你会拿到一份带预算的路线图,是否继续合作没有任何附加条件。

邮箱
admin@yondertech.co.nz
办公地址
23A Dromorne Rd, Remuera
Auckland