Apache Stratos探究:Artifact Distribution Coordinator

artifact,指的是在Apache Stratos中的可部署单元,一个artifact对应一种类型的cartridge。
     对于cartridge,可看下面的文章,加深理解
     Cartridge,自己的理解就是“磁带盒”,那么对于artifact估计可以理解为“磁带”。 
     而Artifact Distribution Coordinator则是负责分发artifact给cartridge实例。


Deployment synchronization
       Apache Stratos的用户往往会将artifact部署到远端的Git仓库中。已经部署的artifact,必须在各个相关的cartridge中做到与Git仓库的同步。
       刚开始,在整个应用程序的部署时,deployment synchronization这个环节会自动进行。然而,应用程序部署完毕之后,会因为下述的原因,使Git仓库和cartridge两者中的artifact不同
       1.Git仓库中的cartridge的一次性更新
       2.Git仓库中的cartridge的持续更新
       3.一个实例中的cartridge的更新,以及Auto Commit的模式的开启。

Automated artifact update

上图展示了自动上传一个artiface到一个cartridge实例的过程。有个条件是,远程Git仓库中,需要添加一个Webhook。
     当一个租户想上传一个artifact时,会调用git push这个命令让artifact上传到远程git仓库中。此后,远程Git仓库会发布一个Repo update 
notification 给Stratos Manager.当命令git  push触发了ADC之后, ADC将会发布一个Artifact Update事件给Instance Notifier topic(存在于Message Broker中)。此后,相关的cartridge 实例会订阅Artiface Update消息,然后利用git pull命令从远程git服务器处更新其内部的artifact。

Auto Commit
     一般来说,从实例到Git仓库的up stream commits是不会发生的。然而,如果Auto Commit模式开启,实例会自动将commit推送到相应的Git仓库中。Auto Commit是可选的特性。
    单租户 cartridge和多租户cartridge都可以适用于下列类型的cartridge类型中:data cartridge,framework cartridge和loader balancer cartridge。如有必要,Auto Commit模式可以只适用于single tenant framework cartridges或则multi-tenant framework cartridges,因为data cartridge和loader balancer cartridge不使用git仓库。当部署应用的时候,Auto Commit模式已经开启。因此,应用程序的JSON定义中需要制定一个payload类型的参数,形势如下:

{
  "name" "payload_parameter.COMMIT_ENABLED" ,
  "value" "true"
}
比如一个开启了Auto Commit模式的完整的应用的JSON格式如下:
{
  "applicationId" "single-cartridge-app" ,
  ...
  "components" : {
    "cartridges" : [
      {
        "type" "php" ,
        ...
        "subscribableInfo" : {
          "alias" "my-php" ,
          ...
          "properties"  : [
            {
              "name" "payload_parameter.COMMIT_ENABLED" ,
              "value" "true"
            }
          ]
        }
      }
    ]
  }
}
     
      

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值