『高级篇』docker容器来讲微服务导学(一)

原创文章,欢迎转载。转载请注明:转载自IT人故事会,谢谢!
原文连接地址:『高级篇』docker容器来讲微服务导学(一)java

跟我学过初级和中级的小伙伴,感谢有大家的支持哈哈,我开始高级篇了。此次设计到springboot 和spring cloud,重点是落地,以前的CICD涉及的面有老铁说最后镜像部署没说,我说高级必定补上的!python

微服务

微服务最近几年比较火,不了解也不要紧,能够理解成一个项目的模块吧,微服务运行在docker容器里面,若是管理docker容器用服务编排框架k8s。linux

为何要继续高级篇

镜像生产环境的自动化部署git

  • 不一样行业IT系统更新频率

纵向的是系统的更新频率,黄色的是半年以上更新一次,绿色的部分是3-6个月,蓝色的部分是每月都要更新。横向的是行业的细分:制造业,金融行业,互联网行业,交通物流行业,零售业。其中互联网的更新频次最高92%的服务每月都要更新。其中应该有不少服务一个月要更新屡次。我相信若是一个行业若是要有竞争的优秀,更新频率必定是在不断的提升的。这就会倒逼愈来愈多的企业加入转型,docker微服务就是方向。spring


  • IT系统支撑所存在的问题

看2个比重最大的问题,系统复杂性愈来愈高,IT运维管理复杂,构建一个全功能团队困难。应用频繁的升级开发团队会很是的痛苦:企业业务系统通过多年的发展,系统每每很是庞大,复杂度很是的高,要改动其中任何一个小功能都须要部署整个应用,敏捷开发和快速的服务根本无从谈起,传统行业在传统的IT建设过程当中每每会使用不一样的技术,这就存在了技术以前的诧异很大,管理和运维就比较复杂,随着这些问题的凸显,企业向微服务进行转型需求愈来愈强烈。docker


  • 微服务架构落地状况

6%的企业应用了spring cloud开发框架,9%采用了dobbo和其余的微服务框架,51%考虑云原生的架构方向转型(公有云,私有云),所以能够看出来绝对部分企业有转型的需求的。springboot


  • 2018年和2017年docker的使用状况对比图

docker从2017年的7% 升级了4个百分点达到11%。考虑使用docker的应用的愈来愈多,特别是100台服务器以上的。服务器


  • 2017年的docker状况

企业的关注度才不断的升高。docker的使用在不断的普及,容器的成熟,对微服务的落地提供了不少的基础,轻量化的容器是微服务的最佳环境。微服务在容器的环境下,在加上服务编排框架持续集成变成可能。架构


  • 为什么存在

腾讯,阿里,京东,包括新浪 都在使用docker。经过图片的数据和案例说明:docker,服务编排,微服务值得咱们去学习。可能在不久的未来将会是每一位开发和运维的老铁不得不了解的技术。框架





高级具体说些什么?

  • 微服务
  1. 传统架构演变微服务
  2. 微服务架构的架构图优点的不足
  • 微服务带来的问题和解决方案

从实战的角度出发

1.传统服务和微服务对比的方式来进行学习。

  1. 问题和业界的解决方案(springboot + spring cloud)
  2. 不少老铁都是搞java的,了解下springboot 和 cloud跟微服务,跟docker的关系,跟服务编排框架的关系。
  • 微服务实例开发

经过业务场景。从0开始一行不拉的开发完整个项目,微服务的开发有一个深入的体会,服务开发过程当中咱们会用到,dubbo,spring boot ,spring cloud,网关,thrift。
体会到:dubbo的远程调用,thrift跨语言的接口调用,spring boot快速开发。

  1. 几个微服务,微服务须要怎么来划分。
  2. 他们以前的关系,他们是如何划分的。

  • 部署前的准备
  1. 服务docker化,调整配置,制做成docker镜像。
  2. docker-compose,运行在docker容器中,保证容器间的正常通讯。
  3. docker仓库,harbor搭建,push镜像。
  4. kubernetes,mesos,swarm,初级我讲了mesos,中级主要讲了swarm,高级重点仍是k8s。其实他们都是学会其中一种,基本都是庞统的。
  • 服务编排
  1. 了解mesos,画出架构图,集群环境,部署微服务
  2. 了解swarm,集群环境,调整服务,部署服务
  3. 压轴k8s,经过2017年docker认可k8s后,服务编排的领导地位,2017年爆发增加,企业上docker首选k8s,门槛过高了,光服务搭建都能压死人。了解概念,基础集群搭建,小试牛刀,服务发现,认证受权,部署微服务。
  • CICD和Devops

jekens 和gitlab 中级欠你们jekens此次补给你们。目的是从代码提交到流程更新所有自动化。

环境参数

  1. 作java的经常使用的IDEA
  2. 消息服务用python3.6.3
  3. RPC框架Thrift0.10.0 跨语言
  4. Ubuntu-16.04
  5. Docker-18.03
  6. kubernetes-1.9.0

技术储备

  • 熟悉java 后台开发
  • 熟悉docker基本命令,镜像容器什么的
  • 熟悉linux基本操做

PS:总体把握微服务,清晰理解微服务的各类概念,若是开发微服务,技术栈之间的微服务通讯,怎么样把一个服务运行在docker容器里,服务之间是如何创建链接的,多种编排框架下服务的编排和服务的发现扩容。docker绝对是你之后必经只选。来咱们一块儿努力,成为更好的本身。

相关文章
相关标签/搜索