Master
发挥云服务的真正潜力

即使很多企业高管层仍将实现企业现代化作为其发展目标的重中之重,但对于一些企业领导者,尤其是那些误以为云服务的潜力就在于可以助其节省成本的领导者而言,云服务已经失去了光彩。这种错误的思想是可以理解的。毕竟,云服务可以“按使用量付费”,企业采用这种运营支出模式,就能免去部署数据中心之类的长期投资。这种模式的优势颇为令人心动,而且也不难理解。再者,这似乎并不是一个空洞的希望,因为只要实施得当,迁移到云端确实可以为企业节省大量成本。


但是,许多企业高管已逐渐意识到,“实施得当”内含复杂的深意。很多企业急于节省成本,结果却发现自己的云迁移战略未能实现目标。市场研究机构 IHS Markit 进行的一项研究发现,在接受调查的公司中,有近四分之三已经将基于云的应用程序迁回公司内部,原因是没有实现预期的收益。

Three-quarters of firms have moved cloud apps back on prem
Three-quarters of firms have moved cloud apps back on prem

然而,这并非向云端迁移的必然结局。企业可以通过云战略实现真正变革。利用云服务,企业可以灵活地根据自身需求匹配相应计算资源,依据具体情况扩大或缩小规模。云服务可以支持创新工作,并提高企业的安全性。云服务甚至可以帮助企业更好地保护环境,实现可持续发展。但是,要实现这些目标,就需要制定一个计划,使 IT 资产尽可能达到“云原生”状态。为此,我们要深谋远虑,并且甘愿做出艰难的决定。


快速行动,快速失败


ThoughtWorks 澳大利亚技术负责人 Scott Shaw 认为,过于关注成本会严重损害云迁移工作。他表示:“如果以为只要将工作负载迁移到云端,就能立竿见影,结果很可能会大失所望。实际上,应该做好成本增加的准备。”


其原因是,在仓促迁移到云端的过程中,有太多企业采用了“整体平移 (lift and shift)”的方法,也就是将现有的架构、安全实践和 IT 运维模式简单地复制到云端。


Shaw 认为,这种方法不仅无法发挥云服务的真正潜力,而且还可能增加成本。很多企业应用程序并不是为在云中运行而设计的。如果还像在数据中心那样,在云中运行这些程序,就会导致其性能欠佳。您可能会发现,如果应用程序的架构是为在数据中心运行而设计的,那这些程序在云中运行时,会产生大量的网络流量,而这是需要付费的。


“除非已经投入资金来修改应用程序,使之可以充分利用云服务的优势,否则就会发现使用云服务存在很多隐藏的费用,而使用数据中心时是无须支付这些费用的。”


在某些情况下,企业领导者可能会认为,既然他们以前通过将客户关系管理系统从本地迁移到云端来就可以立即节省成本,那现在也可以将其他传统系统迁移到云端,再次节省成本。实际上,他们一开始实现的那些回报源自于迁移到云原生系统。而单纯地整体平移传统系统,并不意味着针对云服务实现了优化。


通过针对云服务进行优化,可以节省成本。在与我们合作的一个客户公司,ThoughtWorks 帮助他们实现了响应式和动态式的用户界面,即仅根据需要刷新和加载 UI 组件,而不是整页加载,从而将该公司在云端运维所需的计算资源减少了 50%。结果,这个客户节省了 25% 至 30%的基础设施成本。

Optimizing applications for the cloud can result in significant savings
Optimizing applications for the cloud can result in significant savings

云服务调配起来非常方便,这无疑是一项诱人的优势,但也是一把双刃剑。ThoughtWorks 北美技术总监 Cassie Shum 指出,企业常犯的一个错误是,在没有首先实施适当治理的情况下,就迁移到云端。


她表示:“在这类企业中,所有开发人员都会在非生产环境中启动多个云实例,来执行某些测试。在没有实施适当检查的情况下,他们会任由这些实例持续运行。于是首席财务官就会纳闷,为什么成本在急剧上升。”


