交付云计算的复杂性

阅读数:1710 2013 年 3 月 25 日

话题:架构云计算DevOps大数据语言 & 开发AI

即便在 21 世纪初的今天,计算看起来仍然更像是一门艺术而非科学。然而,背后的原因恐怕连最资深的业内人士也无法说清。最可能的原因是,IT 从多种角度思考最终产品、应用和数据。打个比方,就像三个盲人摸象,因为摸到的位置不同,所以每个人心中的大象也各不相同。

在 IT 中,我们需要将各种技能和资源整合成一个系统以满足业务需求。基础设施运营需要管理应用运行所需的设施、硬件和软件。向最终用户提供各种功能,需要使用工程学来创建一组组件。为确保降低丢失数据和被侵入的风险,保证可用性,需要对环境进行安全分析。需要监控生产环境,用户需要在业务不能正常工作时获得支持服务。所有这一切需要融合在一起而非仅仅交付一个应用环境,更不必说大多数业务需要 30 到 40 多个应用了。

不用说,为企业部署和运营应用和计算基础设施是一件艰巨的工作。如果再加上能动态满足多种负载需求,管理共享资源池的功能,问题的复杂度会呈指数级增加。下面是一封关于交付大数据解决方案的邮件回复,其中总结了所有的着眼点。选择大数据是因为它提供了包含多并行、海量存储、可观的网络带宽、多层次信息安全、可伸缩等特性的计算设施的丰富解决方案。

传统方法

将与构建数据仓库相同的方法运用于大数据问题的处理也许会比较容易。

  1. 审查数据域并交付信息架构
  2. 估计需要存储的数据容量并增加 25%
  3. 设计拥有足够节点的 Hadoop 部署环境,处理预期时间范围内的最大业务负荷
  4. 取得必备的硬件并安装到数据中心
  5. 部署 Hadoop 环境
  6. 向已分配的存储载入数据
  7. 祈祷并盼望业务没有太多的数据要处理或者载入环境

这一传统方法利用大数据工具,产生专用于满足某种业务需求的一次性应用栈。它是不可扩展的,也不便于重用,向固定功能分配的容量可能够用也可能不够用,从而导致需要调整投资支出。

当然,也可以考虑使用外部云服务提供商,但预计需要移动如 PB 级别的大量数据到公有云服务商,则需要花费相当大的流量和难以预期的费用。

云的方式

那么,基于云的设计能带来什么呢?远远超过传统 IT 方法吗?

  1. 弹性,当客户想要向分析中增添新的数据元素或向结果中增加更多数据时,满足基础设施的供给和响应不再是一场竞赛。
  2. 通过虚拟化充分利用已有资源,以便不用的资源不再空转。
  3. 可以自动部署 Hadoop 环境,以便在不用的时候关闭它。
  4. 一个良好可用的通用服务集合,包括认证服务、网络安全、配置和管理,不必从外部获取,从而降低运营花费。
  5. 自服务供给,数据科学家和商业客户可以按需使用环境,而无需长时间等待。

欲实现这些优点,需要适当的规划和架构,以使基础设施满足这些目标。下面的图揭示了必须包含的主要着眼点,以满足支持大数据的云环境的需求。

虽然这幅图是不言自明的,但是,探讨每个分支对期望的产出带来的影响却是非常重要的。

网络架构——大数据经常受有限的带宽所限制,运行在相同主干网络的其他应用也有受影响的可能。实现虚拟网络和服务质量对于确保关键应用避免无法为大数据方案服务非常重要。同样的,网络还需要支持数据移动到处理环境以便有效处理。

存储架构——你有很多选择来支持大数据方案,包括使用多层存储,比如高速存储、闪存、普通存储等。在这种 PB 级别的环境中,在可负担的情况下实现可伸缩的存储是当前最复杂的工作之一。另外,今天的许多网络存储架构也依赖于网络架构,所以如果没有采用适当的网络架构,即使采用了高速存储环境,数据也不能足够快速地流入流出。

计算架构——大数据环境非常依赖于运行任务的大量节点的正常工作。节点越多,处理越快。这意味着计算架构必须能够满足扩展需要,不让运行在云环境中的应用缺乏计算能力。这可能是云计算最复杂的一个领域。我们即使做最好的计划,最终我们还是得面对有限的资源。因此,计算架构必须提供合适的手段让 IT 平衡资源池,以满足客户的需求。

安全——今天的 NoSQL 和大数据环境无法提供传统关系数据库那样的细粒度安全。这意味着在云环境中必须有替代的安全手段,从而确保数据不受到破坏。

服务管理——它是达到上述目的一个主要组件。服务管理包括容量管理、配置管理、监控、自动化、编配、供给、运营与支持在内的过程和方法。没有合适的服务管理,环境会随时间面临性能的降低,导致用户或消费者不满。另外,服务管理需要开发服务目录,由其定义服务层次并使服务向供给进程保持可用。

从这份清单你能看到,云计算需要的不只是简单的安装一些虚拟化软件和提供虚拟机。此外,这只不过是云计算的一个应用而言。想一想,增加不同类型的工作负载(如虚拟桌面、企业应用、开发环境)后,如何使它变得更加复杂。

那么,是云的秘密是什么?

传统方法面临着称为破唱录机的风险,在为 IT 组织构建并支持云环境时,将经历非常痛苦的过程。有不同汇报路径、变化的议程、不同的奖励模型的等级森严的 IT 组织是很难回答出如何交付云计算的邮件的。技术和文化方面的挑战并存。比如,在传统 IT 部门,如果某个应用消耗的存储超过平均水平,给基础设施和运营的答案是,增加更多的存储来探索问题的根源,看观察到的效果是否恰当,能否通过软件或配置修正。

最成功的公司已经采用 DevOps 方法来交付 IT-as-a-Service (ITaaS)。DevOps 是工程和运营间协作的方法,共同承担产生高质量、可持续服务的职责。如上边所看到的那样,基础设施影响应用,反之亦然。所以,关键是两个团队紧密协作,找出依赖关系并采取合适的方法减轻风险。

引用我在 InfoQ 发表的名为“DevOps: Evolving to Handle Disruption” 文章中的话,

“DevOps 文化代表了无等级、精英化、打破烟囱、服务导向、服务生命周期管理,以及最重要的敏捷。DevOps 文化产出在与瓶颈和失控的对抗中。它可在有限资源的情况下产生高质量的输出。破除政治障碍、共享信息以及应对不可避免的系统故障。团队就是大家。“

结论

因为在面对预算收紧的情况下,需要以更少的资源交付更多的价值,所以云计算对业务越来越重要。如果凭经验审视大多数业务的 IT 运营花费,由于技术能力与缺乏强有力的 IT 服务管理,已建立的 IT 环境存在大量的浪费。从已有 IT 投资中榨取每一分的价值,迫使我们在如何交付应用和数据上做出改变。云计算只是工具,可以使我们通过减少浪费提高达到更好的成本效益,同时使创新和敏捷成为可能。

关于作者

JP Morgenthal 是全球 IT 战略与云计算领域的顶级专家。它有超过 25 年为复杂业务问题提供技术方案的经验。JP 对业务高度敏锐,同时辅以技术深度和广度。他是集成、软件开发、云计算领域令人尊敬的作者,他投稿的“《云计算:风险评估》(Cloud Computing:Assessing the Risks)”一书也即将出版,同时他还是 InfoQ 首席云计算编辑。

查看英文原文:Inside the Complexity of Delivering Cloud Computing