OpenShift在企业中的实践:PaaS DevOps微服务(第2版)
上QQ阅读APP看书,第一时间看更新

4.4 OpenShift上部署有状态应用

根据应用是否保存应用状态数据,我们将应用分为无状态应用和有状态应用。

·无状态应用:指该应用运行的实例本身不会在内存或本地存储中保存客户端数据,每个客户端请求都像首次执行一样,多个实例对于同一个请求响应的结果是完全一致的,可以采用轮询等负载均衡策略。在OpenShift平台中无状态应用的部署可以采用手动或自动方式进行弹性伸缩,通过动态调整实例数来快速提升业务处理能力,满足不同负载情况下对应用处理能力的要求。

·有状态应用:指该服务的实例在内存或本地存储中保存数据,并在客户端下一次的请求中来使用这些数据。这样,应用在重启时需要重新加载保存下来的数据,否则会导致数据遗失或处理错误,不同实例对于同一个请求,响应结果可能不同。在OpenShift平台上运行有状态应用就不能直接通过增加实例数来提升业务处理能力,应用实例数的调整可能涉及部署架构或配置的调整。通常需要专业的领域知识进行管理和维护,应用状态可能包括持久化数据、会话信息、连接状态、集群状态等。

上述两种类型的应用在OpenShift平台上的部署方案存在差异。在OpenShift上部署无状态应用是大家所熟知的,本小节将介绍在OpenShift上如何实现有状态应用的部署。