想开发云应用程序?先选择合适的PaaS!

从一个方面来分析,开发云应用程序的平台即服务模式有两种:一种是专用模式,托管在本地或私有云中;另一种是公共模式,由第三方提供商来托管,并采用订阅支付模式。那只是问题的一个方面。还可以以一种全然不同的方式来分析PaaS:这种方式基于与云环境的联系

据长期的IT和云计算顾问Judith
Hurwitz声称,从这种联系的角度来分析PaaS,会发现存在两种不同的模式。其中之一是,PaaS与某个特定的软件即服务(SaaS)环境联系在一起,比如Salesforce的Force.com和Heroku
Enterprise。另一种是PaaS受制于某个特定的云操作环境,以亚马逊网络服务(AWS)的Elastic
Beanstalk为代表。另外还有可以自由添加的PaaS解决方案,它们并不与任何一个云联系在一起。这些包括Apprenda、CloudBees、Engine
Yard及其他PaaS解决方案。

随着公众对云提供商安全的信心不断加强,对PaaS的依赖程度也随之提高,用于开发云应用程序。虽然PaaS支出仅占总体云环境的一小部分,但正以惊人的速度增长。MarketsAndMarkets公司在最近一项研究中预测,到2018年,全球PaaS市场会增长到69.4亿美元,而五年前还仅仅只有12.8亿美元――年复合增长率高达32.54%。

作为Hurwitz提出的两种模式中的第一种,将PaaS绑定到SaaS让提供商得以“通过提供一个完整的、受保护的生态系统,延伸品牌,”她说。“这是独立软件开发商或企业开发人员构建旨在完全在该环境中运行的自定义应用程序的最容易、最快速、最安全的方式。”这不是什么新的想法:2011年――按云计算行业的标准来看那已是很久以前,Workday发布了自己的受制型PaaS,采用的品牌名是Workday集成云平台(Workday
Integration Cloud Platform)。这家公司位于加州普莱森顿,专门开发基于云的人力资源和财务管理应用软件。

在第二种模式中,PaaS解决方案与整个云操作环境、而不是与某个特定的应用服务紧密联系起来。她说:“如果你打算编写只在AWS、微软Azure或IBM

Bluemix上运行的应用程序,选择它们的PaaS解决方案是合理的选择。”她表示,比如说,如果某家企业组织在.NET框架方面有扎实的专长,或者有一大批应用程序在使用.NET框架,那么选择微软的Azure开发和部署生态系统将是自然而然的选择。

据Hurwitz声称,这个PaaS领域势必会出现重大变化。她说:“虽然我们仍然看到与某个特定平台绑定的PaaS解决方案,但现在我们更多地看到Pivotal的开源Cloud
Foundry受到追捧,作为实施PaaS的一种标准方法。” EMC旗下的VMware部门在2011年推出了Cloud
Foundry。两年后,EMC将那些资产作为Pivotal Software拆分出来。

Dave
McCrory是Basho科技公司的首席技术官,这家公司专门开发Riak开源数据库。他表示,想选择合适类型的PaaS来开发云应用程序,关键因素是了解手头的项目。没有哪一种类型的PaaS适合所有情形,而这势必需要开发人员的工具包中同时有几个PaaS。

McCrory说:“由于应用程序开发场景不同,所以有众多不同的PaaS类型。”他赞同Hurwitz的观点,表示一种就是SaaS式样,以Force绑定到Salesforce这种方式为代表。他表示,Heroku不一样,就在于“你上传想要运行的各个组件,然后将应用程序上线。它并不像Force那样紧密地绑定到Salesforce。”

McCory表示,其他PaaS解决方案允许开发与基础设施更紧密结合的云应用程序,他提到Mesosphere就是个例子。“这是一种PaaS式样的服务,更接近网络物理层。”

