当前位置:主页 > 查看内容

最佳实践丨云上私有池如何为客户业务的确定性、连续性保驾护航

发布时间:2021-07-23 00:00| 位朋友查看

简介:创建实例-Open 开放匹配在线接口体验 https://api.aliyun.com/?spm 5176.12818093.resource-links.dapi_platform.54ce16d07XdZhp#/?product Ecs version 2014-05-26 api RunInstances tab DEMO lang JAVAimport com.aliyuncs.DefaultAcsClient;import com.ali……
创建实例-Open 开放匹配 在线接口体验 https://api.aliyun.com/?spm 5176.12818093.resource-links.dapi_platform.54ce16d07XdZhp#/?product Ecs version 2014-05-26 api RunInstances tab DEMO lang JAVA import com.aliyuncs.DefaultAcsClient; import com.aliyuncs.IAcsClient; import com.aliyuncs.exceptions.ClientException; import com.aliyuncs.exceptions.ServerException; import com.aliyuncs.profile.DefaultProfile; import com.google.gson.Gson; import java.util.*; import com.aliyuncs.ecs.model.v20140526.*; public class RunInstances { public static void main(String[] args) { DefaultProfile profile DefaultProfile.getProfile( cn-hangzhou , accessKeyId , accessSecret IAcsClient client new DefaultAcsClient(profile); RunInstancesRequest request new RunInstancesRequest(); request.setRegionId( cn-hangzhou request.setZoneId( cn-hangzhou-i request.setInstanceType( ecs.c6.2xlarge request.setInstanceChargeType( PostPaid request.setPeriod(1); request.setPeriodUnit( Hour request.setNetworkType( vpc request.setImageId( aliyun_2_1903_x64_20G_alibase_20200529.vhd request.setSystemDiskSize(40); request.setSystemDiskType( cloud_ssd request.setPrivatePoolOptionsMatchCriteria( Open // 私有池 开放匹配参数 request.setSecurityGroupId( sg-xxx request.setVSwitchId( vsw-xxx try { RunInstancesResponse response client.getAcsResponse(request); System.out.println(new Gson().toJson(response)); } catch (ServerException e) { e.printStackTrace(); } catch (ClientException e) { System.out.println( ErrCode: e.getErrCode()); System.out.println( ErrMsg: e.getErrMsg()); System.out.println( RequestId: e.getRequestId()); 创建实例-Target 指定匹配 import com.aliyuncs.DefaultAcsClient; import com.aliyuncs.IAcsClient; import com.aliyuncs.exceptions.ClientException; import com.aliyuncs.exceptions.ServerException; import com.aliyuncs.profile.DefaultProfile; import com.google.gson.Gson; import java.util.*; import com.aliyuncs.ecs.model.v20140526.*; public class RunInstance { public static void main(String[] args) { DefaultProfile profile DefaultProfile.getProfile( cn-hangzhou , accessKeyId , accessSecret IAcsClient client new DefaultAcsClient(profile); RunInstancesRequest request new RunInstancesRequest(); request.setRegionId( cn-hangzhou request.setZoneId( cn-hangzhou-i request.setInstanceType( ecs.c6.2xlarge request.setInstanceChargeType( PostPaid request.setPeriod(1); request.setPeriodUnit( Hour request.setNetworkType( vpc request.setImageId( aliyun_2_1903_x64_20G_alibase_20200529.vhd request.setSystemDiskSize(40); request.setSystemDiskType( cloud_ssd request.setPrivatePoolOptionsMatchCriteria( Target // 私有池 指定匹配 request.setPrivatePoolOptionsId( crp-xxx // 私有池id request.setSecurityGroupId( sg-xxx request.setVSwitchId( vsw-xxx try { RunInstancesResponse response client.getAcsResponse(request); System.out.println(new Gson().toJson(response)); } catch (ServerException e) { e.printStackTrace(); } catch (ClientException e) { System.out.println( ErrCode: e.getErrCode()); System.out.println( ErrMsg: e.getErrMsg()); System.out.println( RequestId: e.getRequestId()); }

?


4- 私有池用户案


案例一 零门槛的Tags匹配 实现业务的精准、确定性交付


某A公司 每隔一段时间需要对业务进行升级 需要将服务器释放 重新进行业务的部署 在升级的过程中 需要确保业务依赖的资源确定性交付出来 从而保障业务服务的连续性。


这里有两个关键的变化 服务器释放、重新业务的部署。在云平台上 时时刻刻都有用户进行资源释放、购买。在这个动态过程中 可能A用户释放的资源 很快被B用户购买走了 A用户此时可能就买不到了 需要等其他用户释放掉资源的时候 或者云平台恰巧有新增商品量的时候 才有机会购买成功。一旦业务需要延迟购买到相应的商品 等待有可售库存供下单 可能导致业务升级过程中断 服务连续性就受到影响。


为了解决这个问题 客户可以先购买到目标商品 进行业务的新部署 然后释放老的资源 这就增加了升级过程中成本投入 新购资源和老资源同时付费 并且升级过程时间越久 投入的成本越多。另外 升级进程受先购买到资源影响 只有在新购资源交付成功后 才能进行后续的升级 这使得业务升级计划受到资源交付影响 业务升级不一定完全按业务规划准时进行。


