作者用到的比喻很好。

网址:TechED2010与我(三) —— 初识云计算

初识云计算
最近“云计算”被炒的很热,但是由于工作重点主要是做WinForm的控件开发,对云计算的接触比较少,甚至一直没搞清楚到底什么是“云计算”,感觉上“云”是个神乎其神的东西。这次借参加Tech-ed的机会重点了解了下“云计算”。写篇博文分享一下自己的理解。初次接触,理解的比较肤浅,如果有误欢迎大家指正。
1. 为什么需要云计算 
微软给了个很有意思的比喻。     
很多年以前,一个很牛的人发明的电灯泡,导致人们需要电,这个牛人就成立了一个公司,这个公司专门卖发电机,所有需要使用电灯泡的人都要买发电机,于是这个牛人发了大财。后来,人们发现买发电机自己发电好贵呀。于是有些大公司就建立了大型的发电站,个人和小公司只要按时交电费就可以得到电,这种新方法比买发电机省钱,到今天一直在使用。     
很多年以后,一个很牛的人发明了计算机网络,导致人们需要网络服务。人们为了提供网络服务(电气时代的电灯泡),每家公司都要买服务器(电气时代的发电机),后来,人们发现买服务器好贵呀。于是一些大公司建立了大型的数据中心(就是很多很多…的服务器)。个人和小公司只要按时交使用费就可以使用服务器,这种新方法比买服务器省钱。对于这个新方法,大家给起了个很抽象的名字——“云计算”。
2. 什么是云计算     
据说在2008年的一次国际云计算大会上,主持人对于“什么是云计算?”这个问题上随机采访了20个听众,结果得到了22种答案。对于云计算准确定义的争论,至今也没有停止过(怪不得我一直没搞清楚什么是云计算J)。     
在维基百科里给出了这样的描述性定义“云计算就是基于互联网的计算,它能像电网供电一样,按需把共享的资源,软件和信息提供给计算机和其他设备。”     
可能有人像我一样思考过,“云计算”和“分布式计算”有什么区别。对于这个问题,我的理解是,云计算强调的是服务,是一项租赁业务。而分布式计算强调的是技术实现。
3. 云计算的作用      
云计算最重要的作用当然是被提到好几次的一点——“省钱”,不能省钱估计就没人用了,呵呵。那么,它为什么能省钱呢?原来自己买服务器,现在租大公司的服务器,多转一次手,应该费钱才对。就好象租房住显然没有买房住合算呀(除非房东是慈善家或者脑袋有问题)。     
就我的理解,云计算是基于两个考虑来省钱的。     
一是避免浪费。     
最简单的例子,一个网络公司,一般高负载都是在晚上8点到11点左右。这段时间需要20台服务器才能保证稳定的访问,不宕机。而其他时段可能只需要2台服务器就可以了。这种情况下如果用买的,公司就必须一直保持20台甚至30台服务器(以备突发的大规模访问),而如果是使用云服务,就可以根据负载,动态的调整使用服务器的个数,8点的时候租20台,10点的时候如果突然访问量变大就租30台,过11点网民都睡觉了就把多余的退掉,就留一两台。这样就可以省钱了。     
二是集中管理,降低成本。     
在传统模式中,并不是服务器买回来就万事大吉了,几十台服务器的机房要面临着场地费用,人工管理成本,软件升级,服务器备份,维护,甚至布线,租用宽带等等的成本。而使用“云计算”的模式,以上问题都由提供商来集中解决,而集中管理的成本显然是低于分散到所有小公司的管理成本的。
4. 如何使用“云计算”资源      
说了这么多,还不知道“云”怎么用呢,其实,上云是比较简单的,很多大公司提供了这样的服务。由于Tech-ed是微软搞的,当然微软介绍的都是他自己的东西Windows Azure。     
对于使用微软的云,有个讲师说的很有意思,他说,只需要两步:一.到微软网站上注册帐号,二. 刷信用卡。他尤其强调,千万不要刷自己的信用卡,一定要刷老板的,要不你会很快破产的J。     
微软的云要求云端的应用程序分成两个模块,一个是WorkRole,一个是WebRole,WorkRole负责后台逻辑,WebRole负责前端展示逻辑,两者靠一个队列通信。如果装了Windows Azure SDK,可以在VS2010中创建出相应的工程模板。也有对应的向导把应用程序部署到云上。对于既有的ASP.net项目,如果想迁移到云上则首先需要对程序进行重构,按微软的结构要求把程序划分成WorkRole和WebRole在部署上去。
5. “云计算”可以为控件开发带来什么好处      
最后一个部分是我对自己工作的一个思考,毕竟我不是做网络应用的,第一感觉是暂时还用不上云。但是有一个点上可能还是可以在云计算上得到实惠的。场景是这样的,在每一个控件产品发布前,都需要对很多环境做集成测试,如不同的操作系统,WindowsXP,WindowVista,Windows7,不同的系统语言版本,英文,中文,日文,不同的IDE版本,如VS2005,VS2008,VS2010,这些条件组合起来的环境是非常多的,我们不得不准备很多的环境,有实机也有虚机,管理起来很麻烦。尤其是测试在特定环境下发现的bug在开发的环境里又很难重现和修复。最重要的是这个环境测试一年中可能只有一个月是需要的,其他时间这么的机器就会显得比较浪费。 而“云”的使用可能可以很好的解决这个问题,云服务中有一种模式叫平台即服务,当我需要时,我就可以根据我的要求到云上申请一个特定环境的机器,用完就归还。是不是可以少很多麻烦呢?     
这一部分都是基于我的理解想象的,还没有实践过。也不知道成本上是否划得来,要知道改变传统的做法本身就是要付出很大成本的。但是,所有的实现不都是从想象开始的么
6. 最后      
我对于云的很多理解都是比较肤浅的,接触云的时间比较短,也没有在项目中真正使用过。说真的,现在对于云的使用还是比较麻烦的,计费方法也比较抽象,不容易理解。但是我觉得,云计算确实是当前软件发展的一个趋势(单省钱这一点就足够了)也是软件应用模式的一次革命,值得深入研究探讨。相信将来使用云可以像在家里使用电一样方便。     
以上个人意见,欢迎拍砖~

