开源平台即服务(PaaS)让广大开发人员和用户可以贡献及共享源代码和扩展件。有的PaaS由厂商驱动,有的则基于标准。
厂商驱动的开源PaaS让广大开发人员和用户被某家厂商牢牢锁定。说到将应用程序从厂商驱动的开源平台传送到另一个平台,开发人员在这方面的控制权很有限。
基于标准的开放平台则与厂商无关,比较灵活;它旨在对生命周期管理的自动化过程的编排实现标准化。开发人员可以跨云传送应用程序。
下面不妨看一下五种流行的开源平台。请注意:并非所有这些平台都与OpenStack协同运行。
厂商驱动的开源PaaS
Cloud Foundry(原先由VMware开发)从广大Ruby开发人员和用户处获得源代码。这个开源PaaS允许人们将信息系统部署到OpenStack、亚马逊网络服务(AWS)、vSphere、vCloud Air和vCloud Director。Cloud Foundry提供的主机托管服务包括:MySQL(可用于开发SaaS应用程序)、 MongoDB(一种NoSQL数据库)和RabbitMQ(以异步方式连接应用程序的消息代理)。为了简化任务,PaaS开发人员获得诸多工具,比如命令行工具、Eclipse插件、构建整合工具以及应用程序扩展工具。与Cloud Foundry竞争的平台还有AppScale、Heroku、OpenShift和谷歌应用引擎(Google App Engine)。注意:2014年12月9日,Cloud Foundry基金会宣布,它将作为一个Linux基金会协作项目来加以管理。
OpenShift(红帽)在私有云(OpenShift Enterprise)、公有云(OpenShift Online)和上游社区(通过OpenShift Origin项目)中运行。OpenShift托管运行MySQL和MongoDB;OpenShift支持的其他数据库包括PostgreSQL和微软SQL。这个开源PaaS在红帽企业级Linux上运行,为你提供了一套客户(命令)工具集。你可以使用JavaScript、Ruby、Python、PHP、Perl和Java。OpenShift在OpenStack上运行。
Stackato(ActiveState)是基于Cloud Foundry的PaaS。你可以从Stackato的应用程序商店选择开源项目,而不是贡献源代码。你可以浏览用各种语言和框架编写而成的众多开源项目。为了快速部署,你只要点击某个项目。
如果你很好奇,可以查看某个项目的源代码,看看它是如何构建的。你可以决定是定制项目,还是使用自己的应用程序。
Stackato有三个版本可用:
- Stackato Micro Cloud:假设你想把应用程序部署到桌面虚拟机上,或者在亚马逊EC2沙盒上试一试Micro Cloud。你仅限于4 GB内存、单一节点和基于社区的支持。
- Stackato Cluster:假设你是小型团队的负责人,想构建小型集群,把应用程序部署到自己的基础设施上或公有云上。你仅限于20 GB内存和基于社区的支持。你想要多少个节点,就可以有多少个节点。
- Stackato Enterprise:假设贵企业想把应用程序部署到虚拟机管理程序或基础设施即服务(IaaS)上,同时可充分利用自动扩展的优点。它提供了配置和生产支持,有服务级别协议(SLA)作为保障。
你可以将Stackato与OpenStack、vSphere、CloudStack、XenServer、KVM、HP Cloud Services和AWS结合使用。
2013年6月,Apache Stratos(由WSO2捐献)作为一种开源PaaS捐献给了Apache。它可以与许多应用服务器、数据库、语言、甚至遗留系统协同运行。你可以设置分区来控制IaaS资源。WSO2 App Factory可以帮助你加快PaaS上的生命周期迭代。
这个平台的贡献者包括来自SUSE、思科、思杰、美国宇航局喷气推进实验室(JPL)、Sungard和Engine Yard的开发人员。你可以将Stratos与AWS、OpenStack和vCloud结合使用。
基于标准的开源PaaS
Cloudify(GigaSpaces)基于OASIS TOSCA(云应用程序的拓扑结构和编排规范)的草案版本。这项与厂商无关的标准的技术委员会成立于2012年。标准的发起者包括冠群、华为、IBM、NetApp、红帽和SAP。
这项标准并不依赖任何一家厂商的技术(比如虚拟机管理程序虚拟化)就可以运行开源PaaS;它描述应用程序的拓扑结构是工作流程的基础,工作流程反过来充当策略的基本构建模块。
该标准可以处理开发人员手动执行下列任务时所犯的严重错误:
- 设置监控警报;
- 执行部署策略;
- 收集并分析日志;以及
- 对照SLA中的服务可用性保障,衡量性能。
为了消除人员的干预工作,该标准旨在帮助PaaS开发人员将生命周期实现自动化,包括跨云的部署、扩展、补丁、监控和补救。构建并使用开发人员可以使用的云服务模块库,就能实现自动化。
你可以使用PaaS来测试自动化和编排流程执行起来多顺畅。Cloudify可以在OpenStack、AWS、CloudStack、微软Azure和VMware上实现自动部署。
结束语
如果你想贡献并共享源代码,可以选择一种开源PaaS。务必要看一下它能否与OpenStack或其他IaaS云经济高效地协同运行。