Docker微服务架构实战
  • 推荐0
  • 收藏9
  • 浏览2.1K

Docker微服务架构实战

蒋彪 (作者) 

  • 书  号:978-7-121-35033-7
  • 出版日期:2018-11-06
  • 页  数:284
  • 开  本:16(185*235)
  • 出版状态:上市销售
  • 维护人:孙奇俏
电子书 ¥39.00
购买电子书
纸质版 ¥69.00
微服务与Docker 是近年来分布式大规模服务架构中两个主流的技术趋势,本书主要介绍中小型企业在架构落地过程中柔性地切入微服务和Docker 虚拟化的各种方法。
书中主要介绍了微服务架构的各种技术选型、微服务拆分的各项原则、传统应用向微服务架构过渡的方法论、Docker 技术原理、Docker 跨主机通信选型、Docker 与DevOps 的整合方法等要点,同时简单介绍了利用Rancher 搭建Docker 容器云平台的快速解决方案,非常适合云计算从业人员阅读、学习。
深入解析微服务、容器技术、Service Mesh原理,帮助读者快速建立微服务生态圈的全局知识体系。
蒋彪,高级架构师。2006年至今,历任程序员、技术经理、架构师、高级架构师等职,具有十余年研发及技术管理工作经验。早年在日本参与过みずほ银行(瑞穂实业银行)内部精算系统重构项目,以及东京证券交易所新一代交易系统研发项目,回国后主持过江苏三六五网、麦芽金服等公司的大型高并发互联网架构工作。主要技术领域是微服务设计、容器化部署、容器云计算、DevOps方法论、AIOps模型实战。
前言

Docker 与微服务是什么
到底什么是架构师?一名架构师的职责应该是什么?
很多年前,我作为一名架构初学者,便了解了架构师要做的事情。从方法论上来看,就是“识别利益相关者”“梳理各个层次的利益传递”和“根据利益线索设计有伸缩性的架构”。
同样,以架构师的视角来看,到底什么是微服务呢?作为架构师,我所看到的微服务,是在团队人数井喷,产品迭代周期太快,系统中的技术负债过剩导致不能将鸡蛋放到同一个摇摇欲坠的篮子,投资人对产品功能特性提出夸张、多变要求的大背景下,在投资人、经理层、研发人员、测试人员、运维人员等各个利益相关者的逼迫下,被迫地将系统从并发、扩展、易维护等维度进行的拆分。
按照微服务的思想将系统拆分之后,我们发现,拆分得越厉害,系统的信息熵就越大,因此有了系统的拆分,就要有拆分之后的治理。
比如,如何保证拆分之后应用的注册发现?如何保证拆分之后服务的熔断限流监控?如何保证服务之间底层通信的可靠性和序列化?
为此,各种各样的服务治理以及分布式服务协同框架便出现了。
那么是不是有了微服务的拆分再加上微服务的治理就足够了呢?对于开发人员而言也许足够了,但是对于运维人员而言,远远不够。拆分使得系统的健壮性大大提高,但是也使系统的发布和运维异常复杂。试想一下,如何在一个分布式的环境下令几万个微服务快速启停?如何实现几万个微服务的管理、编排与自动扩容?
为了解决这些问题,Docker 以及与Docker 关联的各种容器编排技术便出现了。
因此,如果我们站在终点回望起点,就会知道为什么会有微服务,又为什么会有Docker,乃至为什么会有今天的Service Mesh。我们可以说,这些技术的产生一脉相承,它们的根本目的都是解决系统复杂度井喷之后的系统架构问题;从学术上来说,这些技术都是在和复杂分布式架构中的信息熵进行对抗;从工程上来说,这些技术是当今时代背景催生出的必然产物。

