带你读《云上自动化运维宝典》——ECS多场景迁移上云最佳实践(1)

简介: 带你读《云上自动化运维宝典》——ECS多场景迁移上云最佳实践(1)

为了更好地帮助用户在借助DevOps工具缩短开发周期、提升业务效率的同时,也能让业务保持稳定、安全、可靠,且低成本地持续运营,阿里云弹性计算团队独家出品的【弹性计算技术公开课_CloudOps云上运维季】正式启动。阿里云弹性计算团队十三位产品专家和技术专家共同分享云上运维深度实践,详细阐述如何利用CloudOps工具实现运维提效、弹性降本。该系列共10节直播课程,在阿里云官网、阿里云微信视频号、CSDN官网、阿里云钉钉视频号、阿里云开发者微信视频号同步播出,本次课程由战略合作媒体CSDN独家支持。

 

CloudOps云上运维系列课程第四节由阿里云弹性计算技术专家白辉万主讲《ECS多场景迁移上云最佳实践》,点击下方链接进入【CloudOps云上运维】课程专题页即可观看课程回放,还可了解最新课程资讯。

 

CloudOps云上运维:https://developer.aliyun.com/topic/ecs-cloudops

 

以下内容根据白辉万的课程整理而成,供阅览:

 

随着云计算领域的蓬勃发展,企业数字化转型已然是大趋势。在上云的过程中,企业将IT核心资产服务器应用迁移上云是很常见的操作。而服务器应用的迁移在很多时候不是一件简单轻松的工作,因为其操作门槛高、花费成本大,往往成为上云路上的第一道拦路虎。今天的课程围绕ECS服务器多场景迁移上云最佳实践展开,主要分享的内容有以下三点。

 

image.png

 

1. 如何将线下服务迁移上云

服务器平台应用的常见场景可以见下图:

 

image.png

 

服务器平台应用工作负载架构如下图,架构分为上下两层,底层是Host平台,上层是Guest OS,从名称可以理解为他们是主客的关系,线下常见的Host平台一般有自建IDC机房里的物理机、虚拟机,还有一种常见的是个人PC桌面。

 

Guest OS层又主要分为:

 

最下层的操作系统,例如LinuxWindows系统,在它上层运行着各种应用软件,例如数据库应用MySQLSQL Server等,Web网站应用ApacheNginxWindows平台的IIS等,文件服务的FTP,还有最后比较常见的桌面服务应用,如个人办公应用、影音编辑软件等生产力应用软件等等。而服务器迁移中的迁移对象说的就是Guest OS层。

 

线下服务器迁移上云的常见方案策略有:

 

image.png 

1)线下服务器迁移上云之3R策略

∙        重新部署(Redeploy):这是一种将应用在云上重新部署的策略,一般适合应用软件安装部署比较简单的场景;

∙        重构(Refactor):这是一种将应用针对云平台去重新设计开发的策略,适合应用需重新定制优化改进的场景,操作比较复杂;

∙        重新托管(Rehost):这是一种将应用完整平迁到云上的策略。它的实际效果就像是给服务器的GuestOS直接更换了一个Host平台,而GuestOS里的操作系统应用软件数据都原封不动。这个方式是三种方式里最省心最省力的,是一种比较理想比较方便的迁移方式,也是接下来主要讨论的策略方案。

对于线下服务器,如果想把Guest os直接拿到云上去启动,是不一定能够正常跑起来的,为什么?主要原因是线下服务器系统和云上ECS系统有比较大的差异。

 

image.png

 

第一个是硬件驱动不同。线下的服务器系统用的都是通用磁盘等硬件驱动,但是到了云上ECS上面,系统用的是虚拟化的硬件驱动,比如现在主流的KVM Virtio驱动,同时也是最大、最关键的差异点。

 

第二个是系统配置不同。线下服务器一般的系统配置例如启动引导配置、磁盘挂载、网络配置都不太统一,各个发行版本都有各自的规则,云上的ECS系统配置相对统一,磁盘网络、配置系统都是相对比较规范的。

 

第三点是依赖的软件不同,线下服务器系统一般没有系统初始化或者配置软件,可能一些比较有条件的企业会在系统里装一些自动化批量运维的工具,这种方案非常多,但是没有统一的配置。云上不同的是原生自带的初始化配置的软件,包括cloud-init、云助手软件等。

 

正是因为有这些差异,线下的服务系统迁移上云前需要做一些Guest OS系统的适配工作,以避免上云后服务器系统内部无法正常运行,阿里云平台针对这些情况提供了ECS云服务器Guest OS的镜像标准规范以及提供了相应的制作镜像、导入镜像的流程。

2)线下服务器迁移方案-导入镜像

 

image.png

 

首先要理解镜像的概念。镜像可以理解为服务器Guest OS模板,有了这个模板就可以去云上面创建云服务器,下面以Linux为例看一下大概的过程。

 

