迁移云计算工作负载的四个基本策略
实际上,这说起来容易做起来难。IT工程师并不会突发奇想地将整个应用程序从一个云平台移到另一个云平台,这并不是云迁移这个术语真正想表达的意思。与其相反,工作负载可迁移性反映了短期选择和长期灵活性都是可能的。决定在特定的云平台或内部部署环境中运行特定的应用程序,并不意味着需要一直在这一运行环境中运行。
现代软件开发和操作的容器化、编制和其他方面是运行环境的基础。当然,工作负载可迁移性还表明,企业至少有两个云平台或内部部署/裸机环境可供选择。
迁移云工作负载可能会遇到几个重要的问题。Red Hat公司技术布道者Gordon Haff表示,工作负载可迁移性是混合云和边缘架构的一个重要术语。
迁移云计算工作负载的4种方法
以下将深入探讨迁移云计算工作负载的四种不同的方法,以帮助用户更仔细地了解在多个运行环境中运行和迁移工作负载,以及制定整体混合云或多云策略。
(1)制定迁移云计算工作负载的标准
许多的混合云和多云环境以一种临时的甚至偶然的方式开始。这是很自然的,但正如Haff指出的那样,它们最终应该被一种更有目的性的策略所取代。
首先,要有明确的标准来在给定环境中运行和迁移工作负载。
Faction公司首席技术官Matt Wallace说:“有很多理由来决定将工作负载运行在何处。最困难的是,由于团队或合作伙伴的工作负载位于不同的云平台中,或者需要访问不同的服务,所以没有正确的答案。”
所以,把注意力集中在那些对企业很重要的具体原因上,让它们来指导企业的选择。Wallace分享了几个例子:
- 接近其他应用程序和数据——也被称为“数据引力”, 当性能/延迟成为主要问题时,这通常是一个驱动因素。
- 与其他团队和合作伙伴合作——如果他们使用特定的云平台,也可以这么做。
- 特定云平台中可用的工具集——它们并不都是一样的。
- 地理/位置问题。
- 成本。
- 规模——例如可预测的、稳定的工作负载与可能增长或资源需求激增的工作负载之间的差异。
有了一些标准,企业的目标或需求方面的额外特异性将是有益的。其性能是相当广泛的,例如性能的平衡物是延迟。定义这些术语对企业及其应用程序的实际含义,将提供更精细的决策矩阵,以便将工作负载与正确的环境相匹配。
同样,云平台的选择也不是一刀切的,特别是当超越核心基础设施时。
Liberty Mutual Insurance公司高级架构师EricDrobisewski说,“在任何云平台环境中,基础设施服务都是桌面上的赌注。除了这些核心服务之外,还要确定公有云提供商的关键要素,这些要素可以为企业的业务带来差异化的价值,并寻求利用这些要素更快地带来更大的价值。”
(2)确保每个人和每件事都配合得很好
随着时间的推移,混合云和多云环境通常会变得更加分布式和多样化。有效管理和迁移工作负载的一个关键是在不破坏一切的情况下进行更改的能力,应该能够添加新的工具或服务,并让它与现有的技术栈兼容。
Wallace在这里将这一策略提炼为一个术语:“架构”。
他补充说:“设计架构避免了陷入解释之中。利用提供可迁移性或一致性的抽象的工具是有用的。使用集中身份和安全断言标记语言 (SAML)身份验证对其他事情进行标准化也很有用。”
事实上,标准化是整合战略中的一大优势。开放标准甚至更好,特别是考虑到云计算领域的变化速度。Drobisewski指出,这对于初始集成成本和长期灵活性都是有益的。
Drobisewski说:“如果可能的话,利用各个云计算提供商采用的开放规范和标准将有助于简化集成,并提高互操作性。”
SAS公司高级软件开发经理Justin Dempsey表示,当不知道“一切”是什么意思时,很难让一切保持和谐。他的团队发现,创建一个跨多个云平台的工具和应用程序矩阵清单非常有用。这可以帮助从识别差距到确保软件供应链安全的所有事情。它还可以通知有关工作负载可迁移性的决策。
Dempsey说:“企业创建其控制的工具矩阵,并指出哪些工具是与云计算无关的、非云可迁移的或特定于云计算,这有助于企业评估从一个云平台迁移到另一个云平台所涉及的风险,或创建需要跨越云计算提供商的架构。”
尽可能多地管理代码是这里的另一个重要策略。
Dempsey说:“朝着‘一切都是代码’的方向工作是一种促进一致交付、遵守治理控制和强制测试标准的方法,这些标准可以确保新的运行环境与现有运行环境和谐相处。”
(3)管理和优化成本
云计算成本通常被过分简化为绝对成本和极端成本,例如“采用云计算服务更便宜!”(这并不总是正确的)或“为什么我的云计算账单这么高?”(可能有很多原因。)
这是另一个需要仔细设计和规划的领域。Faction公司的Wallace指出,许多可能被归类为基础设施成本的内容实际上是应用层面的问题。
Wallace说:“如果在云计算中建立一个三层自动扩展架构,用API网关和无服务器功能来处理只需很少一部分成本就可以完成的事情,那么将为使用云计算服务付出巨大的代价。”
正如Red Hat公司的Haff之前所说的那样,采用云计算服务的成本确实会变得更高昂。这并不意味着不应该使用它们,Haff解释说,“但需要了解它们在哪些地方为企业提供了更高的价值,以及你该在哪里考虑在内部部署设施运行工作负载。”
全面了解成本至关重要,尤其是在做出有关运行和迁移工作负载和数据的明智决策时。Wallace使用深度冷存储作为另一个例子,因此在使用初期的成本可能看上去并不昂贵。
Wallace说:“在某个云平台中,用户从云端取回数据的成本超过了4年的存储成本。这并不是云计算提供商的问题,而是用户对‘存储并忘记’用例的巨大需求,这些用例可以替代离线存储库中的磁带,但如果用户不将服务与用例相匹配,那么将面临高昂的成本。”
就工作负载可迁移性以及云计算成本而言,有两个主要领域需要关注:
- 可见性:有效地管理云成本可以归结为回答以下问题的能力:“谁在使用什么?”,优化云成本要能够回答“为什么?”,Wallace使用金融术语明确地提出了这个问题:“谁在什么服务上花了多少费用?”,如果这是一个黑盒,那么将难以实现成本目标。
- 数据流:迁移云计算工作负载可能会产生额外的(有时是意外的)成本,这些成本与从环境中进出的数据流相关——通常称为数据输入和数据出口。
这两种方式都需要支付费用,但数据出口的费用通常是需要注意的。
SAS公司的Dempsey表示:“数据出口费用可能会迅速增加,尤其是对于跨多个云平台或云计算区域的数据迁移。”
Wallace提到的深度冷存储示例是涉及数据出口费用导致意外云计算账单的许多可能场景之一。
Wallace说:“这在网络流量方面是最显著的,例如某人在公有云中打开一个网络网关来连接虚拟网络,每天可能为使用网关支付2.4美元,但作为一个极端的例子,每天可以产生10800美元的数据传输费用。”
在云平台之间迁移工作负载时,费用激增的可能性就会增加。
Wallace说:“当涉及到多云时,风险被放大了,因为云计算以外的网络流量更有可能产生更高的费用高。这是一种概括,但需要注意的是,必须理解这些数据流。”
(4)开发人员需要保持简单和快速
最后,不要忘记开发人员。开发者体验如今就是一切。
随着混合云和多云环境变得更加多样化和复杂,具有的一些优势(包括根据企业确定的标准将工作负载与最佳环境相匹配的控制和灵活性)取决于防止开发团队发生不必要的摩擦。
Wallace指出,这实际上取决于很多不同的因素,例如开发人员、应用程序组合、代码库、你的使命等等。
Wallace表示,这是一个理想的场景,将多云的好处与开发人员的丰富经验结合起来,可能是一个无服务器的模型,开发人员可以在内部部署或云计算开发环境中开发,几乎没有需要维护的基础设施,并且在API网关等组件中内置了节流限制等工具,以避免开发中失控的代码造成失控的成本。
将编写、测试和部署代码之间的摩擦降到最低的优秀工具对业务和开发人员都有好处,同时也是实现真正工作负载可迁移性的基础。
Wallace说:“这种设计模式对于最大化任何云平台、内部部署数据中心和边缘部署之间的可迁移性也非常好。”
Drobisewski指出,混合云和多云生态系统带来的好处可能会让开发人员将其简化。
Drobisewski说:“投资于统一技术支持并策划一系列架构良好的模式的单一市场,这些模式既安全又可以优化成本,将加快开发人员的支持,同时培养重用文化。”
最后,如果云计算工作负载的可迁移性是优先考虑的问题,那么混合云和多云实际上可以很好地配合,它们可以相互依存,从而提高开发人员的开发速度。Dempsey建议避免过于专注于特定的方法或项目管理风格。
与成本一样,也应该在应用程序级别对开发人员的开发速度进行审查。
Dempsey说,“企业的哪个应用程序没有提供某种类型的抽象——应用程序栈的哪些方面与特定的技术或供应商紧密结合?它们可能是产生摩擦的来源,如果目标是解耦并专注于创建健壮的数据交付管道,这将为开发人员和数据消费者提供长期的灵活性和集成机会。”
我有话说: