有的时候,你可能希望达到某个需求,就是希望 CPU 维持在 10% 左右。为了达到这个需求,其实可以通过两个报警任务来实现,一个是 CPU 大于 12% 时增加 2 台机器,一个是 CPU 小于 8% 时减少 2 台机器,通过两个报警任务,大概实现将 CPU 维持在 10% 左右这个用户需求。但这时候你完全可以发挥你的产品思维,报警任务是底层的控制手段,而用户诉求很可能是它们的组合和抽象,那我们完全可以就让用户配置一个 CPU 维持在 10% 这样一个最终目标,然后由程序自动将其拆解为对应的多个报警任务和弹性规则的组合,以满足用户的这一目标。这样,方便了用户的配置,将底层复杂的配置实现对用户保持了透明。这样做的好处是显而易见的,当然坏处就是有潜规则了,用户不知道你底层是怎么玩的,可能会心里没底。毕竟用弹性伸缩的用户,都是开发人员嘛,开发人员还是希望能够知道更多细节的。