考虑一种新的开发环境,云工具与内部解决方案相比较,采用AWS SQS与自托管Kafka,ECS与Mesos-马拉松,Lambda/Azure函数与一系列自定义API/服务相比较。
在其他所有条件相同的情况下(财务成本、技术专长等),在决定是否使用基本VM和存储产品之外的云服务时,如何公平地衡量供应商锁定的成本?我在几个案例中看到,对供应商锁定的担忧结束了关于使用高级云服务的争论,甚至没有考虑到对其对项目的价值进行技术或财务评估。
当然,使用特定于供应商的服务是有代价的,但这种成本不可能超过所有其他软件开发成本。避免更高级别的云服务似乎是一个类似于“让我们构建一个完全抽象的ORM以防我们需要交换数据库产品”的论点。又名雅格尼。
自给自足往往是通往贫困的道路,所有软件都依赖于许多其他层才能成功: Docker、Linux、npm、gcc和其他几十个,但这些很少被视为“锁定”。在内部做任何事情的成本可能很高,包括:
那么,什么是正确的方法来公平地评估云服务,承认供应商锁定作为产品策略中的一个组件的成本,而不允许它主导其他关注呢?
发布于 2017-02-15 23:11:33
这取决于使用服务的软件的重要性。从这个意义上说,它与任何其他类型的技术“锁定”(不一定是特定于供应商)没有任何不同。如果该软件在财务上或其他方面对所有者极为重要,则风险缓解将包括隔离层,特别是对于并非在所有情况下都可用的“较高级别”服务。
YAGNI正确地建议不要编写可能永远不会使用的额外代码。另一方面,如果您认为云服务供应商的选择是风险的来源,则应该像任何其他风险一样解决它。理想情况下,您的自动化测试可以与多个供应商一起工作,并且定期以这种方式进行测试。
https://softwareengineering.stackexchange.com/questions/342331
复制相似问题