一、综述
弹性伸缩是容器云的一个重要特性,也是实施容器云的一个重要业务场景,更是容器云产品的重要卖点。这也是我们非常关注的功能。所以我们一直也在考虑服务弹性伸缩的问题。
目前Kubernetes支持CPU、Memory伸缩策略,但CPU和Memory很多场景并不适合。CPU和Memory的使用情况有时并不能真实反映实际业务的运行情况,而且用他们来扩展、收缩容器也显得武断,很可能导致没有完成的业务请求的容器被回收,象我们证券涉及的都是钱、资金,如果在资金处理上出错将是对客户的极端不负责任,很容易失去客户的信任。所以我们在考虑弹性收缩时就考虑的更多。
不过遗憾的是,目前我们接触的厂商基本上都没有实现对其他弹性伸缩策略的支持,比如系统吞吐量tps、响应时间response time、并发数量等,有厂商反馈是要跟随Kubernetes版本的功能,不想维护多套产品,因为社区版本以后会支持更多策略。唉,很让我无语。在Kubernetes社区版本的基础上实现扩展支持,才能够与众不同,才能够引领设计引领潮流,才能够赢得客户,才能有钱赚。总跟在人家屁股后面亦步亦趋,怎么可能超越别人?
即便是Kubernetes社区版本不支持,扩展实现一些策略并不困难,或者至少提供对客户自定义弹性伸缩策略的支持。只要整个容器云平台架构定义合理,并不影响后期Kubernetes新版本的新特性和功能,平台升级也不会带来什么问题,况且,对客户来说,关心的是应用服务,容器云只是个工具、基础载体,工具好用,在运营应用服务时才能得心应手。
我们说服务伸展时相对容易,收缩时就涉及业务