基于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容器内运行单元测试

有货基于Kubernetes容器环境的持续交付实践

基于事件驱动架构构建微服务第11部分:持续集成

Kubernetes是啥?用它写个hello,world啊!

微服务容器架构工程师

微服务架构:基于微服务和Docker容器技术的PaaS云平台架构设计