Mesos+docker的业务场景

云计算操作系统的主要优点:

优势说明
易部署利用Docker消除开发、测试和生产的差异性。实现快速部署,灰度发布和快速回滚
横向扩张(scaling)快速扩张增加实例数量,顶住突增的高并发流量
自动恢复(failover)当底层宿主机出现故障的时候,自动将应用“迁移”到其他宿主机上,确保服务不降级
高资源利用率例如容器细粒度地划分宿主机资源,尽量多跑容器,提高资源利用率

另外我们可以将一般企业应用,按照同底层资源(内存和持久化)的耦合程度。说白了就是状态信息是否放在本地,例如使用Java session(内存)来保持用户的购物车信息,那么意味着这个用户每次访问都要被负载均衡转发到这台服务器上。负载均衡必须维护用户session和相 应服务器的对应关系,否则用户很可能下次登录到没有保存自己登录状态的服务器上,被踢出登录。

应用类型技术架构负载均衡说明
无状态应用Tomcat、Apache、Nginx不需要会话保持用户状态保存在redis或者memcachd之类的缓存里
有状态应用Weblogic、EJB需要会话保持用户状态保存在本机内存里面
本地持久化应用各种传统数据库需要会话保持用户数据会在本地持久化

其中技术框架只是个例子,例如使用tomcat 的应用不一定就是无状态的,只是说相对于weblogic可能性更大一些。
我们看一下不同类型的应用,上云之后能够得到哪些好处:

快速部署横向扩展自动恢复高利用率
无状态是,可扩可缩是,可以杀掉别处重启
有状态可以扩,但是要慢慢缩(graceful stop)不能。容器没有了,用户的状态信息也会丢失也许
持久化是,但是要同步数据无法扩展,除非是分布式数据库不能。底层宿主机如果故障,持久化数据可能丢失。否,一般数据库本身的负载就比较高,底层资源使用比较充分

我们看,一般互联网公司的软件架构已经实现了“三层架构”。业务逻辑实现无状态,用户状态放在缓存之中,而冷数据在保存在数据库里面。这样的应用的逻辑部分本身支持横向扩展,只要简单地Docker化并且进行配置分离,就可以快速上云。
传 统基于Weblogic和EJB的企业应用,则属于第二种情况。这些应用简单Docker化之后也可以放到Mesos之上,不过前端负载均衡往往要支持 HTTP会话保持。这种应用的逻辑部分可以做到横向扩展,反正新用户会转发到新的容器实例上。当要关掉容器的时候,必须采用graceful stop的方法,通知容器停止接收新请求,直到处理完所有请求之后自行销毁。具体EJB的横向扩展功能,在另外一个FaQ里面会详述。
至于数据库之类需要本地持久化的应用,一般采取将持久化部分挂载到本地存储(Docker的–v 参数),除非是底层存储也是分布式的,那么放到Docker里面的意义非常有限。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值