为什么写此书
作为一名技术人员,比起知道技术的用法,更重要的是要知道如何使这项技术切合公司现有的技术栈、业务线,如何解决公司的痛点,如何在各个部门的协同下将技术实际落地。
一项技术再好,再优秀,在实际落地中也要“削足适履”,要根据公司的产品线走,跟着公司的技术现状确定如何应用。毕竟绝大多数公司的第一要务是生存与盈利,能够专职供养一支底层研究技术团队的公司少之又少,更何况是对Docker 这样的“底之又底”的技术栈。
对于一名架构师而言,当你决定引入Docker 的时候,你要知道,你在公司内引入的不是一个简单的技术框架、一个中间件、一个自动化工具,而是一种思想、一个云平台、一个新的开发习惯。
对于Docker 的引入,从入门到落地,需要架构师、运维工程师、网络工程师、研发人员、测试工程师,乃至公司高层的全面支持和协作。把Docker 用到极致,就是在建设自己的云平台和PaaS,对于这种体量的研究,若没有一个全面的规划和路线图是无法完成的。
同时,对于Docker 的引入者而言,需要学习包括Docker 底层的原理、Docker 的网络模型、Docker 的容器隔离、Docker 下的自动发布与自动运维,乃至常被很多人挂在嘴边的Docker 容器编排、Docker 与微服务、Docker 与DevOps 在内的方方面面的知识。
上述所有的知识,若能够集中在一个人身上,实在是难得。毕竟,在IT 行业,每个人都有自己的知识短板。
甚至我可以负责任地说,在很多公司中,若想找到一支能够搞定底层到上层方方面面建设的专业团队,都是很困难的。
举个例子,我见过很多Docker 实际应用的场景,在一些中型场景中,通常直接用bridge端口来转发通信,为什么会这样?因为很多公司虽然不缺少优秀的程序员,但是缺少网络方面的架构师,不懂也不敢尝试复杂的网络模式。再比如,我亲眼见到有的项目在落地的时候,采用Docker 挂载卷轴的方式发布代码,为什么?因为这些公司缺少专门的人来维护CI/CD 平台。
正是因为有这些困难,所以笔者将自己在中小型企业中推广微服务和Docker 的亲身经历和亲眼所见总结出来,从技术选型和架构切入的层面进行梳理,希望通过这本书将这些好的经验传递给需要的读者,帮助更多的人。

本书内容
本书共包括三个部分,共计13 章,每部分及每章的简要内容如下。
第一部分 Docker 与微服务基础
第1 章 微服务架构概述
本章介绍了微服务具体是什么,为什么要使用微服务,微服务的架构设计原则,以及从单体到微服务的演进过程。
第2 章 微服务中的技术选型
本章主要介绍了微服务架构中的各种技术选型,包括服务治理、服务网关、服务发现、请求链路追踪等。
第3 章 Service Mesh
本章主要介绍了目前非常前沿的一个微服务架构Service Mesh,讲述其定义、优势、发展历程以及未来可能的发展趋势。
第4 章 Docker 技术简介
本章主要介绍了Docker 技术是什么,Docker 与传统VM 的区别,Docker 的作用和优势,Docker 生态圈的现状与发展,以及微服务与Docker 的联系等。
第二部分 Docker 架构与生态
第5 章 Docker 技术架构
本章介绍了Docker 的进程模型,Docker 在宿主机上的进程特征,Docker 容器的底层实现机制,以及Docker 在运行时的技术模型。
第6 章 Docker 逻辑架构
本章介绍了Docker 中各个核心组件之间的逻辑架构关系,讲解了各个组件之间是如何进行耦合的,最后简单介绍了开源仓库Harbor 的原理和部署方式。
第7 章 Docker 网络架构
本章介绍了Docker 在单机环境下的网络通信模式,包括Bridge、Host、Container、None等,同时介绍了Docker 在跨主机集群环境下的常见网络通信模式,比如Flannel、L2-FLAT 等。
第8 章 Docker 安全架构
本章介绍了Docker 技术中常见的安全问题,比如Docker 自身隔离机制不足导致的安全缺陷、Docker 镜像被注入恶意代码导致的安全缺陷等,同时提出了一系列的Docker 安全检查基线,最后介绍了几种常见的Docker 安全工具。
第9 章 Docker 与DevOps
本章介绍了Docker 中的代码如何挂载,如何在Docker 容器中实现服务注册发现,同时介绍了Dockerfile 的写法和规范,以及如何在Docker 中收集日志、实施监控,如何与CI/CD 平台整合等。
第10 章 容器编排
本章介绍了容器编排技术的概念、用途和具体用法,列举了常见的几种容器编排技术,比如Swarm、Kubernetes 和Mesos 等,对它们进行了比较,简单介绍了它们的部署安装及使用方法。
第三部分 Docker 落地之路
第11 章 企业级Docker 容器云架构
本章介绍了在企业级环境下如何进行整体的Docker 架构设计,同时介绍了围绕着Docker建立企业级容器云平台架构的方法。
第12 章 基于Rancher 的容器云管理平台
本章介绍了基于开源PaaS 软件Rancher 建立企业级容器云平台的各类方案,以及其中各种技术难点的解决方法。
第13 章 微服务与Docker 化实战
本章介绍了如何在某条实际产品线的Docker 化落地过程中进行平滑切入,如何打通容器网络和物理网络,以及如何将产品线整合进Rancher 的容器云平台。

目录

目录

