我们喜欢讨论锁定问题。什么是供应商锁定?还有其他类型的锁定吗?云能保护你不被锁定吗?开源解决方案能否带来锁定?

答案是:视情况而定。

每一项技术选择都是一场零和博弈。学习和部署一种技术所花费的资源,不能用于另一种技术。但锁定是不同的。

客户喜欢谈论锁定,因为顾客喜欢谈论它,所以供应商也喜欢谈论它。好吧,让我们来讨论一下供应商锁定!

开始

从历史上看,所有技术都是专有的,所以技术选择就是供应商选择,供应商选择就是技术选择。你有两个选择,一个是自己开发技术,另一个是以许可成本从供应商那里购买技术。

一旦你承担了许可费用,你就有一个风险,那就是这项技术可能无法正常工作。如果你想换一种不同的技术,可以,但必须支付新供应商的新许可费用以及采用新技术的费用。采用新技术的成本有三个组成部分:许可成本(CapEx)、采用成本(CapEx)和维护成本(OpEx)。

对于大多数专有软件,一旦用户购买了许可,他们就可以继续永久使用它,只要他们能够忍受缺乏安全更新等情况。

但一些专有许可要严厉得多。对于限制最严格的专有软件,没有许可就无法继续使用。有些情况下,专有技术的用户每年都必须为使用该技术的许可付费。

这些成本导致买家采取极端保守的行为。在购买软件许可之前,客户确实希望确保该软件按声明的方式工作。在技术选择或供应商选择上的任何错误都可能极其昂贵,因此买家可以使用白皮书、咨询书面客户推荐信、与其他买家交谈、咨询Gartner或IDC等分析师以及阅读贸易杂志来核实潜在的购买。在这个时代,征求建议书(RFP)的概念变得流行起来,迫使供应商在买家承诺购买软件之前尽可能多地披露信息。

由于许可和技术采用的前期成本比维护成本更高,人们自然倾向于在很长时间内使用相同的技术堆栈并抵制更改。

开源的方式

随着开源软件的出现,软件许可成本减少。有了开源,采用和学习新技术仍有成本,但还有另一个隐藏的优势。

有了开源软件,供应商无法锁定买家。买方保留在任何给定时间选择不同供应商的权利。即使只有一家供应商销售对特定开源代码的支持,买家仍然有选择。买家可以吸引另一个供应商支持它,自己支持它,支付顾问支持它,甚至在没有支持的情况下运行它。原始供应商没有能力强迫买方继续保持财务关系。从供应商锁定的角度来看,这改变了游戏规则。

实际上,开源切断了技术选择和供应商选择的联系。你采用哪种技术以及你选择从谁那里采用它可能是两个完全不同的选择。此外,这些选择有明显不同的风险和回报。

最快的采用方式

最近,人们似乎已经忘记了供应商锁定的历史。他们不记得这一切是怎么开始的,所以有一种看法认为,几乎任何令人讨厌的技术采用都是锁定的。并不是。

开源技术仍然存在采用成本,这会产生重力,但重力和锁定是两个截然不同的概念。做任何选择都有重力。做出技术选择更是如此。但重力并不能阻止你在犯错时放弃决定。采用成本本身并不是固定不变的。

例如,假设你做出技术决策,使用开源项目来解决数据存储问题。在项目进行到一半时,你意识到这项技术无法满足你的需求,所以你必须找到一种替代的开源技术,投入时间学习和部署它,并在采用这个新项目时承担另一个风险。

这不是锁定。

锁定是一件更可怕的事情。锁定是指只有一家供应商可以提供你采用的技术解决方案。供应商锁定是指你想保留技术,但摆脱供应商时碰到的。供应商锁定指的是,如果你不支付新的许可费用或维护费用,明年甚至无法使用该技术。

即使在2021,有时买方也无法避免供应商锁定。有时,专有解决方案确实是解决问题的唯一可行方案,在这些情况下,供应商锁定是必要的。但是,在这些情况下,笔者建议使用所有发明的流程来处理这些问题:RFP、分析师、客户参考等。