结果,企业先是仓促迁移到云端,之后又迅速撤回,这种情况越来越普遍。


Shaw 认为,之所以出现这种情况,一个原因是企业仍然局限于传统的 IT 购买思维。企业误以为,迁移到云端,就必须选择单一供应商,并与之签署一份大型企业协议。“实际上,云服务并非如此,企业需要用另一种方式,来思考如何充分利用云服务。”


利用云服务实现节省成本之外的更多优势


ThoughtWorks 智利技术负责人 Alexandre Goedert 表示,要避免对云服务感到失望,一种策略是,从一开始就不要只谋求成本效益。云服务不仅绝对可以节省成本,还具有更广泛的优势,例如可以提高敏捷性,能够快速应对变化。在经历了 2020 年疫情之后,这些优势不容低估。


云服务可以为企业提供的一个主要优势是资源伸缩性,即能够在需求高峰时扩展计算资源,而在需求减少时缩减计算资源。Goedert 指出,将计算资源的支出与对计算资源的需求相关联,这种方法能激起财务部门的强烈共鸣。而如果对资产进行优化,使之可以在云端运行,则更容易实现这种关联。


云应用程序可以轻松扩展,其优势不仅限于动态调配。Shum 解释说,与她合作的一家金融服务公司被迫从其大型机上迁移出来,因为按照该公司的增长计划,此大型机根本无法应付他们能预测到的交易量增长。“这给他们迁移到云端提供了强大动力,但也构成一大挑战。如果希望在一夜之间完成迁移,那这个过程很可能会挫折重重。”


Shaw 表示,创新也可以成为向云端迁移的强大动力。云端是测试数字化产品的理想环境,因为您可以向开发团队赋予很多自主权,让他们能够以较低成本快速构建自己所需的小规模环境。“如果实验成功,他们就能够直接扩展其所构建的环境规模,实现增长。”他补充说。


云服务中的共享安全性


十多年前,当云服务首次出现时,许多企业领导者都对其安全性表示担忧。他们熟悉其数据中心采用的固定安全边界模式,并怀疑第三方能否提供这种强大的保护。


Shaw认为,事实证明,将工作负载迁移到云端可以提高安全性。


Shaw 表示,在云端实现安全运维的关键,是理解这种责任共担模式,即在企业和云服务提供商之间厘清责任的边界。“这可能是一个艰苦的过程,尤其是对于受到严格监管的行业。而且这会减缓向云端迁移的速度。但是,当以云原生方式构建应用程序时,就会看到好处。”


这些好处包括:

  • 为企业分担部分责任。尽管企业仍然需要担负重要责任,确保能安全访问云端的服务,但企业所使用的计算、网络、数据库和存储服务,则由云服务提供商来负责。
  • 实现高度自动化。云服务提供商拥有大量的安全扫描工具,可以确保实例和容器遵循定义的模式。借助这些自动运行的漏洞检查功能,可以随时了解最新的威胁情况。
  • 快速完成修补。由于云服务具备高度自动化的特性,在发现新漏洞后,通过云服务能够快速部署补丁程序。这可以显著降低系统遭受攻击的风险,而传统的补丁程序管理流程则很费时费力。
  • 易于重建。云服务可以提供一个托管环境,企业在其中运行的所有应用都应达到指定状态。这些环境设计为定期进行销毁和重建,而不会丢失任何重要数据。因此,一旦发生恶意软件攻击,企业可以快速将其环境恢复到安全状态。

云迁移的模式


Goedert 指出,由于云服务需要采用不同的思维方式,许多企业只有在获得一些向云端迁移的经验,并能够从错误中吸取教训后,才会改变思维方式。



他认为存在四种常见的云迁移模式。

Patterns of cloud migration
Patterns of cloud migration

整体平移


