企业上云,如何确保应用是否无状态?

要利用云可以弹性伸缩容的特性,就要求应用是无状态的或者可以做到状态集中管理。显示全部

要利用云可以弹性伸缩容的特性,就要求应用是无状态的或者可以做到状态集中管理。

收起
参与16

查看其它 2 个回答wykkx的回答

wykkxwykkx系统架构师某基金公司

在devops的八荣八耻中就提到,应用以无状态为荣,以有状态为耻。应用的状态是阻止应用弹性伸缩以及用户端高可用体验的拦路虎,这里所说的状态信息,更多的是指原先记录在会话session中的信息和定时任务执行的状态信息。如果要做无状态的改造,有两种思路,一种是通过在业务逻辑上的优化,真正的去掉原来记录在session的中的信息,这种方式改造的很完全,但是难度大,并且适用范围比较小;另外一种方式就是将原来由各个业务节点保存的session信息,集中地保存在session服务上,这样就变相的去掉了业务的状态信息,请求到达的时候,就可以从session服务中获取session信息,实现了业务逻辑与session保存的解耦,从而可以使业务模块能够快速的弹性扩容和缩容。同时session服务一般都是分布式部署,自身提供了良好的高可用机制以及分布式部署特性,在多机房或者多云环境下可以部署在多机房或者多云,从而保证session数据的安全可靠。同时认证模块如果使用token的方式,那么可以将用户的session id放在token里面,从而解决认证和session id安全两方面的问题。

基金 · 2018-04-18
浏览3052

回答者

wykkx
wykkx0412
系统架构师某基金公司
擅长领域: 云计算容器系统运维

wykkx 最近回答过的问题

回答状态

  • 发布时间:2018-04-18
  • 关注会员:4 人
  • 回答浏览:3052
  • X社区推广