Solum/FeatureBlueprints/ApplicationDeploymentAndManagement
蓝图: https://blueprints.launchpad.net/solum/+spec/app-deploy-manage
目录
- 1 Solum-R1 应用部署/管理
- 1.1 Solum-R1.1 GIT 部署
- 1.2 Solum-R1.2 快速配置
- 1.3 Solum-R1.3 密集打包(基础设施效率)
- 1.4 Solum-R1.4 应用隔离
- 1.5 Solum-R1.5 assembly scale: CLI
- 1.6 Solum-R1.6 assembly delete: CLI
- 1.7 Solum-R1.7 Show 命令: CLI
- 1.8 Solum-R1.8 List 命令: CLI
- 1.9 Solum-R1.9 assembly create: CLI
- 1.10 Solum-R1.10 assembly resize: CLI
- 1.11 Solum-R1.11 assembly delete: CLI
- 1.12 Solum-R1.12 app create: CLI
- 1.13 Solum-R1.13 app deploy: CLI
- 1.14 Solum-R1.14 app scale: CLI
- 1.15 Solum-R1.15 app delete: CLI
- 1.16 Solum-R1.16 REST API
Solum-R1 应用部署/管理
Solum-R1.1 GIT 部署
作为一名应用程序开发者,我想将我的代码推送到我的 Git 仓库,并且平台自动检测代码推送并使用新代码生成一个正在运行的应用程序。我应该能够部署一个新的应用程序,或者通过 git 更新一个现有的应用程序。
Solum-R1.2 快速配置
作为一名应用程序开发者,当我将我的新应用程序部署到 Solum 平台或更新现有应用程序时,我应该在不到一分钟的时间内收到我的应用程序的 URL。
Solum-R1.3 密集打包(基础设施效率)
作为一名系统架构师,我希望能够将多个应用程序实例放在同一主机上,以便能够在多个应用程序实例之间共享相同的操作系统。
Solum-R1.4 应用隔离
作为一名应用程序开发者,我希望我的应用程序具有安全性和性能隔离,以便部署在同一主机上的其他应用程序无法入侵我的应用程序容器或影响分配给我的应用程序的资源。
Solum-R1.5 assembly scale: CLI
概要: assembly scale <assembly_name> <tag> <increment>
通过提供 Assembly 名称、tier_name(标签)名称和数字参数 increment 来增加或减少 assembly 中相同 DU 的数量。例如
assembly scale my_assembly my_tag +1
上面的例子会将 DU 数量增加一个。
assembly scale my_asssembly my_tag +3
上面的例子会将它增加三个。负数将减少数量,最少为 0。此函数将通过定位 Assembly 中具有命名标签的所有组件来查找一个层,并根据带符号的数字参数增加或减少其副本数量。
特殊的 increment 值为 "auto=default" 使用 "default" 策略启动自动缩放,值为 "auto=none" 停止自动缩放。"default" 策略为:Metric=cpu 利用率,Multiple=1,Eviction=最旧的 du,Cooldown=15 分钟。例如
assembly scale my_assembly my_tag auto=default assembly scale my_assembly my_tag auto=none
上面的例子使用 "default" 缩放策略启用自动缩放,然后关闭自动缩放。
Solum-R1.6 assembly delete: CLI
概要: assembly delete <assembly_name>
作为一名应用程序开发者,我可以使用 CLI 命令删除平台上的应用程序。
Solum-R1.7 Show 命令: CLI
以下 API 函数查询 Solum API 中可用的信息。
Solum-R1.7.1 plan show: CLI
概要: plan show <plan_name>
此函数将通过名称返回给定 Plan 的详细信息。此信息应包括
- uri
- name
- description
- assemblies (列表)
Solum-R1.7.2 assembly show: CLI
概要: assembly show <assembly_name>
此函数将通过名称或 uri 返回给定 Assembly 的详细信息。此信息应包括
- uri
- name
- description
- components (列表)
- 每个组件的详细列表
- operations (列表)
- sensors (列表)
Solum-R1.7.3 solum service show: CLI
概要: solum service show <service_name>
此函数将通过名称或 uri 返回给定 Service 的详细信息。此信息应包括
- uri
- name
- description
- operations (列表)
- sensors (列表)
- read_only (布尔值)
注意: "service show" 将与现有的 "os service show" 冲突。
Solum-R1.7.4 app show: CLI
概要: app show <plan_name>
为了易于使用,"plan show" 的别名。此函数将通过名称或 uri 返回给定 Plan 的详细信息。此信息应包括
- uri
- name
- description
- repo
Solum-R1.8 List 命令: CLI
以下 API 函数查询 Solum API 中可用的信息。
Solum-R1.8.1 app list: CLI
概要: app list
列出 Plans。(plan list 的别名)
Solum-R1.8.2 assembly list: CLI
概要: assembly list
列出 Assemblies。
Solum-R1.8.3 solum service list: CLI
概要: solum service list
列出 Services。注意: "service" 名词已经被 Keystone 使用,因此我们需要在开头添加 "solum" 以进行区分。
Solum-R1.8.3 plan list: CLI
概要: plan list
列出 Plans。
Solum-R1.9 assembly create: CLI
概要: assembly create <--plan=plan_name | --json=json_filename | --yaml=yaml_filename> <assembly_name> 从 Plan 创建一个 Assembly,可以通过名称或 id。可以从单个 Plan 创建多个 Assemblies。返回创建的 Assembly 的 URI。另请参阅: app deploy
选项
- 注意:
--plan、--json和--yaml彼此互斥 - 如果指定了
--plan,则使用指定名称的 plan。 - 如果指定了
--json,则使用引用 JSON 文件中的 plan - 如果指定了
--yaml,则使用引用 YAML 文件中的 plan
示例
assembly create --plan="my_awesome_app" my_app_01
Solum-R1.10 assembly resize: CLI
概要: assembly resize [--max] <assembly_name> <tag> <size>
系统地将给定 assembly 中与给定标签匹配的所有 DU 的大小调整为给定大小。
选项
-
==max接受一个正整数参数值,以指示允许的最大并行调整大小的数量(默认值为 1)。--max=1参数表示按顺序调整它们的大小。
示例
assembly resize --max=2 my_app_01 my_app_tier large assembly resize my_app_02 my_app_tier medium
Solum-R1.11 assembly delete: CLI
概要: assembly delete <assembly_name> 删除给定名称的 Assembly。
Solum-R1.12 app create: CLI
概要: app create [--plan=plan_file] [--image=image_id] [--repo=repo_uri] [--build=no] [--run=yes] <plan_name>
使用给定的镜像(部署工件)和/或 Plan 文件创建一个 Plan。返回创建的 Plan 的名称。
选项
- 如果提供了
--plan=plan_file,则使用指定的 plan 文件初始化 Solum 中的 plan 资源。 - 如果提供了
--image=image_id,则将其用作预构建的 glance 镜像。 - 如果提供了
--repo=repo_uri并且带有 --plan=plan_file,则将忽略 repo 中的任何 plan 文件,并且将使用 CLI 上指定的 plan。 - 如果提供了
--repo=repo_uri,系统将在仓库根目录中查找 solum.yaml 以用作 planfile。如果未找到 solum.yaml,它将查找 solum.yaml。 - 如果提供了
--build=no(默认值为 yes),则不会触发构建。- 注意:
--build需要--planfile。
- 注意:
- 如果指定了
--run=yes(默认值为 no),将自动创建一个 assembly。名称将根据 plan 的名称自动生成,并带有下划线和一个数字值,以便每个 assembly 名称都是唯一的(示例: my_app_02)。
Solum-R1.13 app deploy: CLI
概要: app deploy [--repo=repo_uri] [--image=image_id] [--template=hot_file] <assembly_name>
从给定的 Plan 创建一个 Assembly。返回创建的 assembly 的名称。
选项
- 如果提供了
--repo,它将创建 plan 和 assembly。 - 如果提供了
--image=image_id(image_id=glance 镜像 id),则不会触发构建,并且创建的 assembly 中将使用给定的镜像。 - 如果提供了
--template=hot_file,则使用提供的 HOT 文件而不是生成一个。
示例
app deploy --repo=https://github.com/racker/statsd my_statsd_app app deploy --image=8490543-54483905-548395840-458943 my_statsd_app_01 app deploy --image=8490543-54483905-548395840-458943 --template=statds.hot my_statsd_app_02
Solum-R1.14 app scale: CLI
assembly scale 的别名
Solum-R1.15 app delete: CLI
概要: app delete [--force] <plan_name>
删除一个 Plan,并可选地删除其相关的 Assemblies。
选项
- 如果提供了
--force,则还会删除所有相关的 Assemblies。
Solum-R1.16 REST API
适用于 CLI 客户端、IDE 插件、Git 集成脚本等的 Solum REST API。