导入镜像的第一步就是需要先去查阅下导入镜像必读规范,然后准备Linux镜像文件,可以用虚拟机安装操作系统,在里面安装需要的应用软件,参考镜像规范安装云上必要的插件,比如cloud-initVirtio驱动,还有一些定制化需求的一些配置;

第二步检测镜像是否满足规范,可以用云上的自动化镜像检测的工具;

第三步把整个系统做成镜像文件,上传到阿里云的OSS,再通过ECS导入自定义镜像的功能最终做成可用的ECS镜像。

 

从这边可以看出手动导入自定义镜像的方式有较多操作步骤,首先客户需要熟悉整个ECS操作系统的规范,包括后面需要上手安装配置的系统和必要的组件,整个操作过程是有操作门槛的,针对这个情况阿里云还提供了另外一种自动化迁移的方案。

3)线下服务器迁移方案-SMC自动化迁移

 

image.png

 

SMC迁移的流程是:左边是线下服务系统例如物理机、虚拟机、特定的VMware虚拟机、个人的PC桌面,通过服务器迁移中心SMC自动化迁移产品工具,可以迁移到阿里云(最右面的服务器)包括通用的ECS服务器、轻量应用服务器、无影云桌面服务器。自动化迁移产品SMC具体是什么呢?下面来简单介绍一下。

4SMC自动化迁移简介

服务器迁移中心(Server Migration Center,简称SMC),是阿里云的一款免费的自助式服务器迁移产品。专注于提供能力普惠、体验一致、效率至上的迁移服务。

 

image.png

 

SMC迁移上云的一个目标是:Any Platform To Alibaba Cloud,就是支持所有主流的服务器平台的机器迁移到阿里云。

5SMC自动化迁移操作步骤

 

image.png

 

步骤一:导入迁移源

步骤二:创建迁移任务

 

主要分为两步,第一步导入迁移源。原理是在源系统里安装SMC的客户端代理工具,把它运行起来。

 

SMC也提供了好几种白屏化自动化导入的方式,第一种是可以通过控制台一键自动导入,需要走公网IP远程连接原服务器系统,是有条件的。第二种选择使用命令行的方式,在SMC控制台获取命令行激活码的命令,拿到原服务器系统执行,就可以一键把原服务器系统导入。第三种是为了满足没有公网访问能力或者无法开放远程连接的服务器场景,也提供了手动下载客户端的方式来导入。

 

导入迁移源之后,第二步创建迁移任务,只需要选择必要的任务参数,比如目标地域、要迁移的磁盘分区、以及一些其他的必要参数,后续的操作只需要静静等待迁移完成即可,它会自动化完成整个迁移过程,包括前面说过的自动化需要手动在Guest OS里面做云上规范适配的过程,包括到后面上传源系统镜像数据、制作镜像数据的过程全部自动完成。使用SMC自动化迁移是更高效更省心的迁移方式,它大大降低了迁移上云的门槛,让企业一键快捷迁移上云成为可能。

 

针对线下服务器迁移场景有一些最佳实践的建议。

6)线下服务器迁移最佳实践建议

 

image.png

 

第一是建议迁移演练。迁移演练比较重要的两个点,一个是迁移源检测,客户端运行后会自动检查源环境迁移条件常规项,可选择一键自动修复;第二点是创建迁移演练任务,选择开启迁移演练的开关,填入真实迁移任务参数,等待5分钟就可以跑完真实迁移场景的测试项,包括从源系统环境到目标环境的条件检查,模拟真实的源端到目标端的网络连接、数据传输等一些测试。测试完成之后提供全面的迁移演练报告供客户参考。

 

第二是迁移实施。对于不同的业务应用场景建议使用不同的迁移功能。对于数据库应用服务器推荐使用增量迁移,前期先不停服全量迁移,在最后割接阶段再停服,然后进行最后一次增量同步,这种方式可缩短停服时间;同理,Web应用服务器使用增量迁移同上,前期先不切换流量,等正式割接后再把域名重新解析到新ECS服务器;对于桌面应用服务器,这种场景使用一次性全量迁移即可,因为PC桌面数据量不太多,主要是里面的应用软件要完整的上云,迁移前只需注意保存好工作文档资料。

 

第三步迁移验证。这是整个迁移完成之后可以去做的认证的流程。首先建议创建迁移任务时,开启镜像检测,迁移完成后,可提供检查迁移镜像检测报告,显示最后迁移的镜像结果是否符合阿里云ECS规范。其次,也可以选择使用验证迁移结果自动化的功能,原理是在迁移完成后可自动用镜像创建临时ECS服务器,然后跑一些检查系统内部应用是否正常的命令,也会生成迁移验证报告提供参考。

7SMC自动化迁移演练与验证示例

迁移演练报告,迁移镜像检测报告,迁移镜像验证报告

 

image.png

 

通过这些报告,可以在迁移前后掌握真实的迁移测试或者迁移验证的结果,为后面做正式迁移做好规划评估打好基础。特别推荐一定要做好迁移演练,这是能提升迁移成功率的最大保障。

 

