Cloudify源码解读

以下内容由Barak Merimovich 提供,本人仅译与学习。

Cloudify由以下几个工程组成:

CLI —— Cloudify Shell,基于Karaf CLI 框架开发。

USM —— 统一服务管理。在XAP应用服务器内部运行Cloudify recipe的Glue。它是一个Spring应用,读服务recipe并且执行recipe中定义的生命周期步骤。同时,它还运行监控、日志和自定义命令。

cloudify —— 作为Maven parent module。其它所有工程都是该工程的sub-modules。也包括一些常规配置文件,如,ant build、checkstyle configuation等。

dsl —— cloudify domain项目作为此工程的一部分。所有其它工程都依赖此项目。该项目也包含了Groovy DSL,集成以用于读那些groovy service/application/cloud 文件,并通过它来创建所需要的domain object。

esc-commands —— 是对CLI命令的一个补充。特别是引导云/拆卸云命令。

esc —— cloud driver 框架是该工程的一部分,包含内置cloud drivers:jclouds, BYON 和Azure。这个项目还包括无代理安装框架,负责使用ssh / winrm远程安装cloudify新计算节点。

management-space —— 基于“space”的XAP。配置信息可能通过此存到一个高可用的集群,也负责将可能需要存储的信息持久化的磁盘。属性(全局的、应用的、服务的、或是实例的)也存在此。

REST client —— Cloudify REST API。主要是CLI通过使用,虽然其他项目有用。

restful——Cloudify REST API实现,构建为一个)使用Spring web mvc的standward java web应用程序(.war文件)。

感谢 Barak.以下为原文。

CLI - The Cloudify shell, based on the Karaf CLI framework.
USM - The glue that runs a Cloudify recipe inside the XAP application server. It is a spring application that reads the service recipe and executes the lifecycle steps defined there. It also runs the monitoring, logging and custom commands.
cloudify - Maven parent module. All other projects are sub-modules of this one. Also includes some general configuration files, like ant build, checkstyle configuration, etc.
dsl - The cloudify domain objects are all part of this project. All other projects have a dependency on this one. The project also includes the Groovy DSL integration which is responsible for reading a groovy service/application/cloud file and creating the required domain object from it.
esc-commands - Additional commands for the CLI, specifically the bootstrap-cloud/teardown-cloud commands.
esc - The cloud driver framework is part of this project, including the built-in cloud drivers: jclouds, BYON and Azure. This project also includes the agentless installation framework which is responsible for remote installing cloudify on new compute nodes using ssh/winrm.
management-space - A XAP based 'space' where configuration information can be stored in a Highly-Available cluster, also responsible for persisting information to disk if required. Attributes (whether global, application, service or instance) are stored here.
rest-client - Client for the Cloudify REST API. Used mainly by the CLI, though useful for other projects too.
restful - The Cloudify REST API implementation, built as a standward java web application (.war file) using Spring web-mvc.

I hope that helps clear things up.
Barak

你可能感兴趣的:(Cloudify源码解读)