• 云原生落地:企业级DevOps实践
  • 云原生落地:企业级DevOps实践
21年品牌 40万+商家 超1.5亿件商品

云原生落地:企业级DevOps实践

全新正版 极速发货

76.98 7.1折 109 全新

库存2件

广东广州
认证卖家担保交易快速发货售后保障

作者应阔浩 等

出版社机械工业出版社

ISBN9787111710455

出版时间2022-08

装帧平装

开本16开

定价109元

货号31524753

上书时间2024-06-02

书香美美

已实名 已认证 进店 收藏店铺

   商品详情   

品相描述:全新
商品描述
前言

为什么要写这本书
数年前读吴军老师的《浪潮之巅》,书中写到100多年来,总有一些公司很幸运地、有意识或无意识地站在技术革命的浪尖之上。在这十几年间,它们代表着科技的浪潮,直到下一波浪潮的来临。随着时代的发展,用户的需求在不断改变,技术也在不断地推陈出新。
10年前,云计算的概念被炒得火热,犹记得当时偶遇多年不见的高中同学,问及近期的工作,他说在读研,搞云计算方向,当时我感觉他一定是被导师“忽悠”了—“云计算”太虚无缥缈了,一如今天的“元宇宙”。
质疑阻挡不了技术前进的脚步,新技术对于一些企业来说,往往从最开始的“看不见”,到后来“看不起”,再到“看不懂”,最后终于“跟不上”了。经过10年的演进,无论国外还是国内,云计算的概念已经耳熟能详,上云已经成为许多中小互联网公司的首选。
在“云”这种基础设施平台“摸爬滚打”的10年中, 技术架构也在进行着不断的突破。最开始接触Spring Cloud是在2015年,看Spring官网推出了一套组件,网关、负载均衡、熔断器、定时任务,一套框架全部搞定。这大概就是《增长黑客》中提到“啊哈时刻”。后来公司开始提供多种通用的组件包,Spring Cloud在公司内部逐渐流行。
后来机缘巧合下做一个印度项目,阿里系的技术栈一时间都打了水漂,全都没法用,阿里云在印度也没有节点。为了支持业务,只能闭门造轮子,从开源的ELK取代EagleEye开始入手,重新搭建了一套监控报警体系。为了便于ELK集群的反复快捷构建,不得不去熟悉Dockerf?ile、Compose等新技术。
对于云、以Spring Cloud为代表的微服务、Docker来说,有的工程师可能接触得较晚,而CI/CD对于每一个工程师来说都是一入行便形影不离的体系。犹记得2011年京东的早期发布流程,10个步骤可能有5个步骤都是线下进行的,每次发布都会排队到凌晨,我们今天说的“敏捷”“持续”,在当时看来简直就是神话。直至后来体验了阿里的Aone,我才感受到原来应用发布还可以如此“丝滑”。
对于云原生的实践,完全是来自架构师对新技术的尝试,如同网游中出了新的角色,总想去充值抽卡一样。2018年的自如技术故障连连,发布的问题、环境的问题尤为凸显,因此保障中心最先动手的就是容器化和CI/CD。云当然是第一选择,我们发现当时很多云厂商的云原生配套基本也是在试点阶段,同时Kubernetes已经是众星捧月般的存在了,因此当时的形势造就了自研云原生的落地。
后来的几年间,各大互联网技术会议都少不了云原生相关话题的讨论。自如作为同类型的中型互联网企业,在落地云原生的过程中,有很多共性的问题,于是,我也想把落地过程中的思考、选择、实施路径、走的弯路等一一呈现给大家,期待能够为更多热爱云原生、拥抱新技术的团队提供一些值得借鉴的经验。
读者对象
技术无边界,本书对于广大工程师群体皆适用,尤其适合以下读者阅读。
架构师群体
SRE(Site Reliability Engineer,站点可靠性工程师)或应用运维工程师
想了解容器化转型的运维工程师
想进行开发提效的基础架构工程师
想进行服务网格实践的工程师
DevOps团队
技术负责人、运维负责人、CTO
本书特色
与其他讲解云原生的图书不同,本书会缩减关于云原生理论部分的篇幅,侧重讲解实践。比如:运维侧后台系统如何选择,容器化迁移如何分阶段实施,Kubernetes中的网络模型、存储模型、日志模型如何建设,基于client-go如何做业务功能开发,等等。同时,在开发侧,会给大家呈现建设CI/CD的元数据如何定义,分支模型、环境模型如何统一标准,如何降低研发人员的使用门槛,配套的工具有哪些等内容。
如何阅读本书
本书分为4个部分。
第一部分“云原生基础”(第1~4章) 第1~3章简单介绍了云原生的发展历史、自如技术的发展历程和选择云原生落地的背景。第4章对Docker的核心概念做了简要回顾,没有接触过容器的读者可以阅读此部分,对容器的核心概念做一个宏观了解。
第二部分“云原生落地”(第5~9章) 第5章对Kubernetes的核心概念做了介绍,第6、7章讲解了Kubernetes管理后台以及核心组件如何选择。第8、9章面向企业级的定制开发,对必备的client-go核心组件做了深入剖析。
第三部分“云原生发布平台”(第10~14章) 第10、11章重点对环境、分支等概念做了统一,为后续的CI/CD落地奠定基础。第12、13章分别从持续集成和持续部署两个方面具体介绍云原生架构下的具体实现,比如镜像如何管理、集成工具如何选择、流水线怎么构建、资源如何管理、发布策略如何定义等。第14章介绍一些常用的工具,为整个CI/CD工具锦上添花。
第四部分“云原生迭代”(第15~17章) 第15章侧重讲解平台的推广与运营,第16章对服务网格的落地做了重点展现,比如接入Istio的方法、数据面的配置、限流熔断的实现等内容。第17章是对整本书的总结,重点介绍了在云原生实践过程中的得与失,并提供一些鲜活的案例供读者参考。
勘误和支持
由于作者的水平有限,加之编写时间仓促,书中难免会出现错误或者表述不准确的地方,恳请读者批评指正。
致谢
感谢所有致力于云原生实践的同行,本书的很多实践案例和思路都源于他们的杰出成果。
感谢机械工业出版社华章分社的编辑老师杨福川和韩蕊,他们在这一年多的时间里始终支持我们的写作,鼓励、帮助和引导我们顺利完成书稿写作。
最后感谢在背后支持我们的家人,感谢他们的无声支持!

