《云计算核心技术解剖》迷你书连载五-谷歌的云计算产品

标签: 《云计算核心技术剖析》 谷歌 | 发表时间:2011-10-13 19:31 | 作者:90h
出处:http://peopleyun.com

 

3.1 Google的云计算产品

从云计算角度而言,几乎Google的所有产品都可以被认为是典型的云计算产品。因为Google本身就是世界上最大的云,在全球有30多个数据中心,服务器的总数超过100万台,而且在运营效率和自动化管理程度这两个非常重要的云指标上也是独领风骚的,并且这些产品大都以Web的形式发布。另外,在最近一段时间,Google在云客户端方面也有发力。下面从SaaS、PaaS、IaaS和云客户端这4个方面介绍Google的云计算产品。

3.1.1 SaaS层

在SaaS层,Google的云服务主要可分为两大部分:其一是主要面向个人用户的普通SaaS服务,其二是面对公司和机构的企业级SaaS服务。

1. 普通SaaS服务

大多数Google服务(包括最重要的搜索)都可以归为这类。这些服务可总结为下面这6大类,具体请参考表3-1。

表3-1 普通SaaS服务的列表

类 别

产 品

搜索类

网页搜索、图片搜索、视频搜索和学术搜索等

地图产品

Google地图、Google Earth和Google Sky等

视频播放

YouTube

照片共享

Picasa

社交站点

Orkut

协作工具

Gmail、Google 日历和Google 文档等

 

2. 企业级SaaS服务

Google的企业级SaaS服务统称为Google Apps,它可以有效降低 IT 成本,有助于提高现有员工的工作效率,并且有超过200万家企业已经购买了Google Apps服务,而且每天新注册的企业达数千个。Google Apps主要包括6大组件,下面将介绍这6大组件所支持的特性和功能。

  • 企业版Gmail。每位用户都可获得容量达25GB的存储空间,并提供强大的垃圾邮件过滤,与黑莓和Outlook之间的交互,以及99.9% 的正常运行时间可靠性保证。
  • Google日历。基于网络的日历应用程序使员工可以有效地协作,并帮助降低成本和IT负担,支持轻松简单的预约,共享项目日历,进行日历的同步,与电子邮件系统集成和通过移动设备进行访问等功能。
  • Google文档。可在线编辑和创建Word文档、电子表格和演示文稿,并且支持多人之间的协作编辑和强大的安全访问机制。
  • Google网上论坛。用户可创建群组,提供邮件列表,轻松共享内容和搜索存档。
  • Google协作平台。它是一种快速创建网页的工具,比较适合Intranet(内联网)和小型团队项目,只需单击几下鼠标即可创建网页,无需编写任何代码,而且支持企业级的安全控制。
  • Google视频。可以安全地托管和流化企业的视频,因此员工可随意地分享视频,也无需因复杂的本地视频解决方案而加重企业IT部门的负担。

虽然Google Apps里面有许多服务也存在面向个人用户的普通SaaS版本,但是身为企业级服务的Google Apps,在下面这3方面有一定的增强。其一是在客户支持和可靠性方面。对于重大问题,Google提供全天候电话和电子邮件支持,并保证99.9%正常运行时间的SLA和提供自助式在线支持等。其二是在安全性方面。为确保安全而提供HTTPS访问,同时强制执行SSL协议,并可定制垃圾邮件过滤机制和密码强度要求等。其三是在迁移和集成工具方面,Google Apps提供用于电子邮箱迁移的工具和API,并可与企业的LDAP(Lightweight Directory Access Protocol,轻量目录访问协议)系统进行目录方面的同步,还支持电子邮件的路由和网关、单点登录API以及用户与群组配置API等。

在2010年3月,Google 还发布了Google Apps专属的应用商店Google Apps Marketplace,在这个商店中已经有上百种出色的应用供Google Apps用户选择。比如,用于在客户端的Office和Google文档之间进行同步的OffiSync、出色的在线图片编辑器Aviary和提供在线文件存储的Box.net等。

3.1.2 PaaS层

Google App Engine 提供一整套开发组件让用户轻松地在本地构建和调试网络应用,之后能让用户在Google强大的基础设施上部署和运行网络应用程序,并自动根据应用所承受的负载对应用进行扩展,免去用户对应用和服务器等的维护工作。同时提供大量的免费额度和灵活的资费标准。在开发语言方面,现支持Java和Python两种语言,并为这两种语言提供基本相同的功能和API。关于Google App Engine的具体介绍,将在3.4节展开。

