基于Docker+Kubernetes,微服务容器化开发实战
Posted 敲代码的程序狗
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基于Docker+Kubernetes,微服务容器化开发实战相关的知识,希望对你有一定的参考价值。
前言
微服务和Docker容器技术是目前分布式架构中常用的主流技术,结合Kubemetes强大的容器服务编排与调度能力,中小企业能够简单快速地构建自己的分布式互联网架构系统。本篇文章结合实际生产项目的架构重构过程和经验,详细介绍从单体架构过渡到微服务容器化的分布式架构的各方面,主要包括**微服务开发和运维技术梭的选型、Spring Cloud微服务开发、Rancher和Kubemetes生产离线环境下的安装与部署、微服务的容器化与服务编排、日志调用链的采集和展示、基于 Prometheu 的系统监控,以及微服务的持续集成等要点。**基于Spring Boot、Spring Cloud、Docker、Racher、Kubemetes等技术主要提供从设计、开发、部署到运维的微服务容器化的生产环境整体解决方案。
每章都结合实际生产项目进行讲解,特别适合将Spring Cloud、Docker和Kubemetes等技术应用到生产中的技术管理人员、架构师与开发人员学习,也适合微服务、容器化的入门程序员学习,还可以作为微服务、容器化的运维人员,以及对相关技术感兴趣的人员的参考。
由于文章篇幅问题,需要完整PDF文档的小伙伴,点赞+转发之后【戳此处】即可免费获取
第一章:单体架构与微服务架构
由量变到质变 从单体架构向微服务架构演进,不只是软件架构的改变,更是方法论和生产力的大幅度提升 本章主要介绍单体架构和微服务架构的优缺点,以及微服务的设计原则和拆分原则
1.1 背景介绍
1.2 单体架构
- 1.2.1 单体架构的特点
- 1.2.2 单体架构的优点
- 1.2.3 单体架构的缺点
1.3 微服务架构
- 1.3.1 微服务架构的特点
- 1.3.2 微服务架构的优点
- 1.3.3 微服务架构的缺点
1.4 微服务拆分
- 1.4.1 微服务设计原则
- 1.4.2 微服务拆分原则
1.5 微服务开发原则
- 1.5.1 微服务命名
- 1.5.2 项目依赖配置
- 1.5.3 配置文件
- 1.5.4 代码命名
1.6 本章小结
第二章:Spring Boot微服务开发
本章主要介绍了微服务相关的概念、框架、开发与打包测试等内容 首先详细介绍了Dubbo服务框架和Spring Cloud 微服务框架,并对两个框架的概念、特点及技术枝进行了详细的介绍及对比 然后给出了微服务开发与运行的技术核全景图,罗列了目前微服务相关的主流技术。
2.1 微服务框架
- 2.1.1 Dubbo服务框架
- 2.1.2 Spring Cloud微服务框架
- 2.1.3 Dubbo服务框架和Spring Cloud微服务框架的对比
2.2 技术栈选型
2.3 搭建开发环境
- 2.3.1 安装开发软件
- 2.3.2 Maven配置
- 2.3.3 IDE配置
2.4 编写框架代码
- 2.4.1 创建Maven工程
- 2.4.2 创建微服务模块
- 2.4.3 微服务代码结构
2.5 编写业务代码
- 2.5.1 Controller文件
- 2.5.2 Mapper文件
- 2.5.3 Service文件和ServiceImpl文件
2.6 打包与测试
- 2.6.1 编译打包
- 2.6.2 运行测试
2.7 本章小结
第三章:搭建微服务运行环境
本章主要介绍了微服务常用的 个环境搭建工作,包括开发环境、测试环境和生产环境Spring Boot 对应的配置文件分为dev、test、prod者的主要区别在于第三方服务IP 址、数据库地址、中间件地址及日志配置的不同
3.1 运行环境概述
3.2 搭建开发环境
- 3.2.1 IDE环境
- 3.2.2 非IDE环境
3.3 搭建测试环境
- 3.3.1 非容器化环境
- 3.3.2 容器化环境
3.4 搭建生产环境
3.5 切换运行环境
3.6 本章小结
第四章:Rancher和Kubernetes离线部署
本章主要介绍了微服务运行环境的安装文件如何下载,以及微服务运行环境 Docker、Kubemetes 和Rancher 离线安装。因为 Docker 镜像仓库 Harbor 涉及 CA 证书 ,所以本章还介绍了 CA 证书的创建生成过程。
第五章:日志采集
本章介绍了微服务系统整体端到端的日志采集,包括日志输出 日志采集 日志收集与处理、日志存储和日志展示等环节,首先介绍了基于 Fi lebeat和ELK 的日志采集模型,充分利用 Elasticsearch 的全文检索能力以及 Kibana 丰富的图形化展示能力 其次介绍了微服务基于 Spring Boot 的日志输出配置, 分为开发环境 测试环境和生产环境,最后按照日志采集模型,分别介绍了日志采集 日志汇 与日志展示
第六章:调用链跟踪
本章首先介绍了调用链追踪的概念,阐述了服务调用的 Trace Span 的内涵 然后介绍了 Spring Cloud 调用链眼踪模型中的 Sleuth 组件和 Zipkin 组件,同时介绍了 SpringCloud 调用链跟踪模型;最后介绍了 Sleuth+Zipkin调用链追踪技术,在开发环境、测试环境和生产环境中的配置,以及调用链数据存储在 Elasticsearch 组件中,同时介绍了如何在 Zipkin和Kibana中图形化展示与检索调用链信息
第七章:熔断器
本章首先介绍了微服务中熔断器的概念,然后介绍了 Spring loud 中熔断器 Hystrix的特点。最后介绍了熔断器相关的 Maven 依赖配置、熔断器的使用代码编写和熔断器的图形化展示与监控。
第八章:容器化与服务编排
本章介绍了容器化、虚拟机及服务编排等内容,重点介绍了生产环境 应用镜像的构建过程 镜像包括母镜像、基础镜像和应用镜像,同时介绍了应用镜像的基础构建方法。
第九章:系统监控
本章首先对系统监控进行了概述,包括主机监控、安全监控、中间件监控、业务监控、容器监控等 然后介绍了 Kubemetes 集群常用的监控方案,通常选择基于 Node Exporter、Prometheus Grafana 的监控体系。
第十章:持续集成部署
本章简单介绍了持续 成和持续部署的概念,以及持续集成部署的模型,重点介绍了基于Kubemetes 容器化平台 Rancher 容器编排平台,以及 Jenkins 流水线的 CICD 的生产实践。
由于文章篇幅问题,需要完整PDF文档的小伙伴,点赞+转发之后【戳此处】即可免费获取
以上是关于基于Docker+Kubernetes,微服务容器化开发实战的主要内容,如果未能解决你的问题,请参考以下文章
基于事件驱动架构构建微服务第10部分:在docker容器内运行单元测试