PaaS作为云计算三大服务模式之一,目前业界已有很多解决方案,读者可以参考以下链接作为各PaaS产品比对:
本文主要对Cloudify进行介绍,大部分内容均为官网译文,建议读者直接细读原文:
传统应用向云计算迁移的主要动力有以下三点:
![]() | 按需可用性和可扩展性 |
![]() | 快速部署和敏捷 |
![]() | 降低成本 |
而获得这些益处不能强迫您改变你的应用程序或者框架协议,也不应使得您失去配置或调整应用程序或运行环境的能力。然而,很多现有的云计算解决方案
往往需要你放弃一个或多个以下特性:
- 无需更改代码
-移动云解决方案时,你的主要目标之一是把你的应用程序部署在云中,而无需重写任何代码。这在你的应用程序还没有对云计算弹性设计扩展做好准备时,是由其困难,且具备挑战的。尤其显而易见的难题是如果云端预先打包的镜像不提供您的应用程序所依赖的服务的确切版本,或者根本就没法提供您的应用程序所需要的自定义运行环境。 - 无锁定
-另一个重要目标是考虑改变的云服务提供商时,尤其更加需要具备灵活性。然而,如果你自定义您的应用程序绑定在一个特定的云,这就使得它难以移动到其他新兴云平台解决方案供应商,您自定义的应用与特定云的绑定将使得迁移变得格外复杂。 - “完全控制”
-当然,部署在云中的应用,你需要完全控制它的运行、配置、监控、升级、资源控制等,根据您的所需全面掌控,而不是限制于某些云供应商所提供的有限受制环境。
Cloudify简介
那么Cloudify是什么呢?简而言之,是介于您的应用与所选择的IaaS云之间,开源的企业级PaaS云解决方案,主要特性如下:
![]() | Any App,Any Stack |
![]() | Any Cloud |
![]() | 完全控制 |
Cloudify运行机制
普通的开发部署运维工具只是简单的协助安装应用,Cloudify提供了一套完整的机制管理应用整个生命周期。基于一套经过论证的商用技术架构(目标使命是向可实现高性能灵活应用扩展的GigaSpace XAP发起挑战)。Cloudify使用Recipe文件描述一个应用,以及服务和它的相互依存关系,定义如何监控,自我修复,并扩展其服务和其他资源。因此,使得您的应用程序的部署和管理,成为一个简单的过程:
- 准备部署
- 启动云设施,并描述你的机器在云中的驱动程序
- 准备你所依赖的服务所有安装程序
- 在Recipe文件中描述应用的生命周期及所依赖的服务
- 部署服务和应用
- 在云设施中启动驱动程序相关的服务器
- 自动下载,安装和配置所依存的服务
- 安装您的应用程序
- 配置监测和扩展功能
- 使用Cloudify的web管理控制台或Cloudify的Shell监控和管理的部署
Cloudify特性
| Any App, Any Stack Deploy any middleware stack using a recipe based deployment mechanism | ![]() | Automation of the Entire Lifecycle Deploy, manage, and update your application using a single platform | |
![]() | Automatic Self-Healing Crashed nodes and machines are automatically replaced by new ones, following recipe instructions | ![]() | Any Cloud Support all major cloud and virtualization platforms. Your application is completely decoupled from the cloud | |
![]() | Auto-Scale, Your Way Automatic scaling of your application services based on out-of-the-box or custom metrics. Scale-in or scale-out! | ![]() | Cluster-Aware Monitoring & Performance Management Pluggable monitoring, collects tier and application KPIs | |
![]() | Fully Testable on Your Laptop Easily start, debug & test on your laptop with a fully functional cloud emulator. No VMs, no hassles! |
Cloudify架构
Cloudify实现了一个分层架构,它隐藏实现细节,并提供了应用简单的部署过程中,如下:

这套体系架构基于USA(Universal Service Adapters)实现,并在所有为Cloudify的机器部署。从而根据这些适配器所执行得关键功能,可以让你实现你的目标(无需更改代码,无绑定,以及完全控制)通过简单的Recipe解析完成各项操作(安装,服务初始化,服务监控,...)。基于这些与服务无关的组件(如Tomcat, MySQL, Cassandra, JBoss, Apache with mod_php, …)使得这些适配器可以完成各项配置集成,只要Recipe描述定义恰当,他们可以适用于任何场景。
Cloudify Recipe是简单的Groovy文件描述应用程序的整个生命周期(安装,启动,策划和监控您的应用程序堆栈)执行计划。详细可参考http://blog.sina.com.cn/s/blog_7ea3d46f0101fic4.html
使用这种架构,你可以自定义编写Recipe描述运行您的应用程序所需的所有组件,Cloudify有能力根据Recipe的定义处理所有的细节,从而实现运行环境。