在整合完成后再更改开源云开发工具是很困难的事。开发人员和IT员工必须对使用和支持该工具都感到得心应手,并且做好长期使用的准备。这需要对开源工具进行广泛的研究,以及丰富的评估测试。
云开发平台实现的目标都类似,但仍然需要为企业独特的业务和开发需求选择合适的平台。两种最常见的开源平台即服务(PaaS)工具是Red Hat公司的OpenShift,以及Pivotal软件公司的CloudFroundry。要确定哪一个工具更适合,需要评估三个重要的关键特性:所支持的编程语言、架构以及如何与第三方工具集成。
OpenShift vs.Cloud Foundry:语言支持和功能
企业希望选择一个可以支持当前和未来的语言偏好的开源PaaS工具。OpenShift使用模块的概念,又叫做cartridges,支持Java、PHP、Python、Perl、Node.js,数据库语言则支持MySQL、MongoDB和PostgreSQL。另外,OpenShift还支持诸如Jenkins和Cron这样的工具,和包括Oracle业务流程管理套件以及Red Hat Jboss业务规则管理系统(BRMS)。
与此相比,Cloud Foundry对语言的支持是以buildpack的形式或者是用来编译平台应用程序的脚本。这些buildpack包括Java、Node.js、Ruby、 binary、Go、PHP、Python以及其他。用户还可以选择编写自己的buildpack。
接下来,考虑一个开源PaaS工具里所需要的基本特性和功能。记住,每种工具都有开源和商业的版本,同时还有托管和本地的不同。例如,Red Hat提供OpenShift在线版和OpenShift企业版,后者是托管在用户的数据中心。两者都提供自服务的开发平台,多语言支持、自动化、协作、容器移植性和对不同云基础架构的支持。
Cloud Foundry提供安全性、监控和管理、容器移植性、混合云支持、自动更新的功能,以及数据库、分析器和其他中间件的服务集成。
架构和集成也很重要
开源PaaS产品通常由多个模块或组件构成,因此IT决策人员要核查每个平台的系统架构。例如,Cloud Foundry包括一个路由器、认证服务器、应用生命周期管理器、应用程序执行引擎、服务代理、消息,以及指标和日志的元素。
OpenShift使用的架构同Cloud Foundry大相径庭。它由单个节点组成,以容纳应用程序代码和服务,同时还有一系列的单独代理来管理节点和提供服务。除此之外,OpenShift的架构还包括一个消息系统将节点和代理绑定到一起,并且使用RESTful的API同外部工具整合。
开源开发平台通常需要同其他工具整合来提供全套的功能。例如,Cloud Foundry通常同以下的平台工具集成使用:
•Diego运行环境:提供共享内存,工作负载调度和不同的容器格式。
•Lattice:一个Pivotal工具用来在一个云集群中运行容器化的工作负载。Lattice为Cloud Foundry提供路由,健康度,执行,存储和日志的功能。
•Bosh:一个用于云服务的版本控制,部署和生命周期管理的开源工具。
同样,OpenShift也集成并依赖于几个工具,包括RHC客户端工具,主要用于创建,部署和管理应用,以及使用JBoss Developer Studio创建基于Web的应用。
除了以上提到的开源工具,企业还可以考虑亚马逊Web服务、Google App Engine和微软的Azure提供的公有云开发工具。但是当评估任何开源开发平台时,重要的是对所涉及的组成工具–尤其是那些第三方的产品,要有清醒的认识。