随着多云采用的增长,开发人员需要更加小心谨慎,不要为了使用提供者本地服务而牺牲应用程序的可迁移性。
云平台之间的应用程序可迁移性是多云策略的主要目标之一。虽然当企业只是使用IaaS提供商的基本计算功能时,这是非常简单的,但是当企业在该部署的更高一层提供更多本地服务时,这变得更加困难。
为了保持竞争优势,所有主要的公共云提供商都通过其他方式扩展其基本IaaS产品的功能,例如用于数据分析、事件处理和关系数据库的一系列Web服务。开发人员可以将这些附加服务编写到他们的云计算应用程序中,以实现各种任务,包括减少开发时间和成本,以及提供更多专业功能的能力。
虽然这些Web服务有益,但也会带来风险。云计算提供商具有这些服务的独特实现,即使它们在提供商之间是相似的,企业也很难采用使用Web服务的一个实现并将其插入另一个实现的应用程序组件。Web服务本身不能跨不同的云平台迁移,这意味着企业可能会丢失信息,并创建具有不兼容性的数据。
在每个组件的基础上,企业必须假设如果使用此类服务,其应用程序将无法迁移。这种限制不仅适用于多云战略中的提供商,还适用于云平台和企业自己的数据中心。例如,企业无法通过主机边界进行故障转移或扩展。
克服不兼容的挑战
Web服务不兼容有两种:第一个也是问题最少的是提供商提供基本相同的服务,但使用不同的API。这很不方便,但其解决方案并不困难,因为它不会影响企业的整体应用程序架构。
第二种也是风险更大的Web服务不兼容性是云计算提供商以不同方式构建其实际服务的地方。然后,这不仅仅是对API调用进行更改的问题,但可能需要企业更改整个应用程序设计。
多云的应用程序设计的注意事项
在部署之前,考虑开发人员如何设计混合云和多云应用程序非常重要。这些应用程序中的大多数都有前端(如GUI)和后端,后端由特定于业务流程的元素组成。在某些情况下,特别是那些涉及微服务的情况,创建边界(例如消息总线或消息队列)是有用的,它可以作为前端和后端组件之间的处理点。开发人员通常会将公共云服务用于其前端,并可能在云端和数据中心之间对这些边界元素进行一些有限的故障转移和扩展。使用此模型作为重新考虑多云部署的基础。
那么,如何解决这个不兼容问题呢?有三种可能的解决方案:
(1)用于云爆发和故障转移的单独的应用程序组件
企业希望将云爆发或故障转移的任何应用程序组件分离到多个云平台,并且不要将Web服务与这些特定组件集成。这可能会有问题,因为将Web服务用于应用程序的前端组件是很常见的。但是,企业不能在多云端部署中使应用程序依赖于这些Web服务的可移植或可扩展的任何部分。
(2)避免采用提供商特定的Web服务
第二种选择是完全放弃云计算提供商的Web服务,支持可以在任何地方运行的通用行业中间件。对于几乎每个公共云Web服务,都有一个类似的第三方或开源产品,用户可以在多个平台上托管。但问题是,这些产品并不总是与企业使用的云计算基础设施紧密集成,因此可能必须为可扩展的Web前端和可扩展数据库等开发自己的架构模型。
如果企业选择这条路径,请仔细研究开源云和容器技术,以查看是否可以使用OpenStack、Kubernetes或Mesos/Marathon的打包实现来构建其开放式Web服务 工具 包。即使软件包不包含企业需要的所有内容,它仍然可以作为多云策略的通用托管框架。
(3)使用适配器
最后一个选项是围绕企业使用的Web服务开发适配器,使每个服务与其应用程序兼容。如果企业使用许多提供类似Web服务的公共云提供程序,但通过不同的API,企业可以使用适配器 设计模式 将各种API转换为其应用程序随后可以使用的单个通用API。
如果提供商的Web服务的唯一区别在于API和数据模型,那么这相当容易。但是,如果Web服务存在体系结构差异,则可能必须将它们的抽象提升到使用通用适配器API完全表示的程度。在开始设计之前,请务必研究与给定功能相关的所有Web服务API的详细信息。
这三种策略在多云策略中最小化不兼容性问题都有自己的优点。在某些情况下,企业可能希望采用所有这三种方式。但从长远来看,可能第三种方式是企业可以采用的最好的方法。如今,云计算提供商之间的竞争日益激烈,并且这些提供商对未来的看法存在差异,这将扩大其Web服务之间的差距。而弥补这一差距的最好方法将在市场上占据上风。
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- 迁移性好、多用途,港中文提出特征分离的无监督人类三维姿态表征
- CVPR 2020 Oral:一行代码提升迁移性能,中科院计算所研究生一作
- 多云管理与安全架构迁移
- 构建安全灵活的多云环境
- 软件定义网络如何推动多云发展
- 多云管理,恺英实战之道
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
数据结构与算法:python语言实现
迈克尔.·T·古德里奇、罗伯托·塔玛西亚、迈克尔·H·戈德瓦瑟 / 张晓、赵晓南 / 机械工业出版社 / 2018-9 / 109.00元
本书采用Python语言讨论数据结构和算法,详细讲解其设计、分析与实现过程,是一本内容全面且特色鲜明的教材。书中将面向对象视角贯穿始终,充分利用Python语言优美而简洁的特点,强调代码的健壮性和可重用性,关注各种抽象数据类型以及不同算法实现策略的权衡。一起来看看 《数据结构与算法:python语言实现》 这本书的介绍吧!