应阔浩
2022年7月



 
 
 
 

商品简介

作者简介
作者简介<br>应阔浩<br>自如技术平台负责人,负责自如网基础架构的研发与技术标准的管理。具备10年京东、阿里等一线互联网公司的架构开发与运维经验,是一位实战型的技术管理者。CCFTF工程师文化SIG主席、中商联智库顾问专家、华为云MVP。关注前沿科技,喜欢挑战现状,拥抱新技术并尝试落地到企业实战中,渴望通过技术助力业务增长。<br>李建宇<br>自如运维保障中心负责人,在Linux性能调优、虚拟化、微服务架构方面有较深的研究与实战经验。热衷于探索更好的架构方案,推动工程效能与稳定性提升。目前致力于带领团队在云原生领域持续实践,助力企业数字化转型。<br>付天时<br>自如运维保障中心SRE负责人、架构师。负责自如网云原生落地、PaaS平台的开发、ServiceMesh落地、中间件的治理和维护、自动化运维平台的开发、SLA的保障等工作。热衷于SLA、效能、成本的优化。认为一个合格的SRE需要具备扎实的技术功底,善于在实践中总结出方法论,具备组织与协调各技术部门并推进技术落地的能力。<br>赵耀<br>自如基础架构负责人,云平台架构师。有10余年一线研发经验,擅长分布式系统架构设计。在自如负责持续交付平台、中间件平台以及监控告警体系的构建。对容器、云原生领域有浓厚兴趣,完整参与了自如的云原生落地从0到60分的过程。

