带你读《云上自动化运维宝典》——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
相关文章
|
15天前
|
运维 应用服务中间件 网络安全
自动化运维的新篇章:使用Ansible进行服务器配置管理
【10月更文挑战第34天】在现代IT基础设施的快速迭代中,自动化运维成为提升效率、确保一致性的关键手段。本文将通过介绍Ansible工具的使用,展示如何实现高效的服务器配置管理。从基础安装到高级应用,我们将一步步揭开自动化运维的神秘面纱,让你轻松掌握这一技术,为你的运维工作带来革命性的变化。
|
1月前
|
机器学习/深度学习 人工智能 运维
企业内训|LLM大模型在服务器和IT网络运维中的应用-某日企IT运维部门
本课程是为某在华日资企业集团的IT运维部门专门定制开发的企业培训课程,本课程旨在深入探讨大型语言模型(LLM)在服务器及IT网络运维中的应用,结合当前技术趋势与行业需求,帮助学员掌握LLM如何为运维工作赋能。通过系统的理论讲解与实践操作,学员将了解LLM的基本知识、模型架构及其在实际运维场景中的应用,如日志分析、故障诊断、网络安全与性能优化等。
60 2
|
1月前
|
监控 虚拟化 云计算
从物理到云:使用自动化工具简化服务器迁移流程
【10月更文挑战第4天】随着云计算的快速发展,越来越多的企业选择将物理服务器迁移到云环境以提高效率和降低成本。本文详细介绍了使用自动化工具简化从物理到云的服务器迁移流程的技术实现细节,并提供了代码示例。
120 6
|
20天前
|
缓存 负载均衡 监控
性能优化:Node.js高效服务器开发技巧与最佳实践
【10月更文挑战第29天】在Node.js服务器开发中,性能优化至关重要。本文介绍了几种高效开发的最佳实践,包括使用缓存策略、采用异步编程、实施负载均衡和性能监控。通过示例代码展示了如何实现这些技术,帮助开发者构建更快、更稳定的Node.js应用。
34 2
|
21天前
|
人工智能 安全 Linux
|
23天前
|
运维 应用服务中间件 调度
自动化运维:使用Ansible实现服务器批量管理
【10月更文挑战第26天】在当今快速发展的IT领域,自动化运维已成为提升效率、降低人为错误的关键技术手段。本文通过介绍如何使用Ansible这一强大的自动化工具,来简化和加速服务器的批量管理工作,旨在帮助读者理解自动化运维的核心概念和实践方法。文章将围绕Ansible的基础使用、配置管理、任务调度等方面展开,通过实际案例引导读者深入理解自动化运维的实现过程,最终达到提高运维效率和质量的目的。
|
29天前
|
人工智能 关系型数据库 双11
2024阿里云双11优惠活动开启,云服务器79元一年起,能领代金券和上云补贴金
2024年阿里云双11优惠活动开启,云服务器低至79元一年起,涵盖云数据库、对象存储OSS、无影云电脑等产品,提供代金券、企业算力补贴及上云扶持金等多项优惠,助您轻松上云。
|
1月前
|
运维 负载均衡 安全
自动化运维:使用Ansible进行服务器配置管理
【10月更文挑战第15天】在本文中,我们将探讨如何利用Ansible这一强大的自动化工具来简化和加速服务器的配置管理工作。通过实际案例和代码示例,我们将展示Ansible如何帮助运维人员高效地进行软件部署、系统更新和日常维护任务,从而提升工作效率并减少人为错误。
|
1月前
|
运维 自然语言处理 开发者
作为一名运维人员,使用通义灵码个人版处理日常工作中的代码相关任务,极大地提升了我的工作效率。以下是我使用通义灵码的具体实践场景、效果和心得,以及相应的截图。
作为一名运维人员,我使用通义灵码处理日常工作中的代码任务,效率提升了30%。通义灵码帮助我快速理解复杂代码、生成准确的代码注释,并能从自然语言生成代码示例,大幅减少了代码编写和理解的时间。
57 3
|
1月前
|
运维 Java Linux
【运维基础知识】Linux服务器下手写启停Java程序脚本start.sh stop.sh及详细说明
### 启动Java程序脚本 `start.sh` 此脚本用于启动一个Java程序,设置JVM字符集为GBK,最大堆内存为3000M,并将程序的日志输出到`output.log`文件中,同时在后台运行。 ### 停止Java程序脚本 `stop.sh` 此脚本用于停止指定名称的服务(如`QuoteServer`),通过查找并终止该服务的Java进程,输出操作结果以确认是否成功。
40 1

相关产品

  • 云服务器 ECS
  • 下一篇
    无影云桌面