Skip to content
返回架构决策

自建 vs 购买

基于总成本和战略价值决定自建能力还是用托管服务/SaaS。

为什么

全自建感觉像控制但意味着你维护 10 个非产品的东西。全买感觉像速度但意味着你外包了差异化且离厂商涨价一步之遥。建购决策是把工程时间聚焦战略(建)并买商品(认证、邮件、支付、可观测)。任一方向弄错都贵:建认证在非差异化上浪费 6 个月;买核心算法意味着你无法超创新对手。决策须按能力显式。

何时使用

每个新能力,实现前。每决策 2-4 小时。厂商格局或战略变时重访。

如何做

1. 此能力是差异化吗?(对手做得更好会伤我们吗?)
   - 是 → 倾向建(或买+包专有逻辑)
   - 否 → 倾向买(是商品)
2. 有成熟托管/SaaS 选项吗?
   - 有,API+定价好 → 买
   - 无,或厂商锁定严重 → 建
3. 算每方案 3 年 TCO(见 tco-analysis)
4. 评估切换成本:若买且厂商翻倍价,离开多难?
5. 评估上市时间:买通常快 3-6 个月
6. 决策;把理由记 ADR(之后会被问)
7. 若买,前谈价+数据可移植;若建,配足人

示例

能力:用户认证(登录、OAuth、MFA)

差异化?否——每个应用都有,用户不为此选我们。
成熟选项:Auth0、Cognito、WorkOS——API 好、价合理。
自建 TCO:6 工程月 + 持续(MFA、SSO、合规)≈ 20 万 + 4 万/年
买(Auth0)TCO:2.4 万/年,1 工程周集成
切换成本:中(标准 JWT/OIDC,可移植)
上市时间:买省 5 个月

决策:买(Auth0)。理由存 ADR-014。
例外:若需差异化定制认证流,建那部分。

常见问题

  • ⚠建商品、买差异化——最贵错误;工程师建认证(有趣、非战略)并买推荐引擎(无聊、战略)。

最佳实践

  • ✓每年重访决策——去年战略的能力今年可能商品(如向量搜索 2024 从建到买)。
  • ✓若买,留薄抽象层以便换厂商——多花 10% 但防锁定。

相关资源