简单来说,实际上云计算就是一种通过虚拟化技术进行大规模计算的架构和方法的实现。在云计算中,资源和功能都以服务的方式提供出来供用户使用。举个例子来讲,amazon这样的电子商务网站每天需要处理数百万计的请求和事务,如何保证处理能力,如何保证存储,又如何保证这些能够以简单的方式以及良好的性能来完成呢?
虚拟化是关键。其实虚拟化并不局限于VMware或者Xen提供的这种运行虚拟机的服务器虚拟化技术。大家熟悉的Java Virtual Machine, Hadoop Distributed File System, 虚拟内存等其实都是不同种类的虚拟化技术。将资源以抽象的方式或者逻辑的方式进行表示就是虚拟化。单个服务器的资源终归有限,通过虚拟化可以将不同服务器的资源以统一的整体的形式进行提供,从而让用户感觉拥有一个超大超强的服务器。举一个例子,现在热火朝天的Hadoop其实就是一个计算能力虚拟化的绝佳例子。Hadoop通过Map将一个大的任务分解为许许多多个小的任务,这些小的任务分配给在不同服务器上面的Hadoop服务实例来计算,计算出来中间结果,最后通过reduce方法将结果集进行合并。对于计算任务的请求者而言,他不需要看到背后有多少个Hadoop实例集中了多少台服务器的计算能力执行计算任务,感觉到是那个”强大无比“的电脑的超高处理能力。
信息技术其实一直围绕着3个主题在转,那就是”计算“、”存储“和”通信“。对应着这些主题已经有很多的云计算产品了:在计算方面,有Amazon EC2, Google App Engine等;在存储领域,有Amazon S3, mozy等;在消息通信方面有Amazon SQS等。我尤其推荐到Google App Engine去玩玩,体验一下云计算魅力。Google App Engine目前支持Java和Python两种编程语言,可以分别用GWT和Django进行Web编程,并且可以支持免费账户,自己做个小网站玩玩足够了。
那么在中国到底谁需要云计算呢?我觉得资金紧张的小公司需要,因为用了云计算就可以节约设备的采购成本;数据中心需要,电能消耗是数据中心成本的一个大块(通常占一半以上),通过云计算可以有效提高资源利用率,减少电能浪费;大公司也需要,因为像IBM这样的公司内部有着数以万计的服务器,同样存在资源利用率的问题。其实,我们普通人的日常生活也离不开云计算,比如越来越多的人通过手机访问搜索、导航等各种各样的互联网服务,云计算可以保证服务质量,让我们真正乐在其中。
山寨《梅兰芳》中的一句话:云计算的时代到了!
对云计算感兴趣的读者,真心推荐一本我们IBM中国研究院虚拟化和云计算研发小组写的《虚拟化与云计算》一书,该书是我们过去的4年多中的研究知识和成果的结晶,从中立的技术角度介绍虚拟化和云计算的概念,关键技术和业界动态等。欢迎大家批评指正!