随笔分类 - Cloud Computing
云计算的研究与分析
摘要:本篇是本系列的最终章,将总结一下App Engine在使用方面的注意点,最佳实践和适用场景,最后会谈一下我对App Engine的一些期望。
阅读全文
摘要:本篇会首先会从程序员角度来介绍一下Datastore在使用方面的一些信息,之后会接着介绍Datastore是如何构建的。
阅读全文
摘要:本篇将首先介绍App Engine的一些设计理念,接着将对App Engine的组成部分等进行介绍。
阅读全文
摘要:通过前面两篇介绍,大家应该对Google强大的基础设施有一定的了解。本篇开始介绍构筑在这强大基础设施之上的Google App Engine。
Google App Engine的介绍
由于发布S3和EC2这两个优秀的云服务,使得Amazon已经率先在云计算市场站稳了脚跟,而身为云计算这个浪潮的发起者之一的Google肯定不甘示弱,并在2008年四月份推出了Google App Engine这项PaaS服务,虽然现在无法称其为一个革命性的产品,但肯定是现在市面上最成熟,并且功能最全面的PaaS平台。
Google App Engine 提供一整套开发组件来让用户轻松地在本地构建和调试网络应用,之后能让用户在Google强大的基础设施上部署和运行网络应用程序,并自动根据应用所承受的负载来对应用进行扩展,并免去用户对应用和服务器等的维护工作。同时提供大量的免费额度和灵活的资费标准。在开发语言方面,现支持Java和Python这两种语言,并为这两种语言提供基本相同的功能和API。
阅读全文
摘要:本文是基于现有的公开资料和个人的经验来对Google的整体架构进行总结和猜想。
阅读全文
摘要:本系列文章基于公开资料对Google App Engine的实现机制这个话题进行深度探讨。在切入Google App Engine之前,首先会对Google的核心技术和其整体架构进行分析,以帮助大家之后更好地理解Google App Engine的实现。
本篇将主要介绍Google的十个核心技术,而且可以分为四大类:
分布式基础设施:GFS、Chubby 和 Protocol Buffer。
分布式大规模数据处理:MapReduce 和 Sawzall。
分布式数据库技术:BigTable 和数据库 Sharding。
数据中心优化技术:数据中心高温化、12V电池和服务器整合。
阅读全文
摘要:Google App Engine 提供一整套开发组件来让用户轻松地在本地构建和调试网络应用,之后能让用户在Google强大的基础设施上部署和运行网络应用程序,并自动根据应用所承受的负载来对应用进行扩展,并免去用户对应用和服务器等的维护工作。同时提供大量的免费额度和灵活的资费标准。在开发语言方面,现支持Java和Python这两种语言,并为这两种语言提供基本相同的功能和API。
阅读全文
摘要:我们设计并实现了Google GFS文件系统,一个面向大规模数据密集型应用的、可伸缩的分布式文件系统。GFS虽然运行在廉价的普遍硬件设备上,但是它依然了提供灾难冗余的能力,为大量客户机提供了高性能的服务。
虽然GFS的设计目标与许多传统的分布式文件系统有很多相同之处,但是,我们的设计还是以我们对自己的应用的负载情况和技术环境的分析为基础 的,不管现在还是将来,GFS和早期的分布式文件系统的设想都有明显的不同。所以我们重新审视了传统文件系统在设计上的折衷选择,衍生出了完全不同的设计思路。
GFS完全满足了我们对存储的需求。GFS作为存储平台已经被广泛的部署在Google内部,存储我们的服务产生和处理的数据,同时还用于那些需要大规模数据集的研究和开发工作。目前为止,最大的一个集群利用数千台机器的数千个硬盘,提供了数百TB的存储空间,同时为数百个客户机服务。
在本论文中,我们展示了能够支持分布式应用的文件系统接口的扩展,讨论我们设计的许多方面,最后列出了小规模性能测试以及真实生产系统中性能相关数据。
阅读全文
摘要:我们设计并实现了Google GFS文件系统,一个面向大规模数据密集型应用的、可伸缩的分布式文件系统。GFS虽然运行在廉价的普遍硬件设备上,但是它依然了提供灾难冗余的能力,为大量客户机提供了高性能的服务。
虽然GFS的设计目标与许多传统的分布式文件系统有很多相同之处,但是,我们的设计还是以我们对自己的应用的负载情况和技术环境的分析为基础 的,不管现在还是将来,GFS和早期的分布式文件系统的设想都有明显的不同。所以我们重新审视了传统文件系统在设计上的折衷选择,衍生出了完全不同的设计思路。
GFS完全满足了我们对存储的需求。GFS作为存储平台已经被广泛的部署在Google内部,存储我们的服务产生和处理的数据,同时还用于那些需要大规模数据集的研究和开发工作。目前为止,最大的一个集群利用数千台机器的数千个硬盘,提供了数百TB的存储空间,同时为数百个客户机服务。
在本论文中,我们展示了能够支持分布式应用的文件系统接口的扩展,讨论我们设计的许多方面,最后列出了小规模性能测试以及真实生产系统中性能相关数据。
阅读全文
摘要:虽然传说中的Donald Knuth同学曾经说过“过早优化是万恶之源”(premature optimization is the root of all evil),但在产品代码基本稳定的时候,做一定优化,还是非常有帮助,比如,我曾经通过使用多线程技术将一个原本需要30分钟才能搞定的流程优化到只需30秒,还有,虽然Windows 7和Vista之间的codebase非常相近,但是由于Windows 7在Vista的基础上做了许多的优化,所以Windows 7在保持其绚丽特效的情况下性能非常优异,从而保证其能成功替代Windows XP。谈到BigTable,Google的工程师也同样为了其性能采用了一些优化技术,本文将会根据BigTable的论文来对这些性能优化技术进行详细地分析,在切入正题之前,如果大家对BigTable或者YunTable有什么不熟悉的话,可以通过点击此来阅读本系列之前所有的文章。
阅读全文
摘要:在写完前面一篇YunTable日记(也就是第9篇)之后,有很多博友向我反映,他们不清楚YunTable到底是用来干什么的?今天就和大家聊聊YunTable的目标。
阅读全文
摘要:最近两周除了写博客之外,还花了一定的时间在YunTable上,并且已经快接近YunTable的下一个Milestone,也就是0.2版。在整个开发过程中,我收到了来自很多朋友的热心关切,我在这向大家表示衷心感谢,同时让我感到更欣慰的是已经有多位有实力的同学和我沟通过了,希望将来有机会能参与YunTable的开发,而且还有几位博友也对我提出了一些批评和建议,那么在介绍0.2版的目标和今后的规划之前,为了方便今后和大家的沟通,我先介绍我的一些理念:
阅读全文
摘要:在发布YunTable0.1版之后,我将这个好消息和我一个在中国移动工作的同济同学分享了,他首先向我表示祝贺,但是他不理解像YunTable这样的分布式数据库和Oracle这样的关系型数据库有什么区别?当接到这个问题的时候,我并没有立即回答,因为我感到这个疑问不仅是他一个人会有,而且估计有很多同学也有类似的疑问,这就是本文的由来。但在介入分布式数据库之前,让我们剖析一下关系型数据库有哪些不足。
阅读全文
摘要:本文是HBase的欧洲传道者LARS GEORAGE的HBase vs. BigTable Comparison(需要FQ)一文的节选翻译版。
阅读全文
摘要:在介绍了BigTable的存储模型之后,本篇将重点给大家介绍其分布式模型。由于本文大多数内容参考BigTable的论文,如果有些博友已经熟读这篇论文,可以跳过本文。
阅读全文
摘要:经过两个星期的努力(如果刨去学习C语言的时间),YunTable终于走完一个从无到有的历程,今天,也就是2010年7月12日,YunTable正式对外发布其0.1版,在0.1版中YunTable虽然在特性,优化和内存管理这三方面还有很多的缺失,但是总体而言,已经实现了一个身为BigTable克隆的基本要求,也就是分布式查询和管理,以及以column为核心的存储。这是0.1版的下载链接(上次因为对Skydrive的存储机制不熟,导致部分博友没有第一时间拿到0.01版的源代码,在这里向大家表示我的歉意)。
阅读全文
摘要:虽然进度比我之前预想的慢了很多,但是经过最近几天的coding,终于完成YunTable的0.01版,虽然在支持的功能和之前预期的相比简单了很多,如果大家对这个0.01版感兴趣的话,可以通过这个链接下载。下面是关于0.01版的综述,使用教程和计划。
阅读全文
摘要:经过这几天的开发工作,我已经将YunTable所需的一些基本类库搭建起来,比如内存管理,字符串处理,I/O处理和基本的数据结构等,由于之前的编程以Java为主,所以在这方面花了一定的时间,导致整个项目的进度偏离了之前的预期,但是我也有很多的收获,比如我感受到了Java和C之间的异同:异就是Java能通过JVM和JDK提供给程序员一个非常便捷和安全的开发环境,就好象一个温室那样,而C语言呢?则是提供一个简单到以至于简陋的工具给程序员,但是却导致其具有非常强大的灵活性,在这方面,有点类似围棋。而同呢?就是不论写Java代码还是C代码,最核心也是最关键的,就是使用优雅的方式将重复的代码降至最低,从而降低整体的代码数量和复杂度。在关于语言特性的讨论之后,接下来就将介绍本文的核心内容,也就是BigTable的存储模型,首先是Tablet的运行机制。
阅读全文
摘要:本文将深入分析BigTable的数据模型,并介绍它是如何被调用的。
阅读全文
摘要:本来想周二写这篇开发日记,可惜一直抽不出时间,所以延到了周四。在这篇日记中,会首先做一下前三天的开发总结,接着会解答博友的一些疑问。
阅读全文

浙公网安备 33010602011771号