Arquitetura
Escalabilidade
Backend
Microsserviços
Cloud

可扩展的软件架构 - 初创公司的最佳实践

对于初创公司来说,“完美的架构”是能让你明天推出产品的架构。

可扩展的软件架构 - 初创公司的最佳实践

对于初创公司来说,“完美的架构”是能让你明天推出产品的架构。 许多技术创始人陷入了“过度工程”的陷阱。他们甚至在拥有第一个客户之前就尝试构建像 Netflix 一样的[微服务4]架构。

结果:产品还没准备好,钱就用完了。

本指南重点关注初创公司的现实可扩展架构。如何快速构建而不产生无价的技术债务?

模块化整体架构

第一天就忘掉微服务吧。编排 20 个服务(Docker、[Kubernetes5、Service Mesh)的复杂性会降低你的生产力。

  • 实践:构建模块化整体
    • 这是一个单一项目(一个 Git 存储库,一个部署)。
    • 但是,在内部,代码被分成明确定义的文件夹(0、1、2)。
    • 这些文件夹不能以随意的方式相互“导入”文件。

优点:开发和测试速度快。如果初创公司发展壮大,很容易“分离”3文件夹并将其变成单独的微服务,因为代码已经被隔离。

“无聊”的技术选择

初创公司喜欢新的和“炒作”的技术。不要对您的关键基础设施执行此操作。

  • 使用“无聊”技术(Boring Technology):Postgres、Python、Node、Java。
  • 为什么?:如果你在 Postgres 中遇到问题,Google 上有答案(2010 年就有人遇到过这个问题)。如果您对上个月发布的[数据库6“XptoDB”有问题,那就得靠你自己了。
  • 招聘:聘请 PHP/Java 开发人员比聘请深奥语言的专家更容易、更便宜。

托管云 (PaaS)

不要浪费时间配置 Linux 服务器 (EC2)。

  • 使用 HerokuVercelRender 等服务。
  • 您连接到 GitHub,他们会部署、配置 HTTPS 并扩展服务器。
  • 它的成本比“纯”AWS 略高,但节省了 DevOps 工程师的工资。

“比例立方体”

考虑 3 个维度的尺度:

  1. X 轴(克隆):在负载均衡器后面旋转 monolith 的多个副本。 (简单,解决 90% 的问题)。
  2. Y轴(功能分离):打入[微服务8(仅当团队> 20人时才这样做)。
  3. Z 轴(分片):按客户划分[数据库9](例如:专用银行中的高级客户)。

结论

对于初创公司来说,可扩展架构是一种可以让您快速改变想法的架构。您的商业模式将会改变(枢轴)。如果你的架构太僵化,你就会破坏它。保持简单,使用现成的工具并专注于赚钱的代码(业务规则),而不是基础设施。

另请阅读

  • [可扩展的软件架构 - 扩展的最佳实践10
  • [可扩展的软件架构-小型团队的最佳实践11
  • [可扩展的软件架构:如何构建可增长的系统12
  • [应用中的微服务:移动分布式架构13
  • [单体 vs 微服务:选择哪种架构14
  • 【应用架构-企业最佳实践15