云中的公司:云计算现状
目前,我们正处在云计算革命的初期阶段。尽管已经有许多可用的云服务,更多的有趣的应用仍在开发之中。也就是说,今天的云计算正在吸引着整个计算行业最优秀、最大的企业,他们都希望建立基于云来赢利的商业模式。
正如本章前面讨论过的,也许目前正在拥抱云计算模式的最引人注目的公司是谷歌。正如你将通过本书所看到的,谷歌提供了一组功能强大的基于web的应用,他们都通过其云架构对外服务。无论你是需要基于云的文字处理(谷歌文档)、演示软件(谷歌演示文稿)、电子邮件(Gmail),还是日历/日程安排功能(谷歌日历),谷歌都有提供。而且最重要的是,谷歌为它的所有基于web的应用都提供了相互之间的接口,为了用户的利益,这些云服务相互关联。
其他大公司也参与了云服务的开发。例如,微软提供了Windows Live web应用套件以及Live Mesh计划,该计划承诺将各种类型的设备,数据和应用连接到一个公共的基于云的平台。亚马逊推出了弹性计算云(EC2)服务,用来为应用开发人员提供以云为基础的可调整的计算能力。IBM已经成立了一个云计算中心,用来向客户提供云服务和研究。许多较小的公司也都推出了自己的基于web的应用,他们主要(但不完全)利用云服务的协作特性。
正如我们通过这本书,我们会研究其中的许多公司和他们的产品。你现在需要知道的所有东西就是:云计算具有远大的前途,每个人都在追赶这一潮流。
云计算为什么重要
云计算为什么重要?无论是对开发者还是对最终用户,云技术都意味着很多东西。
对于开发人员来说,云计算提供了更多的存储和处理能力来运行他们开发的应用。云计算也带来了信息获取,数据处理和分析以及从世界上任何地方、任何地点连接人和资源的新方法。从根本上说,它消除了开发的局限,利用云计算,开发者再也不用忍受有限物理资源的约束。
对于最终用户来说,云计算提供的好处更多。一个使用网络应用的人再也不会被完全绑定到一台PC,一个地点或一个网络。无论他在何处,只要他想,他就能访问应用程序和文件。再也不必害怕计算机崩溃的时候丢失数据。无论用户的机器出现什么状况,放在云中的文件始终存在。其次还有利于群组协作。来自世界各地的用户能够实时的在相同的文件,应用和项目上进行协作。这是一个由云计算启动的全新的协同计算的世界。
云计算完成这一切的成本更低,因为与传统的网络计算相比,云能更有效地共享资源。使用云计算,硬件不必在物理上紧邻公司的办公室或数据中心。云基础设施可以位于任何地方,包括而且尤其是那些房地产和电力成本更低的地区。此外, IT部门不必关心高峰负荷能力,因为高峰负荷可分散到云里的外部设备中。而且,由于额外的云资源总是可用,企业不再需要购买设备用于不常见的计算密集任务。如果你需要更多的处理能力,云总能提供,而且价格更划算。
云计算和Web :独立发展?
如果你已经十分熟知云计算的概念,那么你大概也听说过一类乍听起来同云计算类似,但是称之为Web 的事物。事实上,云计算同Web 类似。从许多方面来讲,其中的一个是另外一个的子集。
究竟什么是Web ?在我看来,这是一个有点时髦的词,不同的人有不同的理解。蒂姆?奥莱理,所谓的Web 教父,将其定义为“网络作为平台,贯穿所有连接的设备”。其他有些人将Web 看作从信息孤岛(Web )到互联计算平台的一个转型,从用户的感觉来看,该平台如同本地可用的软件一样运行。还有其他一些人利用协作术语来定义Web ,因为所有的网站都从用户的行动中获得其价值。
Web 的这些定义听起来很像没有技术支撑的云计算。也就是说,云计算是通过其架构和基础设施(互联的计算机/服务器构成的作为一个整体运行的网格)来定义的,而Web 是通过使用者如何看待系统/使用系统提供的服务来定义的。换言之,云计算是关于计算机的,而Web 是关于人的。
或者,如蒂姆?奥莱理所说的那样:
云计算专指将因特网作为一个计算平台使用,而Web ,如同我所定义的,试图探究和解释该平台的业务规则。
也许云计算和Web 只是看待相同现象的两种不同的方式。或者,同样可能,也许云计算是一种特定的Web 技术。无论如何都要记住,这两个词大概兴起在计算演化表上的同一点,这两个概念对最终用户承诺类似的结果。
最后,将谷歌文档或微软Live Mesh之类的事物看作是云服务还是Web 应用抑或两者兼而有之并不重要,重要的是技术如何影响用户。在这方面,云计算和Web 都为相关人员带来了实实在在的好处。
第三章 开发云服务(1)
本章导读
? 为什么开发基于网络的应用?
? 云服务开发的正反两面
? 云服务开发的类型
? 了解云服务开发服务和工具
我们中的大多数人从用户的角度考虑云计算,关注那些因云而存在的基于web的应用。但云计算也给软件开发者提供了很多东西。开发者现在可以利用云计算的能力和影响开发基于web的应用。
从这方面来说,许多著名的公司,包括亚马逊和谷歌都在云服务开发工具方面投入了大量的资源。继续读下去,来更多的了解什么可用以及什么将要可用。
为什么开发基于web的应用?
一个典型IT部门的需求令人胆怯:他们必须为公司内的所有用户提供足够的计算能力和数据存储。当然,这些必须在规定的预算内完成。存在的困难是,满足峰值需求或为新用户增加容量通常会导致IT预算猛增。
对多数公司而言,增加那些只在少数时间用到的能力在财务上是不明智的。IT部门需要的是一种方法来增加能力或添加性能而无需投资新服务器、互连设备或许可新的软件。云计算正是应这一需求而生。
以集中式基于web的应用形式出现的云服务对IT专业人员也有吸引力。云应用的实例与安装在每个用户台式机上的类似软件的单个拷贝相比更便宜更易于管理。升级一个云应用只需要做一次,而升级传统的软件需要针对每一台安装该软件的个人电脑进行。另外,我们还具有云带来的协作能力,而利用传统的桌面应用,这很难做到。
云服务开发的优势对那些没有预算或资源开发大规模应用的小企业尤为明显。通过将本地开发的web应用部署到云中,小企业无需花钱来购买昂贵的硬件设备来运行同样的软件。
让我们面对这一点,大多数小公司没有员工、资源、硬件或预算来开发和维护他们自己的应用,或来处理维护安全环境所面临的种种困难。尽管他们可以外包软件开发和运行,将这些应用转移到云中,公司不再需要投资本地宿主系统,解放了员工和资源以专注于自己业务的日常运行。
总之,投资云服务开发所带来的收益多多。一个开发自己的基于web的应用的公司在得到功能的同时还降低了业务费用。云的聚合能力伴随着更低的软件购买和管理费用。
云服务开发的正反面
为什么选择利用云服务模型来开发新应用?有几条充分的理由这样做,同时也有几个理由也许需要当心。
云开发的优势
云开发的优势之一就是规模经济。利用云计算供应商提供的基础设施,同在单一的企业内开发相比,开发者能够提供更好,更便宜和更可靠的应用。如果需要,应用能够利用云的全部资源而无需要求公司投资类似的物理资源。
说到成本,由于云服务遵循一对多的模型,与单独的桌面程序部署相比,成本极大的降低了。云应用通常是“租用的”,以每用户为基础计价,而不是购买或许可软件程序(每个桌面一个)的物理拷贝。它更像是订阅模型而不是资产购买(和随之而来的贬值)模型,这意味着更少的前期投资和一个更可预知的月度业务费用流。
IT部门喜欢云应用是因为所有的管理活动都经由一个中央位置而不是从单独的站点或工作站来管理。这使得IT员工能够通过web来远程访问应用。其他的好处包括用需要的软件快速装备用户(称为“快速供应”),当更多的用户导致系统重负时添加更多计算资源(自动扩展)。当你需要更多的存储空间或带宽时,公司只需要从云中添加另外一个虚拟服务器。这比在自己的数据中心购买,安装和配置一个新的服务器容易的多。
第三章 开发云服务(2)
对开发者而言,升级一个云应用比传统的桌面软件更容易。只需要升级集中的应用程序,应用特征就能快速顺利的得到更新,而不必手工升级组织内每台台式机上的单独应用。有了云服务,一个改变就能影响运行应用的每一个用户,这大大的降低了开发者的工作量。
云开发的不足
也许人们所意识到的云开发最大的不足就是给所有基于web的应用带来麻烦的问题:它安全吗?基于web的应用长时间以来就被认为具有潜在的安全风险。由于这一原因,许多公司宁愿将应用,数据和IT操作保持在自己的掌控之下。
也就是说,利用云托管的应用和存储在少数情况下会产生数据丢失。尽管可以说,一个大的云托管操作可能比一般的企业有更好的数据安全和冗余的工具。然而,在任何情况下,即便是感知到的来自关键数据和服务异地托管的安全威胁也可能阻止一些公司这么做。
另外一个潜在的不足就是云计算宿主离线所导致的事件。尽管多数公司说这是不可能的,但它确实发生了,亚马逊的EC2业务