你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

初创公司的架构

构建初创公司是一个独特的挑战。 核心任务是在市场上找到创新作为产品或服务的位置。 此过程需要测试创新中内置的多个假设。 成功的初创公司必须反复检验这些假设,并在其产品逐渐取得产品与市场契合时发展壮大。 找到匹配点后,初创公司必须扩展以满足市场需求。

在不同的创业生活阶段,开发人员、建筑师和首席技术官(CTO)处理不同的开发阶段。 这些阶段需要基本不同的方法和不同的技术选择。 任务的一部分是确定你的创业公司的所属阶段。 选择与该阶段匹配的技术、方法和体系结构。

创新阶段

肯特贝克描述了软件产品创新的 三个阶段过程 。 这些阶段是 探索扩展提取的。 可以将此过程的不同部分视为图形:

显示产品开发的“探索”、“展开”和“提取”阶段的图形。

该图显示了针对 Y 轴“确定性/投资/变更风险”和 X 轴“时间”绘制的 S 形曲线。 该图突出显示了三个区域:上转前的初始部分标记为“探索”,sigmoid 曲线的高增长部分标记为“展开”,高原标记为“提取”。

  • 探索阶段以低斜率开始,你试图找出有效的方法。 确定性较低,你只投资少量资金,而你所做的任何更改的风险也很低。

  • 当找到产品市场契合时,图表会更快速上升。 这种快速增长是 “扩展” 阶段。 你的确定性大大增加,你投资更多,你更了解风险。

  • 最后,当曲线趋于平稳并且初创企业达到成熟时,你将进入 提取 阶段。 变化的确定性、投资和风险都很高,但增长率已经达到了一个停滞期。

探究

当你的初创公司处于探索阶段时,你势在必行的是,在许多不同的产品理念上投入少量时间和精力。 许多想法不正确这一事实驱动了探索。 只有通过迭代和学习,你才能找到产品与市场的匹配。 通过进行许多小赌注,你的目标是找到一个能够成功的产品创意。

此阶段需要纪律。 很容易在一个其实可以用更少的时间和精力测试的想法上过度投入。 一位技术专家发现,陷入这个陷阱特别容易。 若要做出便于探索的架构决策,请记住你正在探索。 你还不知道当前产品概念是否能够扩展。

从体系结构的角度来看,选择针对速度、成本和选项进行优化的服务。 使用托管服务和平台即服务(PaaS)(例如 Azure 应用服务)快速开始,而无需担心复杂的基础结构。 在探索时,通过选择免费层和较小的实例大小来管理成本。 容器支持使用任何工具进行开发,并为将来提供灵活的部署选项。

生成第一个堆栈

与你的第一个产品版本一样,你的第一个技术堆栈应该坚定地植根于探索中。 这意味着技术堆栈应该简化快速产品迭代,而无需浪费精力。 你不希望花时间或精力在回答当前问题不需要的基础设施或架构上。

在探索阶段,需要针对速度、成本和可选性进行优化。 速度指的是你能多快地构建和推进一个想法,以及如何快速转向下一个想法。 成本是运行基础结构所花费的成本。 可选性描述了在给定当前体系结构的情况下可以更改方向的速度。

平衡成本、速度和可选性非常重要。 过于关注成本限制速度和可选性。 过于关注速度可能会导致成本增加和选项减少。 针对过多选项进行设计会生成复杂性,从而增加成本和降低速度。

请考虑使用 建议的第一个技术堆栈。 此体系结构使用 PaaS 服务轻松实现,可以从最小的规模开始,并在成熟时使用可以轻松部署到不同技术堆栈上的容器和开源技术。

展开

一旦你的初创公司通过探索找到产品市场契合并实现随之而来的增长,你就会转向扩张。 你专注于消除产品和公司的持续增长的任何阻塞。 从技术角度来看,可以解决基础结构规模挑战并提高开发速度。 目标是满足新客户的需求并推进产品路线图。

扩展体系结构

在迭代产品时,你不可避免地会发现体系结构需要扩展的领域。 可能需要在后台完成长时间运行的任务,或者处理物联网(IoT)设备的频繁更新。 可能需要向产品添加全文搜索或人工智能。

可能需要进行体系结构更改,以适应路线图上的项。 抵制提前做出这些改变的诱惑。 扩展可能会增加体系结构和基础结构成本,从而增加资产负债表的复杂性。

在早期启动阶段,任何体系结构扩展都应是实时的。 扩展只需要投入测试下一条假设所需的时间和精力。 准备好删除扩展以减少复杂性。 寻找客户未使用的产品功能,作为简化体系结构和减少基础设施支出的机会。

可以通过多种方式扩展体系结构,例如:

提取

在提取阶段,当你达到市场机会的极限时,增长速度会放缓。 由于你在前一阶段进行了扩展,现在会出现很多损失,因此需要采取更谨慎的方法。 提取阶段的特点是边距扩展、成本降低和效率改进。 在提炼阶段,请注意不要损害在扩展阶段赢得的客户购买的产品。

应对增长并使技术栈成熟

一旦产品实现产品和市场适合,许多需求就会推动其体系结构。 使用量增加可能需要基础结构缩放来处理负载。 新的企业合规性要求可能需要更大的隔离。 这些更改是成功应用程序成熟时常见的步骤。

处理增长和添加成熟度所做的更改不同于扩展体系结构。 这些更改不是功能要求,而是与提升规模相关。 规模增加可能来自净新客户、现有客户的使用量增加以及法规要求较高的客户。

抵制过早优化的诱惑。 请确保采取增长和成熟步骤,以帮助继续迭代和改进产品。

后续步骤