前面花了较大篇幅讲解如何从线下服务器迁移上云,主要是因为在企业上云是比较常见的场景。现在在CloudOps流行趋势下,可能企业的一些服务器早就在云上了。下面讲解如何从云平台迁移到阿里云。



更多精彩内容,欢迎观看:

带你读《云上自动化运维宝典》——ECS多场景迁移上云最佳实践(2):https://developer.aliyun.com/article/1405376

相关实践学习
2分钟自动化部署人生模拟器
本场景将带你借助云效流水线Flow实现人生模拟器小游戏的自动化部署
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情: https://www.aliyun.com/product/ecs
相关文章
|
20天前
|
机器学习/深度学习 人工智能 监控
软件测试中的自动化测试策略与最佳实践##
在当今快速发展的软件行业中,自动化测试已成为确保软件质量和加速产品上市的关键工具。本文将探讨自动化测试的重要性,分析不同类型的自动化测试工具和框架,并深入讨论实施自动化测试的最佳实践。通过案例研究和数据分析,我们将揭示如何有效整合自动化测试到软件开发生命周期中,以及它如何帮助团队提高测试效率和覆盖率。 ##
31 1
|
1月前
|
设计模式 前端开发 JavaScript
自动化测试框架设计原则与最佳实践####
本文深入探讨了构建高效、可维护的自动化测试框架的核心原则与策略,旨在为软件测试工程师提供一套系统性的方法指南。通过分析常见误区,结合行业案例,阐述了如何根据项目特性定制自动化策略,优化测试流程,提升测试覆盖率与执行效率。 ####
57 6
|
19天前
|
监控 数据管理 测试技术
API接口自动化测试深度解析与最佳实践指南
本文详细介绍了API接口自动化测试的重要性、核心概念及实施步骤,强调了从明确测试目标、选择合适工具、编写高质量测试用例到构建稳定测试环境、执行自动化测试、分析测试结果、回归测试及集成CI/CD流程的全过程,旨在为开发者提供一套全面的技术指南,确保API的高质量与稳定性。
|
19天前
|
数据管理 测试技术 持续交付
软件测试中的自动化测试策略与最佳实践
在当今快速迭代的软件开发环境中,自动化测试已成为确保软件质量和加速产品上市的关键手段。本文旨在探讨软件测试中的自动化测试策略,包括选择合适的自动化测试工具、构建有效的自动化测试框架以及实施持续集成和持续部署(CI/CD)。通过分析自动化测试的最佳实践,本文为软件开发团队提供了一系列实用的指南,以优化测试流程、提高测试效率并减少人为错误。
48 4
|
27天前
|
监控 测试技术 持续交付
探索自动化测试在软件开发中的最佳实践
本文旨在深入探讨自动化测试在软件开发过程中的应用,以及如何有效地实施自动化测试以提高软件质量和开发效率。通过分析自动化测试的优势、挑战和最佳实践,本文为软件开发团队提供了一套实用的指导方案。
|
1月前
|
缓存 负载均衡 监控
性能优化:Node.js高效服务器开发技巧与最佳实践
【10月更文挑战第29天】在Node.js服务器开发中,性能优化至关重要。本文介绍了几种高效开发的最佳实践,包括使用缓存策略、采用异步编程、实施负载均衡和性能监控。通过示例代码展示了如何实现这些技术,帮助开发者构建更快、更稳定的Node.js应用。
77 2
|
1月前
|
人工智能 安全 Linux
|
1月前
|
前端开发 数据管理 测试技术
前端自动化测试:Jest与Cypress的实战应用与最佳实践
【10月更文挑战第27天】本文介绍了前端自动化测试中Jest和Cypress的实战应用与最佳实践。Jest适合React应用的单元测试和快照测试,Cypress则擅长端到端测试,模拟用户交互。通过结合使用这两种工具,可以有效提升代码质量和开发效率。最佳实践包括单元测试与集成测试结合、快照测试、并行执行、代码覆盖率分析、测试环境管理和测试数据管理。
59 2
|
23天前
|
Devops 测试技术 持续交付
软件测试中的自动化与持续集成:最佳实践与挑战
在快速迭代的软件开发周期中,自动化测试和持续集成(CI)已成为提高软件质量和加速产品上市的关键策略。本文探讨了自动化测试和CI的实施如何帮助开发团队提前发现缺陷、缩短反馈循环,并确保代码质量。我们将深入分析自动化测试的策略选择、工具应用以及面临的挑战,同时提供一些克服这些挑战的最佳实践。
33 0
|
1月前
|
前端开发 JavaScript 数据可视化
前端自动化测试:Jest与Cypress的实战应用与最佳实践
【10月更文挑战第26天】前端自动化测试在现代软件开发中至关重要,Jest和Cypress分别是单元测试和端到端测试的流行工具。本文通过解答一系列问题,介绍Jest与Cypress的实战应用与最佳实践,帮助开发者提高测试效率和代码质量。
45 2

热门文章

最新文章

相关产品

  • 云服务器 ECS
  • 下一篇
    DataWorks