迁移到Microsoft Azure正当时
最近大家可能或多或少收到或者看到这样一个消息,Windows Server 2008/2008 R2以及SQL Server 2008/2008R2即将结束生命周期的消息。笔者查了下最新信息,Windows Server 2008/2008 R2将于2020年1月14日结束生命周期,SQL Server 2008/2008R2将于2019年7月9日结束生命周期,到期后Microsoft公司不再提供任何技术支持服务,即便您购买了Microsoft Premier服务。
因此众多企业需要着手考虑进行迁移了,当然,微软提供一个比较好的政策以帮助用于完成升级与迁移:如果您将该平台业务迁移到Azure,微软提供三年免费扩展安全更新与支持服务【如果不对,还请指正】,利用这三年时间对业务系统以及后台数据库进行升级。
那么问题来了:
- 我们有一些第三方应用程序,无法完全控制代码或架构升级。在支持结束之前,我们无法升级这些应用程序。我们该如何操作
- 我们有数百个应用程序在Windows Server 2008/2008r2上运行。有些是在VMWare上运行的虚拟机,有些是较旧的物理机。Microsoft是否有工具可以帮助我们识别这些应用程序并迁移?
- 我们需要最大限度地减少迁移期间的停机时间。我们怎么做?我们该如何规划停机时间?
- 将工作负载迁移到Azure时,我们如何保证安全性和身份验证?我的业务系统是否会继续使用本地使用的相同身份验证?
- 我们的一些数据有严格的监管限制,不能离开原产国,我们如何在Azure中处理这类数据?数据是否会被复制或位于其他国家或地区?
- 如果迁移到到Azure SQL,该数据库是否会影响我们的业务系统,数据库管理团队的角色界定、如何进行维护操作?
当然,以上是我假想的一些问题,我会在文末做一些解答。
通常情况下我们会遵循以下步骤完成迁移:
我们会使用较多工具来配合完成,当然微软也提供了很多工具来帮助我们。
描述 |
链接 |
Azure Security Center【国内21V版暂无】 | |
Azure TCO分析 | |
Azure成本管理【国内21V版暂无】 |
https://docs.microsoft.com/en-us/azure/cost-management/overview |
Azure混合效益 | |
Azure迁移中心 | |
Azure Migrate【国内21V版暂无】 |
https://docs.microsoft.com/en-us/azure/migrate/migrate-overview |
数据库迁移指南 | |
Azure数据库迁移服务 | |
数据迁移助手 |
https://docs.microsoft.com/en-us/sql/dma/dma-overview?view=sql-server-2017 |
Azure Site Recovery | |
Azure Backup | |
Microsoft Assessment and Planning Toolkit |
https://technet.microsoft.com/en-us/library/bb977556.aspx https://www.microsoft.com/en-us/download/details.aspx?id=7826 |
迁移到Azure云端一般主要有以下四种方式
Rehost(lift&shift):此策略无代码修改以允许您快速将现有应用程序迁移到Azure。每个应用程序都按原样迁移,这提供了云的好处,而没有进行代码更改的风险或成本。
- 您需要快速将应用程序从数据中心移动到云
- 您的应用程序的架构旨在利用Azure IaaS可伸缩性
- 您的企业需要应用程序,但不需要立即更改其功能
- 只有使用Azure IaaS VM才能满足您的应用程序或数据库要求
- 您需要移动应用程序而不更改代码
Refactor:重构(通常称为”重新打包”)是一种云迁移方法,它允许您最小化地更改应用程序代码或应用将应用程序连接到Azure PaaS所需的配置更改,并更好地利用云。例如,您可以将现有应用程序移动到Azure App Service或Azure Kubernetes Service(AKS)。您还可以将关系数据库和非关系数据库重构为Azure SQL,Azure Database for MySQL,Azure Database for PostgreSQL和Azure Cosmos DB。
- 您需要使用现有的代码库和开发技能,并且考虑代码可移植性
- 您的应用程序可以轻松重新打包以在Azure中工作
- 您希望应用Azure提供DevOps
- 您的IT团队正在使用针对特定工作负载的容器策略投资DevOps
Rearchitect:修改或扩展现有应用程序的代码库,以优化云规模的应用程序体系结构。例如,将单片应用程序分解为一起工作并易于扩展的微服务。并将您的关系数据库和非关系数据库重新架构到Azure完全托管的DBaaS解决方案,例如Azure SQL数据库管理实例,Azure SQL,Azure Database for MySQL,Azure Database for PostgreSQL和Azure Cosmos DB。
- 您的应用程序需要进行重大修订才能合并新功能或在云平台上更有效地工作
- 您希望利用现有的应用程序投资
- 您希望以经济高效的方式满足可扩展性要求
- 您希望最小化虚拟机的使用
- 您希望应用Azure提供DevOps
Rebuild:使用Azure中的云原生技术从头开始重建应用程序。例如,使用云原生技术构建应用程序,如Serverless, Azure AI, Azure SQL Database管理实例, Azure Cosmos DB等。
- 您需要快速开发,现有应用程序在功能和使用寿命方面存在限制。
- 您已准备好使用云原生技术构建新应用程序。
- 您希望利用AI,区块链和物联网方面的优势构建创新应用程序。
- 您希望加快业务创新。
- 您希望应用Azure提供DevOps
以上四种策略我们还可以用下图表示
Windows Server升级和迁移:如何将物理和虚拟化环境迁移到Azure?
在这两种情况下,Azure Site Recovery都是用于执行向Azure虚拟机迁移的推荐工具。VMWare中托管的虚拟机还可以利用Azure迁移工具来编排流程。
使用Azure Site Recovery进行迁移的基本步骤:
- 准备Azure资源,包括Azure订阅,Azure虚拟网络和存储帐户
- 准备本地VMware服务器以进行迁移。您验证Site Recovery的VMware支持要求,准备VMware服务器以进行资产发现,并准备在要迁移的VM上安装Site Recovery Mobility服务。
- 设置迁移。您可以设置Recovery Services保管库,配置源和目标迁移设置,设置复制策略以及启用复制。您可以运行灾难恢复以检查VM迁移到Azure是否正常工作。
- 运行故障转移以将本地计算机迁移到Azure
如何迁移本地SQL到Azure虚拟机的SQL Server?如何迁移本地SQL到Azure SQL数据库和Azure SQL数据库托管实例的SQL数据库?
从本地数据库到Azure的所有迁移都应利用Azure数据库迁移服务。这将允许您在实际迁移之前评估兼容性,并且在某些情况下允许您直接从数据库迁移服务编排迁移。
将迁移到Azure虚拟机的SQL Server实例具有许多迁移选项,具体取决于SQL Server的版本和应用程序要求。
- 使用数据迁移助手(DMA)将架构和数据迁移到Azure VM
- 使用压缩执行本地备份,然后手动将备份文件复制到Azure VM
- 执行URL备份,然后从URL还原到Azure VM
- 将数据和日志文件分离并复制到Azure Blob存储,然后从URL连接到Azure VM
- 将本地虚拟磁盘转换为Hyper-V VHD,上载到Azure Blob存储,然后使用上载的VHD部署新的Azure VM
- 使用Azure Site Recovery将整个虚拟机复制到Azure
- 使用Windows导入/导出服务发送硬盘驱动器
- 使用”添加Azure副本向导”。此选项使用Always On Availability Groups将数据复制到Azure中托管的副本
- 使用SQL Server事务复制
要最大限度地减少迁移的停机时间,您应该使用Always On Availability Groups(SQL Server 2012开始支持)或Transactional Replication。需要注意的是,这些选项都不会迁移对象,例如用户登录和SQL代理作业,这些可能需要编写脚本并应用于SQL Server的目标实例。
- 应使用Azure数据库迁移服务助手将迁移到Azure SQL数据库或Azure SQL数据库托管实例的各个SQL数据库。这将允许您在实际迁移之前评估兼容性。另外,Azure数据库迁移服务助手当前不支持数据同步,并且停机时间最短。
Azure Backup服务可用于备份Azure虚拟机和本地服务器。它提供存储在geo-redundent存储中的加密的,应用程序一致性的备份。Azure Backup将备份存储在与虚拟机位于同一区域的Recovery Services保管库中。
所有SQL数据库都保证99.99%的正常运行时间以实现高可用性。管理员还可以在任何区域中开启ZRS(国内暂时不支持),以支持灾难恢复方案或扩展读取工作负载。
所有SQL数据库都会自动备份。标准和高级层数据库的自动备份保留期为35天。但是,可以将SQL数据库配置为长达10年的备份保留期。这可以通过将自动备份复制到Azure存储帐户来实现。副本的频率由您创建的策略确定。
Azure Resource Manager策略和基于角色的访问控制为您的云环境提供治理。您可以限制部署到Azure的资源的类型和规模。您还可以强制执行标记策略,然后可以使用标记来跟踪部门,项目名称等内容。
要在Azure环境中管理成本,您可以利用Azure成本管理。Azure Cost Management允许您跟踪Azure资源和其他云提供商(包括AWS和Google)的云使用情况和支出。Azure Cost Manaagement允许您根据标记策略跟踪所有成本。它允许在发生异常支出或超支时自动通知您。它还允许您通过识别空闲虚拟机或删除未连接的磁盘来提高效率。
使用Azure Policy,您可以定义可以部署的资源类型以及可以部署它们的区域。您还可以强制执行命名约定,标记资源和其他与治理相关的操作。基于角色的访问控制允许您限制对订阅,资源组和资源的访问。
Azure安全中心提供:
- 集中策略管理 – 通过集中管理所有混合云工作负载的安全策略,确保符合公司或法规安全要求。
- 持续安全评估 – 监控机器,网络,存储和数据服务以及应用程序的安全状况,以发现潜在的安全问题。
- 可操作的建议 – 在具有优先级和可操作的安全建议的攻击者利用安全漏洞之前,修复安全漏洞。
- 优先警报和事件 – 首先关注最关键的威胁,优先安全警报和事件。
- 高级云防御 – 通过及时访问VM上运行的管理端口和自适应应用程序控制来减少威胁。
- 集成安全解决方案 – 收集,搜索和分析来自各种来源的安全数据,包括连接的合作伙伴解决方案。
问:我们有一些第三方应用程序,无法完全控制代码或架构升级。在支持结束之前,我们无法升级这些应用程序。我们该如何操作?
答:如果您购买有SA,那么您可以直接使用Azure混合权益进行迁移与升级
问:我们有数百个应用程序在Windows Server 2008/2008r2上运行。有些是在VMWare上运行的虚拟机,有些是较旧的物理机。Microsoft是否有工具可以帮助我们识别这些应用程序?
答:Microsoft提供了各种免费的迁移工具来协助迁移规划和执行。此外,如果提供的工具不能满足特定需求,还可以借助于微软合作伙伴,他们可提供第三方迁移工具和咨询服务,例如我现在所在的公司。
使用Azure Migrate来评估已知Windows实例。目前,Azure Migrate服务仅支持发现VMWare中托管的计算机,物理和Hyper-V托管计算机即将推出。
Microsoft评估和规划工具包:MAP工具包提供计算机和应用程序的无代理发现和清单,硬件和软件迁移准备情况评估,软件使用情况跟踪以及虚拟化,公共和私有云迁移的容量规划。
问:我们需要最大限度地减少迁移期间的停机时间。我们怎么做?我们该如何规划停机时间?
答:在应用程序迁移方面,不同的系统会有不同的要求。虽然有些系统在周末停运时可能会很好,但其他系统只需要几分钟或几秒钟的停机时间。对于那些需要最少停机时间的系统,我们可以利用Azure数据库迁移服务等工具实现近乎零的停机时间
问:将业务系统迁移到Azure时,我们如何保证安全性和身份验证?我的业务系统是否会继续使用本地使用的相同身份验证?
答:Azure Active Directory是Microsoft基于云的目录和身份管理服务。它提供目录服务,应用程序访问管理和身份保护。Azure AD还支持与本地Active Directory的混合身份集成,允许您同步本地目录对象,同时仍在本地管理用户。同步身份以及可选的密码哈希使您的用户可以使用相同的密码来访问内部部署和基于云的组织资源。对于更高级的方案要求(例如单点登录(SSO)或内部部署多因素身份验证(MFA)),您需要部署Active Directory联合身份验证服务(AD FS)以联合身份。
问:我们的一些数据有严格的监管限制,不能离开原产国,我们如何在Azure中处理这类数据?数据是否会被复制或位于其他国家或地区?
答:Azure在全球拥有数据中心。您的数据将驻留在您创建资源的区域中。任何平台提供的复制(例如存储帐户复制)都将位于通常位于同一地理位置的配对区域。例如Azure China就是独立于Azure Global,数据中心位于中国大陆。
问:如果迁移到到Azure SQL,该数据库是否会影响我们的业务系统,数据库管理团队的角色如何进行维护操作?
答:数据库管理员仍然执行许多在内部完成的任务。例如,设计和配置高可用性和灾难恢复,存储管理,关键业务系统的性能调整,响应警报,脚本和管理数据库环境。Azure SQL数据库中的许多自动化和智能功能将改变这些任务的处理方式,使数据库管理员可以专注于更高价值的任务,而不是日常工作。
以上,结合了微软官方文档以及工作经验所整理的相关方法论与指导。下一篇我将介绍如何使用Azure Migrate服务实现:评估、迁移、优化以及安全管理。
本文固定链接: http://365vcloud.net/2018/09/26/it-is-time-to-migrate-to-microsoft-azure/ | 365vCloud的云计算之旅