3.1.3 IaaS层

由于与Google本身的业务相比,普通IaaS层的业务在利润率上相对较低,再加上其他一些原因,到现在为止,Google只推出类似Amazon S3的名为Google Storage的云存储服务。

Google Storage是一次构建在Google基础设施之上的云服务,开发者可以非常容易地使用其基于REST模式的API,将他们的应用程序和Google Storage连接起来。这些数据将保存在若干机房内,所以将非常可靠。Google Storage支持数据的强一致性,同时每个请求都可以调用数百GB的对象。开发者可以通过Web管理界面或者 gsulti 这个开源的命令行工具来管理他们的存储内容,比如新建存储库(Bucket)、新建文件夹、批量上传、批量删除和共享文件等。

Google Storage 内置基于 Google 账户的验证与访问控制机制,但目前它只支持个人的Google 账户,未来会加入对 Google Apps 账户的支持。Google Storage 首先向小批开发者开放,在此期间每个开发者将有100GB免费的数据存储空间,每月的数据流量限制为300GB。

3.1.4 云客户端

虽然Google现在的利润主要来源于搜索这样的基于Web的SaaS服务,但是近两年来,Google投入了大量的人力和物力在云客户端方面,并推出了Android、Chrome和Chrome OS这3个产品。

1. Android

Android是主要用于智能移动终端(包括手机和车载设备等)的操作系统和软件平台,并基于Linux内核。这个项目由前苹果工程师、现Google副总裁Andy Rubin创立。2005年7月,Google收购了Android这个项目,并对其进行重点培育。在2007年11月5日,Google正式对外发布了Android,并成立了开放手机联盟(Open Handset Alliance),其中HTC、英特尔、Sprint-Nextel、T-Mobile、中国移动以及NVIDIA等大企业都是这个联盟的成员。

Android平均每半年发布一个新版本,而且都以甜点命名。到现在为止,Android共发布了5个比较重要的版本,具体请看表3-2。

表3-2 Android的主要版本

版本号

代 号

发布日期

内 容

1.1

2009年2月

主要特性包括:闹钟、浏览器、联系人、地图和音乐等基本功能

1.5

Cupcake

2009年2月

这是第一个主要版本,新增特性包括:录像、蓝牙和复制/粘贴等

1.6

Donut

2009年9月

新增特性包括:Android 应用市场、手势搜索、语音搜索和应用集成等

2.0/2.1

Eclair

2009年10月

这个版本的重点在于硬件速度的提升,更多屏幕以及分辨率选择,大幅度的用户界面改良和支持Exchange等

2.2

Froyo

2010年5月

重要新特性有完整的Flash 10.1支持,最高 5 倍速度提升,Android 云集成,摄像头/视频改进,大量Exchange相关的支持和能将应用安装在记忆卡上等

在架构方面,Android总体来说和传统PC架构比较类似,但也有创新的地方,共可分为4个层次。

  • 应用程序层。以Java为编程语言,Android从接口到功能都有层出不穷的变化,其中Activity等同于J2ME的MIDlet,一个Activity类负责创建Window,一个活动中的Activity就是在前台(Foreground)模式,后台运行的程序叫作服务(Service)。两者之间通过ServiceConnection机制进行通信,从而实现多个程序同时运行的效果。如果运行中的Activity的全部画面都被其他Activity所取代,该Activity便被停止,甚至系统会清除其所占用的资源。
  • 中间件。它是操作系统与应用程序之间沟通的桥梁,分为两部分:函数库(Library)和虚拟机(Virtual Machine)。在函数库方面,有作为改良libc的Bionic,名为OpenCORE的基础多媒体框架,名为skia的内核图形引擎(它支持OpenGL/ES规范)和SQLite数据库系统等。在虚拟机方面,采用了定制的Dalvik 虚拟机。Dalvik虚拟机是一种“寄存器型(Register Based)”的Java虚拟机,变量皆存放于寄存器中,这使得虚拟机的指令得到了一定程度的消减,对手机这种移动设备非常有帮助。Dalvik虚拟机可以有多个实例同时运行,每个Android应用程序都用一个其专属的Dalvik虚拟机来运行,让系统在运行程序时达到优化。Dalvik 虚拟机不是运行Java二进制代码,而是运行一种称为.dex格式的文件。
  • 硬件抽象层。Android的硬件抽象层的作用是将Android本身的框架与 Linux的内核隔开,从而降低对Linux内核的依赖,以实现内核独立。Android硬件抽象层目前以存根(stub)的形式存在,本身是“.so”库,是一种类似代理的概念。Android的运行时会向硬件抽象层取得存根的动作,再以回调的方式执行这个动作。
  • 操作系统。Android是运行于Linux内核之上的,但并不是传统的GNU/Linux。一般在GNU/Linux 里支持的功能,Android大都不支持。比如Cairo、X11、Alsa、FFmpeg、GTK、Pango及Glibc等都被移除掉了,因为Android为了达到商业应用的目的,必须移除被严格的GNU GPL所约束的部分。目前,Android的Linux内核中包括了安全、存储器管理、进程管理、网络栈和驱动程序的模型等模块。

