首页 > 其他分享 >将应用迁移至云端面临的问题​

将应用迁移至云端面临的问题​

时间:2022-10-26 19:01:41浏览次数:48  
标签:状态 架构 基础设施 扩展 通常 应用 软件 迁移 云端

传统软件的架构设计就是为了运行在公司的企业防火墙内。如果软件开发是在数年以前完成的,那么软件对其运行所处的物理硬件甚至开发使用的技术堆栈非常可能有着很高的依赖性。通常我们称之为“紧耦合”架构,因为如果从特定的物理环境中分离出来之后,软件将不能正常运行。云计算架构要求的是一种“松耦合”的架构。弹性是云计算的关键组成特性之一。而真正具有弹性,意味着软件能够按需进行扩展或缩减,而且必须不受运行所处物理环境的限制。​

大多数遗留(legacy)架构在进行构建时,从未考虑过系统随交易量上升自动扩展的问题。传统的扩展技术通常只意味着垂直扩展。垂直扩展通过增加现有硬件来完成,也就是说在现有的基础上增加更多的CPU、内存或磁盘空间,抑或以更大或更强的硬件来替换现有的基础设施。垂直扩展也是人们所说的“纵向扩展”(scaling up)。垂直扩展对软件的要求不会太多,通常只限于进行配置更改,保证在基础设施条件类型不变的前提下能够使用新设备。​

在这种扩展策略下,架构师在设计软件时通常不会考虑如何脱离基础设施限制的问题。举例来说,如果某个应用基于IBM的iSeries计算机构建,那么通常在开发软件时就会从尽量充分利用专有基础设施性能的角度进行,从而不可避免地出现软件与硬件紧耦合的情况。迁移这样的应用可能就必须进行较多的再造工程,移除软件对iSeries的依赖性,使其在云中能够变得具有弹性。而一个具有弹性的系统,则意味着能够处理不曾预料到的、突然爆发的工作负载。​

虽然云的伸缩性可以通过垂直扩展来体现,但是大多数情况下还是通过自动化的水平扩展来完成。水平扩展的完成方式是在现有的基础设施之外增加其他共同运行的设备,通常也被称为“横向扩展”(scaling out)。水平扩展通常涉及系统架构的多个层级。一些常见的水平扩展方法是按照服务器类型(见图1)、客户类型及应用领域类型(见图2)等增加节点。​

将应用迁移至云端面临的问题​_松耦合

图1按照服务器类型​


将应用迁移至云端面临的问题​_云计算_02

图2按照客户类型扩展​

遗留应用程序面临的另一个挑战是系统的设计是“有状态”(stateful)还是“无状态”(stateless)。云服务是无状态的。一个“无状态的”服务是指服务不知道前一个请求或响应的任何信息,只知道服务处理给定请求这一持续期间的信息。无状态的服务在客户端而非服务器端存储应用的状态,因此对基础设施没有依赖性。​

无状态架构比有状态架构更适合云。将底层架构从保持状态转变为无状态的工作通常都不太可行,对应用进行整体替换反而更为现实。如果公司想要充分利用云计算的各种优势,那么将遗留的有状态应用迁移至云端可能会收到令人失望的结果。​

总之,除非本地应用在进行架构设计时,就是按照可被其他技术和无关基础设施的服务访问的一系列松耦合服务的理念进行的否则,迁移至云端或者需要进行较多的工程再造工作,或者可能会从云服务中收益少,抑或可能根本就不可行。​

建议确定架构师真正理解了无状态和有状态设计模式之间的差异其次,弄清楚应用程序是否适合迁移至云端,抑或托管、重新编写等才是更好的选择。​



标签:状态,架构,基础设施,扩展,通常,应用,软件,迁移,云端
From: https://blog.51cto.com/u_15735635/5798164

相关文章

  • 实验7:基于REST API的SDN北向应用实践
    (一)基本要求编写Python程序,调用OpenDaylight的北向接口实现以下功能(1)利用Mininet平台搭建下图所示网络拓扑,并连接OpenDaylight;(2)下发指令删除s1上的流表数据。创建并......
  • 将应用迁移至云端面临的问题
    传统软件的架构设计就是为了运行在公司的企业防火墙内。如果软件开发是在数年以前完成的,那么软件对其运行所处的物理硬件甚至开发使用的技术堆栈非常可能有着很高的依赖性......
  • istio部署demoapp应用 (十一)负载均衡
    destinationrule-demoapp.yamlapiVersion:networking.istio.io/v1beta1kind:DestinationRulemetadata:name:demoappspec:host:demoapptrafficPolicy:......
  • 实验7:基于REST API的SDN北向应用实践
    实验目的能够编写程序调用OpenDaylightRESTAPI实现特定网络功能;能够编写程序调用RyuRESTAPI实现特定网络功能。实验环境下载虚拟机软件OracleVisualBox或VMwar......
  • istio部署demoapp应用 (十)流量镜像
    virtualservice-demoapp.yamlapiVersion:networking.istio.io/v1beta1kind:VirtualServicemetadata:name:demoappspec:hosts:-demoapphttp:-name:......
  • 实验7:基于REST API的SDN北向应用实践
    实验7:基于RESTAPI的SDN北向应用实践一、基本要求编写Python程序,调用OpenDaylight的北向接口实现以下功能(1)利用Mininet平台搭建下图所示网络拓扑,并连接OpenDaylight ......
  • postgresql迁移表空间
    环境:OS:Centos7DB:13.8 1.创建新表空间自定义目录su-postgres[postgres@host134pg13]$mkdir-p/opt/pg13/mytps012.创建表空间postgres=#createtablespaceh......
  • 实验7:基于REST API的SDN北向应用实践
    (一)基本要求1.编写Python程序,调用OpenDaylight的北向接口实现以下功能(1)利用Mininet平台搭建下图所示网络拓扑,并连接;(2)下发指令删除s1上的流表数据。delete.py的代码#......
  • 宜搭自定义页面表格添加远程数据源,并读取同应用下的表单提交数据
         说明:参数那里需要指定表单ID,且表单要有提交的数据记录,“数据字段”需要指定表单对应组件的ID;数据源绑定对应的远程变量......
  • istio部署demoapp应用 (八)故障注入
    故障注入故障注入有两种典型的场景delay:注入“延迟”abort:注入“中断”virtualservice-demoapp.yamlapiVersion:networking.istio.io/v1beta1kind:Virtu......