现代化

已完成

云现代化是改进现有基于云的工作负载以更好地满足业务需求的做法。 它使工作负载与云最佳做法保持一致,而无需添加新功能。

为云现代化准备组织

  1. 为组织定义现代化。 建立一个常见定义,重点介绍如何通过重新构建、重构和重新架构云中的现有工作负载,不包括净新功能或完全重写。 跨所有团队和利益干系人传达此定义,以防止不对齐。 在具有明确角色和跨团队协调的开发、运营、安全和体系结构团队之间创建共同的责任。

  2. 评估现代化准备情况和技能。 评估团队在云服务知识、DevOps/CI/CD 成熟度、现代体系结构模式和监视/自动化工具方面的功能。 确定技能差距,并制定计划,通过培训、认证、新员工或来自Microsoft或合作伙伴的外部专业知识来解决这些差距,以确保顺利执行现代化。

  3. 确定要现代化哪些工作负载的优先级。 根据工作负荷对收入、客户体验、合规性和内部依赖项的重要性来评估业务价值。 通过检查技术债务、过时的技术、维护工作、性能问题和可伸缩性限制来评估技术风险。 将这些评估合并为优先级矩阵,以确定要首先实现现代化哪些工作负荷。

  4. 了解如何现代化。 使用 Azure Well-Architected 框架进行评审,以识别差距并跨五大要素生成现代化路线图:可靠性、安全性、成本优化、卓越运营和性能效率。 使工作负荷团队能够在定义的边界内提供业务上下文和决策机构,同时保持定期签入以实现组织一致性,从而做出现代化决策。

规划云现代化

  1. 选择现代化策略。 根据具体需求从三种主要方法中进行选择:使用最少的代码更改(IaaS 到 PaaS)进行快速取胜,重构以修改现有代码以提高结构和云优化,同时保持功能,或重新架构以使用云原生模式(如微服务和无服务器)重新设计应用程序体系结构。 根据目标、时间线和资源,将策略与每个组件的要求相匹配。 通过在业务价值方面做出每个决策来避免过度现代化。

  2. 分阶段规划现代化。 将复杂的工作负荷分解为逻辑阶段,通过处理可管理的区块来提供增量价值并降低风险。 将工作除以组件/层、优先级/复杂性或业务功能,从早期获胜的低风险、高价值变化开始。 按值和依赖项对剩余阶段进行排序。 为每个阶段定义明确的成功标准,包括技术目标和质量入口,并根据从完成阶段中吸取的结果和教训来调整计划。

  3. 规划现代化治理。 建立与现有变更顾问委员会集成的正式变更审批工作流,或创建专门的现代化审查委员会。 在主要部署之前和期间实现更改冻结,以稳定环境。 控制范围通过要求评估和批准任何建议的更改而保持积压的延迟好主意而令人毛骨悚然。

  4. 定义部署策略。 在就地部署之间进行选择,以便进行低风险、可逆的更改,这些更改可以在维护时段内实现,或者针对复杂高风险更改并行部署,这需要通过运行新环境与现有工作负载来缩短停机时间。 尽可能使用渐进式部署技术,例如 Canary 发布,从较小的用户百分比开始,并根据监视结果逐渐增加。

  5. 计划缓解现代化风险。 使用分步说明、责任方和时间范围为每个重大更改创建详细的回滚过程。 尽可能使用基础结构即代码工具和蓝绿部署自动回滚。 在部署期间和部署后,确保支持团队处于备用状态,并延长了超护理期进行监视。

  6. 确保利益干系人批准。 为不同的受众定制价值主张(技术团队的运营效率、领导者的业务成果),并记录具有明确里程碑和时间表的结构化计划。 使用特定指标(例如 20-40% 成本降低和 50-80% 工作效率提升)量化现代化价值。 使用缓解策略透明地解决项目风险,并保持定期沟通,以报告进度并收集反馈。

