EasySDK: ECS库存资源推荐的利器

导语

随着阿里云越来越多的地域与可用区的开服, 产品规格逐步迭代,随之而来的是日益庞大的可用区数目, 眼花缭乱的规格类型, 繁复庞杂的定价策略。不知道您是否会因此产生选择困难症? 该如何选择合适的地域与可用区? 该如何选择合适的规格? 该怎样设定预期价格? 怎样才能避免库存资源不足?

基于上述这些问题, 我们精心为您打造了开源的一站式SDK, 帮助您有效解决上述问题。本文主要讲解 "资源推荐子模块" 的能力与使用方法。

关键词: 简单, 有效

适合哪种场景?

随着阿里云用户的增长与使用场景的多样化, 我们发现如下问题日益凸显:

1. 库存问题:
a. 由于ECS库存量出于安全考虑没有对外透露, 因此用户无法感知每个可用区每个规格的具体绝对库存量. 随机性挑选可用区与规格, 可靠性不高, 从而经常性出现创建实例时资源不足的问题.
b. 我们开源的EasySDK, 创新性地使用"递进式算法", 经过内部严密的论证, 能够保证排序靠前的实例规格库存量相对较高.

2. 重复代码问题:
a. 例如某用户需要按照价格最低策略, 全网范围内创建抢占式实例, 需要对接5+个ECS API接口, 才能获取到有效信息.
b. 我们开源的EasySDK, 直接封装了这些boiler-plate代码, 通用场景几行代码即可解决问题.

推荐有效性怎样?

"有效" 是EasySDK的另一个核心要点。

作为对外开放的第一款SDK插件, 推荐结果的有效性经过了我们严密的论证. 以"库存优先"策略为例, 我们将各个可能的场景进行枚举与分析, 经过"递进式算法"的模拟结果, 与我们后台实际的库存量进行相关性分析, 综合可信度在85%以上。 所以您可以放心使用. 具体有效性验证方案, 后续我们会单独文章描述, 在此就不再赘述。

如何接入使用?

使用EasySDK, 我们秉承核心点为 "简单", 通过如下简单3步即可接入使用:

第一步: 引入依赖

<dependency>
    <groupId>com.aliyun.ecs.easysdk</groupId>
    <artifactId>preemptive-instance-recommendation</artifactId>
    <version>1.1.0</version>
</dependency>

第二步: 初始化SDK

// 这里的accessKey需要替换为您的阿里云accessKey
String accessKey = "<your-access-key>";
// 这里的secretKey需要替换为您的阿里云secretKey
String secretKey = "<your-secret-key>";
EasyEcsSDK.setProperty("aliyun.easysdk.sdk.ecs.access_key_id", accessKey);
EasyEcsSDK.setProperty("aliyun.easysdk.sdk.ecs.access_secret", secretKey);
EasyEcsSDK.init();

第三步: 调用推荐方法

PreemptiveInstanceRecommendationService preemptiveInstanceRecommendationService = EasyEcsSDK.getService(
    PreemptiveInstanceRecommendationService.class);
PreemptiveInstanceRecommendationRequest request = new PreemptiveInstanceRecommendationRequest();
List<String> regions = new ArrayList<String>();
regions.add("cn-beijing");
regions.add("cn-hangzhou");
regions.add("cn-shanghai");
request.setRegions(regions);
request.setStrategy(EnumRecommendationStrategy.SUFFICIENT_INVENTORY_FIRST);
request.setCores(1);
request.setProductCategory(EnumEcsProductCategory.EntryLevel);
request.setLimit(10);
Response<List<PreemptiveInstanceRecommendation>> recommend = preemptiveInstanceRecommendationService.recommend(
    request);

返回的<可用区, 规格>列表, 即按照您输入的策略(如样例中的"库存优先"), 进行排序, 即库存越充足, 排序越靠前。

更多完整样例参见: https://github.com/aliyun/alibabacloud-ecs-easy-sdk/tree/master/demos
后续更多场景样例我们会逐步添加完善, 同时也期待各位的积极贡献与反馈。

后续计划

我们后续会持续维护该开源项目, 目前已经收到各方的积极反馈, 具体项目RoadMap可以参见:
https://github.com/aliyun/alibabacloud-ecs-easy-sdk/projects/1

FAQ

Q: 项目地址是在哪里?
A: 项目开源在GitHub上: https://github.com/aliyun/alibabacloud-ecs-easy-sdk 您可以依据自己的需求使用或者修改源代码。

Q: 该SDK是官方维护的么?
A: 是的, 是由ECS团队进行专业长期的维护, 但同时也希望您, 作为ECS的使用者, 能够参与到其中, 积极提交issue, 贡献代码。

Q: 支持哪些语言?
A: 目前只支持Java. CLI工具在密集开发中, Python 与 Go 语言的支持仍在规划中。欢迎您的参与!

Q: 资源推荐能力支持哪几种策略?
A: 目前支持三种策略,:
1、价格优先, 即最低的价格排序越靠前;
2、库存优先, 即越充足的库存排序越靠前;
3、产品代数优先, 即越新的产品规格排序越靠前。不过针对需要稳定持有的抢占式实例, 我们推荐您使用"库存优先"策略, 防止因为短时间的批量购买导致价格剧烈波动。

上一篇:一文看完“阿里云自动化运维沙龙 · 上海专场”干货演讲


下一篇:SSL连接出错的原因都有哪些?