尽管整体平移存在诸多风险,但这仍然是最常见的云迁移模式。Shaw 说,在企业的数据中心生命周期即将终止时,采用这种模式是可以理解的。“在那种情况下,很少有公司愿意再签订一份为期 20 年的数据中心合同,因此整体平移成为一种可行的选择。”


与 Shaw 合作的一些公司就做出了这种选择。采取这种迁移模式的公司几乎都计划在以后为应用程序重新设计架构。“但实际上,没几家公司能实现这一点。”他补充说。


重建关键业务系统平台


要优化应用程序,使之适合在云端运行,组织首先会想到的是重建平台,也许他们会将应用程序从传统的关系数据库,迁移到在云端运行的数据库上


重建平台的优势在于,企业能充分利用某些云服务功能,而不必费力分解对业务至关重要的大型复杂单体应用程序。


重新设计单体应用程序架构


要充分利用云服务的优势,可能需要重新设计单体应用程序架构,即,将单体应用程序分解为零散的组件,并以云原生的方式进行重新构建,然后逐渐将整个应用程序迁移到云端。


Shum 认为,这项工作可能需要付出多年的努力。因此,业务团队和 IT 团队必须提前开始密切合作。“如果没有切实的业务用例需要我们努力推进这项工作,大家就会陷入云服务‘疲劳’状态。因为大家都无法即时看到成本效益。”她补充说。


如果 IT 团队与业务团队之间建立了牢固的关系,从长远来看,分解单体架构可以极大地提高企业敏捷性。


尽管如此,分解单体架构依然是一项艰巨的任务。ThoughtWorks 通常主张采用功能薄片的方法,一个功能薄片代表一个可以迁移到云端的完整功能。“通常,我们会建立一个矩阵,研究主要有哪些业务功能可以通过向云端迁移立即创造价值。”Shum说。


“在切分功能薄片时,应该包含技术和架构的各个层次。切分出来的功能薄片,应该能够推动诸如持续集成和交付流水线之类的实践,这些实践将为实现云原生应用发挥核心作用。”


采用 Polycloud


一段时间以来,ThoughtWorks 一直倡导 Polycloud 的概念。这种使用云服务的方法,不仅拒绝仅与一家云服务提供商签订企业协议,而且也不认同企业应该为了能够更方便地在云服务提供商之间迁移而采用最常用的云服务。


Shaw 认为,虽然 Polycloud 的理念代表较高的云成熟度水平,而当今没有多少企业能够达到这种水平,但仍有充分的理由去为之努力。


当今各大云服务提供商的核心产品虽然很相似,但确实存在重要差异,比如在数据隐私或机器学习功能方面。对于某些工作负载,换一个供应商可能会带来显著的好处。


企业还应该考虑其应用程序的生命周期。“对于像银行核心系统这样可以使用 10 年左右的产品,企业是否真的想将自己一直与一个供应商捆绑在一起?”Shaw问道。


Polycloud 和多云 (multicloud) 之间也有区别。Polycloud 是指企业先评估哪些云服务功能最适合自己的需求,然后在此基础上使用由多个云服务提供商提供的不同云服务功能。相对而言,多云则是指在不同的云端使用相同的功能和部署应用程序。有时,使用多云的目的是为了解决 SLA 问题而进行备份。Goedert 说,企业经常出于业务连续性的原因而采用多云战略,特别是当他们认为供应商无法满足他们的服务水平协议要求时。



有别以往的云服务


可以看到,企业要发挥云服务的潜力,就要在组织内部进行重大变革,包括从改变 IT 购买行为,到改变应用程序的架构设计,再到改变团队的工作方式。Shaw 说:“这项工作要付出多年的努力,而且可能无法正确解决所有问题。”


胜利者将是这样的企业,他们有足够的勇气从这些错误中吸取教训,而不会临阵退缩,重新采用旧的工作方式。Goedert 说:“归根结底,迁移到云端可以加速实现企业现代化,但需要认真规划如何成功实现迁移。”

探索最新一期技术雷达