七大国内外主流云计算开发平台
随着大众对云计算日益增长的需求,很多公司也建立了云计算开发平台,从多种角度、多形式的进行云技术的开发。这是开发者打造云战略的一个舞台,他们提供了云的部署及管理应用所需的基于云的开发和应用缩放或者是基础设施的管理,或是提供一个开源软件和硬件向结合的应用程序开发平台。
各种云平台(cloud platforms)的出现无疑是转变云计算技术的重要环节之一。顾名思义,这种平台允许开发者们或是将写好的程序放在“云”里运行,或是使用“云”里提供的服务,或二者皆是。至于这种平台的名称,现在我们可以听到不止一种称呼,比如平台即服务(platform as a service,PaaS)。像PaaS这种支持应用的方式有着巨大的潜力,本文盘点了国内外主流公司的云计算PaaS技术,以提供参考。
微软Windows Azure
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来管理在数据中心中所有服务器的能力。
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行业做出重要贡献。