大话微服务与DevOps

Posted on   bw_0927  阅读(265)  评论(0编辑  收藏  举报

http://www.infoq.com/cn/articles/micro-service-and-devops

 

 

第一个就不说了,第二个垂直架构,典型的比如SSH框架,帮大家考虑了模块化、MVC等,但并没有考虑服务化。

第三个是分布式架构,以SOA为代表的这类技术已经热了很多年,也很成熟,也是目前很多企业架构的主体支撑。

而第四个以微服务架构为支撑的技术虽然在一些先进企业或互联网公司已经运用,但从生态上来看,还有很长一段时间要走,其更强调在DDD下的业务服务自治性及原子性。

.

 

“DevOps”通常指的是新兴的专业化运动,这种运动提倡开发和IT运维之间的高度协同,从而在完成高频率部署的同时,提高生产环境的可靠性、稳定性、弹性和安全性。

 

 

云计算、微服务、容器这些概念或能力之间到底是什么关系呢?其实这个主要看大家的方向了,结合我所面临的客户以及IT现状,我的理解是这样的:

  1. 云基础平台作为底层支撑,既可以是Docker、Unikernel这样的容器技术,也可以像vmware或OpenStack这样以VM为管理单元的方式,旨在为上层提供有SLA能力的资源池管理与调度;
  2. DevOps作为一层可选平台,以流程自动化、工具自动化为主要手段,通过长期的积累与优化,为最终业务交付提供更敏捷、更数字化的能力;
  3. 历史系统与微服务在企业会长时间并存(BiModal),不要试图一步到位,我所经历的企业客户中,都是从部分外围应用开始试点,甚至是先拆应用、再拆数据这样循序渐进的。

 

 

 

 

实现企业级DevOps,有很多方式和着手点,比如最常用的就是从持续发布开始。而我们更聚焦企业的全生命周期,所以在目前版本中(与上图有少许不对应),实现了基于微服务架构的以下15个DevOps领域系统:

  1. IAM:身份识别与访问管理,通过OAuth能力,一次登录,全网通行
  2. SPM:软件产品管理,DevOps平台的核心管理对象:产品。以产品维度为入口,管理包括产品的多版本,每个版本拥有多个组件,组件之间、组件与第三方产品之间的依赖关系等
  3. SCM:软件配置管理,主要是应用配置的管理,在编译打包时通过autoconfig技术,注入到最终部署包
  4. SRM:软件资源管理,资源,即上述产品的运行实例,所以持续发布等都是有SRM发起
  5. SEM:软件环境管理,企业环境千差万别,SEM屏蔽了异构环境的差异性,让上游系统及业务能够松耦合的运行
  6. QAF:质量保证反馈,这个系统负责收集全生命周期的数据反馈,为后续优化演进提供重要依据
  7. UMC:统一监控中心,主要收集日志及资源运行信息,通过计算分析,形成相关报表,同时与告警中心对接,风险异常准实时提示
  8. VCS:版本控制系统,默认集成GIT
  9. CI:持续集成系统,默认集成Jenkins
  10. BPR:二进制仓库
  11. DPR:可部署包(镜像)仓库
  12. PM:项目管理系统,可集成redmine或wiki,目前平台是自己实现的
  13. IM:团队间即时通讯系统
  14. TM:租户管理系统
  15. MKT:云市场,平台最终期望作为中间平台,通过市场打通内容提供者与最终用户