共计 1525 个字符,预计需要花费 4 分钟才能阅读完成。
本文源码:GitHub·点这里 || GitEE·点这里
一、分布式服务
从惯例分布式架构零碎来说,划分出十来个独立的微服务模块是很常见的,而后不同的开发人员分工几个服务块,负责日常开发和保护,微服务之间会呈现版本差别也是天然的。例如用户服务须要开发版本为 7.0,其余服务可能高于这个版本或者低于这个版本,所以对服务公布这块做继续集成就很有必要。
当初比拟通用的服务主动公布和治理的技术栈:Jenkins 继续集成工具、Docker 容器、K8S 容器治理。
二、Jenkins 集成
Jenkins 能够很不便的整合罕用的代码仓库,例如:GitHub、SVN 等,提供继续集成能力,能够把整个代码构建打包,部署做成主动治理流程,代码一经提交就会主动公布到指定环境下,极大缩小非必要的工作量。
- 开发人员提交本地代码;
- 代码仓库通过 Hook 机制告诉 Jenkins;
- Jenkins 获取最新代码编译打包;
- 生成 Docker 镜像文件上传到核心仓库;
- 最终触发滚动或者灰度等公布机制;
在整个代码公布过程如果呈现问题,能够疾速的回滚到上个版本,须要手动解决的流程极少,作为程序员这个职业,越是工作工夫长,越要善用自动化的流程。零碎架构越简单,则服务部署、数据和环境隔离、容灾、灰度、动静扩容就更是须要主动治理,上述技术体系能够很轻松的解决这些问题。
三、Docker 容器
Docker 是作为开源的利用容器引擎,有三个外围概念,Image- 镜像,Container- 容器、Repository- 仓库;开发人员能够通过打包利用和依赖包到一个可移植的容器中,容器是齐全应用沙箱机制,相互之间不会有任何接口,而后公布到任何风行的服务器上,也能够实现虚拟化。
上述微服务模块变多,须要继续集成工具治理;同理当 Docker 容器变多和简单,治理和调度也是一个问题。
四、K8S 容器治理
Kubernetes 简称 K8S,用做灵便和便捷治理和调度 Docker 容器,提供利用部署、布局、更新、保护的一种机制,让部署容器化的利用简略并且高效,反对自动化部署、大规模可伸缩、利用容器化治理。
在下面的部署环境架构下,Docker 能够了解为 Kubernetes 上的一个组件,通过 K8S 去对立治理。
这样一套服务公布和环境治理的技术体系当初十分罕用,从开发的角度看,相熟根本应用流程最好,原理逻辑不负责,然而实际操作简单,通常由业余的运维治理,能说分明环境的搭建思路也是面试中常见的问题。
五、源代码地址
GitHub 地址:知了一笑
https://github.com/cicadasmile/spring-cloud-base
GitEE 地址:知了一笑
https://gitee.com/cicadasmile/spring-cloud-base
举荐浏览:编程体系整顿
序号 | 项目名称 | GitHub 地址 | GitEE 地址 | 举荐指数 |
---|---|---|---|---|
01 | Java 形容设计模式, 算法, 数据结构 | GitHub·点这里 | GitEE·点这里 | ☆☆☆☆☆ |
02 | Java 根底、并发、面向对象、Web 开发 | GitHub·点这里 | GitEE·点这里 | ☆☆☆☆ |
03 | SpringCloud 微服务根底组件案例详解 | GitHub·点这里 | GitEE·点这里 | ☆☆☆ |
04 | SpringCloud 微服务架构实战综合案例 | GitHub·点这里 | GitEE·点这里 | ☆☆☆☆☆ |
05 | SpringBoot 框架根底利用入门到进阶 | GitHub·点这里 | GitEE·点这里 | ☆☆☆☆ |
06 | SpringBoot 框架整合开发罕用中间件 | GitHub·点这里 | GitEE·点这里 | ☆☆☆☆☆ |
07 | 数据管理、分布式、架构设计根底案例 | GitHub·点这里 | GitEE·点这里 | ☆☆☆☆☆ |
08 | 大数据系列、存储、组件、计算等框架 | GitHub·点这里 | GitEE·点这里 | ☆☆☆☆☆ |