Apache Stratos探究:核心概念-Cartridge

原创 2015年11月21日 14:35:03
   

    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)。



  
     


    
      
         
版权声明:本文为博主原创文章,转载请写明出处,谢谢!

相关文章推荐

Apache Stratos探究:Apache Stratos 4.1.x 的架构

上图就是Apache Stratos 4.1.x的架构图。           在Apache Stratos的最下层是IaaS层。在使用虚拟机的场景下,Stratos使用jcloud用来与底层的Ia...

Apache Stratos探究:配置CLI

注意:查看下面内容的时候,需要已经启动apache stratos,可以看下面这篇文章,了解如何在单机的情况下,利用apache stratos的mock iaas功能来运行apache strato...

Mesos实践:基于MZM的PAAS的构建(3):Marathon简介

为分布式微服务框架提供合适的PAAS平台,使用成熟的M(Mesos)Z(Zookeeper)M(Marathon)可以作为选择之一。在本文中将会对Marathon进行简单的介绍。...

Rancher集群化docker管理平台部署、特性及破坏性测试。

http://8941355.blog.51cto.com/8931355/1712683 rancher是一个docker集群化管理平台,相对于mesos和k8s架构,rancher的部署...

Apache Stratos探究:Cartridge Agent的生命周期

上图展示了Cartridge Aagent的生命周期。      从一个已经配置好的镜像中开启一个新的实例。如果实例是基于fully configured cartridge生成的,则该实例中已经安装...

Apache Stratos探究:Pub-Sub 通信模式

Apache Stratos的Communication Bus,包括Message Bus和Real-time Event Bus,都是通过采用Publish-Subscribe(简称pub/sub...

Apache Stratos探究:云分区(Cloud Partitioning)

云分区可以分为三种级别:Provider level, Region level, Zone level 或者 Rack level,这些其实是对应着区域的概念,区域可以分为 region.zone....

Apache Stratos探究:Artifact Distribution Coordinator

artifact,指的是在Apache Stratos中的可部署单元,一个artifact对应一种类型的cartridge。      对于cartridge,可看下面的文章,加深理解     ...

apache stratos 4.1.0的samples

  • 2015年11月24日 14:06
  • 503KB
  • 下载

Apache Maven 的核心概念

了解maven的核心概念,这样才能在使用maven的时候游刃有余。
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Apache Stratos探究:核心概念-Cartridge
举报原因:
原因补充:

(最多只允许输入30个字)