弹性强度代表资源库存的健康程度,弹性强度越优,代表未来断供的可能性越低。由于计算巢创建服务和部署服务实例是分开的,所以建议在创建服务时选择弹性强度较优的实例规格,以提高服务实例的部署成功率。本文详细介绍了弹性强度的相关信息。
背景信息
本文适用于服务商在创建全托管服务过程中,在套餐中包含ECS实例规格时,针对ECS实例规格的弹性强度差,服务实例的部署成功率低的情况,可以通过更换实例规格或选择多个备选实例规格来增强ECS实例的弹性强度,提升服务实例的部署成功率。
弹性强度定义
弹性强度体现了资源的库存健康程度,服务商在创建服务时选择弹性强度较优的实例规格,有助于提高部署成功率。弹性强度的优差代表选择的实例规格当前库存和后续供应是否充足,部署服务实例成功率的高低。弹性强度从可用区、地域和套餐三个维度进行计算,将实例规格的强度分为优、中、差三个级别。
弹性强度级别对应分值如下表所示。
弹性强度
分值范围
说明
优
分数≥3
选择的实例规格当前库存和后续供应充足,在部署服务实例时,部署的成功率高。
中
1≤分数<3
选择的实例规格当前库存和后续供应比较充足,在部署服务实例时,部署的成功率较高。
差
分数<1
选择的实例规格库存不足,未来断供可能较大,建议更换实例规格或选择多个备选的实例规格。
各维度的计算方法如下表所示。
计算维度
计算方法
可用区维度
该可用区下每个实例规格库存的健康程度。
若选择了多个实例规格,可用区维度的弹性强度是将多个实例规格的分数进行叠加计算。
地域维度
该地域下可选可用区的弹性强度分值进行叠加。若在添加参数映射关系中指定了可用区,则只会将指定的可用区纳入弹性强度的计算中。
套餐维度
各地域弹性强度的最小值。若在部署地域或添加参数映射关系中指定了地域,则只会将被指定的地域纳入弹性强度的计算中。
若指定了多个实例规格参数,则取这些参数对应弹性强度分值的最小值。
根据此计算方式,可以通过增加备选实例规格来提高弹性强度。当有多个备选的实例规格时,在部署服务实例时计算巢服务会选择最合适的实例规格,从而降低库存不足导致服务实例部署失败率。
弹性强度配置
此处展示了在创建服务的过程中若选择的实例弹性强度差时,如何提升实例的弹性强度。
登录计算巢控制台。
在左侧导航栏中,选择我的服务,并在我的服务页面中,选择我创建的服务,然后单击创建新服务。
在创建新服务页面,配置服务信息。
此处只列举弹性强度相关的配置参数,其他参数根据业务需求填写,更多信息,请参见创建全托管服务。
在模板内容处,填写已经写好的模板内容。
模板内容可参考本文使用的实例。更多信息,请参见模板示例。
重要由于当前只支持ECS实例规格参数的弹性强度计算。因此在模板内容中,必须将
AssociationProperty
参数的值指定为ALIYUN::ECS::Instance::InstanceType
。在添加自动参数映射处,设置模板中参数的依赖关系。
在添加套餐处,设置服务的套餐信息。
在套餐中选择实例类型字段,并选择具体的实例规格。选择后,计算巢会根据您所选实例规格计算弹性强度。
如果套餐的弹性强度差,可以查看具体原因并提升弹性强度。
将鼠标移动到弹性强度标签处,查看ECS实例的地域和可用区维度的弹性强度。
在可用区查看弹性强度差的具体原因。
根据具体原因,选择多个实例规格,提升弹性强度。
说明同一个套餐中,最多支持同时选择10个实例规格。
可选:在隐藏的参数处,设置需要隐藏的参数。
若将实例类型参数隐藏,用户在创建服务实例时,计算巢服务会从用户选择的套餐的多个实例规格中,结合当前库存状况,自动选择最合适的实例规格用于服务部署。
单击创建服务,并在弹出的确认弹窗中单击确定。
模板示例
ROSTemplateFormatVersion: '2015-09-01'
Parameters:
Name:
Type: String
Default: default
ZoneId:
Type: String
Description:
en: Availability zone ID,<br><b>note: <font color='blue'>Before selecting, please confirm that the Availability Zone supports the specification of creating ECS resources</font></b>
zh-cn: 可用区ID
Label:
en: VSwitch Available Zone
zh-cn: 可用区
AssociationProperty: ALIYUN::ECS::ZoneId
DataDiskCategory:
Type: String
Description:
en: '<font color=''blue''><b>Optional values:</b></font><br>[cloud_efficiency: <font color=''green''>Efficient Cloud Disk</font>]<br>[cloud_ssd: <font color=''green''>SSD Cloud Disk</font>]<br>[cloud_essd: <font color=''green''>ESSD Cloud Disk</font>]<br>[cloud: <font color=''green''>Cloud Disk</font>]<br>[ephemeral_ssd: <font color=''green''>Local SSD Cloud Disk</font>]'
zh-cn: '<font color=''blue''><b>可选值:</b></font><br>[cloud_efficiency: <font color=''green''>高效云盘</font>]<br>[cloud_ssd: <font color=''green''>SSD云盘</font>]<br>[cloud_essd: <font color=''green''>ESSD云盘</font>]<br>[cloud: <font color=''green''>普通云盘</font>]<br>[ephemeral_ssd: <font color=''green''>本地SSD盘</font>]'
AllowedValues:
- cloud_efficiency
- cloud_ssd
- cloud
- cloud_essd
- ephemeral_ssd
Default: cloud_efficiency
Label:
en: Disk Type
zh-cn: 数据盘类型
DataDiskSize:
Type: Number
Description:
en: 'Data disk space, range of values: 40-500, units: GB.'
zh-cn: 实例数据盘大小,单位为GiB。取值范围:20~500。
Label:
en: Data Disk Space
zh-cn: 数据盘空间
MinValue: 20
MaxValue: 500
Default: 40
DBRootPassword:
NoEcho: true
Type: String
Description:
en: 'Installed database Root account password,length 8-32 characters, can contain size letters, Numbers and special symbols (including: !@#$%^&*-+=_).'
zh-cn: 安装的数据库Root账户密码,长度8-32个字符,可包含大小字母、数字及特殊符号(包含:!@#$%^&*-+=_)。
Label:
en: Root Account Password
zh-cn: 安装数据库root账户密码
ConstraintDescription:
en: '8-32 characters, can contain size letters, Numbers and special symbols (including: !@#$%^&*-+=_).'
zh-cn: 8-32个字符,可包含大小字母、数字及特殊符号(包含:!@#$%^&*-+=_)。
MinLength: '8'
MaxLength: '32'
VpcId:
AssociationProperty: ALIYUN::ECS::VPC::VPCId
Type: String
Description:
en: Please search the ID starting with (vpc-xxx) from console-Virtual Private Cloud
zh-cn: 现有虚拟专有网络的实例ID
Label:
en: VPC ID
zh-cn: 专有网络VPC实例ID
SecurityGroupId:
AssociationPropertyMetadata:
VpcId: VpcId
Description:
zh-cn: 现有安全组的实例ID
en: The instance ID of an existing security group.
Default: sg-2zeip0loevltubwfzrtm
Label:
zh-cn: 安全组ID
en: Security Group ID
AssociationProperty: ALIYUN::ECS::SecurityGroup::SecurityGroupId
Type: String
VSwitchId:
AssociationProperty: ALIYUN::ECS::VSwitch::VSwitchId
AssociationPropertyMetadata:
VpcId: ${VpcId}
ZoneId: ${ZoneId}
Type: String
Description:
en: Instance ID of existing business network switches, console-Virtual Private Cloud-VSwitches under query
zh-cn: 现有业务网络交换机的实例ID
Label:
en: VSwitch ID
zh-cn: 交换机实例ID
EcsInstanceType:
Type: String
Label:
en: Instance Type
zh-cn: 实例类型
AssociationProperty: ALIYUN::ECS::Instance::InstanceType
Resources:
WaitCondition:
Type: ALIYUN::ROS::WaitCondition
Properties:
Count: 1
Handle:
Ref: WaitConditionHandle
Timeout: 1800
WaitConditionHandle:
Type: ALIYUN::ROS::WaitConditionHandle
EcsInstanceGroup:
Type: ALIYUN::ECS::InstanceGroup
Properties:
IoOptimized: optimized
DiskMappings:
- Category:
Ref: DataDiskCategory
Device: /dev/xvdb
Size:
Ref: DataDiskSize
SystemDiskSize: 40
UserData:
Fn::Sub:
- |
#!/bin/sh
sleep 5
cd /root/
wget http://repo.mysql.com/mysql-community-release-el6-5.noarch.rpm
rpm -ivh mysql-community-release-el6-5.noarch.rpm
yum repolist all | grep mysql
yum install mysql-community-server -y
service mysqld start
mysqladmin -u root password ${DBRootPassword}
echo "create database test character set utf8 collate utf8_bin;" > ./test.sql
echo "CREATE USER 'admin'@'%' IDENTIFIED BY '${DBRootPassword}';" >> ./test.sql
echo "GRANT ALL PRIVILEGES ON *.* TO 'admin'@'%' WITH GRANT OPTION;" >> ./test.sql
mysql -u root -p${DBRootPassword} < ./test.sql
${CurlCli} -d "{\"Data\" : \"SUCCESS\", \"Status\" : \"SUCCESS\"}"
- CurlCli:
Fn::GetAtt:
- WaitConditionHandle
- CurlCli
DBRootPassword:
Ref: DBRootPassword
InstanceChargeType: PostPaid
SecurityGroupId:
Ref: SecurityGroupId
VSwitchId:
Ref: VSwitchId
MaxAmount: 1
SystemDiskCategory: cloud_efficiency
InstanceName:
Fn::Join:
- '-'
- - rds-paas-poc
- Ref: Name
VpcId:
Ref: VpcId
ZoneId:
Ref: ZoneId
ImageId: centos_7
InstanceType:
Ref: EcsInstanceType
HostName:
Fn::Join:
- '-'
- - rds-paas-poc
- Ref: Name
Password: passw0RD
AllocatePublicIP: true
Outputs:
ServiceAddress:
Description:
en: ECS Private IP
zh-cn: ECS PrivateIP
Value:
Fn::Join:
- ':'
- - Fn::Select:
- '0'
- Fn::GetAtt:
- EcsInstanceGroup
- PrivateIps
- 3306
SecurityGroupId:
Description:
en: SecurityGroup
zh-cn: SecurityGroup
Value:
Ref: SecurityGroupId
VSwitchId:
Description:
en: VSwitchId
zh-cn: VSwitchId
Value:
Ref: VSwitchId
VpcId:
Description:
en: VpcId
zh-cn: VpcId
Value:
Ref: VpcId
Metadata:
ALIYUN::ROS::Interface:
ParameterGroups:
- Parameters:
- Name
- ZoneId
- DataDiskCategory
- DataDiskSize
- DBRootPassword
- VpcId
- SecurityGroupId
- VSwitchId
Label:
default:
en: instance
zh-cn: 实例规格