划分应用
应用是提供特定业务功能的软件服务。一个应用一般会有一个对应的源代码库以及由这个源代码库编译出来的多个版本的部署物(比如软件安装包、容器镜像等等)。应用的运行在阿里云的基础设施上,比如云服务器、托管的K8s容器服务;应用还会使用数据库、负载均衡和域名等其他云服务。可以按照业务功能和部署物来划分应用。在应用管理,我们需要把业务功能和部署物对应的云资源导入到应用下的应用分组里。
划分应用分组
应用分组是对应用进行部署、运维和管理的单位。应用管理支持按分组进行应用发布(每次部署一个分组)、监控报警(支持分组级别的指标)、运维(对分组下的资源进行批量运维)、成本分析等等。
常见的分组策略有:
按照运行环境划分。比如分为生产环境、预发布环境、日常环境。这些运行环境是相互独立(但不一定完全隔离,比如预发布环境和生产环境可以共用一个数据库)。不同环境的运维的要求不一样。在应用部署时,不同环境也是分开的。
按照可用区来划分如果您的应用支持跨可用区的高可用,那么可以将每个可用区上的资源创建成一个分组。发布的时候和运维的时候可以逐个分组进行,从而保证应用总是可用的。
单分组应用对于简单应用,比如用来做测试、做演示的应用。可以将所有资源都导入到一个分组里。
创建应用分组的方式
使用自定义标签创建应用分组
如果您已经使用标签对资源进行分组,并且已经切分到了应用分组维度,那么可以使用现有的标签来创建应用分组。应用分组会和标签绑定:
资源绑定、解绑标签的同时也会加入、退出应用分组。
在应用分组的资源管理页导入资源或者移除资源,会对资源绑定标签或者解绑标签。
您可以在应用分组的概览页可以看到绑定的标签。
使用资源组创建应用分组
如果您已经使用资源组来对资源进行分组,并且已经切分到了应用分组维度,那么可以使用资源组来创建应用分组。应用分组会和资源组绑定。对于资源组,资源管理页面不支持导入或者移除资源。资源组下的资源变动也会同步到应用分组里。您可以在应用分组的概览页可以看到绑定的资源组。
手工批量导入资源
在应用创建页,您可以筛选资源、选择多个资源批量导入。导入过程中会给资源打上应用管理的标签。创建完成后还可以在资源管理里导入或移除资源。您可以在应用分组的概览页可以看到由应用管理为分组生成的标签。
通过其他动态分组创建应用分组
应用管理支持将弹性伸缩的伸缩组、容器集群、资源编排的资源栈导入为一个分组。分组会和这些动态分组绑定。动态分组中的变化会同步到应用分组里。比如一个伸缩组扩展了一个新的ECS实例,这个ECS实例也会自动加入应用分组。
通过应用管理来创建或删除云资源
以上通过导入资源或者绑定已有动态分组的形式导入的资源,应用的生命周期和资源的生命周期(资源的创建和删除)是解耦的。如果通过应用管理来创建或删除云资源,可以采用以下方式:
通过场景创建资源:场景是应用管理预置的资源编排模板。支持图形化配置一键部署。
通过自定义模板创建:使用您自己的资源编排模板部署,适合高阶用户。
这两种方式都是基于资源编排(ROS)的能力,使用Infrastructure as code的方式去创建和管理资源。使用这种方式,应用分组删除时会同时删除资源栈。