云计算是作为服务而不是产品的计算交付。 在介绍了几行之后,我将回到这一点。 仍然保持原状。
介绍
在最近的过去,如果公司决定创建并托管应用程序,则需要执行以下操作:
传统基础设施
- 创建物理基础架构层 –他们将必须购买数百台服务器,网络设备和存储设备,以在其上构建基础结构。 最重要的是,他们将必须购买空间来容纳服务器和设备,带备用电源的电源,散热装置。 每隔几年,他们还需要升级服务器。
- 创建平台层 –要利用硬件资源,他们将必须获取诸如OS,Web服务器,应用程序服务器,数据库,CDN,缓存等之类的软件。这些软件将必须安装在每组服务器上并定期维护。
- 创建应用程序 –然后,公司将必须雇用专门的开发人员团队,他们将开发实际的系统以安装在上面创建的平台上。
这是部署应用程序的传统方式。 这种传统方式有很多缺点。 让我们挖掘其中的一些。
- 巨大的前期成本 –即使在开发应用程序之前,公司也必须购买用于创建基础架构的所有硬件。 这项采购的费用高达几亿美元。 您可以投入数百万美元来购买空间,电源,散热,安全性等。
- 雇用基础架构团队 –他们将必须雇用一支高素质的基础架构工程师团队来创建和维护这样一个复杂的基础架构。 这将增加部署应用程序的总体前期费用和经常性费用。
- 软件许可成本 –需要安装在基础结构上部署应用程序所需的软件。 这些软件的许可费用巨大。
- 资源浪费 –公司会预先计划要获得多少高峰流量。 根据高峰流量,他们购买了硬件。 在大多数情况下,流量远远低于高峰。 因此,CPU,带宽,内存等方面的大量资源仍未得到充分利用,从而造成浪费。
- 无法保证扩展-即使有如此庞大的基础架构,也无法保证如果流量突然激增(比如说要多100倍),服务器就可以扩展。
- 较少的故障转移功能 –服务器物理上位于单个数据中心中。 如果数据中心出现问题,例如火灾,地震,海啸等,则数据中心肯定会崩溃。 在这种情况下,应用程序也会关闭。 因此降低了故障转移能力。
- 不可能进行生产级别的测试 –测试或开发环境按比例缩小了生产版本,这是因为创建和维护生产副本的成本过高。 因此,应用程序的实际测试不在生产设置中完成。
总结问题
基础架构不是核心业务。
因此,所有传统上交付应用程序的方式都不是那么好。 如果我声明将70-80%的时间和成本投入在创建和维护最终应用程序将在其上运行的基础结构和平台上,那我不会错。 如果是我,我宁愿花时间开发我的应用程序并在其中添加新功能。 太烂了!
一切看起来都很严峻? 不完全的。 自最近几年以来,关于云计算的讨论很多。 云计算是对上面列出的所有问题的解答。
什么是云计算?
简而言之,云计算就是将计算作为服务而非产品来交付。
我们知道计算是CPU,内存,存储,网络和带宽的总和,再加上必要的软件,为我们的应用程序提供了生存的生态系统。 在传统方法中,必须从头开始组装计算或从数据中心企业购买计算,并且我们已经看到了这种方法的缺点。 云计算迎合了这些非常痛苦的点,它有望将计算即服务交付,并且确实实现了这一承诺。 今天,您会发现数千家声称拥有云产品的公司,为什么不呢? 云计算是这个镇上的新酷孩子,玩家希望通过声称拥有云产品来充分利用自己可以获得的所有优势。 但是他们的主张到底有多真实? 云服务具有某些特征。
- 提供在线和自助服务 –云服务产品应该在线提供,用户只需单击浏览器即可访问整个范围,而无需任何人工干预。
- 按使用量付费模式 –使用云服务时不应有前期费用。 用户应该只为他们使用的资源量付费。
- 按需可扩展性 –云应允许用户通过单击几下鼠标轻松地扩展和缩小其应用程序。
- 按需弹性 –云应允许用户快速使用和丢弃资源。 这应该很容易做到并且应该在线。
- 通过Internet协议交付 –任何云服务都应可通过HTTP,REST,SOAP等Internet协议交付。
因此,现在我们可以检查谁是真正的云计算参与者。 如果您需要致电公司的服务台以使用云产品创建帐户,则该帐户不是云产品。 如果您需要致电服务台为您的帐户启用任何服务,则它不是云产品。
云细分:
如我们所见,任何应用程序基础结构都包含三个不同的层。 这些是物理层,平台层和应用程序本身。 云产品恰好属于这三个层次,因此云服务可分为三个部分。
- 基础架构即服务或IaaS –这是硬件的交付,即CPU,内存,存储,网络即服务。 换句话说,用户可以在不购买实际设备的情况下配置这些硬件资源,他们可以使用云提供的在线应用程序将这些作为服务交付。 例如,Amazon EC2允许用户通过其控制台创建具有所需OS,RAM,CPU和存储的计算单元。 因此,Amazon EC2是IaaS。 其他示例包括Google Compute Engine,AWS S3,AWS ELB,Route 53,IBM Smartcloud,Microsoft Azure IaaS。
- 平台即服务或PaaS –平台即服务提供了运行应用程序即服务所需的软件环境。 例如,要运行一个简单的Java Web应用程序,您需要在计算机上安装Tomcat。 另外,您可能还需要一个数据库。 因此,具有tomcat和数据库的计算机成为Java Web应用程序可以在其中运行的平台。 通过网络提供此平台的任何云服务都可以归为PaaS。 PaaS的示例是Amazon Elastic Beanstalk。 Beanstalk预先配置了apache / tomcat / php和一个数据库。 它提供了API,您可以使用它们在其上部署应用程序而不必担心那里安装了什么。 PaaS提供程序的示例是Amazon Elastic Beanstalk,Elastic Cache,SQS,SES,SNS,Google App Engine,Microsoft Azure,VMware Cloudfoundry等。
- 软件即服务或SaaS –最后但并非最不重要的一点是,我们拥有SaaS。 SaaS将应用程序即服务交付。 例如, http://zencoder.com/是一个SaaS应用程序,可通过Web提供视频转码服务。 作为用户,您需要创建一个帐户并访问该服务。 您无需预先支付任何费用,而只需为转码时消耗的资源付款。 SaaS的一些示例是Google Apps,salesforce.com,Amazon Elastic Transcoder,Kikapps,Gigya,Janrain等。
下图说明了云产品的各个细分市场,以及该领域中的主要参与者/产品。
因此,现在我们看到云计算的不同层如何与传统基础架构的不同层对应
- 物理层=基础架构即服务(IaaS)
- 平台层=平台即服务(PaaS)
- 应用层=软件即服务。
云计算的各种优势
- 无需购买维护硬件资源的前期费用
- 无需购买软件许可证的前期费用。 尽管在云中使用oracle的成本可能比在云中使用mysql的成本更高。
- 只为使用的资源付费。
- 按需伸缩。 因此,在需要时浪费了更少的资源,并且即时可以使用更多的资源。
- 更多可用的资源–云数据中心通常部署在不同的地方和不同的大陆。 将应用程序复制到多个位置很容易。 因此,如果您的主应用程序已关闭,则可以轻松地将流量路由到备份数据中心。
- 易于进行备份–由于资源成本低廉,因此进行备份既简单又经济高效。
- 在生产级基础架构上进行测试–您可以轻松扩展测试环境以拥有与生产一样多的服务器。 测试完成后,您可以释放额外的服务器。 您只需要为使用资源的持续时间付费。 简单且经济高效。
- 安全性–在物理安全性方面,云数据中心变得更加极端。 他们还确保不惜一切代价维护数据完整性和机密性。 最后,他们确保24/7全天候提供您的服务。 在传统数据中心中维护此类安全性非常昂贵且困难。
- 与传统服务器相比,创建和维护基础结构以及在其上部署应用程序要容易得多。 如果您是初创企业,这将变得尤为重要,因为您没有合格的基础架构工程师团队来指导您完成此任务。
云部署模型 –基于部署模型,可以按以下方式对云进行分类
- 公共云 –这些是云提供商在其中提供所有云基础结构的云,这些网络基础结构通过Internet向公众提供。 可以免费提供或按使用付费。
- 私有云 –这些云仅为单个组织维护。 它们可以由组织本身或任何第三方创建。
- 社区云 –当两个或多个组织有相似的云需求时,他们可以聚在一起创建云基础架构。 这些云称为社区云。
- 混合云 –这是一种以上类型的云的组合。 例如,假设私有云需要更多资源,那么它可以与亚马逊等公共云播放器进行协作,并可以在任何持续时间内使用它们的资源。 这样的云称为混合云。
我一直对云表示怀疑,因为我不了解它是什么。 但是上个月,我有机会参加了AWS研讨会。 我能够使用EC2,RDS,Elastic Cache,S3和Elastic Load Balancer为我的应用程序创建基础结构模型。 之后,我只需单击几下鼠标就可以部署和扩展应用程序。 这是惊人的,几乎是神奇的。 的确,在我看来,云已经到来了,虽然很慢,但是可以肯定的是,我觉得大多数应用程序都将迁移到云上,这只是时间问题。 当美国政府可以将应用程序托管在亚马逊维护的私有云上时,就应该有所帮助。 对?
当我想到这个时,我记得伊萨克·阿西莫夫(Issac Asimov)撰写的一系列短篇小说。 他们是关于一台虚构的巨型超级计算机Multivac。 Multivac就像云一样,仅此而已。除了拥有像角色一样的云之外,它也是一门AI。 随着系列的发展,Multivac演变成驻留在超空间中的Cosmic AC。 对于亲爱的读者,这里有个故事http://filer.case.edu/dts8/thelastq.htm 。 我们朝那个方向前进吗? 我不知道我只是普通人吗?
翻译自: https://www.javacodegeeks.com/2013/06/introduction-to-cloud-computing.html