如何平台迁移应用

平台迁移是一种实现应用和基础设施现代化的有效方法,进而改善跨多云和混合云环境的性能、可扩展性和控制,且无需重写应用。

学习目标

阅读本文后,您将能够:

  • 说明平台迁移如何支持应用现代化
  • 列举平台迁移策略中的关键步骤
  • 描述平台迁移如何推动增长、降低风险和控制成本

相关内容


想要继续学习吗?

订阅 TheNET,这是 Cloudflare 每月对互联网上最流行见解的总结!

参阅 Cloudflare 的隐私政策,了解我们如何收集和处理您的个人数据。

复制文章链接

什么是平台迁移?

平台迁移是一种云迁移策略,让企业能够将应用(通常是部分)从一个计算环境迁移到另一个计算环境。与完全重构或重新托管不同,平台迁移侧重于选择性增强,通常是在基础架构层面,而不改变核心应用功能。目标通常是提高安全性、整合应用基础架构、简化新功能的添加,以及为未来的开发奠定更高效的基础。

企业为什么选择平台迁移?

许多企业在旧的、混合且碎片化的环境中进行复杂的管理和维持性能方面面临着日益严峻的挑战,因此,它们需要平台迁移。在许多情况下,这种复杂性是由以下现实情况造成的:

  • 分散的云采用:各个团队通常拥有完全的自主权来选择云解决方案,并且只专注于自己所需的应用。虽然这加快了初始部署,但却导致企业内的架构不一致和重复工作。
  • 并购:通过并购进行业务扩张,这增加了另一层复杂性。新集成的应用通常运行在不同的架构和云提供商平台上,导致难以整合和实现一致的管理。
  • 部分采用云:许多公司从基本的重新托管开启了上云之旅,例如将应用迁移到云端,而没有重新架构以实现云原生性能、可扩展性或韧性。这无法充分实现云投资的价值,并且留下运营漏洞。

除了这些结构性因素之外,随着跨多云环境扩展应用,基础设施成本也持续猛增。传统的数据中心策略和零散的云采用,导致了臃肿、碎片化的生态系统。

安全压力也可能与日俱增。企业通常会选择两条艰难的路径之一:一是在每个公共云中构建原生安全控制,这需要团队解决不一致的策略、用户界面和 API 问题;二是应用第三方安全保护层,这通常会增加运营开销并造成可见性差距。

性能和内容交付需求也同样费力。团队被迫管理多个工具和专门的工作流程,以实现媒体优化、内容管道和多设备交付。开发人员花费更多时间解决延迟和平台限制,而不是专注创新。

在这些挑战相互交织的情况下,平台迁移可能会成为推动业务增长的动力。它可以帮助企业简化环境,减少运营扩张,并重获多云和混合架构的控制权,同时让团队能够以更大的敏捷性和信心为未来创新提供支持。

平台迁移的工作原理

平台迁移是一个结构化流程,它在基础架构变更之前就已开始。

评估现有应用

企业必须评估现有应用,然后再做出平台迁移决策。这包括了解每个应用的架构、依赖关系和基础设施占用空间。如果没有这种可见性,团队就可能面临迁移不兼容服务的风险,或忽略可能延续到新环境的关键性能瓶颈问题。

需要评估的重要方面包括:

  • 平台兼容性:当前应用组件是否可以在目标平台(例如 Kubernetes、无服务器容器)上可靠运行?是否存在专有服务或硬件依赖关系而限制了灵活性?
  • 可扩展性限制:是否存在阻止应用水平扩展的架构限制?能否跨云或区域高效地分配工作负载?
  • 性能和延迟:哪些组件对延迟或吞吐量问题敏感?图像传输、视频渲染缓存是否存在优化机会?
  • 安全与合规:目前采用了哪些云原生安全控制,它们的可移植性如何?在不同环境中重新应用这些策略是否存在风险?
  • 运营开销:需要多少工具以及手动流程来维护和监测应用的当前状态?

这项评估也是优先考虑哪些应用最适合进行平台迁移的契机。并非每个应用都需要平台迁移,因为某些应用可能更适合全面重构或简单的提升和转移(重新托管)。目标是确定平台迁移在降低成本、提升性能和简化运营方面会带来哪些最大的价值。

通过在迁移流程早期全面评估平台的兼容性和可扩展性,企业可以避免在应用迁移过程中出现意外情况时带来的高昂成本。此规划阶段确保迁移路径以现实的限制问题和业务优先级为基础,而不仅仅是理论架构图。

改进现有技术栈,而非将其替换

平台迁移并不是选择全新平台并放弃当前的有效平台。大多数企业都不是从头开始。相反,它们采取循序渐进的方法:改进现有技术栈,以增强可扩展性、韧性和提高性能,同时逐步引入平台即服务 (PaaS)功能,补充其现有的基础设施即服务 (IaaS)软件即服务 (SaaS) 战略。

