PaaS领域的五大玩家
PaaS选择多多
首先,我想我们恐怕需要给平台即服务(PaaS)下个定义。PaaS环境是云计算服务平台,让开发人员可以构建并管理其Web应用程序,没必要面临基础设施的搭建和维护带来的复杂性。
或者换而言之:PaaS平台可以帮助你专注于代码,而不是管理,那样你可以构建应用程序,无需为IT任务操心,也无需等待数天准备好服务器以编写代码。
为了表明PaaS在实际环境下如何工作,我列出并介绍了本人认为目前市面上的五大PaaS提供商,以及各自的独特优势。
谷歌应用程序引擎(Google App Engine)
Google App Engine是一款平台即服务(PaaS)产品,它让你可以在谷歌的基础设施上构建并运行应用程序。App Engine应用程序易于构建、易于维护,你的流量和数据存储需求发生变化时,还易于扩展。有了App Engine,你就没必要维护服务器。只要上传你的应用程序,它就随时可以使用了。
功能特性:
可以立即在云端创建并运行一个示例应用程序。
提供了用Python、Java、PHP和Go编写的初学者代码(Starter code),重点关注Flask、Django和Bottle等流行的框架。
应用程序在安全的沙盒环境中运行,让App Engine可以在多台服务器之间分配请求,并灵活扩展,以满足流量需求。
你的应用程序在自己的安全、可靠的环境里面运行,这个环境独立于服务器的硬件、操作系统或物理位置。
Heroku
Heroku提供了抽象的计算环境,名为dynos。这种环境有两种形式:Web dynos和worker dynos,前者响应HTTP请求,后者旨在响应任务请求。Heroku与使用十二因子应用(Twelve Factor App)方法构建的应用程序协同运行时效果最好。还可以使用第三方应用程序,它们作为Heroku平台里面的服务。
功能特性:
一旦你推送了应用程序的源代码,Heroku就会获取你在应用程序中使用的框架和语言所特有的必要依赖项,让源代码准备好执行。
默认情况下,Heroku支持Ruby、Node.js、Python、Java和PHP,但也可以通过使用自定义的构建包(buildpack),支持另一种语言。
Heroku让你可以实现针对特定环境的配置(比如支持服务的登录信息)的管理和源代码的管理相互独立,以提高安全性和移植性。
你可以快速启用应用程序环境的一次性实例,以运行临时命令。
AppFog
AppFog是一种多语言、多框架的PaaS,它是构建多个私有云的一种不错选择。它支持Java、Ruby、PHP、Python、Node、Scala和Erlang,并提供MySQL、PostgreSQL、Redis、RabbitMQ以及第三方附件。AppFog基于开源的Cloud Foundry平台,支持Git、SVN和Mercurial等代码管理系统。
功能特性:
Varnish Cache和操作码缓存运行应用程序,减轻了服务器负载,提升了性能。
不用再配置服务器、防火墙、Apache和安全系统,也不用再安装框架。
与Git、SVN和Mercurial之类的代码管理系统兼容。
可以跨许多地区、数据中心和基础设施运行。
只访问你所需要的服务器,并只为你使用的资源支付费用。
Web应用程序技术包括PHP、Node、Ruby、Python和Java。
可以将任何流行的服务添加到你的应用程序中,包括MySQL、PostgreSQL、Redis和RabbitMQ。
Windows Azure云服务
Azure可以说既是某种基础设施即服务(IaaS),又是某种PaaS,所以有理由认为它其实不属于这份名单。然而,Azure又是被Gartner评为是IaaS和PaaS这两个领域的唯一主要的云平台。托管服务和非托管服务的这个强大组合让你可以以自己喜欢的任何方式,构建、部署和管理应用程序,以获得无可比拟的工作效率。Azure支持任何操作系统、语言、工具和框架,从Windows到Linux,从SQL Server到Oracle,从C#到Java,不一而足。它让Windows和Linux生态系统中的精华部分触手可及,那样你就可以构建能够与每个设备兼容的优秀应用程序和服务。
功能特性:
可以在短短几分钟内配置Windows和Linux虚拟机和应用程序。可以使用Azure中与你在本地使用的同样的虚拟机和管理工具。
构建和部署面向安卓、iOS和Windows的一系列广泛的现代应用程序,它们充分利用了云计算――包括Web、移动、媒体和业务解决方案。可以自动增加或减少资源,以满足任何要求。
Azure提供了托管SQL和NoSQL数据服务,并提供了内置支持,以便从数据获得洞察力。可以充分发挥云端SQL Server的功能,并使用HDInsight来构建Hadoop集群,以便分析数据。
托管用户帐户,与现有的本地目录同步,并且跨Azure、Office 365和数百个流行的软件即服务应用程序(包括Salesforce、DocuSign、Google Apps、Box、Dropbox及更多)获得单点登录功能。
红帽OpenShift
红帽OpenShift基于开源应用程序,提供一系列广泛的语言、数据库和组件。PaaS可高度定制,提供了三种形式:
OpenShift Online(一种基于云的托管服务)。
OpenShift Enterprise(一种在你的数据中心中运行的私有PaaS)。
OpenShift Origin(开源应用程序托管平台)。
OpenShift可以自动化处理诸多系统管理任务,比如虚拟服务器配置、设置和扩展,并支持用于管理代码的Gi代码库。
功能特性:
OpenShift Online
让你可以专注于代码和创新,而不是专注于基础设施的配置和管理,因而缩短了构建和部署应用程序所需的时间。
为你提供了种类多样的编程语言、框架和运行时环境,包括Java EE6及JBoss EAP。
充分利用开源平台和基于标准的组件,确保应用程序可移植,并消除了厂商锁定现象。
集成的开发工具和直观的界面让你能够迅速上手。没有新的编程模型,没有应用程序变动,也没有云锁定。
OpenShift Enterprise
这是一种本地的私有平台即服务(PaaS)解决方案,让你可以更快速地交付应用程序,并满足贵企业不断增长的应用程序需求。借助红帽公司屡获殊荣的私有平台即服务:OpenShift Enterprise,你可以改进开发人员的工作效率,提升运营效率,并提高硬件使用率。
功能特性:
Web控制台、命令行或集成开发环境(IDE)。
Java(EE6)、Ruby、PHP、Python和Perl。
公共云、私有云或混合云。
需要时,可实现应用程序自动扩展。
OpenShift Origin
功能特性:
构建自己的PaaS
支持众多语言运行时环境和数据层,包括Java EE6、Ruby、PHP、Python、Perl、MongoDB、MySQL和PostgreSQL。
值得注意的其他云平台
我觉得写一篇云计算方面的文章不能不提到AWS。与Azure一样,AWS可能也被归类为既是IaaS,又是PaaS。但是由于亚马逊的服务范围已大大拓宽,远远超出了PaaS的范畴,我决定本文中不提到它。
我可以为大家推荐的其他服务包括Engine Yard和Caspio。
Engine Yard在AWS上运行其平台,所以其PaaS价值更多地体现在编排和管理上,而不是体现在提供软件组件上。
Caspio与其他PaaS提供商有点不一样,原因在于它并不提供一个功能完备的软件开发环境,而是致力于将类似数据库的桌面功能引入到云端。Caspio是为构建基本数据库,提供数据录入表单和报表生成而设计的。