OReilly精品图书系列云原生:运用容器、函数计算和数据构建下一代应用
- ISBN:9787111653240
- 装帧:平装-胶订
- 册数:暂无
- 重量:暂无
- 开本:16开
- 页数:216
- 出版时间:2020-05-01
- 条形码:9787111653240 ; 978-7-111-65324-0
本书特色
探讨设计云原生应用所需的技术 介绍容器和函数计算的区别,并学习它们的适用场景 有针对性地设计应用来满足数据相关的需求 学习DevOps的基础知识和一些开发、测试、运维实践 学习一些构建和管理云原生应用的技巧、方法和实践 理解构建一个具有可移植性的应用所需的代价,并且学会对需求做出取舍
内容简介
本书旨在能够提供一些基础知识,来帮助开发者和架构师更从容地开启云原生应用之旅。本书首先介绍一些分布式系统的基本原理及其与云原生应用的关系,然后再进一步介绍容器和函数等相关技术,接着,本书会介绍服务间的通信模式、服务的弹性和数据模式,并讨论在什么情况下应该使用这些技术,*后会总结一些经验性的东西,例如如何结合DevOps方法,怎么兼顾可移植性,以及一些*佳实践。这些*佳实践对于打造一个成功的云原生应用是很好有帮助的。这本书不会手把手教你如何实现一个满足特定业务需求的云原生应用。但是在读完这本书之后,你一定会知道如何去设计、构建和运维一个成功的云原生应用。
目录
第1章 云原生简介5
1.1 分布式系统5
1.1.1 分布式系统的误区5
1.1.2 CAP定理8
1.2 十二要素应用8
1.3 可用性和服务等级协议11
1.4 本章小结12
第2章 云原生基础13
2.1 容器13
2.1.1 容器隔离等级15
2.1.2 容器编排16
2.1.3 Kubernetes概述17
2.1.4 Kubernetes和容器20
2.2 无服务器架构21
2.3 函数计算22
2.4 从虚拟机到云原生23
2.4.1 提升和转变23
2.4.2 应用的现代化改造24
2.4.3 应用的优化26
2.5 微服务26
2.5.1 微服务架构的优势27
2.5.2 微服务架构带来的挑战29
2.6 本章小结31
第3章 云原生应用的设计33
3.1 云原生应用的基础33
3.1.1 精益运营33
3.1.2 安全性35
3.1.3 可靠性与可用性36
3.1.4 可扩展性与成本37
3.2 云原生与传统架构的对比37
3.3 函数计算与服务41
3.3.1 函数计算的使用场景42
3.3.2 使用函数计算的考虑因素42
3.3.3 函数与服务的组合运用43
3.4 API设计与版本控制45
3.4.1 API的前后兼容46
3.4.2 语义版本号47
3.5 服务间的通信48
3.5.1 通信协议48
3.5.2 消息协议50
3.5.3 序列化的考虑因素50
3.5.4 幂等性51
3.5.5 请求与响应52
3.5.6 发布者与订阅者53
3.5.7 发布者/订阅者模式与请求/响应模式间的选择55
3.5.8 同步与异步56
3.6 网关56
3.6.1 路由57
3.6.2 聚合58
3.6.3 卸载59
3.6.4 网关的实现60
3.7 出口网关60
3.8 服务网格60
3.9 架构示例69
3.10 本章小结73
第4章 数据处理75
4.1 数据存储系统76
4.1.1 对象、文件和磁盘77
4.1.2 数据库78
4.1.3 流和队列80
4.1.4 区块链81
4.1.5 数据存储的选择81
4.2 多数据存储下的数据84
4.2.1 捕获数据更改85
4.2.2 将更改作为事件写入更改日志87
4.2.3 事务监管88
4.2.4 事务回滚90
4.2.5 提取、转换和加载90
4.2.6 微服务和数据湖91
4.3 客户端访问数据94
4.3.1 受限的客户令牌(代客密钥)94
4.3.2 细粒度访问控制的数据库服务95
4.3.3 GraphQL数据服务96
4.4 可快速伸缩的数据97
4.4.1 数据分片98
4.4.2 数据缓存98
4.4.3 内容分发网络99
4.5 数据分析101
4.5.1 数据流101
4.5.2 批处理101
4.5.3 对象存储上的数据湖102
4.5.4 数据湖和数据仓库102
4.5.5 分布式查询引擎103
4.6 Kubernetes中的数据库104
4.6.1 存储卷104
4.6.2 StatefulSet106
4.6.3 DaemonSet107
4.7 本章小结107
第5章 DevOps109
5.1 什么是DevOps109
5.1.1 协作109
5.1.2 自动化110
5.1.3 精益原则和流程110
5.1.4 度量111
5.1.5 分享111
5.2 测试112
5.2.1 测试替身113
5.2.2 自动化测试金字塔113
5.2.3 不同测试类型的适用时机118
5.2.4 测试节奏119
5.2.5 在生产环境中测试120
5.3 开发环境和工具122
5.3.1 开发工具123
5.3.2 开发环境126
5.3.3 本地开发环境126
5.3.4 本地开发环境结合远端集群127
5.3.5 Skaffold开发工作流127
5.3.6 将远端集群路由到本地开发环境129
5.3.7 云端开发环境129
5.4 持续集成/持续交付130
5.4.1 源代码管理131
5.4.2 构建阶段132
5.4.3 测试阶段132
5.4.4 部署阶段134
5.4.5 发布阶段136
5.4.6 发布后阶段137
5.5 监控137
5.5.1 收集指标139
5.5.2 服务的可观测性145
5.6 配置管理149
5.6.1 单一环境变量151
5.6.2 多环境变量151
5.6.3 将配置数据放入存储卷中152
5.6.4 密钥保存152
5.6.5 部署配置154
5.7 持续集成/持续交付流程示例156
5.8 本章小结159
第6章 *佳实践161
6.1 迈向云原生161
6.1.1 找个合理的理由打破巨石应用161
6.1.2 先解耦简单的服务162
6.1.3 学会小规模的运维162
6.1.4 使用防损层模式162
6.1.5 使用刀砍模式162
6.1.6 准备一个数据迁移策略164
6.1.7 重写所有模板代码164
6.1.8 重新考虑框架、语言、数据结构和数据存储164
6.1.9 淘汰老代码164
6.2 确保弹性164
6.2.1 用重试来解决瞬时故障165
6.2.2 使用有限次的重试165
6.2.3 用断路器来处理非瞬时故障166
6.2.4 优雅地降级166
6.2.5 使用隔离模式166
6.2.6 实现健康及就绪检查166
6.2.7 为容器设定CPU和内存限制166
6.2.8 实现限速和限流167
6.3 确保安全性167
6.3.1 安全性需求同其他需求一样重要167
6.3.2 在设计时就考虑安全性167
6.3.3 授予*小访问权限167
6.3.4 使用独立的账号、订阅和租客167
6.3.5 安全地存储所有密钥168
6.3.6 模糊化数据168
6.3.7 传输数据加密168
6.3.8 使用联合身份管理168
6.3.9 使用基于角色的访问控制168
6.3.10 Kubernetes pod的隔离169
6.4 处理数据169
6.4.1 使用托管数据库和数据分析服务169
6.4.2 使用*符合数据需求的存储169
6.4.3 将数据保存在多个地域或可用区中170
6.4.4 使用数据分区和复制以提高扩展性170
6.4.5 避免过度获取及频繁的I/O操作170
6.4.6 不要把业务逻辑放在数据库中执行170
6.4.7 使用类生产环境数据来测试170
6.4.8 处理瞬时故障171
6.5 性能和伸缩性171
6.5.1 设计可扩展的无状态服务171
6.5.2 使用平台的自动伸缩功能171
6.5.3 使用缓存172
6.5.4 用分区来实现超出服务限制的扩容1
作者简介
鲍里斯·肖勒 Boris Scholl是Azure计算团队的产品架构师,专注于下一代分布式系统平台和应用程序模型的研究,拥有多项有关云计算与分布式系统的专利。同时他也是Microservices with Docker on Azure一书的**作者,这本书也是*早关于如何在Azure上使用微服务和容器的书籍之一。 特伦特·斯旺森 Trent Swanson是专注于云和边缘技术的软件架构师。作为Johnson Controls 的云技术领域杰出研究员与Full Scale 180的联合创始人和顾问,他帮助了不少微软的大客户把应用迁移上云,或在云中构建应用。 彼得·加索维奇 Peter Jausovec是一名软件工程师,在软件开发和技术领域有10多年的经验。近年来,他一直致力于开发分布式系统上的云原生解决方案。
-
有限与无限的游戏:一个哲学家眼中的竞技世界
¥37.4¥68.0 -
硅谷之火-人与计算机的未来
¥14.3¥39.8 -
全图解零基础word excel ppt 应用教程
¥12.0¥48.0 -
机器学习
¥59.4¥108.0 -
深度学习的数学
¥43.5¥69.0 -
智能硬件项目教程:基于ARDUINO(第2版)
¥37.7¥65.0 -
元启发式算法与背包问题研究
¥38.2¥49.0 -
AI虚拟数字人:商业模式+形象创建+视频直播+案例应用
¥62.9¥89.8 -
UNIX环境高级编程(第3版)
¥164.9¥229.0 -
剪映AI
¥52.8¥88.0 -
深度学习高手笔记 卷2:经典应用
¥90.9¥129.8 -
纹样之美:中国传统经典纹样速查手册
¥77.4¥109.0 -
UG NX 12.0数控编程
¥24.8¥45.0 -
MATLAB计算机视觉与深度学习实战(第2版)
¥90.9¥128.0 -
界面交互设计理论研究
¥30.8¥56.0 -
UN NX 12.0多轴数控编程案例教程
¥25.8¥38.0 -
微机组装与系统维护技术教程(第二版)
¥37.8¥43.0 -
Go 语言运维开发 : Kubernetes 项目实战
¥48.2¥79.0 -
明解C语言:实践篇
¥62.9¥89.8 -
Linux服务器架设实战(Linux典藏大系)
¥84.5¥119.0