为云应用重构系统

  • Boris Lublinsky
  • 池建强

2010 年 7 月 27 日

话题:SOA架构云计算DevOps

在 SOA 世界的一篇文章“云应用的迁移”中,Chetan Kothari 和 Ashok Kumar 探讨了那些试图把应用系统迁移到云上的组织所面临的挑战:

从逻辑角度而言,“云计算”是否是我下一个成功实现商业策略的步骤?如果是的话,我的云策略应该是什么?哪种应用适合运行在云端?这些都是我们将要讨论和试图回答的问题,并且,我们会在需要时作出适当的建议。

文章的作者见到很多把应用系统迁移到云上的挑战,从“安全,到 SLA 管理,到规约,到担心厂商锁定,到缺乏标准。” 尽管如此,他们认为条件成熟时应该利用云的优势,但是不要试图把所有的东西都移植到云端。

作者鼓励把应用系统迁移到云端,他们认为有如下好处:

把应用系统迁移到云端可以从云的弹性基础服务中获益,云服务是一种快速、廉价、高效的策略方法。它提供了非常自然的切入点,以利用云平台的价值,不需要任何大的间接费用。迁移很简单,通常就像一个简单的托管练习,对应用系统的代码影响很小或没有影响。这会最大限度的降低迁移的风险,同时保持低成本运行。但是,必须指出,虽然云提供了节省成本的方法,但它并没有提供成本优势(同时提供服务)去应对那些具备真正多租户能力的竞争者。

Zap Think 的Jason Blumberg赞同他们的观点,他认为这种过渡需要云架构:

云计算所承诺的商业利益和市场上产品的商业利益之间缺失的环节就是架构 ... 从企业的角度来说... 把云应用到更为广泛的企业 IT 环境中是获取其价值的核心。如何在现有的 IT 环境中利用基于云的资源去应对变化的业务需求?最佳实践是什么?这个问题的答案是云架构,云架构才是企业试图去寻找的厂商中立云策略中的缺失环节。

Kothari 和 Kumar 认为让这样一个架构落地是一个“艰巨的任务”:

把系统迁移到 SaaS 架构并将其作为共享服务模式托管,这种方式可以为企业带来真正多租户的成本优势。企业内有很多冗余应用,这些冗余的应用系统用来提供跨地域的类似服务,或是提供单一的多租户应用的业务线,实现所有用户的信息共享。SaaS 架构可以通过减少这些冗余应用来合理化投资。但是,把现有的应用系统改造为 SaaS 架构可能是一个艰巨的任务 ...

Janakiram MSV 在他与indicthreads.com访谈中强调了重新架构系统以将其迁移到云上的必要性:

迈向云的第一步就是着手重新架构你的应用系统,实现松耦合架构。Web 层,应用层和数据库层之间不应该有任何交叉。云的重要原则之一就是伸缩性,它可以按照客户需求提供资源。你永远不会知道应用的哪一层需要进行扩展。在某种情况下,你可能不得不扩展 Web 层以满足目前的交易需求。如果你发现中间层正在变成瓶颈,你就必须增加应用服务器的数量,数据层也是同样的状况。鉴于这种动态的、按需分配资源的云的特性,你应该把应用系统设计成即可以运行在单一服务器环境,也可以运行在集群环境中。

Blumberg 和 MSV 强调,迁移到云上通常意味着 SOA 和数据持久化是云迁移的关键因素:

遵循 SOA 的原则你就向云迈了一大步。另一个关键是数据在云上的持久化。有一些新的模式供你选择,例如大字段(BLOB),队列(Queue)和灵活的实体(entity)...

虽然每个人都在谈论关于云的迁移,但有一个问题很少被提出,那就是哪些具体类型的云适合一个给定的公司。此外,成功的云计算实施需要哪种类型的应用系统进行重新架构,这一点尚不明确。

查看英文原文:Rearchitecting Applications for the Cloud

SOA架构云计算DevOps