|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
从一个编程语言的普及程度来将,一个好的IDE是至关中要的,而现在的java的IDE虽然已经很好了,但是和.net网页编程比起来还是稍微差一些的,这是个客观事实。java要想普及的更好。DE是必须加以改进的。PaaS(Platform-as-a-Service)是云服务的一种,服务供应商不但供应按需讨取的硬件和操纵体系服务,还供应了使用程序平台息争决计划栈。对开辟者而言,PaaS极年夜水平上削减了IT部署的开支和疾苦,按需为使用程序供应资本,让其更容易伸缩。
JVM、使用服务器和部署包(比方,WAR和EAR)为Java使用程序供应了自然的断绝,同意分歧开辟者在统一套基本举措措施中部署使用程序,因而Java平台非常合适PaaS。可是,已往几年里,年夜多半PaaS产物都环绕着Ruby和Python如许的平台,事先GoogleAppEngine是独一为Java开辟者供应PaaS服务的。侥幸的是,如今的情形已年夜为改良了。
差未几从客岁入手下手,多家贸易服务商进进了JavaPaaS范畴。这一举措很成心义,由于Java开辟者差未几有1000万之多,大概是天下上最年夜的开辟者群体之一。本文中,我们将从开辟者的角度来对照这些服务供应商。出格要申明一下,详细对照以下4个方面:
- 对手艺平台和手艺栈的撑持。
- 对开辟者临盆力和开辟历程的撑持。
- 功能和可伸缩性。
- 代价和其他贸易考量。
文中我们会对照以下JavaPaaS产物(按字母排序)。
- AmazonElasticBeanstalk是Amazon构建于EC2云上的JavaPaaS产物。个中供应了运转于EC2上的受管Tomcat实例,带有负载平衡器,还可按需供应伸缩才能。AmazonElasticBeanstalk集成了AmazonWebServices的其他服务,能会见受管干系型数据库(RDS)、年夜数据存储(SimpleDB)、动静行列、电子邮件和其他服务。
- CloudBees是一家风投的创业公司,成员由JBoss和Sun的前雇员构成,比来在两轮融资中共募得1400万美圆。CloudBees大概是个新名字,不外它在这个范畴中的影响力正在不休扩展,为JavaPaaS带来了多项共同的特征,特别是延续集成——一个完全的云端开辟/部署周期办理。别的,和Heroku一样,它还包括一个第三方插件和服务的市场。
- CloudFoundry是VMware倡议的一个开源产物。VMware软件驱动着假造化数据中央,这是年夜多半PaaS产物的基本。VMware仍是SpringFramework的具有者,它是在企业Java中十分盛行的一个平台栈。CloudFoundry的一个举世无双的特征是它基本无需成为受托管的PaaS,你能够下载其代码,本人托管PaaS!如许一来,它既是一个托管平台,也是一个受托管PaaS服务。
- GoogleAppEngineforJava大概是市情上问世工夫最长(也是最成熟)的JavaPaaS产物。它的方针是供应线性伸缩性,并且不忧虑对Java平台自己做出伟大变更。
- HerokuforJava是PaaS年夜厂Heroku比来才推出的产物,Heroku在Ruby社区颇受接待。
- RedHatOpenShift是RedHat试水PaaS的实行性产物。RedHat的JBossApplicationServer(AS)是最盛行的Java使用服务器之一,OpenShift服务供应了周全的JBossAS撑持。
撑持的手艺平台和手艺栈
JavaPaaS供应商最主要的属性之一就是它所撑持的手艺平台和手艺栈。总而言之,手艺平台是JavaPaaS区分于其他PaaS产物的中央。在Java平台的临时退化中,出现了良多很有合作力的手艺栈。关于JavaPaaS厂商而言,我信任尽量多地撑持分歧手艺栈是非常主要的。
这方面OpenShift和CloudBees对手艺的撑持面最广,从复杂的Servlet容器(通常为Tomcat)到完全的JavaEE6WebProfile(JBossAS7)都有撑持。JavaPaaS前驱,GoogleAppEngine,在尺度撑持方面与厥后者的差异最年夜。GoogleAppEngine不撑持完全的JavaSE平台,因而对良多盛行框架的撑持都很差。它还请求用户利用GoogleAppEngine本人的收集和耐久化API,而不是撑持公然尺度,这让使用程序很难迁徙。相似的,HerokuforJava请求使用程序环绕它本人的Jetty实例做封装,冲破了传统JavaEE使用程序的部署模子。
CloudFoundry项目撑持Tomcat容器,但它的使用程序开辟和部署针对SpringFramework做了大批优化,创立了一个半外置的依附。由于VMware具有SpringFramework,以是CloudFoundry很合适基于Spring的使用程序。别的,它还撑持利用RabbitMQ的动静行列,这是基于AMQP尺度的。但它对其他Java框架(比方JavaEE)的撑持很弱。AmazonBeanstalk
CloudBees
CloudFoundry
GoogleAppEngine
HerokuforJava
OpenShift
Tomcat
是
是
是
否
否
是
JavaSE
是
是
是
否
是
是
JavaEE
否
是
否
否
否
是
撑持尺度Java库
是
是
是
否
是
是
文件体系会见
是
是
是
否
是
是
线程会见
是
是
是
否
是
是
对外收集毗连
是
是
是
受限
是
是
MySQL
RDS
是
是
付费计划
是
是
贸易干系型数据库
RDS
外置
外置
否
外置
外置
BigData撑持
SimpleDB
外置
外置
BigTable
外置
外置
部署时无需特别框架
是
是
否
否
是
是
便利迁徙现有使用
是
是
否
否
否
是
使用可移植性
高
高
中
低
低
高
可用于临盆情况
是
是
Beta阶段
是
Beta阶段
Beta阶段
对开辟者临盆力和开辟历程的撑持
PaaS的关头代价之一,是让使用程序开辟者的生存更复杂,由于它打消了使用程序和资本办理的开支。以是说,对开辟者友爱,有工具集成是我们的一个主要考量点。
在这方面CloudBees无疑是赢家。它不但是一个PaaS运转时情况,仍是一个完全的构建和测试情况。开辟者能够使用Jenkins服务让CloudBees主动并延续地签出、构建、测试并呈报代码库中的代码。这个延续集成历程已被使用于多个年夜型团队,作为他们软件开辟历程的主要环节。可是,构建服务器办理对QA团队而言是一项费时吃力的事情。CloudBees替QA团队承当了这份疾苦,让这一历程对开辟者加倍通明。比来,RedHatOpenShift经由过程撑持Maven和Jekins集成,在这个范畴里渐渐追上CloudBees了。
AmazonBeanstalk、OpenShift和GoogleAppEngine都供应了开辟工具、SDK和IDE插件,与其他市情上的基于Java的工具坚持分歧。
比拟Java开辟者,CloudFoundry和HerokuforJava供应了更合适Ruby开辟者的工具。试用了这些工具后,我嫌疑良多Java开辟者大概要花一些工夫来顺应个中的常规和术语。别的,CloudFoundry今朝还缺少文档,举个例子,它的良多文档仍是视频教程情势的。固然视频教程很简单闪开发者上手,但在部署主要使用或但愿懂得视频场景以外的内容时,这些内容明显缺少深度。只管CloudFoundry平台在比来几年里履历了严重变动,但官方进门指南文档的日期还停止在2007年。今朝已有了更多的文档——好比这篇,但它们不应这么难找。
另外一个主要的成绩,CloudFoundry同意开辟者设置本人的云情况,部署MicroCloud可比仅仅安装一套SDK贫苦多了。这也是一个停滞,让良多开辟者对CloudFoundry望而生畏。AmazonBeanstalk
CloudBees
CloudFoundry
GoogleAppEngine
HerokuforJava
OpenShift
IDE工具
是
是
是
是
否
是
命令行工具
是
是
是
是
是
是
基于Web的把持台
是
是
否
是
否
是
开辟机长进行测试
复杂
复杂
坚苦
坚苦
是
复杂
构件时不过尺度依附
是
是
否
否
否
是
源码把持集成
否
是
是
否
否
部分
集成构建
否
是
否
否
否
是
集成测试
否
是
否
否
否
否
经由过程Web会见日记
否
是
是
是
是
是
第三方开辟者/测试服务
否
是
否
否
否
否
API会见
是
是
否
否
是
否
文档
好
好
差
好
好
好
功能和可伸缩性
PaaS最主要的特征之一是平台主动伸缩的才能,就是基于及时流量需求增添或削减服务器容量。这请求平台供应商在浩瀚服务器之间对哀求做负载平衡,监控各台服务器的负载,合时启动新服务器。
一切PaaS供应商都在必定水平上撑持主动伸缩。但主动扩大远比看上往坚苦。对进门用户而言,JavaEE使用程序必需被设置为会见中央化内部数据库,而不是会见部署在统一台服务器上的数据库。一切PaaS供应商的编程范式和工具都要强迫开辟者遵守这类体例。
更年夜的成绩是HTTP会话。在Java使用服务器上,HTTP会话的会话形态默许是在内存里办理的。要构建能在分歧服务器之间负载平衡的使用程序,开辟者必需利用以下的某个办法:
- 设置负载平衡器撑持“粘性会话”(stickysession),负载平衡器会反省一切流进哀求的会话ID,老是把统一会话的哀求发给不异的服务器。这是最复杂的办法,不外也有本人的成绩:负载平衡器必要完成更多的事情,一朝一夕负载分发会变得不再平衡,并且在负载下落时,很难撤下扩上往的基本举措措施,由于每台服务器都有本人的会话。出于这些缘故原由,很少有PaaS供应商撑持这一办法。
- 为内存中的HTTP会话设置一个共享的缓存。云云一来,时时刻刻一切服务器都能在内存里具有全体HTTP会话。可是,在集群中复制内存会话这项义务既泯灭带宽,又损耗盘算资本。它请求使用程序开辟者设置共享缓存和复制战略。
- 还能够设置使用程序,将一切HTTP会话耐久化到内部干系型数据库中。
上述一切的PaaS平台中,GoogleAppEngine对这一成绩的处置是最好的。它在架构上就将单一服务器的观点笼统了出来,会主动在分歧的服务器上创立数据存储,并默许将HTTP会话保留到数据存储中,这一历程对开辟者是通明的。可是,GoogleAppEngine的成绩是原生的功能太差,一个Web哀求要花1至3秒才干完成一次对数据库的会见。
HerokuforJava的每一个服务器实例都封装了一个自界说的Jetty实例,因而它也供应了跨服务器实例主动共享会话的才能。但是,Heroku其实不供应通明的主动伸缩,你必要察看仪表盘,合时为使用增加资本。
残剩的尺度JavaPaaS产物都强迫请求开辟者在专门的数据库服务器上创立数据表,这也是部署历程的一部分。关于HTTP会话,CloudFoundry在负载平衡器中利用了粘性会话。正如上文会商的那样,这类做法为开辟者带来了便当,也有一些严峻的成绩。其他PaaS产物固然没有明说,但都把会话办理的事情留给了使用程序开辟者。AmazonBeanstalk
CloudBees
CloudFoundry
GoogleAppEngine
HerokuforJava
OpenShift
内建负载平衡器
是
是
是
是
是
是
负载平衡器自界说域名
是
是
否
GoogleApps
是
是
主动伸缩使用服务器
是
是
企图撑持
是
否
是
主动伸缩数据库
否
否
否
是
否
否
用户界说功能尺度
是
是
企图撑持
否
否
是
基于Web的监控仪表盘
是
是
企图撑持
是
是
是
集群HTTP会话
手工
手工
手工
主动
主动
手工
代价及其他贸易考量
对开辟者而言,PaaS产物的代价是非常主要的。年夜多半服务供应商都有收费服务供开辟者试用,这些收费服务对较小的JavaWeb站点来讲就是很好的选择。
可是,正如GoogleAppEngine比来的跌价风云所反应的那样,年夜型Web使用程序利用PaaS的本钱仍是很高的。
另外一个要思索的主要要素是撑持。GoogleAppEngine和AmazonWebServices在撑持方面体现糟。开辟者只能本人在论坛上寻觅谜底。稍小的专注于Java的供应商供应了更好的手艺撑持,在大众论坛上亦是云云。在我看来CloudBees供应的撑持最为杰出,很好地分离了付费成绩单的撑持和撑持职员间的Java专业手艺法门。AmazonBeanstalk
CloudBees
CloudFoundry
GoogleAppEngine
HerokuforJava
OpenShift
是不是有收费服务
是
是
N/A
是
是
收费
低流量进门级Web使用本钱
高
收费
收费
收费
收费
收费
跨云供应商
否
否
企图撑持
否
否
企图撑持
公有云
否
Beta阶段(OpenStack或vSphere)
是
否
否
企图撑持
撑持
论坛
电子邮件和德律风
论坛/Web撑持成绩单
论坛
电子邮件和德律风
论坛
撑持质量
差
好
好
差
一样平常
好
下一步
文中我们会商了JavaPaaS范畴的6个出名厂商,固然,如今另有一些稍小的或不那末着名的供应商,好比:
- Jelastic:它撑持良多使用服务器和数据库的组合,包含MySQL数据库的多个变种和NoSQL数据库。
- WSO2StratosLive:它是构建于WSO2使用服务器上的PaaS产物,WSO2是一款切合JavaEE标准的使用服务器。
- CumuLogic:它供应的Java使用服务PaaS能够运转于良多公有云和私有云办理计划上,包括CloudStack、OpenStack和Eucalyptus。
我们会亲切注重这些小厂商,由于它们很轻松地就可以发展起来应战年夜厂商的市场份额和存眷度。
JavaPaaS在已往的12个月里履历了良多,各类产物仍在疾速开展,这对那些寻觅低价、可伸缩、乃至是收费托管办理计划的Java开辟者来讲是个天年夜的好动静。对JavaEE开辟者而言,我信任CloudBes和OpenShift是今朝市情上最好的产物,思索到OpenShift仍处在Beta阶段,以是CloudBees成了这场竞赛的赢家。假如你乐意实验一下Java专业户之外的选择,HerokuforJava和CloudFoundry(Beta)是老牌GoogleAppEngine的无力合作敌手。
关于作者
<br>MichaelYuan博士是名创业者、作家及Java狂热分子。他在软件工程方面出书了5部图书,宣布了40多篇文章,还向JBoss和Mozilla如许的出名开源软件提交卸码。他比来建立的创业公司是RingfulHealth,努力于利用挪动手艺和展望剖析手艺让病人更好地融进医疗团队并改良医疗效果。RingfulHealth的Java服务器部署在GoogleAppEngineforJava、AmazonEC2和CloudBees上。
检察英文原文:AJavaDeveloper’sGuidetoPaaS
但是一些大型开发或者是保密型比较高的项目都会用java,原因有2点,一:java是开源的,不怕别人留后门,偷我工具,.net网页编程就不一样了,保持微软的一向风格,源代码不公开 |
|