【转】 TechED2010与我(三) —— 初识云计算的更多相关文章

  1. Linux学习之CentOS(三)--初识linux的文件系统以及用户组等概念

    Linux学习之CentOS(三)--初识linux的文件系统以及用户组等概念 进入到了Linux学习之CentOS第三篇了,这篇文章主要记录下对linux文件系统的初步认识,以及用户组.用户权限.文 ...

  2. 初识云计算的三种服务模式 (IaaS SaaS PaaS)

    近期公司在使用其它云服务的同一时候.要封装自己的云服务,以下作为开发产品前的热身.来了解云计算中的三种服务模式,笔者也是从网络上查找,进行综合总结.请拍.. 三种服务模式 依据如今最经常使用.也就是比 ...

  3. 初识云计算 -《AWS云端企业实战圣经》读书笔记

    原书中涉及实操的地方,在本文中被省略.一是篇幅太长,放入文中太过累赘,二是原书成书过早,现在 AWS 的界面早已变化很大,不具备参考性. 第一章 谁在使用云计算 1.什么是云计算 云计算(cloud ...

  4. CentOS(三)--初识linux的文件系统以及用户组等概念

    进入到了Linux学习之CentOS第三篇了,这篇文章主要记录下对linux文件系统的初步认识,以及用户组.用户权限.文件所有者.文件所在组等概念 一.Linux文件结构及基本文件夹 文件系统是Lin ...

  5. [20190620]日常学习记录(三)-初识promise及vuex

    在学习promise之前重温了Ajax的原生js实现, 在原生js中发送一个http请求首先new XMLHttpRequest() 然后定义状态变更事件 浏览器监听请求的状态,触发不同状态下相应的代 ...

  6. (三)初识NumPy(数据CSV文件存取和多维数据的存取)

    本章主要介绍的是数据的CSV文件存取和多维数据的存取. 一.数据的CSV文件存取 1.CSV的写文件: np.savetxt(frame, array, fmt='%.18e', delimiter= ...

  7. 云计算服务的三种类型(SaaS、PaaS、IaaS)

    云计算可以帮助企业降低IT方面的成本和复杂性,并获得他们蓬勃发展所需的灵活性与敏捷性.但是,规划出通往云的明确路径并非易事.毕竟用户需要看透与云相关的市场大肆宣传,然后理解并分析不同种类的云计算模式的 ...

  8. 云计算之KVM简介(一)

    云计算之KVM简介(一) 因为很多人会将云计算和虚拟化弄混,我下面为大家介绍一下 云计算指的是资源使用和交互的一种模式 虚拟化指的是技术,可以将物理计算机虚拟成多个逻辑计算机(VMware)  他俩是 ...

  9. 阿里云大数据三次技术突围:Greenplum、Hadoop和“飞天”

    阿里云大数据三次技术突围:Greenplum.Hadoop和"飞天"    对于企业来说,到底什么是云计算?相信很多企业都有这样的困惑,让我们一起回到这个原始的起点探讨究竟什么是云 ...

随机推荐

  1. 大米网赚项目介绍,官方唯一客服QQ:712994168

    大米平台项目来源   QQ:712994168 大米软件本质上是一个高质量网赚项目收集和发布平台,该平台的所有项目都是经过专业的测试团队实测有效的项目和教程,只要去做绝对可以赚钱.平台里面的项目类型包 ...

  2. 前端工程师IE6兼容性问题随笔(未完待续)

    1 height.在IE6下元素高度小于19px的时候,会被当做19px来处理.解决办法:用overflow:hidden;来处理.box{height:2px;background:red;over ...

  3. BaseHttpListActivity,几行代码搞定Android Http列表请求、加载和缓存

    Android开发中,向服务器请求一个列表并显示是非常常见的需求,但实现起来比较麻烦,代码繁杂. 随着应用的更新迭代,这种需求越来越多,我渐渐发现了实现这种需求的代码的共同点. 于是我将Activit ...

  4. C# Request中修改header信息

    var headers = app.Context.Request.Headers; Type hdr = headers.GetType(); PropertyInfo ro = hdr.GetPr ...

  5. [翻译]PYTHON中如何使用*ARGS和**KWARGS

    [翻译]Python中如何使用*args和**kwargs 函数定义 函数调用 不知道有没有人翻译了,看到了,很短,顺手一翻 原文地址 入口 或者可以叫做,在Python中如何使用可变长参数列表 函数 ...

  6. 如何解决前端传来的时间格式与mysql表中时间格式不匹配的查询问题

    前端传过来的时间格式为“2016-07-11 11:13:10”,而数据表中对应字段`add_time`的格式为“2016-7-11”,此时sql不能直接用 "where `add_time ...

  7. sja1000T can相关的知识

    开发环境:硬件环境arm9200 sja1000T,软件环境kernel version 2.6.21.驱动程序:字符驱动 can有两种基本的工作模式:basic can .pelican,pelic ...

  8. 利用Volley封装好的图片缓存处理加载图片

    Volley 工具箱中提供了一种通过 DiskBasedCache 类实现的标准缓存.这个类能够缓存文件到磁盘的指定目录.但是为了使用 ImageLoader,我们应该提供一个自定义的内存 LRC b ...

  9. 黑马程序员——C语言基础 字符串

    Java培训.Android培训.iOS培训..Net培训.期待与您交流! (以下内容是对黑马苹果入学视频的个人知识点总结) (一)字符串 1>字符串是由多个字符组合在一起形成的 2>初始 ...

  10. Android系统文件夹组织结构