作者与团队
王志雷,火山引擎存储&数据库解决方案架构师,专注于存储&数据库产品的解决方案规划、设计和拓展工作。
贾伟力,火山引擎存储&数据库解决方案架构师,专注于存储&数据库产品的解决方案规划、设计和拓展工作。
火山引擎存储&数据库解决方案团队,由资深的存储&数据库解决方案架构师组成。团队致力于帮助企业与组织更好的使用火山引擎云存储与云数据库产品,针对实际业务场景设计最优的解决方案,用专业技术助力组织和企业实现业务成功。
上云迁移背景
什么是云迁移
云迁移是指将数字化业务运营迁移到云的过程。云迁移更侧重于将数据、应用程序和 IT 流程等企业数字资产从某些数据中心迁移到其他数据中心,而不是把服务器、网络等硬件设备打包和移动。
云迁移绝不仅仅是一个简单数据的搬运过程,通常涉及对现有的应用程序进行云化改造、开发新的云原生应用程序以及转变架构和基础设施,是一个系统工程,需要有成熟的迁移方法论、配套的迁移工具和专业的迁移团队保驾护航。
- 成熟的迁移方法论:将帮助用户更好控制迁移风险,助保障客户业务系统、平稳地迁移上云。
- 配套的迁移工具:提高迁移效率和降低人为操作的失误风险,避免人为失误导致的数据丢失、业务中断。
- 专业的迁移团队:火山引擎云迁移团队结合多年迁移实战经验和企业业务、IT系统现状,为企业迁移上云提供合适的方案,协助客户顺利完成业务上云。
为什么要做云迁移?
上云迁移给企业带来的收益
- 节约成本:企业将生产或测试环境直接部署于云上,借助云上按量使用,弹性伸缩,免运维等特点,且企业无需投入构建机房、服务器等硬件设备和减少运维投入,节约整体的业务构建成本,并保障业务流量高峰期资源可迅速扩容。
- 提效优化:企业借助字节跳动A/B测试,推荐算法等服务,希望通过迁移上云来整改优化已经老旧的业务系统,最终通过迁移并重新优化业务、IT架构来激活企业的创新,打开企业的新局面。
- 法律安全合规:
- 汽车行业:自动驾驶场景,涉及采集地理信息中包含涉密测绘成果,需要按照《中华人民共和国保守国家秘密法》中的相关规定要求进行监管合规存储与处理。
- 金融行业:金融数据天然具有保密、资质等方面的要求,金融机构数据合规的法律依据是明显具有公法性质的《中华人民共和国网络安全法》、《中华人民共和国数据安全法》、《个人信息保护法》,极具国家强制力。
- 业务等保要求:企业以及各大单位的网络安全建设要求逐渐提上了日程,严格落实等保安全合规建设确保企业单位安全系统稳定行进是每个企业目前需要重要考虑的环节,云厂商专门通过针对该部分标准合规的测评才可以达到等级保护的要求,完成云等保,企业业务迁移上云即满足对应的等保级别。
- 满足客户多云需求:
- 利用云服务提供商的优势:每个云服务提供商的服务都有自己的不同优势,客户根据业务的侧重点选择对应的云厂商。
- 出于安全考虑的多云容灾:针对核心业务采用多云容灾以免受中断的影响是大多数关键任务应用程序的要求。
- 避免供应商锁定: 如果无法切换到新的云和供应商,您在定价、折扣和功能方面的选择有限。多云的目标可以是实现在供应商之间不受限制地移动的灵活性。
火山引擎平台的价值
火山引擎是字节跳动旗下的云服务平台, 将字节跳动快速发展过程中积累的增长方法、技术能力和工具开放给外部企业,提供云基础、视频与内容分发、大数据、 人工智能、开发与运维等服务,帮助企业在数字化升级中实现持续增长。
- 全方位产品矩阵,提供云基础到智能应用的全链路支撑。
- 丰富的解决方案,助你即将应对各类业务难题。
- 为全行业客户云上增长提供动力,秉持技术驱动的极致性价比,为业务价值而生,开放共享三大核心理念。
- 优质的服务,全方位的支持,全方位业务响应和专业化技术支持。
云迁移类型
-
本地IDC上云迁移:上云这个场景,是云迁移的主要应用场景,也主要是对于还没有完成数字化转型的企业来讲的。云迁移技术可以满足企业上云和下云的需求。例如,用户可以在不受地区和账号限制的情况下,把在本地的IDC迁移到火山引擎上。
-
跨云迁移:目前国内云商百家争鸣,各个云厂商还有一些差异化的产品服务,另外相同的产品价格也会有差异。企业无论是出于成本考虑,还是业务需求考虑,都是有可能需要把已经在云上的业务,迁移到其他云上。
云迁移策略
云迁移可能会涉及到将所有系统和数据迁移到云上,没有放之四海而皆准的方法可以应用于整个应用程序产品组合。您需要考虑一些因素,例如您的组织采用云的时间表、迁移到云的关键业务驱动因素、当前应用程序的复杂性、所需的更改率、迁移工作量、可扩展性要求以及其他考虑因素。对于复杂业务系统,根据云计算行业的共识,可分为以下六种主要的迁移策略。
迁移策略 | 迁移复杂度 | 说明 |
---|---|---|
重新托管 | 中 | 也称为“直接迁移”,直接迁移是应用进行云迁移时最常见的方法,即对应用程序运行环境不做改变的情况下迁移上云, 一般的操作是 P2V(Physical to Virtual,物理机迁移至虚拟机)、V2V(Virtual to Virtual,虚拟机迁移至虚拟机),这种“提升和转移”模式将数据资产从本地转移到云基础架构,尤其适用于大规模迁移。 |
更换平台 | 高 | 也称为 “修补后迁移”,在不改变应用核心架构的基础上,对应用程序做些简单的云优化。例如将关系型数据库替换成云服务商提供的数据库服务、将自建消息中间件替换成云服务提供的消息队列服务、将 HAProxy 更换成云服务商提供的负载均衡服务,以此来降低部分管理成本提升效率。 |
重新购置 | 中 | 也称为 “放弃后购买”,通常意味着迁移到具有相同功能的 SaaS 服务,例如原先企业采用传统软件许可模式的人力资源管理系统,选用云上 SaaS 产品来进行替换。 |
重新构建 | 最高 | 改变应用的架构和开发模式,进行云原生的应用服务实现,例如单体应用向微服务架构改造,这种策略一般是在现有应用环境下难以满足日后功能、性能或规模上的需求时采用,该策略的迁移成本最高,但是长远来看会更为满足未来的需求。 |
停用 | 低 | 当该部分系统或应用没有相关价值,但是还在持续消耗资源时,建议使用“停用”策略,即将相关必要的数据归档后当前的基础设施停用。 |
保留 | 低 | 如果现有的业务或应用并不具备上云的条件、未做好上云的准备、或更加适合本地部署的时候,需要根据业务发展的实际需要来进行操作。当以上的情况出现时,建议保留现状,不需要强行进行迁移上云的操作。 |
云迁移流程
火山引擎作为专业的云服务商,具备成熟的上云迁移方法论,同时能够熟练的使用云迁移相关工具,迁移上云的过程可分为分析、设计、实施及验收优化四个阶段。
-
调研评估: 项目根据整个迁移计划,调研应用的系统架构图,数据库信息,系统整体压力情况,系统底层部署情况,商业软件依赖等等方面内容。
-
规划设计: 根据当前应用以及性能数据进行容量规划,根据业务场景确定搬迁方式、迁移步骤,为每个业务系统制定应急预案、回退方案,指定迁移验证方案、用例,根据业务之间关联情况和业务关键程度对应用进行分组,制定最终的详细迁移计划,确定各个应用迁移实际流程和分工。
-
迁移实施: 火山引擎环境资源准备,针对核心业务业务迁移前进行应急预案演练,提前发现方案不足,确保业务连续性。根据迁移实施方案,利用自研或开源工具实施迁移,在客户指定的割接时间窗把业务流量切换到火山引擎。
-
验收优化: 业务成功切换到火山引擎后,系统正式进入运行和后期运维阶段,通过性能调优、高可用加固、安全加固、提升服务质量等实现系统的优化。
1 调研评估
调研评估是云迁移项目的第一个阶段,主要是为了收集并分析信息后制定迁移策略。
-
信息收集 在正式启动迁移之前,需要和客户进行业务系统调研。此阶段主要是通过信息调研表、业务信息访谈、客户已有记录的资产信息等方式,火山引擎收集客户业务信息仅仅为了项目的评估和业务梳理。
-
应用分析 客户业务信息收集完成后,下一步骤是针对已经收集的信息进行分析汇总,应用分析完成可以提供基于业务的视角的产品依赖和需求,是后续迁移制定迁移策略的依据。
- 按业务场景分析
- 按业务关联性分析
- 按业务层次分析
-
风险评估
风险评估阶段是根据系统调研阶段收集到的客户业务系统详细情况,并在结合火山引擎云产品的特征和特性的条件下,充分对业务系统上云过程中存在风险点进行性评估。风险评估主要包含以下几部分:
- 功能及资源评估
- 性能评估
- 高可用评估
- 安全评估
- 人力评估
- 费用评估
-
制定策略
依据应用分析和风险评估输出结果,拆分业务的服务组件,匹配火山引擎云产品,根据不同业务的需求,制定如下迁移策略。
类别 说明 无数据迁移诉求的服务 - 针对云上网络架构:规划配置VPC,IP段、CEN、专线、VPN,满足内、外网络访问需求。 - 针对安全产品:规划配置DDoS、防火墙等满足业务安全需求。 - 针对业务账号:规划配置主账号,子账号,账号组,能够满足不同部门、不同人员的账号权限体系。 业务迁移顺序 - 首先迁移开发测试业务,其次是边缘业务,最后是核心业务。 - 有依赖关系的业务,被依赖的业务先迁移。 迁移方案选择 优先推荐火山引擎配套的迁移产品,其次再考虑开源的工具。
2 规划设计
规划设计是云迁移项目的第二个阶段,主要是根据业务实际需求进行方案定制和编写。
云上架构设计
企业上云架构既需要满足企业IT中高可靠、高安全、一致性、合规性要求,又需要满足创新IT所需要的灵活,敏捷,弹性伸缩的调整。 企业上云架构设计诉求如下:
-
性能:企业需要更快的应用和分析,以更快的速度获取所需的信息。
-
成本:能够优化运维人力的调度,降低IT维护项目的人力投入,进而可将更多的资源放在促进业务需求和IT技术的结合,帮助企业创新。
-
安全性:部署完整的安全防护,安全控制将围绕着数据中心、访问安全、网络安全和数据安全等多个方面展开。
-
可用性:应能保证当灾难发生且一个数据中心出现问题时,另一个数据中心能够实时运行,最大限度地确保企业业务的连续性。
设计原则
针对以上的云上企业架构的设计需求,云上架构设计需要考虑以下因素。
可扩展性设计原则
可扩展性是系统或应用程序的属性,预计随着时间的推移而增长的系统需要建立在可扩展的架构之上。这样的体系架构可以支持用户,流量或数据大小的增长,而不会降低性能。应该以线性方式按比例提供资源,添加额外资源至少导致成比例增加提供额外负载的能力。
可用性设计原则
-
云上系统高可用性设计方案
-
本地高可用方案
-
同城高可用方案(距离小于100KM)
-
异地高可用方案(距离大于300KM)
-
-
云上系统高可用性设计原则
安全性设计原则
-
云上客户的安全诉求:
-
云上系统安全设计原则: 以数据安全为中心,构建企业应用云上安全。
性能设计原则
-
影响云上应用的性能因素:
延时、吞吐量、IOPS是与云上应用性能相关的几个重要指标:
-
延时:延时是操作执行之前所花的等待时间,延时就是云计算性能的最直接表现。
-
吞吐量:吞吐量是评价数据处理执行的速率,在数据传输方面,用字节/秒或比特/秒来表示,吞吐量的限制是性能瓶颈的一致重要表现形式。
-
IOPS:是指每秒发生的数据输入/输出操作的次数,是数据传输的一个度量方法。
-
-
性能设计
-
方案选择:根据不同业务场景选择对应的云服务产品,满足业务的性能需求。
-
方案权衡:在架构中引入缓存,提高业务性能,例如在电商业务架构中引入Redis缓存数据库、在仿真计算业务中引入vePFS。
-
性能度量
-
设置性能度量和监控指标,以捕获关键性能指标。
-
使用可视化计算、明确出现性能问题、热点、等待状态或利用率低的地方,不断优化性能。
-
-
成本设计原则
当你将现有架构迁移到云中时,由于火山引擎的规模经济,你可以减少资本支出并节省成本。通过迭代和使用更多火山引擎功能,可以实现的云架构的成本不断优化。
-
供需匹配:火山引擎为许多用例提供了广泛的资源类型和配置,例如ECS,RDS,带宽和存储等服务提供了许多实例类型。根据业务要求,选择合适的云服务配置。
-
充分利用各种采购方案:火山引擎为云服务产品提供多种购买方式,按量付费、包年包月,资源包等,可以根据业务选择,根据业务类型选择合适的购买方式。
-
持续成本优化:随着时间的推移,你可以通过持续监控和标记来继续降低成本,借助火山引擎云服务弹性功能可以动态的扩缩容。另外火山引擎经常迭代并定期发布新功能,可能会涉及到成本的降低。
-
支出意识:提供基于部门维度的账单,更好的了解业务部分的IT支出。
网络架构设计
网络设计对成功的系统设计至关重要,因为它可以帮助您优化性能,并确保应用与内部和外部服务通信的安全。 云网络设计包括以下步骤:
- 业务 VPC 架构设计:
- 业务隔离
- 简单易行
- 命名规则统一
- 子网设计
- 网络安全
- 多 VPC 间连接设计:根据费用、性能和安全需要选择 VPC 连接方法。
- 混合网络连接设计:
- 在确定混合连接的需要,选定符合您的带宽、性能和安全要求的解决方案。
- 尽量使用动态路由。
安全架构设计
安全设计原则描述托管在云或本地数据中心的安全架构系统 。 应用这些原则极大地提高了安全体系结构确保保密性、完整性和可用性的可能性。
- 构建分层安全方法
- 针对安全的分离系统进行设计
- 自动执行和使用最低权限
- 满足区域的合规性要求
- 对数据进行分类和加密
- 标识和保护终结点
账户体系设计
建立身份账户体系是上云的第一步,良好的账户体系设计,会为后续的管理带来极大的便捷性和扩展性。 火山引擎设计了一套完备的身份账号体系,主要包括IAM(Identity and Access Management),以及Organizations,其中IAM,包括账号,用户组,用户,角色,策略等。企业使用主账号购置云资源,并将云资源的访问权限按需分配给不同IAM用户。
企业员工可使用IAM用户登录控制台或请求API来访问云资源。从而让企业员工以最小化、最合理的权限实现团队协作,有效保障云资源的安全性。
迁移方案设计
-
迁移方案设计思路
-
云上资源选型策略
- 优先选择和源端匹配的配置,如果业务有变化,云上产品配置也相应变更
- 针对云上有和源端对位产品,但是功能有不满足项的,可以和客户沟通产品功能是否阻塞业务
- 针对云上没有和源端对位的产品,推荐在ECS自建部署,后续云上产品上线后可以在切换到云产品
-
业务回退方案设计
业务迁移是一个复杂高危的操作,迁移步骤涉及也较多,在整个迁移过程中可能会出现迁移失败的场景,为了降低影响客户的业务连续性,制定业务回退迁移方案。 云迁移典型应急回退方案:
- 场景一:流量逐步切换阶段
- 场景二:数据层已经切换到火山引擎
-
业务部署方式和迁移方式
产品类别 | 涉及系统组件/云服务 | 火山引擎云服务 | 迁移方式/工具 |
---|---|---|---|
应用 | 云服务器 | 云服务器ECS | 系统镜像迁移/重新配置 |
^^ | K8S | VKE | 镜像迁移 |
网络 | 负载均衡器 | 负载均衡 | 重新配置 |
^^ | VPC | 私有网络 | 重新配置 |
^^ | 专线 | 专线网络 | 重新配置 |
^^ | NAT | NAT网关 | 重新配置 |
^^ | VPN | VPN连接 | 重新配置 |
安全 | DDoS | DDoS高防 | 重新配置 |
^^ | 防火墙 | 防火墙 | 重新配置 |
中间件 | Nginx | 云服务ECS/CLB | 重新配置 |
^^ | Kafka | 消息队列Kafka版 | Kafka MirrorMaker |
^^ | RabbitMQ | 消息队列RabbitMQ版 | 手动导入 |
^^ | RocketMQ | 消息队列RocketMQ版 | 手动导入 |
^^ | ElasticSearch | 云搜索服务 | 基于快照/logstash |
^^ | 日志服务 | 日志服务TLS | 基于tos+tlsimport迁移 |
存储 | 对象存储 | 对象存储TOS | 火山引擎DMS/rclone |
^^ | 文件存储 | 文件存储NAS | rsync |
^^ | 块存储 | 块存储EBS | rsync |
数据库 | MySQL | 云数据库MySQL版 | 火山引擎DTS |
^^ | Reids | 缓存数据库Redis版 | 火山引擎DTS |
^^ | PostgreSQL | 云数据库PostgreSQL版 | 火山引擎DTS |
^^ | MongoDB | 文档数据库MongoDB版 | 火山引擎DTS |
^^ | HBase | 表格数据库HBase版 | 火山引擎DTS |
功能和性能验证
基于云迁移调研评估步骤中梳理的业务涉及产品功能和性能,结合迁移方案设计,验证产品功能是否满足、产品性能是否符合业务需求,迁移工具是否可行。主要目标是让整个业务系统在火山上充分的测试,评估,从部署,迁移,功能,性能,优化等多维度的验证后,评估出一个最优的设计方案,确保业务流量切换后的稳定运行。
- 产品功能验证策略
功能验证主要验证业务涉及产品的功能是否能够满足业务需求,以及配套迁移工具的功能是否能够实现数据的上云迁移,功能验证策略:
- 针对业务涉及的功能梳理,按照核心功能、边缘功能分类。
- 针对迁移工具关联功能分析。
- 性能验证工具 针对业务涉及的产品,进行针对性的性能测试,用于评估所选产品规格是否满足业务需求。
- 输出验证报告 基于产品功能和性能验证,输出验证测试报告。
迁移手册制定
选型的迁移工具验证通过后,需要完善迁移工具的详细执行步骤,输出如下文档:
- 迁移实施流程详细设计
- 迁移实施详细方案
- 迁移应急回退方案
迁移计划制定
-
迁移批次排序策略 根据信息调研中的业务分析,按照业务的重要级别排序。
-
迁移顺序影响因子
- 迁移风险: 优先迁移风险低的业务,其次再迁移风险高的业务。
- 迁移中断时间: 优先迁移中断较长的业务,其次再迁移中断较短的业务。
- 与其他系统关联度: 优先迁移被依赖的业务,依赖其他业务的需要被依赖业务迁移完成后再迁移。
- 迁移复杂度: 优先迁移复杂度较低的业务,其次再迁移复杂度较高的业务。
3 迁移实施
迁移实施是第三个阶段,主要是按照既定方案进行实施,并把控好迁移风险。云迁移实施有以下步骤:
-
迁移实施的关键指标:业务中断时间 业务割接是迁移实施中的关键步骤,该步骤影响到客户业务的停机时长,而停机时长与选择的迁移方式有关,常见的两种迁移方式:离线迁移和在线迁移。下图主要从离线迁移和在线迁移的对比上相对形象的做了迁移过程中,业务流程及业务停机时间的展示。
-
迁移风险及应对策略
风险点 应对策略 IP变更风险 - 迁移过程中尽可能保证内网IP不变,推荐使用云服务内网的域名。 - 互联网IP则需做调整,为保证业务正常接入,需要提前15天做好备案工作。 业务中断风险 - 选择在业务低峰期的时间窗进行迁移。 - 数据迁移过程保持源端在线,最后一次增量同步和业务切换才中断业务。 - 源端和目标端完成主备环境搭建。 - 迁移过程保持每个步骤可回退。 网络稳定性风险 - 推荐迁移专线网络,专线可以保证迁移网络的稳定性和迁移速率。 - 源端虚拟化主机采用镜像导入,检查迁移过程中队网络的依赖。 数据不一致风险 - 全量同步配合多长增量同步,最后一次同步需要停止源端业务写入。 - 迁移前停止源端业务写入,保证迁移数据就是全量数据。 - 迁移前做好源端数据备份。
4 验收优化
验证优化是最后一个阶段,主要是在迁移完成后对业务系统进行优化,对迁移项目进行验收。
-
业务监控 对迁移后的业务系统进行监控,保证安全运行一段时间,确保迁移后的应用性能和用户体验:
- 关键业务KPI确认
- 每日健康巡检
- 实时性能监控
-
系统优化 针对监控中发现的问题,对业务系统制定改进措施,对业务进行优化。通过借助火山引擎的平台、工具和技术服务提升用户业务系统的可用性、性能、安全性、可扩展性、易运维性,降低系统运行成本。
- 系统架构优化
- 性能优化
- 可运维优化
- 成本优化
-
业务评估 对正式迁移结果进行评估,哪些业务完成了迁移、哪些业务无法完成迁移,迁移的效果如何、是否通过系统测试,迁移过程中遇到了哪些问题、解决办法是什么、对业务系统有什么影响、业务系统健康度如何。将这些信息进行记录和统计,为业务上云后的运营维护提供一定的参考依据。
-
项目验收 客户签署《业务迁移验收报告》,上云迁移服务工作结束,验收通过。
迁移工具
数据迁移,是一个非常复杂的过程,其中涉及的操作步骤多,步骤执行顺序性要求高,对于人工执行迁移步骤有很大的挑战。针对不同的产品火山引擎提供不同的迁移工具,提高迁移效率和降低人工出错的概率,目前火山引擎提供数据库迁移工具和对象存储迁移工具。
数据库迁移工具 DTS
火山引擎数据库传输服务 DTS(Database Transmission Service)提供了数据迁移、数据订阅于一体的数据库数据传输管理服务,支持关系型数据库、非关系型数据库数据源间的数据传输,降低数据库之间数据流通复杂性,可在业务不停服的前提下轻松完成数据库迁移上云。
存储迁移工具 DMS
存储迁移服务是火山引擎提供的在线数据迁移服务,主要用于将其他云服务商对象存储中的数据方便快捷地迁移到火山引擎对象存储,支持自定义限速、文件筛选过滤、断点续传、迁移进度展示、迁移报告下载等功能。