检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
设计切换方案 如何选择停服不停服 停服切换方案 停写不停读切换方案 不停服切换方案 父主题: 应用迁移上云
常会将不同的AZ部署在不同的地理位置,以提高系统的可用性和故障容错能力,AZ故障域的优点包括: 高可用性:将应用程序和数据部署在多个AZ上,确保即使一个AZ发生故障,其他AZ仍可提供服务,保证应用程序持续可用。 故障容错:在一个AZ发生故障时,可以快速地将应用程序和数据切换到其它正常的AZ上,以确保服务不中断。
组织和保障准备 - 项目经理 - 是 - - - - 项目经理 - 是 - - - 第三方/业态 - 业务相关 - 是 - - - 环境清单核对 应用清单检查并刷新启停 研发相关 - 是 - - - - 研发相关 - 是 - - - 环境(源端、目的端、迁移任务、执行脚本)检查 云服务基础检查项
数据验证 数据验证标准 迁移完成后,需要对源端和目的端数据做一致性比对,对于数据一致性比对的精度,不同的场景有不同的要求。一般来说,核心业务的数据库表要求源端和目的端100%一致;对于大数据类业务中的部分场景,例如用户画像计算等,可以约定原始数据90%一致。如下是一个参考标准,可根据实际情况调整:
迁移模板构建迁移工作流。具体功能及使用方法请查看MgC帮助文档。 资源发现与评估工具(RDA):是一个部署在Windows主机上的工具,用于评估上云驱动力和准备度,发现应用基础设施(例如虚拟机规格信息,CPU,内存利用率性能数据,网络拓扑数据等),并提供其迁移到华为云的推荐配置以及主机的一站式迁移能力。
测试和部署:在容器化改造完成后,进行全面的测试,包括单元测试、集成测试和性能测试。确保应用程序在容器环境中正常运行。然后,使用自动化工具或脚本将容器部署到生产环境中。 持续集成与交付:建立持续集成与交付(CI/CD)流程,以便能够快速、可靠地构建、测试和部署新版本的容器化应用程序。
写服务或对应接口shutdown,读服务或对应接口保持alive 应用层服务已做读写分离场景,每个服务只进行单独的读操作或写操作,没有同时进行读写的服务 简单 无需改造 应用层先做读写分离改造,然后停止写服务,读不停 应用层修改代码,拆分读写服务 应用层服务没有读写分离的场景 复杂 大 中间件层/数据层直接回收写权限
对于较大规模场景的业务应用,回退还会涉及到全量回退还是部分回退。采用全量回退还是部分回退,需结合业务影响进行判断和决策。比如当天同时切换了10个应用系统和10套数据库,若某一套数据库切换失败是全量回退还是只回退这1套数据库,判断依据需要业务部门评估应用跨云访问数据库和应用之间跨云访问时延是否满足要求等。
修改配置,将华为云应用层指向华为云数据层,启动应用服务; 外部DNS域名解析,解析地址从源端切换到华为云,流量进入华为云。 图4 数据层整体切换 应用层灰度切流,数据层分批切换 应用层灰度切流前做好如下准备工作: 源端应用层已迁移或部署到华为云; 华为云应用层跨云访问源端数据库
官网公告发布。 应用清单核对和操作脚本刷新 上云迁移期间,企业的软件版本开发、迭代发布通常还在正常进行,所以在切换前需要进行一次环境详细清单的核对,包括应用清单和JOB任务等。 清单核对完成,通知版本封版,避免正式切换时环境和准备时的不一致情况。 根据最新的应用清单和JOB任务清
部署主要是进行云上目标环境的资源开通和配置,并做好上云前的各项检查和测试,并进行迁移环境的准备。 要按照应用部署架构设计方案进行云上资源的开通和配置,云上资源开通主要有如下3种方式: 在云平台Console控制台手动创建云资源。 编写脚本或通过自动化平台对接,调用云平台的API接口,批
可用性设计 可用性定义 AZ故障域说明 云上高可用方案 双AZ高可用设计 两地三中心高可用设计 跨AZ高可用设计示例 父主题: 应用架构设计
可扩展性设计示例 应用上云目标架构的各层可扩展方案设计要点如下: 应用层可扩展设计要点 若应用层实现了微服务架构,通过华为云CCE云容器引擎服务实现业务容器化部署,可通过CCE工作负载弹性伸缩能力实现APP业务的水平扩展,随着负载增加,APP业务POD能自动扩展,随着负载的降低,APP业务P
接入层迁移方案 接入层为应用的外部访问提供了访问入口,常见的接入层技术4种,分别是Nginx/Openresty、硬件或软件负载均衡器,微服务网关Kong/Zuul、DNS。通常采用重新配置的方式进行迁移,具体如下: 表1 接入层迁移方式 技术组件 功能说明 迁移方式 nginx/openresty
可以将扩展能力分成如下3类: 纵向(垂直)扩展:适用于单体应用、独立应用、有状态应用等场景下,随着业务不断发展和变化,需要快速升级硬件以应对业务变化。如在进行一些促销活动时,对资源的需求往往比正常要高出多倍,这时企业在云上就可以通过可视化界面或者 OpenAPI 快速升级资源的
华为云备案服务。 负载均衡 迁移到华为云ELB:源端的负载均衡可能是硬件负载均衡器或者是负载均衡软件,都可以使用华为云的ELB云服务替代,在目标端开通ELB服务,然后参考源端策略配置目标端ELB负载均衡策略,具体部署流程,请参照华为云弹性负载服务ELB。 迁移到ECS上部署的软件
可扩展性设计 云上可扩展性 可扩展设计 父主题: 应用架构设计
Runbook设计原则 Runbook是上云迁移过程中一个非常重要的文档,用于指导切换当天多人协同进行切换操作,规定了业务切换的流程和详细步骤。Runbook主要包括两部分,Runbook checklist和Runbook操作步骤,下面将从几个方面详细介绍如何设计切换Runbook。
Runbook角色设计 Runbook通常涉及如下角色,职责如下: 表1 Runbook角色与职责 角色 职责 操作人 按Runbook执行相应的操作步骤,并负责操作异常问题处理 确认人 确认操作人的操作步骤是否正常执行完成,并向引导人反馈执行结果,如遇异常,需要按Runbook约定要求,定期向引导人员同步处理进展。
迁移实施常见问题 关于迁移实施过程中的常见问题及答案,请查看如下链接。 主机迁移服务SMS的常见问题。 Redis数据迁移常见问题。 对象存储迁移服务OMS的常见问题。 数据库迁移的常见问题。 父主题: 迁移