在云中执行现代化

  1. 为现代化准备利益干系人。 提前向所有受影响的各方宣布部署计划,包括更改冻结开始和上线窗口等关键日期。 使用明确定义的开始和结束时间对源和依赖工作负荷实施更改冻结。 传达最终用户作和部署后更改,包括新的访问 URL 和身份验证要求。 通过延长的工作时间和升级过程协调支持人员配备。 使用手动解决方法和应变计划为关键工作负荷定义回退过程。

  2. 在非生产环境中开发现代化。 使用 Azure 顾问建议和体系结构评审流程在实施过程中遵循 Well-Architected 框架原则,以验证设计决策。 创建非生产环境,以较小的规模或较低的性能层使用同一 Azure 服务镜像生产。 使用 Git 以增量方式通过源代码管理和 CI/CD 实现更改,以使用 Git 作为持续集成生成的代码脚本。

  3. 使用测试验证现代化更改。 使用 CI 管道和回归测试对所有修改的组件执行单元和集成测试,以避免中断现有功能。 通过手动 QA 或模拟真实用户工作流的自动化 UI 测试执行端到端功能测试。 通过利益干系人执行用户验收测试,以捕获有关可用性和功能的反馈。 使用负载测试工具(例如 Azure 负载测试)在 150% 预期负载等负载测试来验证性能。 使用漏洞扫描和 Microsoft Defender for Cloud 执行安全验证和符合性检查。 在生产部署之前解决所有关键问题。

  4. 创建可重用的基础结构。 将基础结构构建为代码模板,这些模板可用于将来的部署和环境,确保一致性并减少不同部署方案中的手动配置错误。

  5. 创建部署文档。 记录所有部署过程、回滚步骤和验证过程,以确保执行一致,并使团队成员能够安全可靠地执行部署。

  6. 部署现代化。 对于就地部署,请计划维护时段,使用 CI/CD 管道进行一致的部署,并使用 Azure 应用服务槽或容器应用流量拆分通过 Canary 部署实现渐进式流量路由。 在监视指标并维护部署期间的数据一致性时,逐渐增加到完整流量。 对于并行部署,请使用 IaC 模板创建并行生产环境,使用连续数据同步建立数据库复制,使用 Azure 迁移工具复制非结构化数据和文件,完成零数据丢失的最终数据同步,使用加权路由从 1% 开始逐步减少用户流量,并增量增加。 通过 DNS 直接转换或负载均衡器配置执行最终切换到 100%。 立即验证直接转换后的功能,并将旧环境保留为热备用状态 24-72 小时。

  7. 验证现代化是否成功。 通过在初始迁移后期间监视访问模式、性能指标和错误率来确认用户访问和工作负荷性能是否成功。 仅在工作负荷所有者、测试人员和业务利益干系人彻底验证和确认满足所有要求后,才宣布迁移成功。

  8. 在稳定期间支持工作负荷。 在稳定期间建立增强的支持覆盖范围,经验丰富的 IT 人员在前几天或几周内提供比正常作短的 SLA。 更新作文档和工具,包括 Runbook、支持文档和监视配置。 针对新过程训练运营团队,并确保资产清单反映新基础结构,同时删除旧组件。

在云现代化后优化工作负荷

  1. 优化云的配置。 通过查看每周并首先实施关键更改、按工作负荷或资源组进行筛选来系统地应用 Azure 顾问建议。 使用 Azure Well-Architected Framework 服务指南调整特定于服务的设置,使配置与最佳做法保持一致。 使用 Microsoft Defender for Cloud 立即解决安全配置差距,以便在 48 小时内解决关键和高严重性发现问题,同时配置持续评估。

  2. 验证作准备情况。 通过确保 Azure Monitor 收集新组件所需的所有日志、指标和跟踪来验证监视覆盖范围和准确性。 通过混沌测试和更新仪表板测试警报规则,以反映新体系结构。 使用Microsoft成本管理建立成本监视和控制,以跟踪支出模式,设置预算警报和支出限制,并每周查看资源利用率,以获取权利机会。 使用 Azure 备份或数据库时间点还原执行测试还原来测试备份和恢复过程。 文档实现了 RTO 和 RPO 指标,并确保备份策略中包含所有关键数据。

  3. 收集用户反馈并衡量结果。 通过调查、反馈表单和支持票证分析定期收集结构化用户反馈。 为内部团队进行回顾会议。 通过在 Azure DevOps 或 GitHub 问题中记录问题、按严重性和业务价值分类、分配所有权以及每月传达进度来系统地跟踪和解决反馈。 通过编译成功指标和 ROI 预测来衡量实际结果与目标。 将结果传达给利益干系人,以展示实现的价值或确定缺口。

  4. 建立持续的现代化实践。 使用 Well-Architected 评审或运行状况检查计划每隔几个月定期进行工作负荷评审,以确定随着云服务的发展和使用模式的变化,新的优化机会。 尽可能使用 Azure Policy 自动优化来强制实施最佳做法、实现性能优化自动缩放规则,以及通过成本管理设置成本异常警报。 通过记录成功的优化模式、为常见方案创建 playbook、维护所吸取的教训的知识库以及为组织云采用实践提供见解来共享结果和最佳做法。

有关详细的云采用框架指南,请参阅 云中的工作负载现代化