在过去几年中,云的应用一直在加速,许多组织用云托管的基础设施取代传统的数据中心,并更新应用程序以利用基于云的服务。
据Gartner说,全球公共云支出预计将从2021美元的3960亿美元增长到2022美元的4820亿美元,增幅超过21%。疫情以及由此带来的分布式工作环境的增长进一步强调了对灵活、可扩展的基于云的解决方案的需求。
但对许多组织来说,将所有数据和应用程序托管在一个云提供商上会带来不可接受的风险。服务中断、安全漏洞和意外成本增加的可能性可能会让软件团队对将其关键应用程序委托给第三方基础设施提供商感到不安。为了降低这些风险,许多组织通过在多个云提供商之间分配资源来采用多云战略。
在本文中,我们将探讨采用多云的一些驱动因素,以及这种方法的相关好处。我们还将研究多云提供商环境的一些缺点,以及在跨云提供商工作时构建环境的最佳方法。
什么是多云策略?
多云策略不仅是在多个云提供商中提供工作负载。它需要一种深思熟虑的方法来设计和部署资源,以便应用程序架构能够补充你选择的基础架构提供商的优势,反之亦然。
在多个提供商之间部署服务可能需要使用纯粹基于使用的提供商,如AWS、Azure和GCP,在同一提供商内使用不同的云服务,或包括混合使用私有云提供商。多云服务的一些更常见的架构包括:
——在提供商之间和负载均衡器后面部署容器化应用程序或服务,以实现“始终开启”的环境。
——按业务功能对服务进行分组,并在云提供商之间分发服务,每个服务都有冗余的冷启动组件。
——根据应用程序的资源需求以及每个提供商提供的特定功能和性能优势,将应用程序或服务组件与特定的云提供商保持一致。
这些架构需要一些战略思考,以确保实现的模式是一致的,并与业务目标保持一致。多云战略还必须与你计划部署的应用程序和服务的架构和设计保持一致。
多云的好处
组织采用多云战略的原因有很多。大多数组织转向多云环境,以减轻单一云环境中固有的风险。另一个主要驱动因素发生在组织想要利用不同提供商的优势和技术堆栈时。这些动机凸显了采用多云战略的三大好处:弹性、灵活性和合规性。
弹性
借助互联网的全球能力,许多组织为全球客户提供服务,并要求应用程序和系统每天24小时运行。拥有弹性环境对于确保不出现服务中断(包括云供应商环境中断)至关重要。即使是最大的云服务提供商,包括谷歌、Azure和AWS,也会经历停机。
确保关键服务不会随云而中止是多云方法的主要好处。有时,即使是在不同的云提供商上提供冷备份服务,也可以提供宝贵的覆盖范围,使企业能够实施长期修复,而不会造成严重的服务中断。例如,让web应用程序节点分布在多个供应商云中,可以使服务在供应商出现停机时保持运行,尽管资源会减少。即使将服务部署到保持空闲但组织可以打开的辅助云上,也能提供一个快速而简单的解决方案,直到问题得到解决。
灵活性
当第一次将工作负载转移到云环境中时,大多数组织都会选择一个最符合大多数标准的提供商。然而,随着这些工作量的增加,对单一供应商服务的依赖也在增加。供应商经常改变他们的策略、服务、协议和定价模式。被锁定在单一供应商可能意味着不一致、成本增加、无法获得更好的产品或被迫更新应用程序和服务。在云环境中移动和创建工作负载很容易,但如果移动是非计划的,那么进行这些更改可能会很困难,而且成本也很高。
为应用程序和服务采用多云方法可以最大限度地减少你受到供应商锁定的风险。使用相同的技术堆栈和容器化等功能,可以轻松有效地跨云环境设计和部署相同的服务。它还使企业能够选择专门的云服务,与更通用的产品相比,这些服务提供了显著的好处。
不过,确保你选择的选项是灵活的至关重要。例如,Azure Functions是一个事件驱动、无服务器的计算平台,企业可以使用它来构建和部署服务,而无需调整大小和规模以满足需求。然而,企业也可以将这些功能部署到容器中,并在Azure之外托管它们,从而在需要时提供更改服务的选项。
合规性
与避免供应商锁定类似,许多组织对IT系统合规性有特定的要求。这些合规性要求可能涉及数据隐私或主权问题,包括灾难恢复和缓解规范。
通过采用多云战略,结合评估服务和数据的合规性需求,组织可以为其关键组件建立特定的环境或架构。敏感数据集,如个人识别信息或财务信息,通常涉及严格的数据安全要求。通过多云方法,你可以在加固的私有云环境中存储敏感数据,并允许托管在公共云环境中的应用程序仅以特定的、精心控制的方式进行查询。
多云的缺点
虽然多云方法有几个关键好处,但企业应该意识到两个潜在的缺点:成本增加和环境复杂性。上述优势通常会抵消这些挑战,但如果没有仔细的规划和监督,组织很快就会发现自己的多云战略会消耗时间和资源。
复杂性
考虑到当今大多数云平台提供的服务的广度,采用单一云提供商可能会给员工带来陡峭的学习曲线。采用第二个云提供商可能会使IT员工必须学习的服务、其他多云系统和流程的数量增加一倍。对于资源有限的组织来说,确保人们在多云环境中拥有渊博的知识可能是一项挑战。这类环境需要一个跨职能的IT运营团队,该团队需要通过各种集成来保护、管理和优化多个平台和技术堆栈。
费用
第二个阻碍因素是总成本。即使当前的资源基本上在提供商之间分配,环境之间的额外流量和管理层也会增加一些成本。不了解供应商之间的成本差异,尤其是在技术堆栈上着陆时,也可能导致不必要的费用。
在计算切换到多云的费用时,一定要加上雇佣或培训员工以覆盖你选择的所有环境的成本。此外,考虑当环境的复杂性阻碍所有资源的可见性时可能发生的未使用资源的成本。虽然多云应用可以通过提供一条摆脱供应商锁定的途径来节省一些成本,但维护多个环境会带来新的成本,如果不积极监控和管理,这些成本可能会迅速失控。
你应该采取多云策略吗?
什么时候考虑采用多云策略?这个问题很难回答。由于增加了复杂性和成本,必须有一个紧迫的业务需求可以享受多云的好处。如果没有合理的理由追求多云方法,组织可能会承担额外的复杂性和成本,而不会看到任何有形的回报。
多云应用的业务驱动因素包括:
——遵守代表潜在成本或业务风险的行业或法律问题。
——通过提供不同的工具、服务和技术,提高组织的灵活性和速度。
——减少已经容器化的服务套件的停机时间。
这些例子仍然需要大幅提升和坚实的技术资源,以确保组织能够有效地采用这一战略。在考虑团队是否准备好实施多云方法时,你必须充分了解组织的目标和能力,以及可能涉及的权衡。
如何在CI/CD工作流中管理多个云部署
跨多云环境一致部署应用程序和服务至关重要。消除手动流程是保持组织工作流程一致性的基本方法,而建立可靠的持续集成和交付(CI/CD)管道是使自动化成为团队成功的一部分的最佳方法。
以下是设置CI/CD工作流以从多云环境中获得最佳效果的一些技巧:
——制定一个部署策略,使所有团队都能遵循标准化的管道。
——确保部署尽可能模块化,以允许在团队将组件部署到不同供应商时交换组件。
——采用基础设施即代码模板,提供多云支持,如Terraform和Ansible,以确保最低限度的基础设施重新配置。
——使用发布编排工具确保正确的版本到达合适的环境,并监控生产中应用程序的运行状况。
通过在基础设施资源调配和应用程序部署实践中引入更多的控制和一致性,实施持续集成和交付解决方案可以简化向多云的转变。许多CI/CD平台还提供了与工具的集成,你可以使用这些工具监控供应商的成本,并在服务降级对用户产生负面影响之前快速识别和解决服务降级问题。