锁定成本

2019 年 3 月 5 日

在我最近的客户参与中,我预见到无服务器架构非常适合。然而,采用无服务器架构的想法并没有得到我们客户的认可,因为他们担心供应商锁定。对于零售商来说,这是一个有趣的时期,因为留在 AWS 可能会意味着亚马逊作为另一家零售企业将获得竞争优势。鉴于不支持竞争对手的想法,我的客户有兴趣确保我们选择的解决方案完全可移植到其他云供应商。

从技术角度来看,确保我们能够将系统从一个平台迁移到另一个平台绝对是可取的。随着容器化的出现,为什么有人会对锁定在特定平台上感兴趣呢?当我们决定迁移到另一个平台时,我们不希望向企业展示高昂的锁定成本。因此,我们需要确保在这种情况下迁移成本尽可能低。如果我将要根据我们目前的理解为锁定成本制定一个简单的公式,它将如下所示

锁定成本 = 迁移成本 (?)

当我们只从技术角度来看待它时,这个公式是正确的。然而,不应该忽视商业视角。请记住,我们提供的技术解决方案始终旨在解决业务问题。大多数情况下,企业在采用特定技术时会获得收益。其中一项重大收益是更快的上市时间。更快的上市时间可以转化为机会收益

锁定成本 = 迁移成本 - 机会收益

机会收益非常难以衡量,因为你正在处理未知的未知。迁移成本可以进行分析和推理。相比之下,机会收益并不容易分析。你可以理论化和分析如何从一个平台迁移到另一个平台,但你如何计算抓住竞争对手市场机会的收益?从整体角度看待你的决策过程,结合技术和商业视角,你做出的锁定决策可能会带来利润。

让我们来看看构建事件驱动架构的示例。你需要在架构中选择一个分布式消息系统。如果你已经选择 AWS 作为你的平台,你将可以选择供应商特定的服务,例如 Kinesis。这些服务是完全托管的,你可以立即运行它们,从而为你带来机会收益。与像 Kafka 这样的供应商无关系统相比,这些供应商特定的服务将产生更高的迁移成本。然而,设置你自己的分布式消息系统需要更多时间来强化并使其投入生产,尤其是在你还没有经验构建此类平台的情况下。不要仅仅从迁移成本的角度看待你的决策,而是专注于如何通过使你的系统更具适应性来降低迁移成本。特别是在使用云的这个示例中,这是我们建议避免 通用云使用 的类似原因。

致谢

感谢 Chris Ford、Matt Newman、Luciano Ramalho、Tobias Vogel、Zhamak Dehghani、Kitson Kelly 和 Peter Gillard-Moss 的意见。

特别感谢 Martin Fowler 对内容的支持、建议和花费的时间以及在发布方面的帮助。