最近云计算领域新增的一个角色是AWS
Lambda,它自称是“构建和运行云端应用程序的一种全新方式。”McCrory表示,虽然它不是典型的PaaS,但基于这个想法:编写极小的代码片段,以便将其他小小的代码模块连接起来。McCrory说:“你不是构建一个庞大的程序;相反,你是构建一系列小小的组件。”
McCrory表示,与其他PaaS模式一样,其目的也是加快开发、简化维护。

无论最终选择哪种类型的PaaS来帮助开发人员加快开发和部署,McCrory表示,仍要认识到PaaS只是整个开发环境里面的一个组件而已,这点很重要。他说:“当前的趋势就是,拥有从头到尾的综合工作流程、实现测试和部署自动化,即从基于云的IDE(可以在其中编写代码),到源代码库(比如GitHub)。”

McCrory表示,对于开发人员来说,转移到PaaS模式最终是为了加快开发应用程序和更新应用程序(一旦部署到生产环境中)。“优点在于,你不需要升级庞大的整体式应用程序,而是只要进行小幅的增量变化。”

系统可能顺畅地运行几个月,结果却在软件变化后出现崩溃,无论是大变化还是小变化。推特已经在2016年1月出现停运,几乎遍及全世界,公司将这六小时的停运归咎于“内部的代码变化”。后来代码回滚消除了那个问题。McCrory说:“如果你在更新后遇到了问题,若使用PaaS模式,可以轻松回滚,并检查导致问题的增量变化。这要比另一种方法:六个月的升级周期好得多,因为那样可能进行了数千处变化,你在查找导致问题的代码时,可能要停运好几天。”

Hurwitz表示,虽然由于性能和安全方面的问题,PaaS概念没有迅速流行起来,但现在这个概念普遍得到了接受。她说:“从单枪匹马的个体开发人员,到小型部门,再到大企业,PaaS可能是开发云计算应用程序的一种必然选择。你几乎可以马上搭建并运行起来,测试现有代码,或者用你选择的一种语言来编写新代码。作为一种开发方法,PaaS已站稳了脚跟。”

本文转自d1net(转载)

时间: 2024-07-31 01:12:27

想开发云应用程序?先选择合适的PaaS!的相关文章

如何基于Web应用程序安全经验来开发云应用程序?

随着越来越多的企业 寻找可部署在云供应商环境中的应用程序,对于健全的安全措施和技术的需求也变得至关重要. 那么,如何在云环境中开发应用程序以最大限度地提高安全性呢?这些云应用程序是否有别于内部应用程序?在开发周期和质量保证(QA)过程中,需要有哪些变化?在把应用程序迁移到公共云环境之前,上述所有问题都需要解决.在本文中,我们将提供一些指导,如何专为云环境开发安全的应用程序,以抵御如今大部分常见攻击.我们还将探讨一些需要落实到位的控制因素,以确保基于云的应用程序在开发和部署时的安全性.如何安全地开

使用Microsoft Visual Studio 2010开发云应用程序

引言 云计算是一个可以让你在云中(也就是在远程服务器中)开发和部署应用程序的基础结构.使用云计算的主要优点是:可以降低成本,可以获得良好的可扩展性,可以增加灵活性和提高效率.微软的Windows Azure平台是一个云操作系统,它包含一系列云技术,其中的每种技术都负责提供一组特定的服务.本文首先会对云计算以及它的优点做一个概述,然后会和你一起探讨如何使用Microsoft Visual Studio 2010开发云应用程序. 前提条件 要使用本文中的代码样例,你应该在你的系统中安装如下工具: *

.net 开发矢量图程序技术选择,请指教

问题描述 矢量图显示电路模拟版,硬件平台为32寸可触控一体机,用户可通过手指操作放大.缩小或者平移矢量图,操作时不能卡顿.通过网上查询了解到,开发矢量图程序可以使用c#GDI+,也可以使用基于web的SVG技术,何去何从呢?! 解决方案 解决方案二:自己顶起!大神们多指教!解决方案三:WPF轻松搞定