PaaS 充当加速器,而不是替代品。通过在现有环境之上分层部署 PaaS 解决方案,企业可以释放云原生优势,例如自动扩展、托管服务以及加速部署速度,而无需遭受全面架构重构造成的干扰。这种方法让团队能够对关键组件进行现代化改造,同时保持核心系统稳定。

将 PaaS 引入现有技术栈时,以下几个关键因素有助于确保成功:

  • 可扩展性和弹性:采用能够与当前架构无缝集成,并且提供水平扩展、自动配置和无缝吸收流量峰值的解决方案。
  • 云原生服务:寻找托管数据库、无服务器计算和集成式内容交付,以降低运营复杂性并缩短开发周期。
  • 生态系统和支持:确保与现有的 DevOps 工具和 CI/CD 管道兼容,并选择提供完善的文档、社区支持和企业级服务承诺的提供商。
  • 合规和数据主权选择符合监管标准的服务,注重数据隐私、区域托管和合规,在扩展规模的过程中保持一致的治理。
  • 透明的定价模式:优先考虑采用可预测、基于使用量定价的平台,以长期维持成本控制。

大多数企业继续依赖于混合云或多云策略,来平衡性能、成本优化与风险管理。循序渐进的平台迁移方法符合这种现实,让企业能够提高可靠性和敏捷性,而不会将自己锁定在单一供应商或架构中。

更新应用以确保兼容

确定目标后,开发团队必须准备好应用,使其能够在新环境中有效运行。这通常需要进行技术调整,以确保平台兼容性和优化性能。

确保平稳过渡的关键步骤包括:

  • 代码和依赖项更新:重构硬编码配置,替换已弃用的资源库,并移除阻碍可移植性的单体系统限制。
  • 数据库迁移:选择适当的策略,例如复制、备份即恢复或实时迁移,以便在不同环境之间迁移时保持数据完整性。
  • API 兼容:评估内部和外部 API 依赖项,以确保版本一致,并避免在迁移期间或迁移之后进行重大更改。
  • 容器化:对于许多工作负载而言,容器化应用组件可以实现跨环境的可移植性并提高编排的流畅性。
  • 配置即代码:使用声明的方式管理基础设施和服务配置,降低偏移风险。

应该以迭代方法完成这些更新,并且应该尽早在与生产环境高度相似的暂存环境中进行测试,从而让团队能够在全面部署之前解决潜在问题。

迁移和验证

平台迁移的最后阶段侧重于迁移应用,以及在新环境中验证其性能、稳定性和完整性。在这一阶段,详尽周密的应用迁移计划和明确的迁移策略会证明自身价值。在迁移过程中保持数据完整性至关重要,特别是涉及实时事务或分布式数据库的系统。

为此,企业通常使用加密哈希或校验和,验证数据在传输过程中是否保持不变。加密可确保数据在传输过程中的机密性和完整性,而数字签名则可用于检测篡改或提供可追溯性。迁移后,通过比较哈希值、运行一致性检查或使用数据库原生工具来验证数据完整性,确认所有数据均已准确复制。

采用蓝绿部署、金丝雀发布或流量镜像等技术,以最大程度地缩短停机时间,从而让团队能够无需完全切换即可验证应用行为:

  • 在蓝绿部署中使用两个相同的环境(蓝色和绿色),以便在二者之间切换流量时最大程度地减少流量中断。
  • 金丝雀发布会逐步将变更推送给一小部分用户,以便在扩展规模之前监测潜在问题。
  • 流量镜像会将实时生产流量副本发送到暂存环境,从而在不影响最终用户的情况下进行实时测试。

应用上线后,侧重点会转移到验证。功能测试旨在确保核心逻辑、工作流程和用户体验按预期运行。性能测试会将平台迁移后的应用与其之前的状态进行比较,以核实是否有所改进,或者发现速度下降、错误,或速度和可靠性问题。安全验证会确认访问控制、监测工具和安全策略均已在新的技术栈中准确地重新应用。此外,可观察性至关重要:必须部署指标、日志和跟踪,以便深入了解运行时行为并及早发现问题。

最终,成功的验证确认应用不仅能够正常运行,而且还运行得更好、更安全,并且能够根据未来的开发需求来扩展和发展。

Cloudflare 如何支持应用现代化

Cloudflare 通过优化内容交付、本地化数据存储、动态流量定向以及统一的 Zero Trust 安全方案来扩展现有技术栈,从而为平台迁移提供支持。阻止 GenAI 威胁、恶意组件和 API 攻击,同时获得可见性,确保合规。利用无服务器计算和边缘缓存,Cloudflare 有助于逐步实现应用现代化,进而改善跨多云和混合云环境的可扩展性、性能和控制。

详细了解应用现代化