应用组
应用的编排是树形结构。应用组将应用拆分成多个应用进行管理。
应用组的定义如下:
{
"id": "/product",
"groups": [
{
"id": "/product/database",
"apps": [
{ "id": "/product/mongo", ... },
{ "id": "/product/mysql", ... }
]
},{
"id": "/product/service",
"dependencies": ["/product/database"],
"apps": [
{ "id": "/product/rails-app", ... },
{ "id": "/product/play-app", ... }
]
}
]
}
依赖
应用是有依赖的。例如一个play应用需要有数据库才能运行。按照规范定义依赖,马拉松跟踪正确的顺序开始行动,停止和升级应用程序。
依赖关系可以表示应用程序和应用程序组级别。如果依赖表示应用组级别,这种依赖是继承了所有传递的应用组和这个组中的所有应用。
依赖可以使用相对路径或绝对路径进行表示。
例如:在应用程序组中定义的服务,下面的3个定义是一个意思:
{
...
"dependencies": ["/product/database"],
"dependencies": ["../database"],
"dependencies": ["specific/../../database"],
...
}
组伸缩
一个完整的组可以被伸缩。可以改变应用当前的实例数。
PUT /v2/groups/product HTTP/1.1
Content-Length: 21
Host: localhost:8080
User-Agent: HTTPie/0.7.2
{ "scaleBy": 2 }
这个操作以后,所有的应用实例会翻倍。