第一部分 Docker 与微服务基础 .......................................................................................... 1
第1 章 微服务架构概述 .......................................................................................................... 2
1.1 什么是微服务 ............................................................................................................... 2
1.1.1 CORBA ............................................................................................................. 3
1.1.2 DCOM ............................................................................................................... 4
1.1.3 RMI .................................................................................................................... 5
1.1.4 SOA ................................................................................................................... 7
1.2 为什么要使用微服务 ................................................................................................... 9
1.2.1 scale cube ........................................................................................................... 9
1.2.2 API 网关 .......................................................................................................... 13
1.3 微服务架构设计原则 ................................................................................................. 15
1.3.1 业务架构 ......................................................................................................... 15
1.3.2 逻辑架构 ......................................................................................................... 16
1.3.3 技术架构 ......................................................................................................... 19
1.3.4 基础架构 ......................................................................................................... 20
1.4 从单体到微服务 ......................................................................................................... 21
1.4.1 止损 ................................................................................................................. 22
1.4.2 前后端分离 ..................................................................................................... 23
1.4.3 提取服务 ......................................................................................................... 24
第2 章 微服务中的技术选型 ................................................................................................. 26
2.1 服务治理 ..................................................................................................................... 27
2.1.1 Dubbo .............................................................................................................. 27
2.1.2 Spring Cloud .................................................................................................... 30
2.2 服务网关 ..................................................................................................................... 35
2.2.1 OpenResty ........................................................................................................ 35
2.2.2 Orange ............................................................................................................. 38
2.2.3 Kong ................................................................................................................ 40
2.2.4 Zuul .................................................................................................................. 41
2.3 服务注册发现 ............................................................................................................. 43
2.3.1 ZooKeeper ....................................................................................................... 43
2.3.2 Eureka .............................................................................................................. 49
2.4 配置中心 ..................................................................................................................... 51
2.5 请求链路追踪 ............................................................................................................. 57
第3 章 Service Mesh ........................................................................................................... 64
3.1 初识Service Mesh ...................................................................................................... 64
3.1.1 什么是Service Mesh ....................................................................................... 64
3.1.2 为什么使用Service Mesh ............................................................................... 65
3.2 Service Mesh 的发展过程 .......................................................................................... 66
3.2.1 早期的分布式计算 ......................................................................................... 66
3.2.2 微服务时代的分布式计算.............................................................................. 68
3.3 主流的Service Mesh 框架 ......................................................................................... 73
第4 章 Docker 技术简介 ...................................................................................................... 75
4.1 Docker 是什么 ............................................................................................................ 75
4.2 Docker 的作用 ............................................................................................................ 77
4.2.1 用Docker 快速搭建环境 ................................................................................ 78
4.2.2 用Docker 降低运维成本 ................................................................................ 83
4.2.3 Docker 下自动发布 ......................................................................................... 84
4.3 Docker 的生态圈 ........................................................................................................ 86
4.4 微服务与Docker ........................................................................................................ 89

第二部分 Docker 架构与生态 ............................................................................................ 93
第5 章 Docker 技术架构 ...................................................................................................... 94
5.1 Docker 的进程模型 .................................................................................................... 94
5.1.1 容器中进程启动的两种模式 .......................................................................... 96
5.1.2 容器中的进程隔离模型 ............................................................................... 101
5.1.3 容器的自重启 ............................................................................................... 102
5.1.4 容器中用户权限的隔离和传递 .................................................................... 103
5.1.5 Docker 守护进程宕机的处理机制 ............................................................... 104
5.2 容器的本质 ............................................................................................................... 104
5.2.1 Namespace 解惑 ............................................................................................ 105
5.2.2 Rootfs 解惑 .................................................................................................... 106
5.2.3 CGroups 解惑 ................................................................................................ 109
5.3 Docker 容器的运行时模型 ....................................................................................... 111
第6 章 Docker 逻辑架构 .................................................................................................... 113
6.1 Docker Registry 的技术选型 .....................................................................................114
6.2 Harbor 的部署 ............................................................................................................115
第7 章 Docker 网络架构 .................................................................................................... 120
7.1 Docker 的单机网络模式 .......................................................................................... 120
7.1.1 Bridge 模式 ................................................................................................... 120
7.1.2 Host 模式 ....................................................................................................... 123
7.1.3 Container 模式 ............................................................................................... 124
7.1.4 None 模式 ...................................................................................................... 125
7.2 Docker 的集群网络模式 .......................................................................................... 126
7.2.1 Bridge 端口转发 ........................................................................................... 126
7.2.2 扁平网络 ....................................................................................................... 127
7.2.3 Flannel 模式 .................................................................................................. 130
第8 章 Docker 安全架构 .................................................................................................... 135
8.1 Docker 安全问题 ...................................................................................................... 135
8.2 Docker 安全措施 ...................................................................................................... 138
第9 章 Docker 与DevOps ................................................................................................. 148
9.1 DevOps 概要 ............................................................................................................. 148
9.2 Docker 容器的代码挂载机制 .................................................................................. 149
9.2.1 静态导入 ....................................................................................................... 149
9.2.2 动态导入 ....................................................................................................... 150
9.3 Docker 与服务发现 .................................................................................................. 150
9.4 Dockerfile 怎么写 ..................................................................................................... 164
9.5 Docker 与日志 .......................................................................................................... 172
9.6 Docker 与监控 .......................................................................................................... 176
9.7 Docker 与CI/CD ....................................................................................................... 182
9.8 Docker 给运维团队带来的挑战 .............................................................................. 184
第10 章 容器编排 ............................................................................................................... 186
10.1 容器编排概述 ......................................................................................................... 186
10.2 容器编排技术选型 ................................................................................................. 189
10.2.1 Docker Swarm ............................................................................................. 189
10.2.2 Kubernetes ................................................................................................... 191
10.2.3 Marathon ...................................................................................................... 194
10.3 Kubernetes 实战 ...................................................................................................... 197
10.3.1 Kubernetes 快速安装 .................................................................................. 198
10.3.2 在Kubernetes 上部署应用 ......................................................................... 203
10.4 Docker Swarm 实战 ................................................................................................ 210
10.4.1 Docker Swarm 的快速安装 ........................................................................ 212
10.4.2 在Decker Swarm 上部署应用 .................................................................... 214

