保险微服务

如何确定微服务扩展时的资源策略?

传统架构下,服务所需资源会进行预估和预分配。微服务似乎更适宜使用弹性伸缩方式,这样就出现一个问题:不同的微服务,对资源耗费的侧重不同,高io和高算力需求,使用相同的扩展模式就不大合适;同时一味地扩展某一个微服务资源可能会影响其他微服务,甚至锁死。那么,应当如何预估资源,并...显示全部

传统架构下,服务所需资源会进行预估和预分配。微服务似乎更适宜使用弹性伸缩方式,这样就出现一个问题:不同的微服务,对资源耗费的侧重不同,高io和高算力需求,使用相同的扩展模式就不大合适;同时一味地扩展某一个微服务资源可能会影响其他微服务,甚至锁死。那么,应当如何预估资源,并保证服务扩展时不会互相制约?

收起
参与7

查看其它 2 个回答宁科的回答

宁科宁科  架构师 , 博云

这个微服务扩展策略实际上要包含两方面,

一是科学地评估业务高峰时微服务的资源消耗情况;

二是构建微服务扩展资源模型。

第一个方面,一般通过压测来预先获取数据。如何构建压测场景,是科学评估的关键。我们可以看下一楼专家给的场景:

运营需要做一次活动,通过短信和 PUSH 的方式触达用户,推送约 6500W 用户预计 2 个小时内推送结束。压测场景下需要考虑短信、PUSH的历史转化情况,不能单纯以用户数来作为测试依据。

通过压测,我们可以获取到在设想的极限场景下各微服务的QPS,CPU/内存的水位。

第二个方面,微服务扩展模型。

首先是要建立不同的资源池。比如服务器资源池有高QPS类型,计算密集型,高带宽型,还有按照网络位置设立资源池,保证高安全性的微服务不要在低安全防护资源池里面扩展。

其次,资源调度机制。资源调度器要能够识别扩展触发场景,并选择相匹配的资源池进行调度。对于容器环境来说,我们需要构建更多的扩容触发条件,而不单单是CPU和内存占有率。比如博云公司的BOC容器管理平台,目前还支持网络流量,自定义触发等自动扩缩容策略。

互联网服务 · 2020-04-20
浏览830

回答者

宁科
架构师博云
擅长领域: 云计算容器容器云

宁科 最近回答过的问题

回答状态

  • 发布时间:2020-04-20
  • 关注会员:4 人
  • 回答浏览:830
  • X社区推广