在终端方面,由于其开放性和免费性,所以受到了除RIM、Nokia和苹果之外,其他几乎所有手机厂商的认可。已经推出的著名智能手机终端有:G1 (HTC Dream)、HTC Hero、Motorola Droid、HTC EVO、Motorola Droid X、三星的Galaxy S系列和Google自己的Nexus One,而且在市场占有率方面节节攀升,并在2010年8月份超过iPhone。

2. Chrome

Google Chrome是一个由Google公司开发的网页浏览器,Chrome是化学元素“铬”的英文名称。Google Chrome采用BSD许可证授权并开放源代码,开源计划名为Chromium。截至2010年6月,Chrome浏览器的市场占有率高达7.24%,排名第三,仅次于微软的IE和Mozilla的Firefox。其代码基于其他开源软件所撰写,包括WebKit和Mozilla,并开发出代号为“V8”的高效能的JavaScript处理引擎。Google Chrome的整体发展目标是在稳定性、速度和安全性3方面不断提升,并创造出简单且高效的用户界面。

和其他主流浏览器相比,特别是IE,Chrome在以下4个方面有一定的优势。

  • 安全性。在这方面主要有两个机制。其一是黑名单(Blacklists):Chrome会定期地更新用于防止网络钓鱼和恶意软件侵入的黑名单,并在用户试图浏览有潜在危险的网站时予以警告。其二是沙盒(sandbox):Chrome中的每一个标签页都是一个沙盒,以防止恶意软件破坏用户系统。由于遵守最小权限原则,所以Chrome中每个动作的权限都会被限制,一般仅能运算而无法写入文件或者读取存储在敏感区域内的文件。
  • 稳定性。支持多进程机制,能容许多个程序同时运行而互不影响,每个网页标签独立于窗口程序存在。当资源过高或崩溃时,不会因为一个停顿而导致整个程序崩溃。
  • 速度。利用其内置的JavaScript处理引擎V8来加快运行JavaScript的速度。V8的机制是把JavaScript代码转换成机器码,利用CPU直接运算,减少了解释JavaScript的时间,并使用简易小巧、能有效利用内存的WebKit HTML排版引擎。
  • 对HTML5的支持。虽然HTML5规范还没正式发布,但是Chrome已经对大多数的HTML5规范有了很好的支持,比如在高清视频领域,它不仅支持商业的H.264格式,而且还支持开源的VP8格式。

 

3. Chrome OS

Chrome OS是一个开源、轻量级的操作系统,主要面向移动设备,但与Android主打手机不同的是,Chrome OS主要关注上网本(netbook)和平板(tablet),并且运行Chrome OS系统的上网本CR-48已经作为样品在2010年年底提供给试用者进行测试。这个项目本身也是Chrome的一个延伸。

和Android一样,Chrome OS也是基于Linux内核的,并能够在x86和ARM两个架构下的芯片上运行。在内核之上就只有一个Chrome浏览器,但通过这个Chrome能访问所有基于Web的应用和服务,并支持多种插件。

在设计上,Chrome OS非常关注速度、简便和安全性。首先是速度:Chrome OS在启动后能让用户在几秒钟后就能访问互联网。其次是简便:用户界面就是大家常用的Chrome,而且能直接访问任意基于Web的应用和服务,无需安装任何软件。最后,在安全性方面:和Chrome一样,Google重新设计了Chrome OS的底层安全架构,使用户不必担心病毒和恶意软件,并保障它一直能正常运行。

总体而言,由于Chrome OS基本上以依赖云服务为主,而不是本地的原生应用,所以ChromeOS可以被认为是第一个云操作系统。

相关 [云计算 核心 技术] 推荐:

《云计算核心技术剖析》参考文献