【求助】如何开发云应用,需要那些知识?

问题描述 本人资历浅薄,学过J2EE,最近做了一个B/S模式的交通标志识别系统.现在想让这个系统与云结合,变成云应用.那么问题来了,我该怎么做呢,想请教搞云的前辈们:1.如何开发云应用程序?我需要那些准备,学习哪些内容?2.云应用程序与B/S模式的系统有什么区别?3.如果你听说过长城云教室,希望能告诉我一些细节.能否将程序放在长城云上,获得一个云服务的体验? 解决方案 解决方案二: 解决方案三:飘过!!!!解决方案四:加油................

网络编辑如何为文章选择合适的关键字?

网络编辑在找关键字之前应该先考虑以下三个问题: 一.为什么要找关键字?找关键字的目的是什么? 二.如何才算是合适的关键字? 三.哪些会用到关键字?谁在使用关键字?关键字的价值何在? 如果你已经认真考虑过以上的那三个问题,那么现在咱们可以先来了解这三个问题?内容页面会用户到关键字.而谁会用呢?一般关键字仅仅提供给已经在访问网站并访问到内容页的用户.那么这块的价值何在?最直接目的就是为了提供当前页面的页面访问量,就是通用所说的PV=page view.这就是为何我们要选择关键字? 哪些关键字算是合适

简单探讨云应用程序

云计算被我们所广泛认知,云计算是一个可以让你身在云中的开发和部署,应用程序的基本结构.使用云计算的主要优点是以下几点:可以减少成本,可以获得较好的可扩展性,可以提高灵活性和效率.微软的Windows Azure平台就是一个利用云的操作系统,它包含一系列的云技术,其中的每个技术都负责提供一组特定的服务.在这里我会首先会对云计算和它的优点做一个简述,然后开始探讨如何使用Microsoft Visual Studio 2010这个开发云应用程序. 前提条件 要使用本文中的代码样例,你应该在你的系统中安

java-在自己开发的应用程序中读取通讯录,想选择一个电话号码到自己的应用程序中

问题描述 在自己开发的应用程序中读取通讯录,想选择一个电话号码到自己的应用程序中 用下面的方法虽然可以得到一个电话号码,但不是自己选择的电话号码,每次都返回那个号码.求大神帮忙看看要怎么才能读取到自己所选的号码...先谢过了`enter code here @Override public void onActivityResult(int reqCode, int resultCode, Intent data) { super.onActivityResult(reqCode, result

那些对混合云开发和应用程序环境的错误认识

企业架构师们在开发混合云计算应用程序并为支持程序云计算而选择云计算供应商之前,他们应当好好完成他们的准备工作.选择错误的供应商和在错误的环境中开发应用程序都会对应用程序的运行性能.工作流程.变更成本.以及与客户的沟通和交易带来负面影响. 在本文中,我就是要对混合云计算开发和应用程序环境的某些错误认识进行澄清,并针对如何为混合云计算应用程序选择合适的供应商给出一些标准的定义. 目前,业界对于混合云计算环境有着很多的定义,但是大多数人都有一个共识,即混合云计算环境至少应包括一个私有云计算和一个公共云

如何选择合适我的云服务器?

如何选择合适的云服务器? 云服务器的配置选择,和网站或应用的类型.访问量.数据量大小.程序质量等因素有关,建议和网站或应用的开发技术人员沟通,选择最适合自己业务场景的配置. 如果没有技术人员可提供建议,不妨参考云服务器厂商提供的配置方案,像1核1GB 1M的入门型适用于个人网站初始阶段:1核 2GB 1M的基础型适合流量适中的网站应用,或简单开发环境.代码存储库等.另外,像阿里云还有专门针对网站.电商.游戏.移动app等不同行业的解决方案供参考. 怎样选择云服务器? 选择云服务器的配置的话就要主