Amazon 的 SimpleDB 和 IBM 的 Blue Cloud 继续为云计算添柴

  • Scott Delap
  • 郭晓刚

2007 年 12 月 16 日

话题:Java架构DevOps语言 & 开发

在软件行业中云计算(Cloud Computing)的领域近来相当忙碌。上周 Amazon 推出了SimpleDB的 Beta 版,这是一个对结构化数据进行实时查询的 Web 服务。SimpleDB 是对 Amazon 其他计算服务如 S3 和 EC2 的补充。不到一个月前 IBM 也公布了他们的Blue Cloud的雏形。对于将一些软件应用从实用私有的基础设施转换到利用通用的计算资源,两者都可能会起到很大的作用。除了出现这些服务,对软件工程师的教育也在强力推动这股潮流。。

10 月份IBM 和 Google 宣布带动大学去应对互联网大规模计算的挑战:

……这项倡议的目标是提高学习计算机科学的学生在高度并行计算实践方面的知识,以更好地应对正在出现的大规模分布式计算的趋势。IBM 和 Google 联合起来,提供硬件、软件和服务去增加大学在这方面的课程,并扩大研究的范围。两家公司结合各自的资源,希望能够降低学术界探索这个新的计算模型时的财政和后勤上的门槛……

为了简化大规模并行程序的开发,Google 和 IBM 提供了以下资源:

  • 一个处理器集群,运行的是 Google 的计算设施的一个开源实现(来自 Apache Hadoop 项目的 MapReduce 和 GFS)。
  • 由 Google 和 University of Washington 共同开发了一个课程,讲授大规模并行计算技术,并且采用的是 Creative Commons 许可:http://code.google.com/edu/content/parallel.html
  • IBM 设计了开源软件去帮助学生们为运行 Hadoop 的集群开发程序。这个软件可以和开源开发平台 Eclipse 一起使用,插件可在 http://lucene.apache.org/hadoop/ 下载。
  • 集群的管理、监控和动态资源供应通过 IBM 的 Tivoli 系统管理软件进行。
  • 一个鼓励各大学就此项目进行合作的网站。使用 IBM 的 Innovation Factory 提供的 Web 2.0 技术构建。

Yahoo 为了不被甩在后面,也在 11 月份公布了一个开源项目,意在促进分布式计算系统软件的研究和开发。该声明的关键是 Yahoo 将建立一个使用 Hadoop 的超级计算数据中心,名为 M45。该集群“约有 4,000 个处理器,3T 的内存,1.5P 字节的磁盘,性能峰值可超过每秒 27 万亿次计算(27 teraflops),跻身全球排名前 50 的超级计算机之列”。12 月 Yahoo Developer Network 还首发了一个以Hadoop 和分布式计算为主题的博客。

其后不久,IBM 宣布他们的Blue Cloud计算项目将在 2008 年第一季度面世:

……Blue Cloud——基于 IBM Almaden 研究中心的云计算基础设施——将包括 Xen 和 PowerVM 虚拟的 Linux 操作系统镜像和 Hadoop 并行工作负载调度。Blue Cloud 由 IBM Tivoli 软件提供支持,管理服务器,确保根据需要提供最优的性能。其中包括能够瞬时跨多台服务器汇集资源的软件,即使在需求最紧迫的情况下,也能提高性能和保障可靠性,为用户提供平滑的体验。Tivoli 监控程序检查预备服务器的健康状态,确保它们能满足服务水平的要求……

IBM 一开始会提供配备了“云”软件套装的 BladeCenter。刚开始的时候仅在内部运行,但随着软件套装的发展,IBM 会逐步尝试提供云计算服务。

直到最近,Amazon 发布了 SimpleDB 服务的小范围 Beta 版。SimpleDB 不是一个关系数据库。它是建立在一种类似于散列表的模型上的。它提供了 CRUD 操作和一种查询语言。价格则和其他 Amazon 云服务类似,都是根据存储空间和机器时间的使用量来计算。

机器使用量——每消耗一小时 Amazon SimpleDB 机器时间,价格 $0.14

Amazon SimpleDB 测量每个查询的机器使用量,并将完成特定请求(QUERY、GET、PUT 等)所用的机器处理能力,换算成使用 2007 年一般 1.7 GHz Xeon 处理器来处理所需的小时数,以此来收费。

数据传输

  • $0.10 每 GB——所有传入数据
  • $0.18 每 GB——每月传出数据中的头 10TB
  • $0.16 每 GB——每月传出数据中的后 40TB
  • $0.13 每 GB——每月传出数据中超过 50TB 的部分
数据传输中的“传入”和“传出”分别表示 Amazon SimpleDB 的输入和输出。Amazon SimpleDB 和其他 Amazon Web 服务之间的数据传输免费(即 $0.00 每 GB)。

结构化数据存储——$1.50 每 GB 月

Amazon 还详细说明了 Amazon S3 和 Amazon SimpleDB 的基础设施之间的差异:

……与 Amazon S3 不同,Amazon SimpleDB 不存储原始数据。它把你的数据作为输入,然后给数据增加多个维度的索引,以便你能快速地查询数据。而且 Amazon S3 和 Amazon SimpleDB 使用不同类型的物理存储。Amazon S3 使用高密度的存储磁盘,为廉价地存储大型的对象而优化。Amazon SimpleDB 存储较小型的数据单元,使用比较低密度的磁盘,为数据访问速度而优化。

要想把你在 AWS 服务上的花费调整到最合理,大型对象或者文件应该用 Amazon S3 存储,小型数据元素或者文件指针(可能指向 Amazon S3 对象)最好用 Amazon SimpleDB 存储。由于服务间的紧密集成,以及在 AWS 环境内部的数据传输是免费的,开发者只要把两个服务都集成到应用中,就可以同时享受到两方面的好处,既能获得 Amazon SimpleDB 的速度和查询能力,又能享受 Amazon S3 低廉的数据存储费用……

Charles H. Ying 报道说 SimpleDB 是基于Erlang构建的。他列举了以下几点考虑:

  • 一致性延迟——数据不是马上传播到所有节点的……延迟一般在 1 秒左右,但如果数据量或者负载很大,你可能遇到更多延迟。从好的方面来说,你的数据并没有丢。
  • 查询是按词典顺序的(lexigraphical order)——你需要按照词典顺序的形式来存储数据(在整数前面补零,把负整数向正的方向移位,把日期转换成 ISO 8601 之类的表示)。
  • 搜索索引——你需要自己为文字搜索构造索引——SimpleDB 查询表达式不支持文字搜索,因此你必须构造反向的索引才能正确地进行“文字搜索”。这实际上是一种很好的轻量级实现方式,现实中存在着很多种可行的索引方案。

GigaOM 的 Nitin Borwankar 觉得 SimpleDB 具有强大的搅局能力,他还简略地将 SimpleDB 与现有的关系数据库以及 ActiveRecord 和 Hibernate 所用对象关系映射进行了比较。

查看英文原文:Amazon's SimpleDB and IBM's Blue Cloud Continue the Rise of Cloud Computing
Java架构DevOps语言 & 开发