阿里资深架构师熬夜纯手写的 238 页微服务容器化开发实战笔记
在计算机技术日新月异的今天,层出不穷的新技术推动了生产力的发展,也推动了整个社会的进步。软件架构从单体架构到分布式架构,从 SOA 架构到微服务架构,再到服务网格。数据库从 Oracle 包打天下到 MySQL 大行其道,再到内存数据库、NoSQL 数据库遍地开花。容器编排调度技术从 Mesos、Swarm、Kubernetes 三足鼎立,到最终 Kubernetes 一统天下。“工欲善其事,必先利其器。”在互联网转型的大潮中,需要在思想、方法、技术等方面全面转型。互联网架构的高可靠、高并发、高扩展与低耦合,共同创造了互联网应用的无限可能。
微服务的核心思想是将整个系统拆分为多个相互独立的业务,各模块可以独立地开发、测试、部署、运行和运维。这种低耦合、高内聚的灵活特性正是所有架构设计人员所期盼的。因此,微服务架构在短时间内便得到大型互联网企业的青睐,成为打造复杂互联网应用的一把利器。Kubernetes 作为目前主流的容器编排调度平台,从新生事物逐渐发展成为影响全球 IT 技术的基础设施平台,更推动了微服务架构、云原生应用、服务网格等热门技术的普及和落地。
本文内容循序渐进,概念清晰明了,由浅入深,从易到难,为读者呈现了一幅包括微服务、容器化及技术实践在内的全景图。
本文融合了作者在企业推广实施微服务的诸多经验,不但理论架构完整,而且包含典型的实践案例。
目前,大数据、云计算、物联网、人工智能、区块链等技术遍地开花,借助 5G 技术的翅膀,我们定能展翅翱翔!
需要这份 《微服务容器化开发实战》 的小伙伴 ——【点这,快速入手通道】
本文目录
本文包括的主要内容
微服务和 Docker 容器技术是目前分布式架构中常用的主流技术,结合 Kubernetes 强大的容器服务编排与调度能力,中小企业能够简单快速地构建自己的分布式互联网架构系统。
本文结合实际生产项目的架构重构过程和经验,详细介绍从单体架构过渡到微服务容器化的分布式架构的各个方面,主要包括微服务开发和运维技术栈的选型、Spring Cloud 微服务开发、Rancher 和 Kubernetes 生产离线环境下的安装与部署、微服务的容器化与服务编排、日志调用链的采集和展示、基于 Prometheus 的系统监控,以及微服务的持续集成等要点。
本文基于 Spring Boot、Spring Cloud、Docker、Rancher、Kubernetes 等技术,主要提供从设计、开发、部署到运维的微服务容器化的生产环境整体解决方案。
第 1 章单体架构与微服务架构
本章以一个电子商务订单系统为切入点,首先介绍了该系统的相关背景,然后简单介绍了单体架构和微服务架构的特点、优点与缺点,接着介绍了微服务的设计原则和拆分原则,最后介绍了微服务开发原则。作为一个新的软件架构模型,微服务架构有其特定的设计原则和拆分原则。
第 2 章 Spring Boot 微服务开发
本章主要介绍了微服务相关的概念、框架、开发与打包测试等内容。首先详细介绍了 Dubbo 服务框架和 Spring Cloud 微服务框架,并对两个框架的概念、特点及技术栈进行了详细的介绍及对比。然后给出了微服务开发与运行的技术栈全景图,罗列了目前微服务相关的主流技术。
第 3 章搭建微服务运行环境
本章主要介绍了微服务常用的 3 个环境搭建工作,包括开发环境、测试环境和生产环境。Spring Boot 对应的配置文件分为 dev、test 和 prod,三者的主要区别在于第三方服务 IP 地址、数据库地址、中间件地址及日志配置的不同。
第 4 章 Rancher 和 Kubernetes 离线部署
本章主要介绍了微服务运行环境的安装文件如何下载,以及微服务运行环境 Docker、Kubernetes 和 Rancher 的离线安装。因为 Docker 和镜像仓库 Harbor 涉及 CA 证书,所以本章还介绍了 CA 证书的创建生成过程。
Docker 离线安装使用 yum localinstall 命令安装两个 rpm 安装包。Harbor 作为流行的容器私有镜像仓库,其基于 Docker Compose 的安装方式简单、快捷,另外,安装 Harbor 需要配置前面生成的 CA 证书。Harbor 安装完成后,可以进行 Docker 的登录操作,以便于后续镜像的推送和拉取操作。
Rancher 和 Kubernetes 的安装部署过程如下:首先,安装 Rancher 平台,该平台用于 Kubernetes 集群的管理;其次,使用 Rancher 平台创建和安装 Kubernetes 集群,使添加 Kubernetes 集群的 Control、etcd 和 Worker 节点变得轻松、简单。经过本章的微服务运行环境的安装部署,可以得到一个基于 Kubernetes 和 Rancher 的容器化运行集群。
第 5 章日志采集
本章介绍了微服务系统整体端到端的日志采集,包括日志输出、日志采集、日志收集与处理、日志存储和日志展示等环节。首先介绍了基于 Filebeat 和 ELK 的日志采集模型,充分利用 Elasticsearch 的全文检索能力以及 Kibana 丰富的图形化展示能力。其次介绍了微服务基于 Spring Boot 的日志输出配置,配置分为开发环境、测试环境和生产环境。最后按照日志采集模型,分别介绍了日志采集、日志汇集与日志展示。
日志采集首先是容器的日志目录挂载,然后使用 Filebeat 进行日志采集工作。日志汇集就是日志经过 Filebeat 采集后,输出到 Logstash 组件集中进行日志格式的转换,然后汇集到 Elasticsearch 组件和磁盘日志文件中。日志汇聚存储在磁盘文件中,供开发人员和维护人员使用 Shell 脚本查看日志。日志汇集存储在 Elasticsearch 组件中,供 Kibana 进行图形化查询和展示,可以绘制组合出丰富的图表和仪表板。
第 6 章调用链跟踪
本章首先介绍了调用链追踪的概念,阐述了服务调用的 Trace 和 Span 的内涵。然后介绍了 Spring Cloud 调用链跟踪模型中的 Sleuth 组件和 Zipkin 组件,同时介绍了 SpringCloud 调用链跟踪模型。
最后介绍了 Sleuth+Zipkin 调用链追踪技术,在开发环境、测试环境和生产环境中的配置,以及调用链数据存储在 Elasticsearch 组件中,同时介绍了如何在 Zipkin 和 Kibana 中图形化展示与检索调用链信息。
第 7 章熔断器
本章首先介绍了微服务中熔断器的概念,然后介绍了 Spring Cloud 中熔断器 Hystrix 的特点。最后介绍了熔断器相关的 Maven 依赖配置、熔断器的使用代码编写和熔断器的图形化展示与监控。
第 8 章容器化与服务编排
本章介绍了容器化、虚拟机及服务编排等内容,重点介绍了生产环境中应用镜像的构建过程。镜像包括母镜像、基础镜像和应用镜像,同时介绍了应用镜像的基础构建方法。
服务编排方面主要介绍了基于 Rancher 的 Kubernetes 容器服务编排平台,结合生成实践介绍如何使用 Rancher 进行微服务的创建、升级,以及目录挂载如何操作、环境变量如何配置等。最后结合生产项目中使用 Nginx 做其他微服务的负载均衡的工作负载,介绍了如何创建 Config Map,以及如何使用 Config Map 等。
第 9 章系统监控
本章首先对系统监控进行了概述,包括主机监控、安全监控、中间件监控、业务监控、容器监控等。然后介绍了 Kubernetes 集群常用的监控方案,通常选择基于 Node Exporter、Prometheus 和 Grafana 的监控体系。
接下来依次对 Node Exporter、Prometheus 和 Grafana 组件的部署文件进行了说明,最后结合 Grafana 组件的图形化仪表板介绍了 Grafana 组件功能强大、类型丰富的图形化展示能力。
第 10 章持续集成部署
本章简单介绍了持续集成和持续部署的概念,以及持续集成部署的模型,重点介绍了基于 Kubernetes 容器化平台、Rancher 容器编排平台,以及 Jenkins 流水线的 CICD 的生产实践。
需要这份 《微服务容器化开发实战》 的小伙伴 ——【点这,快速入手通道】
评论