为了更好地帮助用户在借助DevOps工具缩短开发周期、提升业务效率的同时,也能让业务保持稳定、安全、可靠,且低成本地持续运营,阿里云弹性计算团队独家出品的【弹性计算技术公开课_CloudOps云上运维季】正式启动。阿里云弹性计算团队十三位产品专家和技术专家共同分享云上运维深度实践,详细阐述如何利用CloudOps工具实现运维提效、弹性降本。该系列共10节直播课程,在阿里云官网、阿里云微信视频号、CSDN官网、阿里云钉钉视频号、阿里云开发者微信视频号同步播出,本次课程由战略合作媒体CSDN独家支持。
CloudOps云上运维系列课程第四节由阿里云弹性计算技术专家白辉万主讲《ECS多场景迁移上云最佳实践》,点击下方链接进入【CloudOps云上运维】课程专题页即可观看课程回放,还可了解最新课程资讯。
【CloudOps云上运维:https://developer.aliyun.com/topic/ecs-cloudops】
以下内容根据白辉万的课程整理而成,供阅览:
随着云计算领域的蓬勃发展,企业数字化转型已然是大趋势。在上云的过程中,企业将IT核心资产服务器应用迁移上云是很常见的操作。而服务器应用的迁移在很多时候不是一件简单轻松的工作,因为其操作门槛高、花费成本大,往往成为上云路上的第一道拦路虎。今天的课程围绕ECS服务器多场景迁移上云最佳实践展开,主要分享的内容有以下三点。
1. 如何将线下服务迁移上云
服务器平台应用的常见场景可以见下图:
服务器平台应用工作负载架构如下图,架构分为上下两层,底层是Host平台,上层是Guest OS,从名称可以理解为他们是主客的关系,线下常见的Host平台一般有自建IDC机房里的物理机、虚拟机,还有一种常见的是个人PC桌面。
Guest OS层又主要分为:
最下层的操作系统,例如Linux、Windows系统,在它上层运行着各种应用软件,例如数据库应用MySQL、SQL Server等,Web网站应用Apache、Nginx、Windows平台的IIS等,文件服务的FTP,还有最后比较常见的桌面服务应用,如个人办公应用、影音编辑软件等生产力应用软件等等。而服务器迁移中的迁移对象说的就是Guest OS层。
线下服务器迁移上云的常见方案策略有:
(1)线下服务器迁移上云之3R策略
∙ 重新部署(Redeploy):这是一种将应用在云上重新部署的策略,一般适合应用软件安装部署比较简单的场景;
∙ 重构(Refactor):这是一种将应用针对云平台去重新设计开发的策略,适合应用需重新定制优化改进的场景,操作比较复杂;
∙ 重新托管(Rehost):这是一种将应用完整平迁到云上的策略。它的实际效果就像是给服务器的GuestOS直接更换了一个Host平台,而GuestOS里的操作系统应用软件数据都原封不动。这个方式是三种方式里最省心最省力的,是一种比较理想比较方便的迁移方式,也是接下来主要讨论的策略方案。
对于线下服务器,如果想把Guest os直接拿到云上去启动,是不一定能够正常跑起来的,为什么?主要原因是线下服务器系统和云上ECS系统有比较大的差异。
第一个是硬件驱动不同。线下的服务器系统用的都是通用磁盘等硬件驱动,但是到了云上ECS上面,系统用的是虚拟化的硬件驱动,比如现在主流的KVM Virtio驱动,同时也是最大、最关键的差异点。
第二个是系统配置不同。线下服务器一般的系统配置例如启动引导配置、磁盘挂载、网络配置都不太统一,各个发行版本都有各自的规则,云上的ECS系统配置相对统一,磁盘网络、配置系统都是相对比较规范的。
第三点是依赖的软件不同,线下服务器系统一般没有系统初始化或者配置软件,可能一些比较有条件的企业会在系统里装一些自动化批量运维的工具,这种方案非常多,但是没有统一的配置。云上不同的是原生自带的初始化配置的软件,包括cloud-init、云助手软件等。
正是因为有这些差异,线下的服务系统迁移上云前需要做一些Guest OS系统的适配工作,以避免上云后服务器系统内部无法正常运行,阿里云平台针对这些情况提供了ECS云服务器Guest OS的镜像标准规范以及提供了相应的制作镜像、导入镜像的流程。
(2)线下服务器迁移方案-导入镜像
首先要理解镜像的概念。镜像可以理解为服务器Guest OS模板,有了这个模板就可以去云上面创建云服务器,下面以Linux为例看一下大概的过程。
导入镜像的第一步就是需要先去查阅下导入镜像必读规范,然后准备Linux镜像文件,可以用虚拟机安装操作系统,在里面安装需要的应用软件,参考镜像规范安装云上必要的插件,比如cloud-init、Virtio驱动,还有一些定制化需求的一些配置;
第二步检测镜像是否满足规范,可以用云上的自动化镜像检测的工具;
第三步把整个系统做成镜像文件,上传到阿里云的OSS,再通过ECS导入自定义镜像的功能最终做成可用的ECS镜像。
从这边可以看出手动导入自定义镜像的方式有较多操作步骤,首先客户需要熟悉整个ECS操作系统的规范,包括后面需要上手安装配置的系统和必要的组件,整个操作过程是有操作门槛的,针对这个情况阿里云还提供了另外一种自动化迁移的方案。
(3)线下服务器迁移方案-SMC自动化迁移
SMC迁移的流程是:左边是线下服务系统例如物理机、虚拟机、特定的VMware虚拟机、个人的PC桌面,通过服务器迁移中心SMC自动化迁移产品工具,可以迁移到阿里云(最右面的服务器)包括通用的ECS服务器、轻量应用服务器、无影云桌面服务器。自动化迁移产品SMC具体是什么呢?下面来简单介绍一下。
(4)SMC自动化迁移简介
服务器迁移中心(Server Migration Center,简称SMC),是阿里云的一款免费的自助式服务器迁移产品。专注于提供能力普惠、体验一致、效率至上的迁移服务。
SMC迁移上云的一个目标是:Any Platform To Alibaba Cloud,就是支持所有主流的服务器平台的机器迁移到阿里云。
(5)SMC自动化迁移操作步骤
步骤一:导入迁移源
步骤二:创建迁移任务
主要分为两步,第一步导入迁移源。原理是在源系统里安装SMC的客户端代理工具,把它运行起来。
SMC也提供了好几种白屏化自动化导入的方式,第一种是可以通过控制台一键自动导入,需要走公网IP远程连接原服务器系统,是有条件的。第二种选择使用命令行的方式,在SMC控制台获取命令行激活码的命令,拿到原服务器系统执行,就可以一键把原服务器系统导入。第三种是为了满足没有公网访问能力或者无法开放远程连接的服务器场景,也提供了手动下载客户端的方式来导入。
导入迁移源之后,第二步创建迁移任务,只需要选择必要的任务参数,比如目标地域、要迁移的磁盘分区、以及一些其他的必要参数,后续的操作只需要静静等待迁移完成即可,它会自动化完成整个迁移过程,包括前面说过的自动化需要手动在Guest OS里面做云上规范适配的过程,包括到后面上传源系统镜像数据、制作镜像数据的过程全部自动完成。使用SMC自动化迁移是更高效更省心的迁移方式,它大大降低了迁移上云的门槛,让企业一键快捷迁移上云成为可能。
针对线下服务器迁移场景有一些最佳实践的建议。
(6)线下服务器迁移最佳实践建议
第一是建议迁移演练。迁移演练比较重要的两个点,一个是迁移源检测,客户端运行后会自动检查源环境迁移条件常规项,可选择一键自动修复;第二点是创建迁移演练任务,选择开启迁移演练的开关,填入真实迁移任务参数,等待5分钟就可以跑完真实迁移场景的测试项,包括从源系统环境到目标环境的条件检查,模拟真实的源端到目标端的网络连接、数据传输等一些测试。测试完成之后提供全面的迁移演练报告供客户参考。
第二是迁移实施。对于不同的业务应用场景建议使用不同的迁移功能。对于数据库应用服务器推荐使用增量迁移,前期先不停服全量迁移,在最后割接阶段再停服,然后进行最后一次增量同步,这种方式可缩短停服时间;同理,Web应用服务器使用增量迁移同上,前期先不切换流量,等正式割接后再把域名重新解析到新ECS服务器;对于桌面应用服务器,这种场景使用一次性全量迁移即可,因为PC桌面数据量不太多,主要是里面的应用软件要完整的上云,迁移前只需注意保存好工作文档资料。
第三步迁移验证。这是整个迁移完成之后可以去做的认证的流程。首先建议创建迁移任务时,开启镜像检测,迁移完成后,可提供检查迁移镜像检测报告,显示最后迁移的镜像结果是否符合阿里云ECS规范。其次,也可以选择使用验证迁移结果自动化的功能,原理是在迁移完成后可自动用镜像创建临时ECS服务器,然后跑一些检查系统内部应用是否正常的命令,也会生成迁移验证报告提供参考。
(7)SMC自动化迁移演练与验证示例
迁移演练报告,迁移镜像检测报告,迁移镜像验证报告
通过这些报告,可以在迁移前后掌握真实的迁移测试或者迁移验证的结果,为后面做正式迁移做好规划评估打好基础。特别推荐一定要做好迁移演练,这是能提升迁移成功率的最大保障。
前面花了较大篇幅讲解如何从线下服务器迁移上云,主要是因为在企业上云是比较常见的场景。现在在CloudOps流行趋势下,可能企业的一些服务器早就在云上了。下面讲解如何从云平台迁移到阿里云。
更多精彩内容,欢迎观看:
带你读《云上自动化运维宝典》——ECS多场景迁移上云最佳实践(2):https://developer.aliyun.com/article/1405376