|
|
51CTO旗下网站
|
|
移动端

讨论 | 多云是个陷阱根本派不上用场?

多云因诸多原因而备受关注,但主要分为以下几点:灾难恢复、供应商锁定和定价。我会深入阐述这每一点,然后讨论多云在哪里确实派得上用场。

作者:Tyler Treat来源:云头条|2018-09-25 15:45

与客户的多次谈话中常听到多云。我们希望做到与云无关,我们需要避免供应商锁定。我们希望能够在多家云提供商之间无缝地转移工作负载。我要再强调一下:多云是个陷阱。除了取悦可能不太热衷于在亚马逊数据中心运行工作负载的少数几家大零售商外,我想不出多云应受到任何规模的企业组织优先重视的诸多理由。

乍一看,多云策略看似很棒,但它带来不必要的约束,导致劳而无功。对于大多数人来说,它最终会分散注意力,带来的问题比解决的问题还多,得不偿失。眼下,我所说的“多云”是指这个想法:在多家供应商的平台上运行同样的服务,或者设计应用程序时确保它们可以在多家提供商之间顺畅移动。我不是指这个概念:充分利用每家云提供商的最佳服务,或者跨提供商使用更高级别的增值服务。

多云是个陷阱

多云因诸多原因而备受关注,但主要分为以下几点:灾难恢复、供应商锁定和定价。我会深入阐述这每一点,然后讨论多云在哪里确实派得上用场。

灾难恢复

多云号称是实施灾难恢复的一种手段。讨论灾难恢复时,清楚地了解云提供商如何工作很重要。像AWS、GCP和Azure这些公共云提供商有区域和可用区这个概念(Azure最近才在某些区域推出了可用区,它在经历了惨痛的教训后明白可用区是好主意)。区域是某个特定地理区域内的数据中心集合。可用区是一个区域内的一个或多个数据中心。每个可用区由专用的网络连接和电源后备系统加以隔离,区域中的可用区由低延迟链路进行连接。可用区可能在同一建筑物(配备独立的计算、电源和散热等系统),也可能完全分离,相隔数百英里。

波及整个区域的故障很少见。一旦发生,这是备受瞩目的事件,因为它通常意味着半个互联网瘫痪了。由于可用区本身从某种程度上来说在地理位置上是孤立的,肆虐整个区域的自然灾害基本上相当于摧毁弗吉尼亚州的陨石。区域故障的更常见原因是配置错误及其他操作错误。虽然很少见,但确实会发生。然而,区域高度隔离,提供商在交错的时间窗口对它们进行维护,以避免多区域故障。

这倒不是说多区域的故障不可能(这与陨石摧毁美国大陆的一半面积或某个奇怪的连锁故障是同一个道理)。一些骨干基础设施服务可能跨越多个区域,这可能导致更大规模的事件。虽然采用多家云提供商显然比一家提供商的多区域策略来得安全,但是这么做成本很高。灾难恢复是个极其复杂的话题,我认为它没有得到充分的认识;我认为,实际上云端可移植性对于尽量降低那些成本而言收效甚微。不是说非得有多云才能拥有强大的灾难恢复策略――除非你的运营规模达到谷歌或亚马逊的程度。毕竟,亚马逊是世界上最大的零售商之一,所以如果你的灾难恢复策略能与它的策略相匹敌,你的情况可能已相当好。

供应商锁定

