为什么迁移上云?
(1)降低建设及运维成本:托管自己的服务器基础结构需要对硬件,软件,电力和人员进行大量的投资,迁移到云解决方案显著降低资本支出。
(2)减少硬件更新成本:不管是本地托管还是托管提供商处托管,更换硬件都将是繁杂的工作,还需要企业立刻投入所有硬件的费用。
(3)解决软件支持终止问题:应用程序可能依赖支持即将终止的其他软件或者操作系统,迁移到 AWS可以为这些依赖关系提供扩展的支持选项,减少重构要求。
(4)简化维护工作:很多系统的维护成本甚至超过它们的开发成本,采用云模式服务后基础平台的维护在云服务提供商。
(5)有效控制投资风险:系统在开发过程的任何阶段都有失败的可能,但在开发的初期就要进行硬件投资,一旦失败前期的投资无法收回,采用云服务试错成本低
(6)敏捷与效率:自由的进行实验,更快速的开发
(7)灵活性:云的弹性可扩展,支持在线扩容。根据负载大小,弹性可伸缩
(8)全球化:在云中非常方便的把业务迁移到另一个地域
(9)多样性:第一时间体验到先进的技术,如人工智能,机器学习,大数据,物联网等
(10)安全性:云平台采用冗余、多副本机制,云平台专用企业级防火墙,可自定义安全等级部署,云平台中有各种安全服务,保障我们的业务顺利进行,以及云服务满足各地域的法律法规
迁移规划
一、迁移流程
- 资源评估:需要对本地业务资源有一个整体的了解,列出一个业务清单,记录环境中的物理和虚拟服务器
- 发现和分析:对整理出来的资源进行分析,确定是否适合上云,以及云中使用有相应的服务支持
- 计划和设计:如果满足上云要求,我们要制定迁移策略
- 迁移,验证:进行迁移,验证,以及业务切换
- 运维和优化:利用云中的服务对我们的业务进行管理和优化
二、迁移评估
在开始规划之前设定云迁移的优先级和目标,从而确保迁移更加成功。此外,自动云迁移工具还可提供有关环境和依赖关系的见解,帮助制定云迁移项目计划。在企业计划迁移阶段,需要系统评估多方因素,其中包含业务因素、合规因素、安全因素、平台因素及人员因素等,这些是迁移的基础考量。
- 业务因素:需要考量所有主要利益相关方,是否都支持业务案例和对迁移的承诺,并且是否有资金可以投入迁移工作
- 合规因素:需要看企业是否有符合合规标准的应用程序
- 安全因素:需要考虑到企业在数据保密性方面的主要挑战,并且采取了哪些控制措施
- 平台因素:需要确定一系列试点应用程序,并且得到工作负载所有者的承诺
- 人员因素:需要验证企业的技能和能力,是否定义了运营的角色和责任
借助 AWS 的云迁移评估工具 Application Discovery Service,它可以自动识别在本地数据中心运行的应用程序、其相关依赖关系和性能配置文件,让你能够制定自己的云迁移计划。
运用此信息来映射服务器,从而呈现你的本地应用程序。这将有助于确定服务器之间的依赖关系或通信,让你能够在云迁移计划中包含所有必备的应用程序组件,从而帮助降低风险,确保顺利迁移。然后,按逻辑方式对服务器分组以呈现应用程序,并根据每个应用程序的要求和迁移目标为其选择适合的云迁移策略。
三、迁移策略
在确定评估因素后,我们展开讨论计划阶段最重要的迁移模式问题,这对企业而言至关重要。对此,AWS系统总结了6R迁移理论提供参考,包括:保留 (Retain)、停用 (Retire)、更换主机 (Rehost)、替换 (Replace)、更换平台 (Replatform)、重构(Refactor) ,不同的业务应用我们可以采用不同的迁移策略,企业根据应用的评估,选择不同的迁移策略。
※ Retain:有些应用不能立刻迁移,或者不允许迁移到云中,我们继续留在本地数据中心
※ Retire:在评估过程中,发现一些不再需要的业务,我们可以从数据中心删除
※ Rehost:这种无代码选项通常称为“直接迁移”,可让你快速将现有应用程序迁移到 AWS。每个应用程序按“原样”进行迁移,既发挥了云的优势,又无需承担更改代码所带来的风险或成本
※ Replace:替换现有的应用。比如使用云中的 SaaS 服务替换我们的应用
※ Replatform:更改平台作为云迁移的一部分,比如将 Windows 更换成 Amazon Linux
※ Refactor:对应用重构,然后迁移上云,比如更改后端数据库,中间件等,相对来说比较复杂
在迁移过程中我们不只用到一种迁移模式,即使在一个应用程序栈中,企业也可能会遇到 2~3 个“R”,我们要充分分析应用程序,进行组合搭配,以达到最低的成本和最高的价值。
迁移服务及工具
在了解了迁移上云的过程,以及迁移过程中用到的一些策略之后,那么我们开始对本地中心的应用进行迁移上云,我们知道云数据中心中最重要的三项基础设施资源主要是计算、存储、网络,那我们也主要以这三部分为大家介绍一下各自的迁移方法,以及相关的注意事项。
一、网络迁移
本地数据中心的网络一般是私有网络,大部分是扁平化的网络,一些业务规模比较大的企业,他们都有自己的网络工程师来规划相对复杂的网络,网络迁移的复杂程度主要取决于本地数据中心的网络复杂程度,至于如何把本地网络迁移到 AWS 中,我们也需要根据不同的情况去考量。
在 AWS 云中,我们是通过 VPC 来实现私有网络建设的,VPC 的各项功能基本可以满足企业网络的各项需求,那我们该如何去设计我们的网络呢?
完全复制:应用程序里面嵌入了服务器的私有IP,整体迁移不去修改网络配置,并且没有计划使用混合云模式,针对这一部分,我们可以在 VPC 中建立一个和本地数据中心一模一样的网络,拥有相同的 IP 地址段,但是需要注意,VPC 中的一些安全设定本地中心可能没有,比如 NACL、Security group等。
混合云模式:有些企业部分应用迁移上云,并且未来规划混合云的模式。针对这种情况,我们在 VPC 中设计的网络,其 IP 地址段与本地数据中心的 IP 地址段不能重合,既然是重新规划 IP 地址范围,那我们尽量每个子网的分配的 IP 数量多一些。
本地数据中心的网络冗余,高可用方案,需要精通高级网络的工程师来进行配置和维护,网络上云之后,所有的这些都由 AWS 来进行维护,企业的维护人员具备简单的网络知识即可维护,降低了网络管理的门槛,也为企业节省开支。
二、工作负载迁移
我们把支撑业务运行的一些资源称之为工作负载,我们可以把虚拟机、数据库、应用等粗略的规划在工作负载层面,下面我们主要针对这几部分来说一下迁移过程中的情况,这也是我们整个迁移最重要的环节。
1 虚拟机迁移
将虚拟机转移到云端有助于避免会造成巨大财务压力的更新周期。准备就绪后,我们可以通过两种方式进行迁移,我们使用 Rehost 作为我们的迁移策略。
我们可以使用 AWS Server Migration Service 将虚拟机从本地或其他云平台直接迁移到 AWS。AWS SMS 是一项免费的服务,它可以帮我们把本地虚拟机增量复制为可在 Amazon EC2 上部署的云托管 Amazon 系统映像 (AMI),整个复制过程,只需要支付迁移期间所使用的 S3 存储桶、EBS 卷和数据传输费用,以及所运行的 EC2 实例费用。
价值体现:
- 可以享受更高性价比以及更优化的配置。
- 多区域节点选择。
- 提高运维效率,将 IT 运维重心转移到以业务为中心。
2 数据库服务迁移
本地数据中心的数据库服务,一般都是运行在物理机或者虚拟机上,由运维人员部署。针对数据库的迁移,我们主要有以下注意事项以及解决方案:
迁移策略:
- 针对数据库,我们可以选择的迁移策略有 Rehost 和 Replatform。
- 针对 Rehost,我们可以直接使用 AWS SMS 来进行迁移。
- 针对 Replatform,就是我们把本地自建的数据库服务转换为 AWS 的数据库服务,AWS 的数据库很丰富,基本涵盖了市面上的所有数据库,包括关系型数据库和非关系型数据库。
价值体现:
- 云数据库的高性能,高可靠性,扩展性,灵活性
- 大规模创新
- 兼具备份、扩容、迁移等功能
- DBA 不用再去维护数据库的安装,运行,高可用,备份等,把精力集中在数据库优化业务上面。
3 应用迁移
在实现应用迁移上云的过程中,一般会面临已有业务系统改造和新建业务系统两种场景。新建业务系统只需要按照应用上云的标准要求进行架构设计、研发、编码和测试即可,实现相对简单。已有业务系统迁移上云则需要对现有业务系统改造。
迁移策略:
对于 Rehost,使用 AWS SMS 服务可以方便地迁移整个应用程序技术栈上云,这种迁移相对来说比较简单,迁移完成之后,修改一下后端数据库信息,切换 DNS 服务即可上线。 对于 Refactor,这种情况会花费比较多的工作量,他需要用户重构应用程序代码,使其可以充分的去兼容云原生的一些服务,比如 Lambda,API GateWay,Elastic Beanstalk 等服务,以提高我们的应用程序的性能和安全。
4 容器迁移
在 AWS 云平台中,有两个容器编排工具,一个是 Amazon Elastic Container Service (ECS) 或 Amazon Elastic Kubernetes Service (EKS)。
如果应用程序是运行在单机上面的,在云中最佳的选择是 Amazon ECS,ECS 是一项高度可扩展的快速容器管理服务,它可轻松运行、停止和管理集群上的 Docker 容器;如果应用程序运行在 Kubernetes 上的,在云中的最佳选择是 EKS,EKS 则是运行 Kubernetes 的最安全、可靠且可扩展的方式。
AWS 容器平台优势:
- 低成本:可以选择部分 spot 实例作为底层资源节省费用。
- 企业就绪
- 弹性扩展:云中 EKS 相比自建的 Kubernetes 多 Cluster AutoScaler 特性,可以根据负载扩展集群中的服务器数量,Amazon ECS 中由 capacity providers 来提供底层计算资源弹性伸缩。
- 更可靠:Amazon ECS 和 Amazon EKS 的控制面板由 AWS 完全托管,服务的可用性由 AWS 专业技术团队维护。
- 网络:使用 Amazon VPC CNI,使 container 或者 pod 具有 VPC IP,省去网络封包,提升网络性能。
- 负载均衡:通过使用 AWS ALB,可以让流量直达 container 或者 pod 的 IP,k8s 集群可以省去 service 的分发,提升性能。
- 权限:可以直接为 container 或者 pod 赋予 IAM role 级别的权限,安全访问 AWS 其他服务。
三、数据迁移
这里所说的数据主要是静态存放的数据,以及一些归档数据,需要把这些数据传输到 Amazon S3 中,数据迁移工具的选择主要是考量数据量的大小,以及本地数据中心的带宽大小,不同的组合用到的迁移工具也不尽相同。
AWS DataSync 是一种数据传输服务,可以简化、自动执行和加快本地存储与 Amazon S3 或 Amazon Elastic File System (Amazon EFS) 或 Amazon FSx for Windows File Server 之间的数据迁移。DataSync 使用本地代理连接到 NFS 文件系统,并快速迁移文件数据(比开源复制工具的速度快 10 倍),而无需编写和管理脚本。
AWS Transfer for SFTP (AWS SFTP) 是一项完全托管的 AWS 服务,可让您通过安全文件传输协议 (SFTP) 将文件传入和传出 Amazon Simple Storage Service (Amazon S3) 存储。
AWS Snow 系列可以为那些需要在严峻的非数据中心环境中运行操作、将大量数据迁出本地环境以及遇到缺乏一致网络连接的情况的客户提供帮助。Amazon Snow 系列由 AWS Snowcone、AWS Snowball 和 AWS Snowmobile 组成,可以提供各种物理设备和容量点,其中大部分设备还内置有计算功能。
The stages of your migration and modernization journey
Cloud migration and modernization is a continuous process that involves significant organizational change management spanning people, process, and technology. Taking a holistic approach will not only help you navigate the journey successfully but also help ensure that your organization realizes new benefits—including efficiency, agility, and scale—once your workloads are running in the cloud.
Planning
Define your strategy, align stakeholders, and assess environments.
定义策略
Define and document your motivations
Define why you are migrating and modernizing. Document the business outcomes that you want to achieve and your motivations, such as exiting your datacenter, increasing cost saving, or designing for greater agility.
Involve and align key stakeholders
Facilitate a smoother, faster migration that meets organizational goals by enlisting the broad support. Create a center of excellence with a cross-functional team made up of IT, finance, and business owners.
Engage a cloud migration and modernization partner
Augment your cloud skillset and reduce risk as you migrate and modernize your workloads. Team up with a managed service provider that offers support through the entire process and beyond.
Plan for your move
发现和评估应用、数据库和基础结构。
使用自动云迁移工具深入了解依赖项。清查基础结构并评估本地环境:获取适当大小调整的指导、工作负载级别的成本估算和性能指标。
Make a business case for migration and modernization
Evaluate the potential cost savings of migrating to Azure by calculating and comparing your total cost of ownership (TCO) for Azure with that of a comparable on-premises deployment.
Build a holistic plan
考虑工作负载的优先级、时间线、里程碑、资源和资金。然后将整个计划分解为多个迁移项目,每个项目都有一组相关的工作负载。获得领导层和卓越的新迁移中心的支持。
Implementation
Build landing zones—then migrate and modernize in waves.
Get ready for the move
培养云技能。
使 IT 和应用开发团队快速掌握云技术、迁移工具和操作流程。预先训练投资有助于更有效地缩放迁移工作,并为组织的成功打下基础。
设置工作负载的登陆区域。
Help avoid governance issues during and after migration by using landing zone best practices. Preconfigured landing zones include networking, identity, management, security, and governance elements that balance agility with organizational standards.
Review best practices for Azure readiness
Help ensure the proper configuration of your current and future landing zones by expanding and validating landing zone modifications with Azure readiness best practices.
Migrate your workloads
Make cloud migration easier with centralized tools
Discover, assess, and migrate your workloads with a comprehensive resource like Azure Migrate—the central hub for all of your migration automation needs. Find all of the tools and guidance you need to implement your move—and track your progress from a central dashboard.
Assess, migrate, optimize, and promote workloads iteratively
Use an iterative process of migrating one workload at a time or a small collection of workloads per release. Help ensure that workloads are ready to meet production demands by assessing, migrating, optimizing, and promoting them with each iteration.
Prepare to expand your scope with cloud migration best practices
Review the Azure cloud migration best practice checklist to take your migration beyond basic cloud-native tools. Get guidance on specific topics, including: VMware migration, SQL Server migration, and global market support.
Modernize your apps and data
Modernize iteratively at any stage
Modernization involves refactoring, rearchitecting, or rebuilding your apps and data. Use modernization to achieve benefits like boosting app innovation, increasing agility, and accelerating developer velocity. You may modernize at any stage—before, during, or after migrating your workloads.
Refactor apps and databases for speed and productivity
Refactor—or repackage—when you want to make minimal changes to apps so that they connect easily to Azure. For example, refactor relational databases directly into a cloud database service like Azure SQL Database.
Rearchitect apps and databases for cloud scalability and productivity
Rearchitect when you want to modify and extend app functionality and code to optimize for cloud scalability. For example, break down monolithic apps into groups of microservices that work together and scale easily.
Rebuild with cloud-native technologies to accelerate developer velocity
Rebuild when you need to recreate an app using Azure cloud solutions. Consider rebuilding if your existing apps have limited functionality or lifespan.
Operations
Easily govern, secure, and manage cloud environments.
Govern and secure your workloads
Get visibility into and more control over your security posture
Quickly detect and respond to threats across hybrid environments with intelligent threat protection from a solution like the Azure Security Center. Help secure your entire organization from threats with cloud-native SIEM solutions like Azure Sentinel.
快速生成并缩放应用和工作负载,同时维持控制。
在登陆区域工作的基础上,建立并维护标准和自定义策略的正确组合,以合规的方式来监管云订阅和资源。
Manage and cost-optimize your cloud environments
熟悉云提供商提供的工具、产品/服务和指南。
Monitor and adjust cloud spend and drive operational efficiencies with exclusive offers. For example, use reserved instance discounts or reuse your on-premises licenses in the cloud.
Simplify management
Manage your workloads across all environments with a solution like Azure Arc. Monitor workload performance with real-time insights and trends. Help ensure your workloads stay protected with cloud backup and disaster recovery solutions.
保护和管理
治理
成本优化
迁移
现代化