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探究:CLI Tool简单使用手册

pache starts提供CLI(command line interface)工具,用来管理starts上的应用程序。     关于如何下载和配置,可以看下面这篇文章。     http://...
  • zhouhuakang
  • zhouhuakang
  • 2016年03月21日 14:17
  • 557

Windows 下 Apache HTTP Server 安装、配置以及与 Tomcat 的整合(附图)

注:本文欢迎转载,以下为本人亲测,如有疑问请留言,转载请注明:http://blog.csdn.net/wqmain/article/details/8941759 如果您能点开这篇文章,说...
  • wqmain
  • wqmain
  • 2013年05月18日 00:01
  • 33209

pache HTTP Server停止工作 原因分析(一)

PHP Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 36 bytes) in.....
  • Hayley_Liu
  • Hayley_Liu
  • 2016年08月04日 10:31
  • 5376

Apache Maven 的核心概念

了解maven的核心概念,这样才能在使用maven的时候游刃有余。
  • qq_30051139
  • qq_30051139
  • 2016年02月23日 08:49
  • 225

Apache Storm核心概念

Apache Storm从一端读取实时数据的原始流,并将其传递通过一系列小处理单元,并在另一端输出处理/有用的信息。下图描述了Apache Storm的核心概念。现在让我们仔细看看Apache Sto...
  • h8b6Pk7M7r8
  • h8b6Pk7M7r8
  • 2017年12月06日 00:00
  • 1026

Apache Http Server与Tomcat实现负载均衡和集群

一、分布式实现原理                如上图所示,主要通过Apache-Server作为中转服务器,实现多个tomcat服务器之间的分布式处理,用户直接请求Apache-Server,...
  • zheng963
  • zheng963
  • 2015年11月14日 22:47
  • 2147

Apache 搭建git 服务器

原文地址:http://www.jeremyskinner.co.uk/2010/07/31/hosting-a-git-server-under-apache-on-windows/ La...
  • leon90dm
  • leon90dm
  • 2013年01月31日 17:11
  • 3645

apache的server-status如何分析的技术说明

apache的server-status本来是个不错的东西,但是很多时候我认为没有图形化界面的东西其友好性就大打折扣,我还是喜欢方便而又简单的东西。 不少人都会看apache的server-st...
  • ywl570717586
  • ywl570717586
  • 2016年03月24日 11:00
  • 843

制作一个最简单的cartridge

尝试了2天,终于把最简单的如何做一个cartridge做成功了....... 制作过程参考了 https://www.openshift.com/blogs/new-openshift-cartri...
  • yuan19891013
  • yuan19891013
  • 2013年11月27日 20:06
  • 744

Stratos的安装与配置

目录创建OpenStack镜像 配置Puppet Master 运行Stratos Troubleshooting 以下所有软件的OS环境均为Ubuntu14.04 1. 创建OpenStack镜...
  • kaiming1983
  • kaiming1983
  • 2016年08月01日 13:11
  • 239
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Apache Stratos探究:核心概念-Cartridge
举报原因:
原因补充:

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