掌握云迁移:成功的最佳实践
掌握云迁移:成功的最佳实践技巧
随着高级管理人员推动更高效和节省成本的需求,云迁移项目正在加快推进。说云是答案,对每个人来说都是最流行方式,这可能引人心动,但并不完全正确。在我作为工程师的职业生涯中,我见过不同的情况,从中型公司决定转向云端到企业级公司选择本地基础架构。我知道这条路绝非一帆风顺。
如果您的团队正准备进行云迁移,本文将为您提供可执行的方法。
云还是非云,或者在制定云迁移战略之前需回答的 3 个问题
云和本地基础设施之间的选择通常根据便利性和可控性来做决策。通过云,您可以选择操作系统并管理补丁,但实际上无法控制虚拟化程序或硬件性能。因此,无论公司选择何种路径,必须明确业务所追求的原因和目标。
我建议回答以下三个问题,以确保云迁移是正确的选择。
1. 对于您的应用程序来说,实时性能有多重要?
解决方案性能始终重要;这是无可争议的。但对于一些网络密集型应用程序来说,实时性能变得至关重要。想想广告技术平台,延迟是最大的敌人 – 超过 100 毫秒的延迟可能导致丢失的竞价、广告位和收入。因此,由网络接口、核心或驱动程序引起的任何延迟都可能成为严重问题。通过更改系统核心、安装必要的补丁以及更改驱动程序或网络接口以获取最佳性能,您的本地数据中心是真正可以控制这些问题的唯一地方。
2. 您是否有大型但高度可预测的工作负载?
现在,让我们考虑处理大规模数据分析、统计计算、机器学习模型训练和其他需要高计算能力的计算密集型应用程序。采用这些类型的解决方案,您的硬件几乎一直在以最大容量不知疲倦地工作。而运行这些 CPU 密集型应用程序的云计算成本可能极高。
3. 您是否有季节性需求的激增?
本地数据中心的问题在于,如果您的流量激增,您无法立即扩展。要做到这一点,您首先需要物理添加新的硬件。但在云中,扩展或缩减可以在几秒钟内完成,不会对业务运营造成任何中断。因此,如果您经常经历季节性需求激增(例如圣诞节前),云将为您提供必要的灵活性和敏捷性以满足需求。
如何进行云迁移
现在,我们来到最有趣的部分-将您的系统迁移到云端。如果您有一个基于 Salesforce 的应用程序,在互联网上很容易找到云迁移教程。然而,如果您的生态系统包括一个 Salesforce 平台和一个经过定制的解决方案,并通过定制的 ETL 过程进行连接,那么就没有现成可用的指南。因此,记住没有一种大小适合所有的方法,您应该从哪里开始呢?
1. 进行基线评估
很自然地,第一步是了解您正在处理的情况-您的解决方案使用了哪些技术和数据库,以及它与哪些其他系统和组件进行了集成。
我们已经讨论过云需要接管解决方案操作环境的控制权。那么如果您的系统直接与加密板交互或使用与硬件 ID 关联的许可证,怎么办?早期了解哪些元素和集成对于整体系统操作至关重要是至关重要的。
2. 优先处理迁移队列
正如我们之前讨论过的,出于迁移本身的目的而进行云迁移从来不是一个好主意。公司必须有有效的理由和明确的目标来进行这个项目。同时,在初步的基线评估过程中,我们已经揭示了迁移过程中可能出现的最大问题所在。当我们将这些事项匹配时,我们可以准备一个有效的迁移计划,优先处理最重要的问题。例如,如果转向云的主要目标是解决可扩展性瓶颈,则需要进行扩展的系统将是迁移到云的第一个系统。
3. 映射依赖关系
一旦你知道先迁移哪些内容到云端,你需要了解该如何处理依赖关系。比如说,你的应用程序使用了三个数据库:其中一个数据库仅被你的应用程序使用,所以迁移它到云端很容易,但其他两个数据库与其他系统共享。那么问题来了,你打算如何处理这些数据库以及使用它们的系统?
嗯,这里有不同的选择。在某些情况下,你可以通过在云端扩展你的本地数据中心,设置一个共享网络基础架构来解决。或者你可以将一个数据库迁移到AWS,并且你的解决方案很容易从那里检索数据。然而,如果你有大量数据,将数据迁移到云端可能会很困难。此外,由于你不能中断系统的运行和相关的业务工作流程,你需要启动和配置一个复制实例,然后才能设置迁移队列。
4. 选择正确的策略
最简单的云迁移策略是举起并转移。如果你的解决方案托管在服务器上的虚拟机上,最简单的方法就是将虚拟机镜像转移到云端。然而,这种策略有一个缺点—它会产生显著的运营成本。当你启动一个虚拟机时,你需要支付其运行的整个时间,无论它是否真的运行。
如果举起并转移并不适用于你,你可以将系统拆分为各个组件。例如,如果你的数据库运行在一个虚拟机上,你可以将它转移到云端的一个新虚拟机上,或者使用托管服务,并重新配置该数据库的连接字符串。这样,你不仅将数据库迁移到云端,还提高了可用性,因为Amazon服务在不同的地理区域运行。
另一种处理云迁移策略的方式是看看你的解决方案是一个整体还是具有前端客户端应用程序和若干APIs的客户-服务器体系结构。如果是的话,这些API可以托管在单独的虚拟机上。或者你还可以重构后端为Lambda函数,更进一步实现无服务器架构。
总结
从今天的讨论中可以清楚地看出,云迁移是一个具有挑战性但又迷人的主题。由于每个解决方案都是独特的,具有自己的技术栈和依赖关系,因此没有一个单一的指南或教程适用于所有云迁移。然而,有一些最佳实践方法——不要忽视基线评估,按照业务需求优先考虑迁移队列,识别所有依赖关系,并准备最适合你的项目的路线图。