AWS是Amazon提供的云服务,与on-premis环境(企业在数据中心或公司设置的机房运行的环境,企业是该环境的所有者)相比,AWS提供了降低初期费用、缩短交付周期等灵活性。

可以从任何地点或设备访问云端服务的时代,与云端发生着大量的数据交互。在没有了解其优势及劣势的情况下贸然上云,可能会导致上云交付延误、运营成本增加等问题。

那么,单纯地从on-premis环境迁移到AWS环境就可以吗?在这里介绍on-premis环境和AWS环境的特点及迁移策略。

on-premis VS AWS

on-premis环境迁移到AWS环境有各种各样的课题,在这里确认一下其优势和劣势。

项目 on-premis AWS
预算 可做出准确的预算 难以做出准确的预算(需要一定的浮动预算)
费用 需要初期投资费用及运营费用 无需初期费用,按量付费
交付时间 周期长 周期短
扩展性 低扩展 高扩展
定制性 可完全定制化 相对于on-premis,受到云平台的限制

当一个项目启动时会有预算,当然也包括对基础设施的预算。on-premis环境上,机柜、服务器、网络设备、网线、上网宽带等都可以做预算,当部署完成之后基本不会发生额外的费用,因此可以做到接近100%的预算。但当使用AWS时,收费维度的多样化导致需要一定的浮动预算。例如按量收费的网络流量,磁盘IO是其中的典型。

on-premis环境根据使用系统的用户量和访问量需要购买所需的物理设备(初期投资),后期无论是否使用该资源费用不会发生变化。更重要的这些物理设备需要维护(一般会购买设备厂商提供的维修服务)。在运营方面,随着系统的老化,需要定期的更新(一般5年左右需要更换物理设备等)、升级系统/中间件等的费用。

AWS只需注册一个账户(一张信用卡和1美金的账户),可使用AWS大部分的地区的各种各样的服务,并且按量付费(类似我们交水费一样,根据用水量交水费)。IaaS当中的代表服务器(EC2)为例,需要时启动服务器,用完之后可随时释放资源,节省费用。

在AWS上5分钟就可以启动一台服务器(EC2),并登录服务器开始进行安装及配置,而在on-premis就需要物理设备的发注、搬运、上架(部署到机柜)、布线、安装系统等步骤,因此交付周期一般比AWS长。

AWS是公有云理论上我们可使用的资源是无限的(最大是AWS提供的所有物理设备),而在on-premis可使用的资源是购买的物理设备的总和。可使用的资源的总量,决定了AWS的扩展性相对高于on-premis。需注意的是,AWS资源也不是无限的,例如我们偶尔会碰到因资源不足无法启动指定类型EC2的情况,如前面所说AWS是公有云不是企业专属的私有云,大家都在占用/释放资源时会出现资源不足的情况,使用reservation来防止这种情况的发生。

无需提前采购硬件设备,而是根据业务需要,随时创建所需的资源。在使用过程中,随着业务的扩展,可以随时扩容磁盘、增加服务器的CPU和内存(ScaleUp)。

根据AWS责任共担模型,虚拟化基盘和网络是AWS的责任,这使得和on-premis环境相比定制化和出现问题时的全面调查相对困难。而on-premis环境企业可完全控制该环境,所有的责任也都在于企业本身,因此可根据企业的需求进行定制化。

迁移策略

下面是AWS提倡的迁移策略”7R”,7R总共有7种迁移策略并以字母”R”开头。

  • Relocate(vMotion)
  • Rehost(lift&shift)
  • Replatform
  • Refactor
  • Repurchase
  • Retain
  • Retire

其中Repurchase、Retain、Retire 3个不属于迁移到AWS的策略,接下来确认其余4种策略。

Relocate

对于不想修改现有本地虚拟环境而迁移到AWS的场景,建议使用Relocate。
Relocate是将虚拟环境(例如本地VMware环境)迁移到”VMware Cloud on AWS”的方法,该方法可以在不进行任何修改的情况下,迁移现有应用程序数据库到AWS。

Rehost

早期不少企业使用Rehost的方法上云之后进行进一步优化,先上云后优化建议使用Rehost。
“Rehost”也称为“直接迁移”,是一种在不改变当前环境设计的情况下迁移到AWS的方法。首先通过迁移到AWS来提高基础设施管理的效率。之后进行优化(重构等),以最大限度地发挥云平台的优势。可使用CloudEndureMigration、AWS Server Migration Service等服务,将私有云环境的虚拟机或者OS镜像复制(Replicate)到EC2。

Replatform

如果想更多地使用AWS提供的托管服务的优势,建议使用Replatform。
“Replatform”是一种优化操作系统和数据库等平台,同时保持应用程序架构相同的方法。尽管由于平台更改需要进行测试,但能享受AWS提供的备份和冗余等托管服务的优势。

Refactor

如果想最大限度地发挥AWS的优势,建议使用Refactor。
“Refactor”是对云原生的重新设计。将系统重新架构为云原生。因此需要拥有丰富的AWS知识和安全的架构师来进行实施。虽然难度较高,但可以享受更多好处,例如减少迁移后的操作负载以及由于Serverless带来的成本降低等。

经常会在上云计划里看到AWS环境和和on-premis环境的初期费用及运营成本等影响成本的因素进行比较的情况。然而,不适当的系统架构、预算及后期的运营方式,反而会增加成本。并且习惯于on-premis上运维的运维人员,上云后需要学习AWS服务,有可能会增加运维人员的负担。因此初期建议将迁移计划保持在最低限度,确认可行性和投资回报后依次进行迁移。

“上云”并不能解决所有问题,需要根据自身情况选择适合的才是重要的!