- yu - 人云亦云
为了帮助大家阅读《云计算核心技术剖析》,在这里列出本书所有的参考文献. (1) 云计算,助推产业大发展. (2) 尼古拉斯·卡尔.《IT不再重要》.http://book.douban.com/subject/3215423/. (3) 《虚拟化与云计算》小组.《虚拟化与云计算》. (6) Google Storage for Developers初体验.

云计算8项核心技术全解读

- - 极客521 | 极客521
云计算的“横空出世”让很多人将其视为一项全新的技术,但事实上它的雏形已出现多年,只是最近几年才开始取得相对较快的发展. 确切地说,云计算是大规模分布式计算技术及其配套商业模式演进的产物,它的发展主要有赖于虚拟化、分布式数据存储、数据管理、编程模式、信息安全等各项技术、产品的共同发展. 近些年来,托管、后向收费、按需交付等商业模式的演进也加速了云计算市场的转折.

《云计算核心技术解剖》迷你书连载五-谷歌的云计算产品

- - 人云亦云
3.1 Google的云计算产品. 从云计算角度而言,几乎Google的所有产品都可以被认为是典型的云计算产品. 因为Google本身就是世界上最大的云,在全球有30多个数据中心,服务器的总数超过100万台,而且在运营效率和自动化管理程度这两个非常重要的云指标上也是独领风骚的,并且这些产品大都以Web的形式发布.

大规模云计算平台的技术挑战

- - 技术改变世界 创新驱动中国 - 《程序员》官网
文 / 刘缙    朱家稷    张海勇. 正如单机操作系统的内核,在阿里云OS中,飞天大规模分布式计算平台起到了承上启下的关键作用. 飞天运行在通过网络互联的通用服务器集群上,隐藏了海量硬件所带来的复杂度和不可靠,向云OS的其他组件提供可信赖的的计算能力和存储能力. 具体来讲,飞天本身是一个由多个组件所构成的复杂的分布式系统,其中的核心组件是以下两个子系统.

弯曲出品--罗依 (Roy)。《云计算数据中心网络技术》(PDF)

- wuwu - 弯曲评论

云计算开发技术——企业级高端培训课程(业余班)

- - BlogJava-首页技术区
      云计算是一次巨大的技术变革,和PC机以及互联网的出现对于人类一样,将会彻底改变人们的工作和生活.        对于软件开发人员来说,这是一个机会,千载难逢的机会,是IT界的又一桶黄金.        大家都知道,早起的鸟儿有虫吃. 早掌握云计算开发技术的开发人员有钱赚. 云计算技术在催生了大量企业应用需求的同时,也催生了对熟悉云计算开发人才的迫切需求.

AIOps 核心技术和算法要点

- - IT瘾-dev
AIOps已经逐渐兴起,AI算法已较为成熟,使之与运维结合到了一起,下面列出AIOps相关技术和算法要点,有空了再展开写,懂大数据和机器学习的基本都知道各个组件及算法的作用. elasticsearch(支持时序). clickhouse(支持时序). -------------推荐阅读------------.

李雪峰:云计算安全体系中的沙箱机制和技术剖析

- - 阿里云产品博客
10月25日,阿里云课堂第二期在上海开课,“云安全架构设计与实践”主题分享在众多朋友的期待下精彩上演,现场观众再次爆满. 本次活动中,李雪峰(花名:虚舟)和杨孟哲(花名:孟哲)两位安全专家为大家献上了精彩演讲,并在OpenSpace环节与观众展开讨论,积极互动. 应广大用户要求,我们将云课堂讲师现场分享内容全文整理出来,供大家参考.

最近关注的一些核心技术问题

- - 人月神话的BLOG
最近关注的一些核心技术问题,有相关资料的可以帮忙推荐. 关心MySQL读写分离集群和Cluster集群的选择策略,Cluster集群虽然具有完整的热备份能力,但是由于数据shading将导致很多问题,特别是跨数据节点的多表关联查询性能,在该问题解决后又出现的问题是对于数据集成和BI需求的满足上,是否一定要基于Hive模式来实现相应的需求.

谈企业私有云PaaS层核心技术

- - 人月神话的BLOG
在这里简单谈下企业私有云paas平台所涉及到的核心技术内容. 首先谈下数据库,首先要意识到数据库的集中包括了两个方面的内容,一个是数据库服务器硬件的集中化,一个是数据本身的集中化. 对于类似oralce rac集群数据库实现的是数据库硬件,软件和数据的全部集中,但是数据库集群算不上真正的分布式数据库.