关闭

Apache Stratos探究:核心概念-Cartridge

标签: 云计算
479人阅读 评论(0) 收藏 举报
分类:
   

    Cartridge,从字面翻译来说:弹壳,磁带盒。感性的认识我想就是,其中各种运行环境对于Apache Stratos来说,就像是一个 磁带盒 一样,而Apache Stratos就是磁带机一样。可以看下面这篇文章来增加对于cartridge的理解。
     Cartridge是在IaaS之上的一种虚拟机(VM),运行其上的软件与Stratos PaaS进行交互。Stratos为在OpenStack和Amazon EC2上开发的PHP,MySQL、Tomcat程序提供了开箱即用的cartridges。更进一步的,Stratos支持 插件式的cartridge,包括:数据、负载均衡器、框架和应用程序。根据不同的操作系统和IaaS,会有不同类型的cartridge,因此针对具体的操作系统和IaaS,开发者需要新建一个定制化的cartridge。全部的cartridge都会为云应用提供一个安全的、系统级别的隔离环境。
      Cartridges可以以两种模式运行:single tenant和multi-tenant。(tenant:租户,一组用户,它们属于一个组织,对某个云上的软件实例拥有相同的访问权限)
Single tenant cartridge概念
   
     
      记住,上图中的VM其实就是 cartridge。
      当一个以single tenant 模式运行的应用(拥有一个或者多个以single tenant模式运行的cartridge)部署之后,其上的tenant将会在应用上自动完成注册,然后一个个独立的cartridge实例将会派生出来single tenant模式的cartridge和application提供了tenant一个进程级别的隔离,以及事例级别的专用租赁权。single tenant模式运行的cartridge上的tenant可以映射到一个或者多个的cartridge实例。
Multi-tenant cartridge概念
    

   一个multiple-tenant应用包括一个或者多个multiple-tenant cartridge(multiple-tenant cartridge允许多个tenant共享一个cartridge,即VM)。尽管tenant共享一个cartridge(VM),tenant中各个用户的数据流量安全的隔离开的。与single tenant模式的cartridge不同,用户需要自己完成注册才能使用应用。
    Cartridge的创建有两种模式, fully configured cartridge和generic cartridge
Generic cartridge概念
   
   PA: puppet agent
   OS:operating system
   是指这样的cartridge,上面的所有软件只有在运行时才会安装,也只有基本的操作系统镜像和预装好的Puppet Agent。
创建一个generice cartridge 的过程根据不同的IaaS而有所不同。
Generic cartridge的工作方式
   当一个tenant向一个拥有一个或者多个generic cartridge的应用注册的时候,Cloud Controller会发送一个payload给IaaS,然后接着IaaS会基于generic carriages的数据快照(snapshot)启动一个catridge的实例,该cartridge对应于已经部署的应用。当cartridge 实例启动的时候,cartridge的启动脚本(比如 init.sh)将会被自动执行,接着启动Puppet Agent,Puppet Agent会与Puppet Master进行通信,并且安装好Cartridge Agent和所有必需的软件。此后,Carriage Agent将会与Stratos交互,让其执行全部需要的操作。

Fully configured cartridge概念
  
   PA: puppet agent
   OS:operating system 
   CA:Cartridge Agent
     一个fully configured cartridge,也称为pre-configured cartridge,是这样的一个cartridge,在其上面的软件和配置都已经预先定义好了。与generic cartridge不同,它不单单拥有OS镜像,PA,还有CA,Server Apps,Dependent App,若在cartridge和Puppet Master中存在软件冲突,Puppet Agent会与Puppet Master进行通信以获取最新的软件。
Fully configured cartridge工作方式
     当一个tenant向一个拥有一个或者多个pre-configured cartridge的应用注册的时候,Cloud Controller会发送一个payload给IaaS.然后接着IaaS会基于pre-configured carriages的数据快照(snapshot)启动一个catridge的实例,该cartridge对应于已经部署的应用。其实基本上与generic cartridge的工作方式差不多。

Generic cartridge和Fully configured cartridge两者的比较
     两者都有各自的优点和缺点,DevOps需要根据企业的需求而选择合适的cartridge。因为pre-configured cartridge上面的软件和配置都已经预定义好了,相对于generice cartridge,DevOps可以以更快的速度派生pre-configured cartridge。而因为generic cartridge没有特定的程序和配置,DevOps可以利用相同的cartridge派生出各种类型的cartridge实例,而不是利用不同的cartridge镜像来创建不同的cartridge类型。
Cartridge的部署
     刚开始,为了添加一个cartridge,DevOps利用一个cartridge.json文件定义该cartridge,之后通过CLI,Web UI或者REST API等交互方式将该文件发送给Startos Manager。此后,Stratos Manager负责将cartridge定义文件发送给Cloud Controller(CC)。CC将会基于cartridge镜像ID进行一轮认证过程(比如,在EC2上,是AMI这样的ID号,是Amazon Machine Image的缩写)。如果cartridge已经存在。Cloud Controller将会删除现存的cartridge,然后利用已经修改过的配置文件来添加一个新的cartridge。如果cartridge并不存在,Cloud Controller将会执行添加cartridge的工作。Cloud Controller将cartridge的定义文件装入到内存中的数据结构中。此后,Cloud Controller利用service定义文件更新Topology,然后将Topology事件发送给Message Broker(MB)。



  
     


    
      
         
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:176874次
    • 积分:2717
    • 等级:
    • 排名:第13825名
    • 原创:94篇
    • 转载:86篇
    • 译文:1篇
    • 评论:15条
    最新评论