发帖    主题    评论    推荐    标签    作者    订阅    查搜    注册   登陆   关注
 
面向对象 设计模式 领域驱动设计 企业架构 框架 开发教程 微服务 CQRS 扩展性 并发编程 事件溯源 分布式 SOA

Docker支持集群分布式应用意义很重大

                   
2014-12-07 17:26
赞助商链接

Docker支持集群分布式应用其实意义很重大,基本可以完全取代EJB了。

分布式从Corba 到Java的EJB再到Docker,EJB因为将分布式的特点强加入到开发中,实际是最早的DevOps雏形,但是很多人不买账,因为他们不需要分布式部署集群,放在一台服务器上即可,不愿意为了运行时的扩展性牺牲开发的便利性。

因此, Spring这样的开发框架受到普遍欢迎,但是随着的规模发展,就产生了整体性monolithic铁板一块的大的模块系统,迁一动百,而且为了维护修改某个小功能,需要重启整个开发测试发布流程,非常重量。

Node.JS代表的直接基于端口的微服务开始受到欢迎,每个微服务器其实就是相互解耦的、且是有界上下文的服务,说白了,原来一个几百行 N多个组件类的大服务切割成一个个小服务了,彼此独立维护,每个微服务是一个小组team,自己可以独立开发测试和发布,而且可以用不同语言。

但是问题又来了,微服务数量增加以后,一台服务器肯定放不下,这就需要分布式部署,当初EJB分布式集群特性被否定之否定地提高再利用了。

使用一个Docker装一个微服务,而且不管这个Docker+微服务运行在本地 还是分布式环境 还是亚马逊这样公有云上,这些对于开发都是屏蔽的,这才是好的DevOps技术,虽然运营很重要,但不能像EJB那样粗暴干涉开发,使用Docker+微服务,开发者可以不管自己的微服务运行在单机还是云平台上,运营环节只要给其微服务配置上Docker,就可以游走无阻力了。

Docker+微服务也改变了DveOps的传统开发模式,DevOps顾名思义是开发运营合并,因此造成了一个产品队伍从开发到测试 部署和运营,数据库管理员等都存在,而改变以后的产品队伍变成了:微服务团队+平台团队,平台团队负责运营 数据库管理等等,每个微服务队伍只要提交Docker+微服务即可,微服务团队和平台团队之间通过API通讯,这样做到更大的松耦合。

Docker+微服务真正让业务内容和平台设计分离,帮助有实力的公司组织走向平台运营为主的互联网经营模式。



[该贴被banq于2014-12-07 17:29修改过]

2
ejb      微服务      docker      DevOps     

赞助商链接

赞助商链接

返回顶部

移动版 关于本站 使用帮助 联系管理员 最佳分辨率1366x768
OpenSource JIVEJDON Powered by JdonFramework Code © 2002-20 jdon.com