第三部分 Docker 落地之路 ............................................................................................. 221
第11 章 企业级Docker 容器云架构 ................................................................................... 222
11.1 宏观系统视角下的架构 ......................................................................................... 222
11.2 容器云平台逻辑架构图 ......................................................................................... 223
第12 章 基于Rancher 的容器云管理平台 ......................................................................... 226
12.1 Rancher 概述 ........................................................................................................... 226
12.2 Rancher 的安装 ....................................................................................................... 227
12.3 Rancher 对IaaS 的管理 .......................................................................................... 228
12.4 Rancher 下多租户多环境的管理 ........................................................................... 236
12.5 Rancher 对SaaS 的管理 ......................................................................................... 240
12.6 Rancher 对容器的管理 ........................................................................................... 242
12.7 Rancher 的L2-FLAT 网络 ..................................................................................... 248
12.8 Rancher 的服务治理 .............................................................................................. 249
第13 章 微服务与Docker 化实战 ....................................................................................... 258
13.1 整体架构鸟瞰 ......................................................................................................... 258
13.2 基于log-pilot 的日志收集 ..................................................................................... 261
13.3 基于Zabbix 的容器监控 ........................................................................................ 263
13.4 简单的DevOps 架构图 .......................................................................................... 264
13.5 推进方案和成本 ..................................................................................................... 266

读者评论

  • 一千个读者里就有一千种Docker。

    严少安发表于 2019/3/29 18:36:17

电子书版本

  • Epub

相关图书

Kubernetes源码剖析

郑东旭 (作者)

本书主要分析了Kubernetes核心功能的实现原理,是一本帮助读者了解Kubernetes架构设计及内部原理实现的书。由于Kubernetes代码量较大,源码...

 

Kubernetes in Action中文版

Marko Luksa (作者) 李雪瓅 (译者)

本书主要讲解如何在 Kubernetes 中部署分布式容器应用。本书开始部分概要介绍了 Docker 和Kubernetes 的由来和发展,然后通过在 Kube...

¥148.00

Kubernetes容器云运维实战

闫健勇 (作者)

本书是基于《Kubernetes权威指南:从Docker到Kubernetes实践全接触》进行企业级容器云平台建设的实战指南,力图对容器云平台的建设、应用和运营...

¥89.00

Java云原生

Josh Long, Kenny Bastani (作者) 张若飞 (译者)

无论是传统IT行业,还是互联网行业,都正处于行业历史上最剧烈的变革中 :大量的系统正在从传统的IT架构转向基于云的架构, 开发模式也正在从开发和运维分工的传统模...

¥128.00

生产微服务

Susan Fowler (作者) 薛命灯 (译者)

本书全面地探讨了微服务,作者从运行超过一千个微服务的高生产准备标准中获取经验,探讨了适用所有微服务的标准,分享了使微服务处于生产就绪状态的策略,为读者展现出一个...

¥35.00

Swarm容器编排与Docker原生集群

Fabrizio Soppelsa ,Chanwit Kaewkasi (作者) 崔婧雯 (译者)

Docker Swarm作为Docker集群原生的容器编排解决方案,是Docker生态系统中的关键组件之一。《Swarm容器编排与Docker原生集群》涵盖了S...

¥39.00