Archive for the ‘Google’ Category

Google Apps Engine: 下一代的虚拟主机

Tuesday, June 3rd, 2008

这个周末又是一个bank holiday, 连续休息三天,陪LP逛街一天,陪女儿看海一天,今天终于坐在家里更认真地玩了玩Google Apps Engine. 说是玩,因为我还是Python的初学者,因此谈不上评估研究,只是follow google的文档把各个GAE的各个API都编写了几行代码实验了一下。

如同Google App Engine 初体验中所说,我觉得GAE本质上是一个新一台的虚拟主机服务,和过去的虚拟主机和主机托管业务不同的是,GAE提供的虚拟程度更高,而服务能力更强。过去用过虚拟主机或者托管业务的朋友可能都深有体会,虚拟主机基本就是速度慢、 限制多、带宽窄的代名词,很多虚拟主机提供商要么是面对一些中小企业用户,本来要求就不太高,或者针对个人迫于无奈没那么多钱。 即使是托管主机,你支付昂贵的租用和IDC费用,得到的仍然是不可靠的带宽,并且还得自己去解决性能问题。

Amazon 的s3, EC2业务曾经让无数人眼前一亮,尤其对于startup状态的团队来说,这些服务简直是天使 — 你拥有和amazon一样的可靠性和带宽,收费完全取决于你消耗的流量、存储空间和CPU, S3给了一个空间“无限大”而且可靠、性能卓越的“硬盘”,让大规模照片、video分享类的应用的实现技术门槛立刻下降了很多,EC2则等于给了你“无限”台在amazon的机房内的服务器,可谓召之即来挥之即去:你随时需要就随时来了一台,一旦不需要就立刻让他消失不需要付一分钱。 看到S3, EC2我不禁感慨在这样的环境下进行web的创业真是太幸福了!你唯一真正需要的就是你有好的idea和执行能力,人、资金等方面的初始需求被最小化了! (在中国虽然也可以用这些服务,但由于远在天边是不能用的,此外你还得烦心电信、网通、教育网不互联的问题、GFW的问题、政府审查的问题、ICP备案的问题、网络安全员的问题… 可谓天上人间之别)

然而Amazon s3, EC2, 还有simple DB,这些服务都比较面向developer, 不是开发者根本无法使用它们,对于一般企业用户来说更加无法享受其服务(但已经看到有人在EC2, S3基础上开发提供了企业级的足迹托管服务)。因此他们的门槛还稍高一些。

GAE无疑是对S3, EC2门槛的进一步降低,从Google App Engine和Amazon S3,EC2价格比较不难看到GAE似乎是冲着S3, Ec2来定价的,说明google明确了吧S3,EC2作为竞争对手的意图。 GAE没有EC2那么强大到虚拟出计算机和模拟出磁盘空间出来,而更接近于过去支持动态web引用的虚拟主机服务商。 我个人认为这个定位是非常合适的,对于大多数引用来说,并不需要完全的虚拟机,GAE可谓是Just all right的方案,而且GAE可以不断根据需求来扩充API来满足绝大多数用户的需求。

虚拟主机在过去是个不小的市场,不过由于竞争激烈,已经陷入了一种价格竞争但服务停滞不前的状态,GAE的推出,我相信最大的打击对象将是过去的虚拟主机服务商,在未来我看不到任何理由那些现有的虚拟主机服务商有什么存在的机会,企业和个人都会把这些服务host到google, Microsoft, Amazon等有限的大规模服务的公司上去。 Godaddy? 也许他们的客户不少,但实在技术比较弱,在过去和一些更小、更弱的域名、主机商竞争的时候他们还能显示出些优势,但在未来和Google, Microsoft竞争我觉得他们根本没有招架之力。

GAE和S3, EC2服务还是存在一些定位上的区别的,完全可能有第三方在amazon平台或者Microsoft平台上做出类似的东西来挑战GAE, 例如已经看到有人做了一个AppDrop: Google App Engine的EC2实现,虽然只是个验证idea的原型,但已经能说明一定的问题。 GAE目前的固有缺陷(不支持Python外的语言、不支持后台进程、对Python runtime的一些限制)也正给了后来者无数的想象空间。