目录
赞誉

前言
第一部分 云原生基础
第1章 云原生概述  3
1.1 云原生的概念  3
1.1.1 初识云原生  3
1.1.2 官方的定义  6
1.2 云原生的特性  8
1.3 微服务  14
1.3.1 微服务与单体架构的区别  14
1.3.2 什么是微服务  14
1.3.3 微服务架构的优点  15
1.4 容器化  16
1.4.1 虚拟化与容器化的区别  16
1.4.2 容器化的核心原理  18
1.4.3 Docker的优点  20
1.5 编排  21
1.5.1 为什么要有编排  21
1.5.2 什么是编排  22
1.5.3 编排的优点  22
1.6 CI/CD  23
1.6.1 CI/CD诞生的背景  23
1.6.2 什么是CI/CD  23
1.6.3 CI/CD的优点  25
1.7 服务网格  26
1.7.1 服务网格诞生的背景  26
1.7.2 什么是服务网格  27
1.7.3 服务网格的优点  28
1.8 不可变基础设施和声明式API  28
1.8.1 什么是不可变基础设施  28
1.8.2可变与不可变基础设施之间的差异  30
1.8.3 不可变基础设施的优点  30
1.9 本章小结  31
第2章 自如架构演进  32
2.1 技术架构的演进  32
2.1.1 架构的定义与分类  33
2.1.2 单体架构  34
2.1.3 分布式架构  35
2.1.4 微服务架构  36
2.1.5 中台架构  37
2.2 自如的技术发展史  39
2.2.1 业务背景介绍  39
2.2.2 自如的技术演进过程  40
2.2.3 当前技术架构  40
2.3 自如技术架构遇到的问题  41
2.3.1 稳定性问题  42
2.3.2 研发效率问题  43
2.3.3 流程体系问题  43
2.4 本章小结  45
第3章 开启云原生之路  46
3.1 制定云原生战略  46
3.1.1 行业趋势分析  46
3.1.2 战略方向分析  47
3.2 建设DevOps体系  50
3.2.1 DevOps体系的发展方向  50
3.2.2 开发能力差距分析  51
3.2.3建设DevOps体系的路线图  54
3.3 从KVM迁移到Docker  55
3.3.1 现状分析  55
3.3.2 按环境迁移  57
3.3.3 按业务线迁移  58
3.4 本章小结  58
第4章Docker的基础知识与核心原理  59
4.1 容器与Docker  59
4.1.1 虚拟化技术  60
4.1.2 容器技术  60
4.1.3 Docker架构  61
4.1.4 Docker安装与命令  62
4.1.5 Docker常用命令  63
4.2 镜像管理  64
4.2.1 什么是镜像  64
4.2.2 镜像仓库服务  64
4.2.3 镜像的创建与操作  65
4.2.4 Dockerf?ile  65
4.3 Docker网络管理  67
4.4 容器核心原理  68
4.4.1 Namespace资源隔离  68
4.4.2 Cgroups资源限制  69
4.4.3 联合文件系统  69
4.4.4 runC  70
4.5 本章小结  72
第二部分 云原生落地
第5章 Kubernetes基础知识  75
5.1 初识Kubernetes  75
5.1.1 Kubernetes架构  76
5.1.2 Kubernetes核心概念  76
5.1.3 Kubernetes设计理念  78
5.2 Kubernetes资源对象  79
5.2.1 Pod  79
5.2.2 集群资源管理  80
5.2.3 控制器  80
5.2.4 Service   81
5.3 Kubernetes网络体系  82
5.3.1 Kubernetes网络模型  83
5.3.2Kubernetes网络的主要实现方案  83
5.3.3 Kubernetes网络中Pod的通信  84
5.4 存储体系  84
5.4.1 ETCD  84
5.4.2 Conf?igMap  86
5.4.3 Volume  86
5.4.4 Persistent Volume  86
5.4.5 Storage Class  87
5.5 命令工具  87
5.5.1 集群管理  88
5.5.2 集群维护  88
5.6生产级高可用Kubernetes集群方案  89
5.6.1 Kubernetes部署方案  89
5.6.2 Kubernetes部署架构  90
5.6.3 Kubernetes多集群部署架构  92
5.7 本章小结  93
第6章 运维管理后台方案选型  94
6.1 Wayne  95
6.2 Rancher  96
6.3 常用公有云  97
6.3.1 阿里云  97
6.3.2 腾讯云  98
6.3.3 华为云  98
6.4 运维管理方案对比  99
6.5 本章小结  100
第7章 云原生基础组件选型  101
7.1 持久化存储方案  102
7.1.1 存储的选型  102
7.1.2Ceph在Kubernetes中的使用  104
7.2 镜像管理  107
7.2.1 高可用镜像方案  108
7.2.2 镜像清理策略  111
7.3 Ingress实战  112
7.3.1 什么是Ingress-nginx  113
7.3.2多集群多机房高可用负载均衡架构设计  115
7.4 日志采集和展示  117
7.4.1云原生下日志采集的3种方式  117
7.4.2 日志采集设计思路  118
7.4.3 日志效果展示  120
7.4.4 注意事项和思考  122
7.5 监控告警  123
7.5.1 Prometheus Operator  123
7.5.2 告警系统的存储选型  125
7.6 网络方案  126
7.6.1 Flannel网络  127
7.6.2 Calico网络  129
7.6.3 直接路由  129
7.6.4 网络方案对比  130
7.6.5 直接路由方案落地实践  131
7.7 本章小结   133
第8章 Kubernetes开发实战  134
8.1 初识client-go  134
8.1.1 client-go客户端对象  135
8.1.2 KubeConf?ig集群配置  136
8.2 client-go核心组件Informer  137
8.2.1 Informer介绍  138
8.2.2 Informer的架构设计  138
8.2.3 面向用户的Informer资源  140
8.2.4 Ref?lector  142
8.2.5 DeltaFIFO  148
8.2.6 Indexer  152
8.2.7 WorkQueue  154
8.2.8 EventBroadcaster  156
8.2.9 大管家Controller  157
8.3 client-go实战开发  158
8.3.1 连接Kubernetes集群  158
8.3.2对Kubernetes资源对象进行增删改查  162
8.3.3 并发控制  165
8.4 本章小结  166
第9章使用client-go构建企业级PaaS平台  167
9.1 PaaS平台常用功能实战  167
9.1.1 申请应用的资源  167
9.1.2 应用活性检测策略  169
9.1.3 展示应用容器状态  170
9.1.4 离线故障应用容器  171
9.1.5 重启应用容器  172
9.2 PaaS平台进阶功能实战  172
9.2.1 容器Web终端  173
9.2.2 发布完成通知  180
9.3PaaS平台企业级发布功能开发实战  182
9.3.1 灰度发布  182
9.3.2云原生下金丝雀发布的实现原理  184
9.3.3 佳实践  185
9.3.4Kubernetes Operator预热基础概念  187
9.3.5开发一个生产级金丝雀Operator  190
9.4 本章小结  212
第三部分 云原生发布平台
第10章 元数据管理  215
10.1 应用管理  216
10.2 环境管理  218
10.2.1 开发环境和临时环境  219
10.2.2 测试环境与稳定环境  220
10.2.3 日常环境  221
10.2.4 预发环境  222
10.2.5 生产环境和Beta环境  222
10.2.6 环境的后台实现  223
10.3 资源管理  224
10.4 配置管理  226
10.4.1 配置文件管理  226
10.4.2 配置中心  227
10.5 本章小结  228
第11章 分支管理  229
11.1 分支模型的选择  229
11.1.1 Gitf?low  229
11.1.2 主干开发模型  232
11.1.3  Aone Flow  233
11.2 实践Aone Flow的准备工作  236
11.2.1 分支命名规范  236
11.2.2 特性分支  236
11.2.3 与GitLab集成  238
11.3 Aone Flow的实践  240
11.3.1 创建第一个特性分支  240
11.3.2解决单一代码库分支复用问题  240
11.3.3 创建发布分支  241
11.3.4 合并到发布分支  242
11.3.5 分支冲突与解决  243
11.3.6 分支上线  245
11.4 本章小结  245
第12章 持续集成  246
12.1 从源码到镜像  246
12.1.1 手动构建应用镜像  246
12.1.2通过Maven插件生成Dockerf?ile  247
12.1.3 多阶段构建   247
12.1.4 标准化构建流程  249
12.1.5 构建声明式镜像  253
12.2 CI工具选型  255
12.2.1 Jenkins还是GitLab CI  255
12.2.2GitLab Runner的安装与配置  256
12.2.3应用.gitlab-ci.yml初始化  257
12.3 流水线  259
12.3.1 如何定义流水线  259
12.3.2 发布流水线  262
12.3.3为什么不支持完全自定义编排  264
12.4 本章小结  265
第13章 持续部署  266
13.1 Kubernetes资源管理  266
13.1.1Namespace与集群规划  267
13.1.2 集群拆分  268
13.1.3 Kubernetes资源管理  270
13.2 发布策略  278
13.2.1 填写部署单  278
13.2.2 金丝雀发布  279
13.2.3 分批发布  282
13.3 优雅发布  282
13.3.1 容器探针  282
13.3.2 摘除容器流量  283
13.4 回滚  286
13.5 本章小结  287
第14章 配套工具  288
14.1 研发工具集成  288
14.1.1 集成Arthas   288
14.1.2 Pinpoint链路追踪  289
14.1.3  Apollo配置中心集成  290
14.2 特性环境  291
14.2.1 环境治理  292
14.2.2 环境申请  293
14.2.3 流量隔离  293
14.3 数据驱动优化  304
14.3.1 找到黄金指标  305
14.3.2 仪表盘  306
14.4 本章小结  311
第四部分 云原生迭代
第15章 从试运行到100%覆盖  315
15.1 从0开始  315
15.1.1 内部试点  315
15.1.2 OS与Omega并存阶段  316
15.2 从1%到10%  317
15.2.1 外部宣导:寻找早期用户  317
15.2.2 横向运营:覆盖新增应用  317
15.2.3 纵向运营:覆盖某业务线  317
15.3 从10%到90%  317
15.3.1 OKR管理  318
15.3.2 迭代优化  318
15.4 从90%到100%  319
15.5 本章小结  320
第16章基于Istio的Service Mesh  321
16.1 Service Mesh  321
16.1.1 微服务带来的挑战  321
16.1.2  微服务治理的3种方式  323
16.1.3  初步了解Istio  325
16.1.4  Istio提供的三大能力  327
16.2开始接入Istio:精准拦截服务的流量  328
16.2.1  我只想治理HTTP的流量  329
16.2.2  Inbound和Outbound  329
16.2.3 设置流量的拦截策略  331
16.2.4iptables策略的创建流程和源码分析  333
16.2.5 精准拦截HTTP流量  337
16.3  数据面的配置管理  338
16.3.1 Sidecar注入原理  338
16.3.2 管理Envoy代理日志  341
16.3.3 定义容器的启动顺序  343
16.3.4 注入iptables管理容器  346
16.4 HTTP的流量治理实践  350
16.4.1 Istio的数

—  没有更多了  —

以下为对购买帮助不大的评价

此功能需要访问孔网APP才能使用
暂时不用
打开孔网APP