• Cloudify基本介绍


    介绍

    Cloudify 是开源的云编排框架,管理应用的整个生命周期,主要功能包括:

    • 应用编排:blueprint,部署和管理
    • 应用维护:工作流,事件和日志管理
    • 可插拔:使用插件垒起来的
    • 标准:基于TOSCA的DSL(领域描述语言)
    • 术语

      • blueprint:cloudify 用blueprint 来定义应用,blueprint 是应用的逻辑展示,包括配置脚本、和其他资源的关联等应用需要的一切;
      • workflow:cloudify 用 workflow 来提供和管理应用,workflow 用来定义对应用执行动作的流程,默认为 install;
      • plugin:cloudify 用 plugin 实现应用的部署,比如 “home-grown script-plugin” 是执行一堆脚本来部署 web server,对应不同的blueprint,需要安装相应的plugin,安装方式”cfy local install-plugins -p BLUEPRINT_PATH”;
      • model:保存应用的整个结构
      • deployment:blueprint 的实例,model 的一部分
      • node:blueprint 中定义的每个逻辑实体,包含多个node实例(比如multiple virtual machines),对应 blueprint 中的 “node_templates”
      • Cloudify Manager:包括开源栈的环境,用户可以 
        • 利用其不同的插件(例如Docker,脚本,Chef和Puppet插件)来管理应用程序的主机
        • 维护 blueprints 目录
        • 创建blueprint的多个部署,并安装
        • 应用的恢复、扩展和其他定制workflow
        • 并发多个workflow
        • 使用其Web UI查看指标、搜索日志、查看应用程序的拓扑结构和执行的不同任务
        • 通过认证和授权插件为应用管理提供安全环境
        • 保留指标和事件的历史
        • 管理运行应用程序的主机上的代理

    Cloudify Manager 架构

    包括三部分: 
    * Manager:集中控制中心 
    * Agents:各个节点的代理,负责执行具体的工作 
    * Web UI:对外展示



    Cloudify核心组件

    Cloudify的技术栈:

    Nginx:HTTP和 反向代理 服务器,接收来自GUI界面的请求,并转发给后端的RestAPI(Swagger)。

    Elasticsearch:Blueprint、instance、metrics、log、events的全文检索。

    Logstash:日志进行收集、分析。

    RabbitMQ:metrics、events、task的异步执行。

    Riemann:metrics stream processor(基于Java),一个规则引擎,可以基于metrics进行内存级的过滤、处理。

    InfluxDB:分布式时序数据库InfluxDB,用于存储metrics。

    Grafana:仪表盘图形化展示组件,用于展示influxDB的数据。

    Flask:a microframework for Python,整合Swagger提供Restful API。

    Gunicorn:Python WSGI UNIX的HTTP服务器。

    Celery:Python Distributed Task engine,通过RabbitMQ实现异步分布式任务处理,用于实现Cloudify的工作流。

    Fabric: SSH Library。

    Diamond:Python监控组件,提供Monitoring Agent。

    ===========================================================================================

    • Nginx:REST 服务和UI 的代理;文件服务器(保存一些资源)
    • Gunicorn and Flask:Gunicorn为WSGI HTTP服务,Flask为web框架
    • Elasticsearch:保存应用的models,存储日志和事件
    • Logstash:日志收集,并push到Elasticsearch保存
    • RabbitMQ:消息中间件,应用之间通信使用
    • Riemann:基于策略的事件流处理器
    • Celery:分布式的任务队列
    • InfluxDB and Grafana:InfluxDB 存储监控到metrics,Grafana是InfluxDB的图形dashboard

    关键特征

     

    Any App, Any Stack

    任何应用程序,任何堆栈

    使用配方为基础机制, 部署任何中间件堆栈

    Automatic Self-Healing

    自动自我修复

    跟据配方定义, 宕机系统或机器能自动被新的取代

    Auto-Scale, Your Way

    自动伸缩

    根据框或自定的指标, 自动伸缩应用程序

    Any Cloud

    任何云

    支持所有主要的云计算和虚拟平台

    Automation of the Entire Life-Cycle

    整个生命周期的自动化

    使用一个单一的平台来部署, 管理和更新应用程序

    Cluster-Aware Monitoring & Management

    群集感知的监控管理

    可插拔的监控, 自定义的警报, 和应用程序感知的监视控制台

    Fully Testable on Your Laptop

    在笔记本上就可以提供全套功能的云模拟环境:简单的开始,调试,测试。

     

    l        版本功能

           虽然cloudify提供开源的是社区版本,一些高级功能(我们很想拥有的)并不提供,但这不妨碍我对cloudify敬意。除了CF,开源社区有了更多的选择,而且提供了新的思路和方式。CF也有2种版本,CF只是vmware的开源版本,vwmare也有商业版本。

     

    功能

    社区版功能

    商业版本(技术层面)

    Paas基础能力

    任何语言任何技术栈

    另外:大数据服务:Cassandra,MongoDB,

    应用程序容器:Tomcat, Jboss,weblogic

    部署结构

    支持复合/多层结构的应用部署

    同左

    部署模式

    连续部署支持

    同左

    Console控制台

    交互式shell

    负载均衡能力

    动态负载均衡 / 动态HTTP负载均衡

    高可用

    高度可用的云控制器

    同左

    自我管理

    自动自我修复

    同左

    监控

    拓扑感知的监控和管理

    同左

    节点个数

    无限制

    同左

    Cloud驱动

    Amazon,Rackspace,Azure

    还支持:OpenStack,vSphere,CloudStack

    接口

    Open cloud driver interface

    同左

    Api

    Rich Management API

    同左

    源代码

    社区版源代码和编译后的文件

    不提供

    4.5.2            总体架构

           Cloudify是基于java来实现的,在它的设计思想中,并没有一个paas平台的边界,而是把各种服务器理解为一个个的网格,然后有管理节点分别去关联计算节点,还是典型的C/S模式,这和它的设计它之前的XAP的设计理念一脉相承。

           这样的方式使得cloudify总工程很轻薄,但也具有相当的能力,抛去了硕大的PaaS支架的躯体,保留了paas最核心的本质。这种架构和之前的CF大相径庭,但这也是一种不错的思路,因为把这块撇给了DSL来定义,用人工定义的方式解决了服务和应用的定位和绑定功能,底层还是依赖iaas提供的对vm的控制能力,并把整体paas的管理功能封装在当前管理节点和与之相关的计算节点的管理。Cloudify抛弃了外壳,简化了架构,强化了DSL,终于换来了它轻盈的身姿。


    正因为当初对未来做了太多的憧憬,所以对现在的自己尤其失望。生命中曾经有过的所有灿烂,终究都需要用寂寞来偿还。
  • 相关阅读:
    Visual Studio 2008 每日提示(十一)
    Visual Studio 2008 每日提示(十二)
    13 个应该记住的最不寻常的搜索引擎
    Web1.0及WEB2.0的比较
    Comparing Properties to Methods
    1
    Struct Constructor Restrictions
    简单的动态下拉菜单
    权限设计(转)
    conceptpolymorphism
  • 原文地址:https://www.cnblogs.com/candlia/p/11920148.html
Copyright © 2020-2023  润新知