阿里云立即生效的CR完美地契合了这个场景。A公司购买一批适合业务场景的私有池 立即生效容量预定 然后放心释放资源 在私有池上100%开出资源 进行业务的准时升级。在实际使用私有池过程中 阿里云提供了的标准化的接入方案 用户按业务管理需求 用户自主进行资源指定到哪个私有池进行资源交付。这就要求业务针对已有资源交付接口做轻微改动。但是 考虑到用户接入成本、对已有业务的入侵程度 阿里云进一步提供了零门槛使用CR 支持高级特性 经过客户授权后 云平台帮客户在新购实例的时候 修改默认的匹配属性为Open。同时在已有Tag资源管理基础上 支持面向Tag的、业务专属的实例和私有池Tag匹配规则 业界首推的特性 。


A公司使用CR的具体操作步骤如下

A公司技术人员通过API将需要使用立即生效CR的存量实例匹配属性修改为Open
A公司技术人员授权阿里云将其账户下新购实例的默认匹配属性从None修改为Open
A公司技术人员按照内部的业务逻辑设计相应的Tag标签组合
A公司技术人员根据需求创建具有相应Tag标签组合的立即生效的CR
阿里云会按照Tag标签组合将存量的实例关联到对应的私有池中
A公司技术人员创建Tag标签组合的新实例 该实例一定能够创建成功并且关联到对应的私有池


注意 A公司不需要修改已有的任何脚本文件 从而可以零入侵的实现资源的确定性交付。


案例二 业务自主管理业务与私有池的精准、确定性交付


某B公司 资源交付团队负责整个公司的各个业务线的资源交付。为了提升资源利用率 业务之间资源共享非常普遍 例如资源白天给A业务 晚上给B业务。例如B公司业务不定期 进行线上活动推广 推广期间会有一个明显的资源突发。这个过程中 发生资源的共享、资源的突发大量需求。

在云上 客户自己的资源进行共享 一种方式是云服务器不释放 服务上应用进行部署释放、调整 另外一种方式是资源释放、应用释放 新应用重新申请资源重新部署。前者资源和应用生命周期解偶 后者资源和生命周期一致。


在云原生理念驱动下 资源和应用生命周期一致可以实现 可编程基础设施、不可变基础设施。客户的诉求是资源随时释放并随时可以再次获取到。实际上 云上多用户并发资源购买 平台并不承诺用户C已释放的资源 继续留给用户C使用 而是有用户需要购买 就会出售。那么 资源发生资源释放 就不一定能及时再次购买的到。


同理 大量突发资源的临时购买 也不一定能购买成功。客户的诉求是资源确定性交付 从而完成业务活动的推广。


阿里云延迟生效容量预定、立即生效容量预定 生效后的容量预定 就是客户专属的私有池 客户可以随时释放私有池的实例 重新在私有池上开出实例 私有池容量客户感知 业务的资源共享基于私有池 可以随时随地进行精准迁移。B公司研发实力雄厚 技术控制力强 自主集成私有池的OpenAPI到公司资源交付体系中 实现自主、精准资源交付。


B公司的具体操作步骤如下


B公司技术人员通过API购买与资源规划相匹配的立即生效CR
B公司技术人员在收到业务资源申请时 根据B公司资源管理策略 在资源创建API 如CreateInstance、RunInstances 中 设置 PrivatePoolOptionsMatchCriteria Open。这种模式下 确保资源创建优先在开发的私有池中匹配 当私有池无法匹配的时候 会到共有池申请 很好地实现了共享性业务的确定性、灵活性交付。或者PrivatePoolOptionsMatchCriteria Target, PrivatePoolOptions ID crp-a。这种模式下 确保资源创建在指定的私有池crp-a中创建。很低地实现了重保或者高优先级业务的确定性交付。


上面两个案例 分别是 1 零门槛的、Tags的匹配 实现业务的精准、确定性交付 2 业务自主管理业务与私有池的精准、确定性交付。两种模式可以广泛地复用到各公司在阿里云上ECS资源确定性交付场景。


5- 私有池的关键技术


一句话概括就是 云平台为客户预留固定的资源库存 这部分库存仅提供给客户专属使用 包括客户授权的其他子账号或者AliUid使用


Open Target 分配技术原理

根据创建实例传入的参数 PrivatePoolOptionsMatchCriteria值是Open 或者None 或者Target 后端在选择对应的资源池进行库存校验和交付。其中私有池也有MatchCriteria 取值Open 或者Target。


匹配规则可以移步官方文档 https://help.aliyun.com/document_detail/193633.html


Tags分配技术原理

Tags分配本质上基于私有池的Tags和实例Tags的匹配规则进行分配 是调度系统能力直接产品化服务的一种体现。那么调度系统的所有相关技术理论上都可以派上用场。关于资源调度和管理的全面介绍可以参考书籍《深入集群-大型数据中心资源调度和管理》一书。


总结

云上资源保障服务 例如具体的弹性保障、立即生效容量预留等 以及将推出的容量规划服务 交付给客户一个云上私有池 并支持客户基于私有池进行确定性交付、灵活性交付、资源共享等。从而为客户业务确定性、连续性发展提供了强有力的支持 客户也可以进行容量的共享进行成本的分担。


本期最佳实践的分享就到这里了 我们还会推出云上私有池的选购指南等续篇内容 敬请期待~




本文转自网络,原文链接:https://developer.aliyun.com/article/785627
本站部分内容转载于网络,版权归原作者所有,转载之目的在于传播更多优秀技术内容,如有侵权请联系QQ/微信:153890879删除,谢谢!

推荐图文


随机推荐