Microsoft目前似乎还没有出现类似GAE的服务,但从MS所拥有的武器IIS, ASP.NET, Visual Studio, Windows Live Services来看, Microsoft最应该也最容易提供超群的类似服务,让我们拭目以待看看Microsoft是否也会涉猎这个领域。

GAE和他的类似服务们所带来的将是一个空前繁荣的web应用时代,这个时代中很多规则会发生改变,对于创业者来说,资金、人员数量将更进一步不再成为一个关键,一个强悍的小团队甚至个人可能可以打造出大规模的服务;对于企业来说,既是Google, MS, Amazon自己没有提供专门的服务,也可以预见会有大量的创业企业会在此之上打造出适合他们用的服务。

不知道为什么最近大佬们总用“云计算”这样含糊的名词含着口号,无疑GAE, S3, EC2, SSDS都是迈向“云”计算的关键布局,但是从更适合理解的角度来看,我觉得GAE等其实就是下一台的虚拟主机业务。

现在做虚拟主机服务的?我看要么转移到“云”中去,站在巨人的肩膀上继续提供高附加值的服务,要么就等着被消灭吧。这个日子到来的会比我们想象更快!

 

声明:本文纯属个人观点和我所在公司无关。

Google friend connect初探(1)

Monday, June 2nd, 2008

friendconnect推出有一段时间了,一直没有仔细去看。 刚刚推出的在其他站点上自动安装了一些widget, 最基础的如朋友列表、留言。其他的用户可以在这个非google站点上登陆。点击sign in带我到这个画面:

image

添加Orkut的帐户关联,注意Browser的地址栏,里面是google friend connect而不是orkut, 这个地方的安全性有些令人质疑,不过orkut是google一部分也共享google account, 还能说得过去。 :z

image

总体上并不impressive…

其实类似的想法早在04年sns的一些讨论中,我就和Stowe Boyd讨论过类似的想法,并且也想在当时的项目中作一些尝试,但显而易见,这些想法过于超前没有能获得实施.在类似方向上最接近的我认为是MyBlogLog, 他们是第一个把social network分散到各个人的blog上去的先驱,很高兴Google在这个方向上又迈进了一部.

friend connect和open social是一对兄弟,不过他们真正的开放性值得怀疑,更多应该是google 圈地的工具,而不是open social network的真正趋势 --因为这个friend connect其实仍然是google的sns, 数据全部在google那里,只是把一些google 的widget 放在你的页面上,让你的页面显得有了social application的特性而已. 这也是facebook为什么要block friendconnect的原因吧!

google毕业生们开的friendfeed刚刚提供了API, 可以让你很容易把friendfeed的元素显示回自己的站点,这和friend connect的思路是类似的. 

Google App Engine和Amazon S3,EC2价格比较

Friday, May 30th, 2008

GAE刚刚开放注册了,并且增加了memcache和image API, 可以说超实用又迈进了一步, 这篇blog中还宣布了未来的价格:

Although we’re not ready to offer this ability now, we’ve been asked by many developers to provide some insight into how we’ll be pricing App Engine usage for applications that have exceeded the free quota of 500 MB of storage and around 5M pageviews per month. We’d like to be transparent about this, and have announced today that developers can expect to pay:

  • $0.10 - $0.12 per CPU core-hour
  • $0.15 - $0.18 per GB-month of storage
  • $0.11 - $0.13 per GB outgoing bandwidth
  • $0.09 - $0.11 per GB incoming bandwidth
  • 我不由得马上跑到amazon上去比较一下S3和EC2的价格。

    S3目前的价格:

    United States

      Storage
      $0.15 per GB-Month of storage used

      Data Transfer
      $0.100 per GB - all data transfer in
      $0.170 per GB - first 10 TB / month data transfer out
      $0.130 per GB - next 40 TB / month data transfer out
      $0.110 per GB - next 100 TB / month data transfer out
      $0.100 per GB - data transfer out / month over 150 TB

      Requests
      $0.01 per 1,000 PUT, POST, or LIST requests
      $0.01 per 10,000 GET and all other requests*
      * No charge for delete requests

    Europe

      Storage
      $0.18 per GB-Month of storage used

      Data Transfer
      $0.100 per GB - all data transfer in

      $0.170 per GB - first 10 TB / month data transfer out
      $0.130 per GB - next 40 TB / month data transfer out
      $0.110 per GB - next 100 TB / month data transfer out
      $0.100 per GB - data transfer out / month over 150 TB

      Requests
      $0.012 per 1,000 PUT, POST, or LIST requests
      $0.012 per 10,000 GET and all other requests*
      * No charge for delete requests

      Data transfer “in” and “out” refers to transfer into and out of Amazon S3.  Data transferred between Amazon EC2 and Amazon S3, is free of charge (i.e., $0.00 per GB), except data transferred between Amazon EC2 and Amazon S3-Europe, which will be charged at regular rates.

      Storage and bandwidth size includes all file overhead.

        (Amazon S3 is sold by Amazon Web Services LLC.)

      可以看到,目前在文件存储和传输方面两者价格是非常接近的,考虑到GAE提供500M的免费空间和每月5M的免费PV,在文件保存和传送方面GAE更有吸引力。S3完全是不免费的,我现在每月信用卡帐单上都有几分钱的支出,就是因为我在s3里放了一点点测试数据。 

      虽然GAE目前并不纯粹提供和S3相当的文件服务,但相信很快、也相当容易就可以提供一个这样的GAE应用出来。 

       

      EC2的价格:

      Instances

        Standard Instances
        Instances of this family are well suited for most applications.
        $0.10 - Small Instance (Default)
        1.7 GB of memory, 1 EC2 Compute Unit (1 virtual core with 1 EC2 Compute Unit), 160 GB of instance storage, 32-bit platform

      $0.40 - Large Instance

        7.5 GB of memory, 4 EC2 Compute Units (2 virtual cores with 2 EC2 Compute Units each), 850 GB of instance storage, 64-bit platform

      $0.80 - Extra Large Instance

        15 GB of memory, 8 EC2 Compute Units (4 virtual cores with 2 EC2 Compute Units each), 1690 GB of instance storage, 64-bit platform
        High-CPU Instances
        Instances of this family have proportionally more CPU resources than memory (RAM) and are well suited for compute-intensive applications.
        $0.20 - High-CPU Medium Instance
        1.7 GB of memory, 5 EC2 Compute Units (2 virtual cores with 2.5 EC2 Compute Units each), 350 GB of instance storage, 32-bit platform

      $0.80 - High-CPU Extra Large Instance

        7 GB of memory, 20 EC2 Compute Units (8 virtual cores with 2.5 EC2 Compute Units each), 1690 GB of instance storage, 64-bit platform

      Pricing is per instance-hour consumed for each instance type. Partial instance-hours consumed are billed as full hours.

      EC2 Compute Unit (ECU) - One EC2 Compute Unit (ECU) provides the equivalent CPU capacity of a 1.0-1.2 GHz 2007 Opteron or 2007 Xeon processor.   See Amazon EC2 Instance Types for details on available instance configurations and a complete description of an EC2 Compute Unit.

      Data Transfer

        Internet Data Transfer
        $0.100 per GB - all data transfer in

        $0.170 per GB - first 10 TB / month data transfer out
        $0.130 per GB - next 40 TB / month data transfer out
        $0.110 per GB - next 100 TB / month data transfer out
        $0.100 per GB - data transfer out / month over 150 TB

        Data transfer “in” and “out” refers to transfer into and out of Amazon EC2.

        Data transferred between Amazon EC2 and Amazon S3-US or Amazon SimpleDB, is free of charge (i.e., $0.00 per GB), except data transferred between Amazon EC2 and Amazon S3-Europe, which will be charged at regular rates.

        Amazon S3 usage is billed separately from Amazon EC2; charges for each service will be billed at the end of the month.

        Availability Zone Data Transfer
        $0.00 per GB - all data transferred between instances in the same Availability Zone using private IP addresses.

        Regional Data Transfer
        $0.01 per GB in/out - all data transferred between instances in different Availability Zones in the same region. 

        Public and Elastic IP Data Transfer
        $0.01 per GB in/out - If you choose to communicate using your Public or Elastic IP address inside of the Amazon EC2 network, you’ll pay Regional Data Transfer rates even if the instances are in the same Availability Zone.  For data transfer within the same Availability Zone, you can easily avoid this charge (and get better network performance) by using your private IP whenever possible.

      * Please note that Regional Data Transfer and Public and Elastic IP Data Transfer will be charged at $0.00 per GB through June 30, 2008.  This is to allow current Amazon EC2 users to optimize the placement of instances before incurring any charges.  See Availability Zones for tools to describe instance location.

      Elastic IP Addresses

        No cost for Elastic IP addresses while in use
        $0.01 per non-attached Elastic IP address per complete hour
        $0.00 per Elastic IP address remap - first 100 remaps / month
        $0.10 per Elastic IP address remap - additional remap / month over 100

      (Amazon EC2 is sold by Amazon Web Services LLC.)

      EC2 和 GAE比较是有一点拿苹果和梨子比,因为两者提供的并不对等, GAE只能host 应用, EC2能提供货真价实的虚拟机给你完全控制,但GAE保证帮你实现app的load balance和scalability, EC2就只能靠你的应用来自己实现。

      单纯从CPU使用的价格上来看, GAE更便宜,和Ec2的数据传送价格比, GAE也有优势。 总体上来看, GAE是比较有竞争优势的,因为GAE的哲学可能是Just alright, 对大多数服务和应用来说刚好够用,EC2更加专业化一些,但很多场合下并不需要。

       

      Microsoft呢?

      Microsoft并没有闲着看,这个SSDS就是答案,现在还是close beta状态,但文档可以直接访问。 不得不说这个名字SSDS取得不太好,也很容易误导。

      image

      目前还没有公布价格,所以无从比较。 SSDS提供的服务应该认为是S3的增强版本,不但可以保存文件还可以保存结构化数据,并且能用LINQ语法进行一些查询。 我刚刚拿到测试帐户,还没有仔细看。

      其实Microsoft拥有IIS, ASP.NET, Visual Studio等全套的东西,完全应该能提供出类似于GAE并且比GAE完善得多的方案,让开发、部署基于ASP的应用易如反掌,而且这种host类型的服务,不但不会影响传统的销售,还会更好地吸引个人开发者和startup公司,实在是太太太太应该提供了!!! 然而,我还没有听说类似的计划和项目。 :(  :(  :(  

      这里说个题外话就是很多新的startup 尤其互联网startup用Microsoft产品的非常少,大部分都是LAMP阵营的,未来可能是GOP(Google + Python,不是共和党 :) )的, Microsoft的web方面产品其实从某些角度对startup有不少优势,然而由于没有几乎为0的入门门槛,以及一些”不cool”的感觉因素,导致了目前这种局面,实在觉得很应该扭转过来。 Microsoft有一个针对startup的计划Microsoft Startup Zone,让“合格”的startup可以以很低的价格购买Microsoft系列产品,然而既然是startup, 一开始的时候谁有精力去搞这些呢? 这就是为什么Just all right的产品更容易吸引startup的原因。 因此我觉得GAE将大大降低startup的资金入门门槛, 可以让startup更多把资源用在创新上,是非常有竞争力的。

      当然,既然评论了不少公司和产品,得声明一下:本文纯属个人观点,不代表我所在公司观点.

      新PC时代的思考 (2)

      Wednesday, May 7th, 2008

      感谢在新PC时代的思考 (1)后面留言的朋友们,你们的观点和讨论让我启发颇多. 同样得申明一下, 本文仅为个人观点, 不代表所在公司的立场.

      Xin Chen推荐的Joel on software上的一篇文章很有趣, 中文版在这里. Joel一直是比较推崇小巧、精干的团队和开发方式的,因此对Ray的评价有些苛刻,但的确Joel一针见血地指出了当今计算机界普遍存在的这种“假大空”类型的buzz word堆砌的局面,其实这种问题也不是一天两天了,这个行业一直如此。

      Joel有一点分析是比较有道理的,Ray是Notes出身,进而做了Groove最终被MS收购而加入,最近提出Live Mesh, 本质上都是基于数据同步(synchronize)的设计;数据同步是网络分布应用的一种有效的实现模式,但不是唯一的模式,也不是最有效率的模式,随着网络的带宽加大、CPU处理能力增强,同步模式的优势在always on的计算机应用大幅消退,不过最近这些年PDA, Phone等所谓有限连接设备的兴起才使得数据同步模式焕发了第二春。 在Google等公司认为未来一切都可以网络化,终端设备只是相对瘦的客户端的时候,Live Mesh如此强调数据同步,让人不太理解。

      网络存储的未来

      Joel还提到了xdrive系列的网络存储服务,这个在n年前曾经很时髦,然而时间证明了对消费者用户而言似乎这个不是,至少现在还不是必不可少的业务。

      然而,这里面是否有未来的机会呢?我认为有!只不过可能时机还没有成熟,方式也可能需要有所变化。

      苹果的.Mac服务中的iDrive服务是比较有些特点的,因为apple的这个网路盘不仅仅是个可以连接在你的电脑上的盘符,而且它还具有很多“天然的”接口,比如某个目录下的照片自然成为了你的相册,某个目录下的文件自动成为了你的个人站点,这个驱动器也是你的PC和多个apple在线服务之间的纽带,需要upload某个东西到某个应用中去吗? 丢到某个特殊盘里面去即可。

      一些现代的网络硬盘服务也获多或少提供了类似的服务,最多的如web访问网络盘、共享、搜索等功能。但是这些服务普遍最缺乏一个我认为最重要的东西 — 开放性。

      网络存储和一个硬盘本质上没有大的区别,不同之处,网络盘挂在Internet上,Inernet上随时可以访问;你的计算机硬盘挂在你的硬盘控制器然后挂在计算机总线上可以被计算机的其它设备访问。你的硬盘有一些基本功能比如说可能有指示灯说明读写状态,但其最大的用途是给其它的设备和服务读写数据,而不是隶属于自身提供的某种功能。 现在的大部分网络存储服务的功能全部是自身固有的,能暴露给第三方的?几乎没有。

      想象一个未来的网络存储服务,它对于我的设备(PC, Phone, PDA…)来说如同一个存储设备,可以很方便地当成本地的存储设备而使用;它对于我的使用的各种网络服务来说,也相当于这些应用的存储空间,比如我的email可能用Gmail, 但保存(至少有一个copy自动地保存)在我的网络盘上, 我的blog的数据,也保存在这个网络存储中, 我的facebook上的通讯录, 我的相册, 我的记事本, … 统统可以保存在这个属于我自己的网络存储空间中。这才是一个真正的网络存储服务! 而这样的体系结构如果能够存在,也将能解决不少Data portability的问题, 这就如同有时候我拔下这台机器的硬盘插到那台机器上去一样。

       

      网络时代的冯诺伊曼机

      作为old school boy, 我觉得Von Neumann结构仍然具有很强的参考价值,只不过其中各个部分可能被赋予了一些更新的含义。

      image

      (Graph from: http://zh.wikipedia.org/wiki/%E5%86%AF%C2%B7%E8%AF%BA%E4%BC%8A%E6%9B%BC%E7%BB%93%E6%9E%84)

      在这个结构里,I/O 模块毫无疑问是存在于网络上的,例如前面提到的网络存储是个典型的网络化的I/O设备;这里的memory的概念也应该发生了变化,它不再是memory chip中的0, 1 而是分布在网络上的系列可寻址的状态, 这些状态可能提供在多个不同的服务之中。 Control unit, ALU毫无疑问将可能是下一代新PC时代中处于核心地位的东西。

      SCSI 的联想

      可能吗?不可能吗? 其实一个并不新鲜的,但至今还在发挥功效的架构从一个侧面说明了这个可能性。 这就是SCSI, Small Computer System Interface.  抛开SCSI本身的设计目的不谈, 其实SCSI的本质是一群职能外设形成的专用计算机网络,SCSI上每个设备都有一定的“智能”,因此他们可以并行地自主工作,相互协调形成巨大的吞吐量。 目前大部分高可靠性存储设备都是SCSI的设备。IETF在SCSI基础上提出了iSCSI, 是对SCSI进行基于TCP/IP的网络扩展,使得这些scsi职能设备的连接距离、设备数量可以随网络而“无限”扩展。

      SCSI的例子只是说明了一个专用的环境下,网络上的各个“自主”的设备如何高效率运作形成了“一台”让你觉得是整体的计算机 — 你的scsi硬盘其实是一台计算机,你的scsi光驱是另外一台计算机, 你的扫描仪、打印机…都是完整的独立的计算机!感觉上你只是在用一台机器,其实你在使用一群机器。SCSI做到了,未来的”新PC”也能做到!

       

      谈何容易?!

      的确不容易,但是并非不可能。

      然而目前的问题并非在于技术上不可能,而是在于协作上和商业上的问题。很多的公司,包括google在内,打着开放的旗号,并没有真正把开放放在心上,而是现象着垄断未来。 Google的梦想是未来所有的应用都如同google search一样host在google强大的机器群上,这很好很强大,但是这样一来别人的空间在哪里呢?当一群人都梦想着自己做个super网络服务把所有用户都抢来的时候,其实就正是埋下了不可能的伏笔。

      然而Linux等软件的成功让我们看到了一线希望,也就是有可能通过大量群体的参与和协作来推动一个原先认为不可能的东西变成现实。

      我想起了一句很久以前的话–

      Nothing impossible.

      Google App Engine 初体验

      Sunday, April 27th, 2008

      申明:本文仅代表个人观点,不代表任何第三方。

      终于获得了一个Google App Engine的帐号,周末初步体验了一下,只是看了一些文档看了几个App gallery中已经做好的app, 还没有亲自操刀干任何事情,因此只是一些很初步的认识。

      Google App Engine我理解是一个面向未来的产品,他可以认为是Amazon S3的超级增强版本,但又是Amazon EC2的更简化实现版。S3仅仅提供存储服务,EC2给你了一个虚拟机器, App Engine给了一个了类似动态web application hosting的环境。

      要说它究竟像什么,我看最像的是诸如Godaddy等的支持动态页面的virtual hosting服务。不过比那些hosting service要先进很多的地方是, Google App Engine在性能、系统分布能力上有了巨大的改善, host在app engine的应用将具备google.com级别的带宽、CPU资源、可靠性、吞吐量, 传统的host 服务,最高级别也就是所谓dedicated server, 即一台机器专门给你,要能支持多台机器的分布还得你自己想办法,从这个角度来看App Engine的价值提升是巨大的。

      顺便说下EC2, EC2提供的是虚拟机器,但提供了一些API可以动态地增加虚拟机器资源,因此也可以实现很好的scalability, 但需要自己的应用能支持,App Engine在这方面简化很多,从目前文档上看基本上你不需要管什么。 但EC2的价值在于其提供了完全的控制能力,你可以在上面跑任何应用,而App Engine目前只是Host web application, 不允许执行一些底层的操作。

      目前App Engine 只支持Python, 但声称未来会支持更多语言,已经有不少人在呼吁google支持php了。目前App Engine除了Python Runtime(基本是完整的,但一些API被禁止比如底层的网络、文件系统等相关的)外,还提供了Datastore API (可以理解为一个超级的database), Users API(和Google account整合的), URL Fetch API(用于访问其他的web service的,这可能是目前能无限扩张app engine能力的最重要的部分),Mail API(和Gmail的整合),任何只用 Python来实现的web framework都可以用于应用的开发,因此可以认为App engine已经比较可用。

      很遗憾MS目前没有类似的服务,在当初看到EC2的时候就在想为什么MS没有类似EC2的服务,EC2的虚拟机全是Linux的,当然已经有人在虚拟机上再运行模拟软件并成功安装windows server 2003的,我自己也尝试安装过一台,没有测试性能究竟如何,但如果真这么用总之觉得心里不是那么踏实。

      Google App Engine是朝下一代web应用环境的一个很大的迈进,这个方向的第一步是Amazon迈出的,但Google 的这一步也将具备不小的历史意义。

      Close
      E-mail It