随着大众对云计算日益增加的需求,不少公司也创建了云计算开发平台,从多种角度、多形式的进行云技术的开发。这是开发者打造云战略的一个舞台,他们提供了云的部署及管理应用所需的基于云的开发和应用缩放或者是基础设施的管理,或是提供一个开源软件和硬件向结合的应用程序开发平台。前端
各类云平台(cloud platforms)的出现无疑是转变云计算技术的重要环节之一。顾名思义,这种平台容许开发者们或是将写好的程序放在“云”里运行,或是使用“云”里提供的服务,或两者皆是。至于这种平台的名称,如今咱们能够听到不止一种称呼,好比平台即服务(platform as a service,PaaS)。像PaaS这种支持应用的方式有着巨大的潜力,本文盘点了国内外主流公司的云计算PaaS技术,以提供参考。mysql
微软Windows Azureweb
Windows Azure是专为在微软建设的数据中心管理全部服务器,网络以及存储资源所开发的一种特殊版本Windows Server操做系统,它具备针对数据中心架构的自我管理(autonomous)机能,能够自动监控划分在数据中心数个不一样的分区(微软将这些分区称为Fault Domain)的全部服务器与存储资源,自动更新补丁,自动运行虚拟机部署与镜像备份(Snapshot Backup)等能力,Windows Azure被安装在数据中心的全部服务器中,而且定时和中控软件:Windows Azure Fabric Controller进行沟通,接收指令以及回传运行状态数据等等,系统管理人员只要经过Windows Azure Fabric Controller就可以掌握全部服务器的运行状态,Fabric Controller自己是融合了不少微软系统管理技术的总成,包含对虚拟机的管理(System Center Virtual Machine Manager),对做业环境的管理(System Center Operation Manager),以及对软件部署的管理(System Center Configuration Manager)等,在Fabric Controller中被发挥得淋漓尽致,如此才可以达成经过Fabric Controller来管理在数据中心中全部服务器的能力。sql
Windows Azure环境除了各式不一样的虚拟机外,它也为应用程序打造了分散式的巨量存储环境(Distributed Mass Storage),也就是Windows Azure Storage Services,应用程序能够根据不一样的存储需求来选择要使用哪种或哪几种存储的方式,以保存应用程序的数据,而微软也尽量的提供应用程序的兼容性工具或接口,以下降应用程序移转到Windows Azure上的负担。数据库
Windows Azure服务平台如今已经包含以下功能:网站、虚拟机、云服务、移动应用服务、大数据支持以及媒体功能的支持。编程
编辑总结:Azure服务平台的设计目标是用来帮开发者更容易地建立web和互联设备的应用程序。它提供了最大限度的灵活性、选择和使用现有技术链接用户和客户的控制。其优势是:利于开发者过渡到云计算;可快速得到结果;想象并建立新的用户体验;基于标准的兼容性。后端
Cloud Foundry浏览器
Cloud Foundry是由相对独立的多个模块构成的分布式系统,每一个模块单独存在和运行,各模块之间经过消息机制进行通讯。Cloud Foundry各模块自己是基于Ruby语言开发的,每一个部分能够认为拿来便可运行,不存在编译等过程。缓存
Cloud Foundry云平台是彻底模块化的分布式系统,各个模块之间是相互独立的,经过消息总线进行相互链接和通讯,这种结构不只使系统各模块之间的耦合度下降,并且使系统功能容易扩充。此外,开发人员能够经过VMC命令行工具或STS插件方便的部署应用程序到Cloud Foundry云平台上,最终用户能够经过浏览器访问运行在Cloud Foundry云平台上的应用。全部的访问请求都经过Router进行转发,分别由云控制器Cloud Controller和应用运行代理DEA模块进行请求响应,应用生命周期管理Health Manager模块负责监控和管理整个应用在云平台上的正常运行,云平台的各类应用服务由Services模块提供,能够灵活扩展。安全
Cloud Foundry云平台主要有Router、Cloud Controller、Health Manager、DEA、NFS、NATS、Cloud Controller Database以及Service等模块组成。这些模块协同合做,经过特定的消息传输机制和API接口进行通讯,就可使整个云平台正常运行。因为在集群环境下每一个模块都有多个部署节点,从而保证了云平台的可靠性和弹性动态扩展的需求,使得应用程序能够稳定可靠的运行在Cloud Foundry云平台上。
编辑总结:Cloud Foundry为开发者构建了具备足够选择性的PaaS云平台,它同时支持多种开发框架、编程语言、应用服务以及多种云部署环境的灵活选择。其优势是:支持各类框架的灵活选择;增长了在PaaS平台上部署应用的灵活性;能够灵活的部署多种云环境中。
Red Hat OpenShift
红帽OpenShift经过为开发人员提供在语言、框架和云上的更多的选择,使开发人员能够构建、测试、运行和管理他们的应用,从而从新定义了 PaaS市场。以红帽全面的JBoss专业知识为基础,OpenShift凭借创新的特性(包括CDI)领导PaaS市场,并支持Java EE 6,从而将PaaS的能力扩展到更丰富和更苛刻的应用。创建在红帽开源领导地位基础上的OpenShift旨在终结PaaS的厂商锁定,使用户能够选择自 己应用运行在哪一个云提供商的云中。OpenShift将做为在线服务来提供。
OpenShift独一无二的优点是它为PaaS带来行业领先的红帽和JBoss的生态环境,使开发人员能够利用业界最普遍的中间件服务。例如,OpenShift支持MongoDB和其它得到红帽企业 Linux认证的服务。因为支持普遍的框架和语言,包括Java、PHP、Python和Ruby,红帽OpenShift为云计算的开发人员提供更全面 的功能集合。
除了设计知足新的云开发人员须要的服务外,OpenShift也是提供红帽企业级JBoss服务(如交易、业务规则、交易与消息)的第一个公共 PaaS,从而为企业开发人员提供一条升级到云的方便途径。因为以红帽在操做系统、虚拟化和JBoss 企业中间件的经验和生态环境为基础,OpenShift能够唯一地知足新的云开发人员和企业的须要。
编辑总结:红帽OpenShift提供比任何PaaS更多的灵活性,它支持用于Java、Python、PHP、Perl和Ruby的更多的开发框架,包括 Spring、Seam、Weld、CDI、Rails、Rack、Symfony、Zend Framework、Twisted、Django和Java E。其优势是:开源带来的不只是免费,还有自由;支持Java,PHP,Python,Perl,Ruby五种编程语言和对应的web框架;OpenShift Express为用户提供的服务并不只限于上述的web框架自己,还提供了丰富的接口供用户安装所需的库、定制本身须要的web框架。
Google App Engine
Google App Engine也就是GAE,是Google推出的一款网络运用程序,也是个免费虚拟主机空间,其实这比通常虚拟主机强悍的多,你能够利用Google App Engine工具来开发网站或制做网络应用程序,Google会在本身的庞大服务器集群上为你提供空间、带宽、资源等。
Google App Engine对全球开发者免费开放使用,你能够充分利用Google的提供的免费空间、免费数据库、免费二级域名等来展现你开发的应用程序,提供给全球的用户下载和使用。
只要你有一个Google帐号就能够在Google App Engine上注册和开通一个免费帐号,免费帐号容许你建立10个应用,每个应用提供1GB的容量,月流量是60GB(传出带宽是1GB/天,传入带宽1GB/天)。
简而言之,Google App Engine容许你本地使用Google基础设施构建Web应用,待其完工以后再将其部署到Google基础设施之上。
编辑总结:经过 Google App Engine,即便在重载和数据量极大的状况下,也能够轻松构建能安全运行的应用程序。其优势是:动态网络服务,提供对经常使用网络技术的彻底支持;持久存储有查询、分类和事务;自动扩展和载荷平衡;用于对用户进行身份验证和使用 Google 账户发送电子邮件的 API;一种功能完整的本地开发环境,能够在您的计算机上模拟 Google App Engine。
百度Baidu App Engine
百度应用开放平台是以用户需求为导向,以“框计算”创新技术和全开放机制为基础,为广大应用开发者及运营商提供的开放式应用分享暨合做的技术对接通道。以此,不只为用户实现了“即搜即用、即搜即得”的全新搜索体验,也为平台合做者提供了展示自身应用的便捷接口。目前,百度应用开放平台已正式对外开放,包括游戏、视频、音乐、阅读、工具、生活等各种WebApp应用都可申请合做。
百度应用开放平台的推出,源于用户的搜索需求正呈现出新的发展趋势——分析百度的搜索关键词,咱们发现,网民与应用相关的搜索词数量正不断攀升,目前已经占到总搜索数量的30%。所以,推出应用开放平台,推进更多优质的应用资源与用户需求直接对接,是大势所趋,也是百度对“让人们更便捷地获取信息,找到所求”理念、不断提高用户搜索体验的最好诠释。
在开通BAE权限以后,开发者就可使用开发平台了。在BAE开发平台上,开发者能够建立应用程序、建立程序的版本、进行版本管理、利用平台提供的服务来开发程序、查看程序的各类信息以及删除程序。
目前BAE提供了两种方式来建立一个版本:打包对接方式和建立新版本。
对每一个程序版本,能够进行以下的操做:生效版本,提供版本上线功能;对版本进行加解锁,有效防止误操做;SVN代码管理,经过svn方式对代码进行管理;配置,可对配置文件进行可视化修改;在线编辑,可对已经提交到平台上的版本进行在线编辑,方便在线修改;若是版本已无用,则可删除。
此外为了便于开发者进行程序开发,平台提供了以下服务:mysql服务、 memcache服务、cron服务、fechurl服务和云存储服务。
编辑总结:经过应用开放平台,进一步促进产业之间的合做与创新,实现产业双赢,引领互联网产业的健康、蓬勃发展。其优势是:搜索引擎做为网民上网的主要入口,其平台面向全部网民敞开,用户能够经过搜索引擎无门槛地接入和使用第三方应用;百度天天响应数十亿次的搜索请求,让应用开发者与海量需求实现有效对接;经过关键字实现需求对接,开发者更精准地找到本身想要的用户,用户也更精准地找到最优应用资源入口;经过百度应用开放平台,更多优质的第三方应用和内容资源,将能够直接与用户需求无缝对接;现阶段百度应用开放平台上的应用,直接经过浏览器运行。将来会有涵盖pc、无线平台的应用,而且既有浏览器应用,也有独立应用。
阿里Ali Cloud Engine
ACE(Aliyun Cloud Engine)是一个基于云计算基础架构的网络应用程序托管环境,帮助应用开发者简化网络应用程序的构建和维护,并可根据应用访问量和数据存储的增加进行扩展。ACE支持PHP,NODE.JS语言编写的应用程序;支持在线建立MYSQL远程数据库应用。
云服务引擎(Aliyun Cloud Engine,ACE)是一套基于弹性计算服务的Web应用托管环境,能够大大简化开发和部署应用的复杂度。
ACE为应用提供负载均衡、弹性伸缩、故障恢复、安全沙箱的支持,同时集成了Session、缓存、文件存储、定时任务等分布式服务,让PHP、NodeJS等流行的Web开发语言能够更加便捷地使用云计算服务。
编辑总结:告别运维麻烦,配置和资源随应用增加轻松扩展。其优势是:ACE目前支持PHP运行环境,NodeJS运行环境,后续会支持更多的开发语言;提供分布式session,分布式memcache,开放存储,消息队列,计划任务等多种服务,让开发者能够更多的关注在业务开发上,下降开发者的开发成本,其总体架构的高可靠性;自动弹性伸缩,无需人工干预运维,根据实际使用量计费;系统自带常见应用模板。开发人员能够将本身的应用作成模板,发布其应用给其余人使用;站长能够从模板库中在线建立应用,便可进行本身的网站运营;兼容原生API,调试信息输出,能够方便的进行应用管理和配置。
新浪Sina App Engine
SAE从架构上采用分层设计,从上往下分别为反向代理层、路由逻辑层、Web计算服务池。而从Web计算服务层延伸出SAE附属的分布式计算型服务和分布式存储型服务,具体又分红同步计算型服务、异步计算型服务、持久化存储服务、非持久化存储服务。
7层反向代理层:HTTP反向代理,在最外层,负责响应用户的HTTP请求,分析请求,并转发到后端的Web服务池上,并提供负载均衡、健康检查等功能。
服务路由层:逻辑层,负责根据请求的惟一标识,快速的映射(O(1)时间复杂度)到相应的Web服务池,并映射到相应的硬件路径。若是发现映射关系不存在或者错误,则给出相应的错误提示。该层对用户隐藏了不少具体地址信息,使开发者无需关心服务的内部实际分配状况。
Web服务池:由一些不一样特性的Web服务池组成。每一个Web服务池实际是由一组Apache(PHP)组成的,这些池按照不一样的SLA提供不一样级别的服务。每一个Web服务进程实际处理用户的HTTP请求,进程运行在HTTP服务沙盒内,同时还内嵌一样运行在SAE沙盒内的PHP解析引擎。用户的代码最终经过接口调用各类服务。
日志和统计中心:负责对用户所使用的全部服务进行统计和资源计费,并设定的分钟配额,来断定是否有非正常的使用。分钟配额描述了资源消耗的速度,当资源消耗的速度到达一个预警阈值时,SAE通知系统会提早向用户发出一个警告,提醒用户应用在某个服务上的使用可能存在问题,须要介入关注或处理,配额系统是SAE用来保证整个平台稳定的措施之一;日志中心负责将用户全部服务的日志汇总并备份,并提供检索查询服务。
各类分布式服务:SAE提供几乎能够覆盖Web应用开发全部方面的多种服务,用户能够经过StdLib(能够理解为SAE PHP版的STL)很方便的调用它们。
编辑总结:SAE的基本目标用户有两种,一种是Web开发者,另外一种是普通互联网上网人群。其优势是:硬件成本更低,无需预先购买设备,承担更大的投入风险;开发成本更低,SAE提供许多服务供开发者使用,开发者无需重复开发,包括队列、数据库、缓存、定时、验证码、计数器,几乎覆盖了Web开发的全部领域;运维成本更低,在SAE上的应用无需关心硬件维护、服务监控、数据容灾等操做,SAE会经过其高可靠的架构和方便的监控页面为用户将运维成本降到最低扩展性更强;更加安全可靠,SAE自动提供SQL语句性能分析、前端防攻击、代码检查等功能,在SAE上的全部应用均为多机房容灾部署,比传统的部署模式更加安全可靠,而且SAE提供服务的SLA来实现对用户服务质量的承诺。
云计算开发平台提供商对比
云开发平台提供商优劣势对比
结语:
小编认为,各大的云开发平台的提供商都有本身的特色,各平台的功能和涵盖的领域以及面对的应用对象都有所不一样。可是企业和我的在选择的时候不但要看重技术和实力,更要看重本身的使用习惯、使用的易用性,这是很重要的。不管是国外的提供商想开拓中国市场,仍是国内的厂商望发展海外平台,云计算的路都还很长,云开发平台的技术研发也还有不少还没有解决的困难,相信经过这些云开发商的努力,会为整个IT行业作出重要贡献。