跳至主要内容

什么是云迁移中的应用程序重构?

什么是云迁移中的应用程序重构?

应用程序重构是指重新设计应用程序,以充分利用云基础设施的能力。组织在本地基础设施上运行的应用程序已显陈旧,这会限制运维效率并阻碍创新。应用程序重构涉及修改应用程序架构,并部分或全部重写代码,以满足现代需求。这可能是一个耗时、复杂且成本高昂的过程,但与其他应用程序现代化举措相比,它能带来最大的长期性能提升和成本节约。

何时进行应用程序重构?

在云迁移过程中,重构是应用程序多种迁移方式中的一种。在应用程序至关重要且使用频繁,且通过修改能带来额外效率时实施重构。示例场景包括:

应用程序需求增加

应用程序面临日益增长的性能和可扩展性需求,但现有架构已无法满足这些需求。由于应用程序性能不佳、缺乏可扩展性或运行成本高昂,仅靠现有应用程序已难以满足客户需求和市场要求。

维护挑战

应用程序难以维护,原因可能包括:源代码缺失、代码编写质量差、缺乏维护,或者使用了过时的技术和语言。团队中可能无人具备处理这种混乱代码所需的专业知识。招聘具备相关专业知识的新人才可能既昂贵又困难。此外,过多的错误或其他问题也可能导致应用程序难以维护。

测试挑战

遗留应用程序的测试覆盖率较低,且难以新增测试用例。任何新功能或修改都可能影响应用程序的整体质量,并引入新的缺陷,而这些缺陷往往要等到生产环境才会暴露。在这种情况下,对应用程序进行重构有助于提高测试覆盖率并集成自动化测试。

定制应用程序

如果您拥有代码库可编辑的定制应用程序或针对商业软件开发的定制扩展,那么对应用程序进行重构是一个可行的方案。如果商业软件进行了重大升级,您可能需要进行重构。如果应用程序能够从云平台的各项服务、工具和功能中获益,但现有代码与之不兼容,则应考虑进行应用程序重构。此外,如果希望通过埋点使应用程序能够输出遥测数据,也有必要进行重构。

应用程序重构有哪些优势?

应用程序重构带来的业务效益取决于项目的目标。

云集成

应用程序重构会改变应用程序内部使用的结构或设计模式。例如,可以将传统的单体应用程序拆分为微服务,作为分布式容器化应用运行。也可以对应用程序进行重构,使其包含全面的 API。此类更改能让应用程序在云基础设施上更高效地运行。

可维护的代码

重构混乱或过时的代码,能让开发团队更容易理解代码。在这种情况下,应用程序重构有助于提高代码可读性,使新功能的开发更快捷、更轻松,并能减少技术债务。

改善了性能

重构代码还能针对新的目标云计算架构实现性能优化。这能确保应用程序运行速度更快、可扩展性更强,且运行成本更低。在进行代码性能重构时,通过遥测手段对代码进行埋点,可以验证所做更改对外部行为的影响。

增强安全性

在迁移过程中,出于安全性和合规性目的,往往需要对应用程序进行重构。例如,应用程序可能使用了过时的库或无人维护的依赖项,这些库或依赖项都需要进行更新或替换。此外,您还可以在重构应用程序的同时,增加额外的安全防护层。

应用程序重构是如何进行的?

应用程序重构涉及对应用程序进行修改,以提升其在云集成、开发人员易用性、运行时性能或安全合规性等方面的表现。应用程序重构通常不会改变应用程序的底层功能,也不会增加新功能。不过,许多企业选择在重构过程中扩展功能。

源代码重构

源代码重构涉及对应用程序现有代码进行更改。源代码的修改可能包括逻辑流程调整、结构变更、错误修复、代码整合、语言或依赖项更新、移除未使用的组件以及其他改动。此外,还可以通过重构源代码来利用云原生技术,例如容器和无服务器基础设施。

数据库重构

更改应用程序数据存储方式的过程称为数据库重构。数据库重构可能涉及更新版本或模型,甚至为了云迁移而切换到不同的数据库。

用户界面重构

组织在进行整体代码变更时,可以选择执行用户界面重构。例如,可以更新应用程序界面以修正过时信息,或者调整视觉设计以符合组织的品牌形象。

有哪些适用于云的应用程序重构策略?

根据迁移目标和对公有云服务的预期采用程度,有多种重构技术可供选择。

最小可行重构

最小可行重构是指对应用程序进行最少量的修改,使其能够在云端运行。在此过程中,代码重构可能涉及操作系统更新、框架更新、新的安全变更、更新的访问权限以及数据库变更。

云原生重构

云原生重构是指修改应用程序,以确保其能轻松与云原生功能集成。这可能包括以下任务:添加遥测功能以与 Amazon Managed Grafana 集成,引入数据分析的新功能,创建用于 AWS CodePipeline 开发的钩子,或为 CI/CD 流程定义“基础设施即代码”。

容器化重构

某些应用程序重构项目的主要目标是将单体应用程序转换为容器化应用程序。容器化是指应用程序由多个服务组成,这些服务在相互独立但经过编排的容器中运行。通过容器化,企业可以在不同地点的多台服务器上运行应用程序,并确保应用程序完全可扩展,并且具有更强的韧性。Amazon Elastic Container Service 和 Amazon Elastic Kubernetes Service 等服务专为基于容器的应用程序而设计。

无服务器应用程序重构

迁移到云端时,另一种常见的应用程序重构策略是将应用程序转换为无服务器应用程序。无服务器应用程序是事件驱动的,这意味着您只需在函数被触发时运行它们,从而降低成本,且无需担心服务器问题。转向事件驱动架构是否合适,取决于您的应用程序类型。AWS Lambda 是 AWS 提供的无服务器计算服务,适用于您重构后的云原生应用程序。

AWS 如何帮助进行应用程序重构?

AWS 提供一系列服务,可帮助您重构代码,从而充分利用云环境的优势。例如,您可以使用

  • AWS Toolkit for .NET Refactoring 是一款 Visual Studio 扩展工具,旨在减少开发人员将旧版 .NET 应用程序重构为 AWS 上基于云的替代方案所需的时间和精力。

  • AWS Microservice Extractor for .NET 可简化将老旧一体式应用程序重新架构为较小代码项目的过程,从而构建基于微服务的架构。

  • AWS Mainframe Modernization 内运用 AWS Blu Age 的重构功能可根据旧版单体大型机或中型机源代码,自动创建现代化应用程序。其中包括采用 COBOL 的应用程序、生成的 COBOL、PL/1、NATURAL、RPG/400、COBOL/400 及其各自的底层数据库和数据文件。

  • Amazon Q 开发者版是一款 AI 辅助服务,适用于 .NET、大型机、VMware 和 Java 工作负载。该服务通过自动执行旧版代码分析、文档编写、语言升级、漏洞修复、方案探索及现代化改造阶段执行等复杂任务来加速现代化项目并降低成本。

立即创建账户,开始在 AWS 上进行云迁移的应用程序重构。

Browse all cloud computing concepts

Browse all cloud computing concepts content here:

正在加载
正在加载
正在加载
正在加载
正在加载

Did you find what you were looking for today?

Let us know so we can improve the quality of the content on our pages