供应商锁定及相关的恐惧、不确定和疑虑(FUD)是主张采用多云策略的另一个常提到的原因。博•利顿(Beau Lyddon)在《别再浪费你的啤酒钱》(https://blog.realkinetic.com/stop-wasting-your-beer-money-12c3fe5e4d54)一文中提到了这点:

云、DevOps、Serverless。这些都是为了将常见需求包装成商品而搞起来的潮流和市场。它们可能不是完美的解决方案。是的,你最终可能会“被锁定”。但我认为,这个险值得冒一下。它没有听起来那么糟糕。Tim O'Reilly有句话概括了这一点:

之所以有“锁定”,是由于别人得益于你的服务,而不是由于你完全掌控。

我们被锁定,是由于得益于某服务。首先,这意味着我们在充分享用该服务带来的价值。而且作为一群消费者,我们享有的远不止这些。那些提供商会尽其所能,继续提供我们受益的价值。这推动其收入增长。正如O'Reilly指出,提供商实际上拥有的控制力比你想象的要弱。它们会构建它们认为有利于市场最大群体的系统。它们会专注于我们(市场上的参与者)注重的东西。

竞争是另一个重要因素。连AWS这样强大的提供商,也有很多云提供商与之竞争。虽然竞争对手试图为它们认为的市场缺口提供差异化的解决方案,但也需要满足基本需求。这就是为什么我们看到这些提供商提供如此多共有的服务。这一切有利于我们。我们应充分利用提供给我们的这一切。是的,从一家提供商转移到另一家仍会有成本,但我认为这些成本实际上远低于从本地转移到云端的成本。一旦你真正接触云,就获得了灵活性。

我看到许多公司为避免供应商锁定而经历的心理活动和赞同多云的诸多“理由”总是令我震惊。令人费解的是,公司企业却愿意把大把的钱花在根本无法让它们实现差异化的东西上。

0.png

我觉得这有几个原因。首先,正如博指出的那样,我们往往高估自己的能力,低估自己的成本。这导致我们对自建与外购这个决策判断失误。这也与宜家效应(IKEA effect)密切相关;宜家效应是指,消费者对于他们部分创造的产品赋予了高得不成比例的价值。其次,由于企业组织中的权力和影响力由IT转向业务,尤其是奉行产品理念,我认为这是IT运维部门又一次试图保住控制权和地位。

做到与云无关应该不是驱动关键决策的一个足够重要的目标。如果与云无关是你的出发点,你其实在严重限制全面获得云带来的好处的能力。你只是在租用计算机而已。Pivotal Cloud Foundry和Red Hat OpenShift之类的平台宣称能够在各大私有云和公共云上运行,但这么做本身势必需要一个抽象层将每个云平台的所有差异化功能抽取出来。如果你将差异化功能抽取出来避免锁定,你也就把价值抽取出来。你最终被供应商“锁在门外”,这基本上意味着你无法充分享用服务的价值。抽象是不是将系统简化为一个通用接口不好说。如果真是如此,不清楚它如何利用差异化的提供商功能、保持与云无关。如果不是,不清楚它的价值是什么或者它如何做到真正多云。

别对PCF或Red Hat过于刁难,但由于各大云提供商继续拆分自己的平台、以更大众化的方式重新捆绑它们,这些多云平台的卖点开始减少。在Kubernetes和容器之前的时代,即平台即服务(PaaS)的全盛时期,提供商在讲令人信服的故事。现在,由于容器、Kubernetes、尤其是谷歌的GKE和GKE On-Prem(以及其他提供商的同类产品)这类系统日渐流行,这个故事越来越难有市场。值得关注的是,最近宣布的Knative是与Pivotal和Red Hat及其他公司密切合作开发而成的,此举似乎是为了借助Kubernetes的势头,从企业采用Serverless计算中获取一些价值。

但有人需要将这些多云平台作为一种服务来运行,但问题就出在这里。这个责任通常转移到了运维或共享服务团队,这个团队现在需要在多个云中运行,可能要与供应商签订服务合同。

00.png

部署多云需要多个云平台的专业知识。PaaS可能会替开发人员将这部分抽取出来,但转移到运维人员身上。而我们甚至还没有探讨认证多个平台在安全和合规方面带来的影响。对于现在刚迁移到云的一些公司而言,这会严重破坏现状。一旦我们识破了不切实际的营销噱头,就真正深入了解多云的意义。

运行PaaS却不为客户管理PaaS,这年头根本没多少发展空间。对任何公司来说这根本不具有战略意义。我还想指出,像Pivotal和Red Hat这样的公司其收入来源主要是服务。这些平台起到了推动专业服务收入的作用。

一般而言,非战略性系统被供应商锁定给公司带来的风险很低。以数据库存储数据为例。无论是Amazon DynamoDB、Google Cloud Datastore还是Azure Cosmos DB,可能存在技术上的差异,比如NoSQL、关系数据库、与ANSI兼容的SQL和专有数据库等,从根本上来说,它们就是导入数据、输出数据。在这些数据库之间移动数据可能涉及技术活,但并非不可克服,我们从使用数据库获得的好处远压倒这个成本。依赖核心战略系统时,供应商锁定才会成为问题。这种系统可能执行实际的业务逻辑,或者是支撑公司业务的关键因素。正如乔尔•斯波斯基(Joel Spolsky)所说:“如果是核心业务职能,无论如何都要自己搞。选择你的核心业务能力和目标,在内部来搞。”详见https://www.joelonsoftware.com/2001/10/14/in-defense-of-not-invented-here-syndrome/。

定价

在支持多云的所有理由中,价格竞争力是最弱的一个理由。实际上,随着商品化程度越来越高,所有供应商都在比谁的成本最低。在提供者之间,你最终会在某些方面花费较多、另一些方面花费较少。多云价格套利(price arbitrage)是很不切实际的。另外,它没有考虑到批量折扣。我在比较AWS和GCP的文章中提到,这其实更多地归结为你在选择云提供商时想把资源投入到哪里。

定价的锁定方面(即供应商把你锁定后抬高价格)根本讲不通。首先,规模经济效应不是这样运作的。一旦你进入云端,从一家提供商换成另一家的成本远低于你在本地环境时的成本,所以这根本不符合提供商的最佳利益。它们会采取必要措施来抢占市场的最大群体,竞争力量会把基础设施即服务(IaaS)的成本降下来。由于竞争环境和赢得夺取市场份额,定价可能会趋同。云提供商想要提高利润率,就需要向软件即服务(SaaS)和增值服务迈进。

此外,大多数公共云提供商提供批量折扣。比如说,AWS提供预留实例,为EC2提供高达75%的折扣。其他AWS服务也有批量折扣,亚马逊使用合并计账来合并一家企业中所有帐户的使用情况,以便尽量降低总价。GCP提供持续使用折扣,这是在计账月的大部分时间运行GCE实例时自动享受的折扣。它们还实施所谓的推理实例,将部分使用的实例拼装成单个实例,防止更换实例时享受不了折扣。最后,GCP同样有相当于亚马逊预留实例的承诺使用折扣。如果资源分布在多家云提供商,要享受这样的折扣比较难。

多云在哪里派得上用场

没错,对于大多数企业组织而言,多云会分散注意力,并且通常如此。如果你是一家刚开始关注云的公司,多云毫无意义,只会让你看不到真正重要的东西。它会减慢速度,埋下FUD的苦果。

一些公司试图同时在多家提供商的平台上搞扩建,希望以此规避所有鸡蛋放在一只篮子里的风险。我认为这适得其反,实际上会加大结果失败的风险。对于小公司而言,挑选一家供应商,致力于产品化。尽量利用托管服务,别拿多云作为不利用托管服务的理由。对于大公司而言,在多家提供商的平台上搞扩建不是不合理,但应该通过有节制的试验来搞。而这是云的优点之一,我们可以进行有限的投入和试验,无需大笔的前期支出,面对多云PaaS产品和服务合同时要注意这一点。

但这并不意味着多云就没有一席之地。事情从来没有这么绝对。对于有多个业务部门的大企业而言,多云是不可避免的。这可能是成熟程度不一的产品团队、企业IT基础设施,当然还有企业并购的结果。多云的主要价值是充分利用每个云的优势,这也是我认为赞同多云的少数理由之一。这回到了提供商向上游迈进的话题。提供商试图以增值服务实现差异化时,多云开始变得更有意义。其次,由于数据主权方面的原因,多云可能有其必要性,但我认为随着区域和可用区普及开来,数据主权越来越不是问题。然而,谷歌的Cloud Spanner等一些服务可能因“全球可用的”服务而放弃可用区的细粒度,因此在应对GDPR之类的法规时要注意这一点。最后,对于拥有主机托管设施的企业而言,混合云始终是现实的选择,不过将主机托管设施扩展到多个云提供商的平台时会变得很复杂。

如果你刚开始接触云,多云策略不该是你要操心的。它绝对不该是你的指导目标和推动贵公司核心决策或战略项目的东西。它是有一席之地,但往往是徒劳无益的,只会分散注意心,因而忽视真正重要的东西。

作者:Tyler Treat是帮助公司构建云软件的Real Kinetic的执行合伙人。之前在Apcera公司,他负责开发NATS,这是一种面向云原生应用程序的开源高性能消息传递系统。

【编辑推荐】

  1. 【实践】成功部署多云战略的7个秘诀
  2. 成功的战略:为什么多云应该是终极游戏
  3. CB Insights:多云战略下的变数,全面解析亚马逊微软谷歌的云战争
  4. 前方高能!多云战略可参考这些提示
  5. 多云管理工具:组织可能需要的6个功能
【责任编辑:未丽燕 TEL:(010)68476606】

点赞 0
分享:
大家都在看
猜你喜欢

读 书 +更多

Cisco网络工程案例精粹

《Cisco网络工程案例精粹》是一本以案例为基础兼顾知识概述的案例性书籍,所收录的案例都是笔者精心挑选出来的在网络工作中常见的案例。 ...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