【51CTO.com快译】得益于云计算技术所带来的便利与优势,如今越来越多的企业正在着手将他们的各种工作负载迁移到云端。此类云端迁移的关键点在于:我们需要找一种适合于每一种垂直业务的通用方法。
以往在系统建成之初,鉴于管控的灵活性和安全性,各个企业纷纷选择将自己的基础架构安置在其数据中心之内。但是,随着云计算的快速发展、业务需求的瞬息万变、以及技术的不断进步,越来越多的企业为了避免前期的过度投资,而积极地借用云服务所提供的“弹性”与敏捷性特点。因此,云服务对于各个企业的吸引力主要体现在:运营成本的降低、硬件更新成本的减少、业务敏捷性的增强、服务模式的灵活,这些从根本上避免了企业重起炉灶的成本、并降低了业务的整体风险。
但是,云服务的采用并非是一片坦途。企业在将他们的各种遗留应用、或整体基础架构,从数据中心迁移到云端的过程中,如果缺少周密的计划,就很容易会把事情“搞砸”。而就算他们能够幸运地闯过迁移这道关,也很可能会最终“输”在运维之上。因此,持续完善自己的基础架构、并采用适当的云设计原则,对于我们充分利用云服务的优势都是十分重要的。
本文将重点介绍能够帮助企业成功将系统与服务迁移到云端的十项***实践。
1.确定迁移策略
一份周翔的策略,对于我们将基础架构、和应用迁移到云端,并保证其“跑得起来”是尤为重要的。我们应当事先为迁移策略做好各项准备工作,并厘清本企业的各种业务逻辑。Gartner公布了5个“R”的策略,旨在帮助各个企业规划属于自己的迁移策略。下面我们在具体讨论这5个“R”。
(1)Rehost
Rehost策略又被称为“拿起、转移(lift and shift)”策略。通常情况下,如果一个企业为了某种业务的目的,而快速地将其应用迁移到云端,则可选择这种策略。例如:将各种应用重新部署到另一个硬件环境中,并修改应用架构的配置。此策略主要适用于IaaS模式,但不一定能享受到云端的灵活与扩展等特性。当然,企业选择该策略的另一个普遍原因是:为其团队提供锻炼迁移技能的机会。
(2)Re-platform
Re-platform策略又被称为“拿起、思考、转移(lift, thinker, and shift)”。该策略并不改变当前系统的核心架构,只是通过快速的变更,来降低管理和运营的开销,从而节省成本。例如:在云服务平台上运行各种应用,包括:将原有的数据库管理系统,转移到云平台所提供的托管数据库服务上;以及改用云平台所提供的应用程序,从而节省许可证的费用。
(3)Repurchase
Repurchase策略又被称为“放弃、另买(drop and shop)”。通过该策略,企业可能会为了满足某种业务的需求,而决定完全放弃一个产品、并转向另一个具有***特性与功能的云端产品上。例如:放弃现有的CMS平台转到云端;或直接利用某个SaaS解决方案、而弃用自研的产品。
(4)Refactoring或Re-Architecting
这是一个***挑战性的策略,但终将会给企业带来***的收益。通常情况下,当现有的应用环境不能够提供用户所需的各种功能、规模、和性能时,企业会选择通过重构、或重设计整个应用的架构,来满足业务的需求,进而提高系统的灵活性和业务的前景。例如:设法在云服务平台的架构上,运行现有的各种应用。此策略主要适用于PaaS模式。
(5)Retire
此策略一般被运用在发现阶段。当企业发现其现有的10%~20%资源,不再会被使用到;或是在完成云端迁移之后,会被迅速丢弃掉的时候,就会使用该策略。
2.发现和淘汰组件
对于上述各种云迁移策略而言,Gartner并没有限制说在某一种迁移场景中,仅能使用单独一种策略;而只是建议大家在自己的数据中心内,以及对于各种应用和其他资源的发现过程中,***集中精力采用某一种策略。同时,我们在发现阶段不要仅限于识别资源,还要厘清它们之间的联系、和依赖性。
一旦完成了发现,我们就可以进行到下一个阶段:判断哪些将会被迁移、而哪些可以被淘汰掉了。当然,我们需要根据Re-platform策略,来评审那些将要被淘汰的部件,以最终识别出那些能够被云服务平台方便替换的、各种现有架构内的组件。
例如,我们可以通过选择使用一种托管数据库的服务,来取代当前系统中运行的主从MySQL数据库的基础架构。或者,企业可以通过选择使用云服务商提供的电子邮件服务,以取代现有系统中正在运行的SMTP邮件服务器。可见,我们运用Re-platform的策略,既有助于企业减少向云端迁移的遗留组件,又有利于更好地去体验云服务商给企业所带来的价值和敏捷的服务。
3.许可证和迁移成本
许可证管理是云迁移过程中最为关键的一个环节。许可证的管理会涉及到现有环境的诸多方面,包括:操作系统的许可证、应用服务器的许可证、和第三方工具的许可证。作为迁移计划的一部分,我们应该验证各类许可证是否可以被转移、以及是否能被转换为基于云的许可证类型。
就操作系统的许可证而言,云服务商通常在其提供的实例成本报价中,已经包含了许可证的费用。当然,部分云服务商则会以备选项的形式,让您勾选出基于主机级别的Windows许可证的申请。而对于三方工具而言,仍需企业自己去探索能够同时拥有本地、和云端许可证的***管理模式。过去在通常情况下,同一数据中心里的相同许可证可以被多个应用程序所共享,因为他们都“跑”在同一个硬件平台内。
然而在云服务的平台上,由于应用程序被分布到了多个服务器上,情况就不同了。因此,对于那些提供产品服务的公司而言,鉴于各种资源是基于流量负载的变化而自动增减的,因此他们应该持续改进在此类复杂环境中的许可证管理方式。
作为云迁移计划的另一个议题,我们也可能会面临对于自带许可证(bring your own license,BYOL)模式,和由云服务商提供的按使用支付许可证模式的选择。每个模式都有利弊,我们应该事先权衡清楚,以免在迁移完成后出现重大的失误。
***,我们还要仔细评估可能使用到的迁移工具的成本。除了云服务商会提供他们自己的服务与工具之外,我们还需要考虑可能购置第三方工具所增加的成本。
4.网络管理
网络方面的***实践是:在开始迁移之前,我们事先设计好将要采用的云服务整体架构,并将各种资源映射到他们所对应的各自的区域、以及子网上。如今的云服务平台一般都能提供:创建虚拟私有云(或网络)、按需创建IP地址段(或子网)、为各种资源分配IP地址、并给它们建立相应的路由。在大多数情况下,为了功能上的延续性,原有的应用程序组件应该被分配相同的IP地址,以保持可能带有的IP连接上的依赖性。
为了保证无缝迁移和切换,我们应当将各种资源映射到原有的域名之上,并保证与原有各个关联方的精准通信,以避免混乱情况的发生。
5.专业技术团队
众所周知,一个专业的技术团队,对于企业的云迁移进程是至关重要的。无论是过去的本地数据中心模式、还是将来的云端模式,团队的最终目标都是始终如一的,即:通过对资源的有效管理,以保证应用的正常启动与运行。
虽然“速途同归”,但是在“途中”就需要不断通过培训,来提高团队在运维、开发、和设计上的各种技能,并保证他们能尽快适应新的云端环境。
同时,鉴于培训此类技能需要花费一定的时间,甚至会分散整个迁移团队的精力,我们应当善于从云服务商处获取既有的迁移经验,利用他们提供的各种模板和自动化工具,来迅速解决迁移中出现的复杂性、以及按需调整计划。
6.访问管理
过去,企业凭借集中式的安全访问机制,来管控个体对于服务器、或应用程序的访问。同时,他们通过基于角色的访问控制原理,对团队成员的职能进行细粒度区分。如今,在云服务平台上,我们更应当基于最小特权的原则,对不同人员的不同工作内容,实施不同的规范和计划管理。此外,云服务平台应当能够提供与传统集中式访问管理相集成的衔接能力。当然,我们也要将访问管理的治理策略,纳入到迁移的准备工作之中。
7.开始浅尝
不积跬步,无以至千里。我们应当先选择一个小的应用程序,为它制定迁移方案,并实施迁移。通过这样的“试错”方式,我们能够尽快的找出其中的差距,进而改进整体的迁移计划。另外,该方法能够有助于技术人员建立迁移的信心,并让管理层通过观念上的转变,以体会到云端迁移给企业和业务所带来的好处。
8.识别可重复项和采取自动化
云服务自动化的好处在于:为我们提供了通过代码来构建基础架构的能力,并且能够在避免停机的状态下,实现对应用程序的自动化部署。我们也可以将这样的概念灌输到迁移策略之中。在对多个应用进行迁移过程中,我们可以事先识别出那些相似的、可重复的场景。通过运用自动化,我们既可以缩短迁移的时间,又能够保证更多的一致性。
9.监控与治理
我们应当在云端迁移过程中、和完成之后的不同阶段,对整体运行环境进行仔细的检查和监控。毕竟同一个应用程序,从原来的数据中心架构环境迁移到云端环境之后,其运行状态可能不尽相同。因此,我们需要对应用本身、系统、网络、以及各种审计日志进行收集,并且仔细检查。通过仪表盘式的监控视图,将各种数据与不同的组件相关联。例如,我们可以通过可视化的资源利用率走势图,来优化服务器的配置,从而降低基础架构的整体成本。
另外,我们也可以运用敏捷的方法论(agile methodology),来指导大规模的迁移工作,从而根据各种及时的反馈,来持续改进整个团队的迁移流程。
上面列出的是业界常用的十项***实践,当然它们并不能完全保证您的云迁移一定会大获成功。毕竟,这个过程还会取决于:执行团队的专业知识,和技术上的具体要求等方面。不过,我相信上述实践一定能够在降低运营成本和风险、减少硬件投入、以及推动项目敏捷实施等方面,给您提供帮助。
原文标题:10 Cloud Migration Best Practices,作者:Daniel Berman
【51CTO译稿,合作站点转载请注明原文译者和出处为51CTO.com】