开源已经改变了IT基础设施和网络,但在制造业等许多行业,供应商锁定仍然是供应商和买家之间的默认关系。

去云端应该能解决所有问题

云可以分为三层:基础设施即服务(IaaS)、平台即服务(PaaS)和软件即服务(SaaS)。虽然IaaS可以被认为是在云中租用硬件,但PaaS和SaaS需要以完全不同的方式来考虑(硬件1.0和硬件2.0)。在IaaS的服务之间进行迁移相对简单,买家可以很好地避免被供应商锁定。更高层次的服务,没有那么多。云提供商是否真的会在软件世界中获胜还有待观察,但他们肯定会像最初的硬件供应商一样,不断攀升,因为他们想为客户提供更粘人的解决方案。让我们从供应商锁定的角度来探讨这些较低级别和较高级别服务之间的差异。

通过笔者所说的硬件2.0,服务器、网络和存储在云中租用,并通过API进行配置。从一家云提供商迁移虚拟机的转换成本相当于学习一种新的资源调配API。Ansible和Terraform等工具为买家提供了一个API,可以在每个云提供商的底层API之间进行转换,从而进一步降低了这些成本。如果架构设计良好,买家只需对配置文件进行一些更改,就可以在云提供商之间移动(尽管存储仍然有重力)。

这给我们带来了与采用开源软件相当的成本。当然,有采用费,但没有许可费。你从每一家云服务提供商那里得到的最终产品在功能上几乎相当。对于特定于硬件的东西,比如Arm/x86/Power、GPU等,有一些区别,但这是正常的区别,与硬件供应商多年来所做的类似。

但服务是不同的。Amazon Kinesis、DynamoDB、ElastiCache、Simple Queue Services、TimeStream、OpenSearch、Lambda等云服务,甚至Azure DevOps Pipelines、GitHub Actions和AWS Image Builder等云服务都与租用虚拟机完全不同。

这些服务,尤其是部署单个应用程序通常需要的这些服务的复杂组合,只能从一个供应商处获得。更糟糕的是,云服务类似于最严厉的专有许可。如果不向云提供商付费,你甚至不能使用它们。通过高级专有服务的复杂组合部署,我们将供应商选择和技术选择结合在一起。甚至还有一种重构成本,类似于过去专有软件的许可成本。

总之,这组复杂的服务相当于经典的供应商锁定。如果你想把技术选择和供应商选择这样内在地联系起来,笔者鼓励你找律师、咨询分析师,并与其他客户真正做好准备。

许可的问题

这场辩论是在AWS和Redis等供应商之间的争斗中公开进行的。尽管Redis已经更改了许可,但仍在使用的许可保护了买家。如果你对Redis感到愤怒,你可以自己运行它,也可以付费咨询公司为你运行它。

另一个容易被忽略的细节是,有了Redis,买家仍然可以自由构建一流的解决方案。他们可以决定从戴尔购买服务器,从红帽购买操作系统,从Redis购买数据解决方案。或者,如果他们对戴尔、红帽和Redis感到愤怒,他们可以从谷歌租一台虚拟机,使用SUSE Linux,并支付咨询费来管理Redis层。或者,他们可以在本地使用VMware,使用Ubuntu服务器,雇佣程序员来维护Redis 50年。

钟摆是否会从云向另一个方向摆动?或者,云供应商是否真的在走之前硬件供应商的路,并将被紧随其后的开源软件初创公司所取代?

选择的悖论

错误的技术选择和供应商锁定是任何采用技术的人都需要了解的两种截然不同的风险,但它们不是一回事。糟糕的技术选择是进门的风险,供应商锁定是走出门的风险。

如果你正在迅速采用技术,试图通过冒险获得回报,你会做出一些糟糕的技术选择。糟糕的技术选择是一项核心竞争力——快速失败。你会在这些错误的选择中生存下来,从中学习,并在做出新的选择时变得更好。这是对软件驱动公司所需核心竞争力的战略投资。

糟糕的供应商锁定选择不是一项战略投资。由于绝大多数创新都来自开源,因此采用将你锁定在单一供应商的技术几乎没有风险或回报。