自建 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% 但防锁定。