首页  软件  游戏  图书  电影  电视剧

请输入您要查询的图书:

 

图书 精通API架构:设计、运维与演进
内容
编辑推荐
大多数联网的组织都在构建和运维 API,这是客户开始与公司服务交互的门户。设计、构建和管理这些关键程序会影响组织中从工程师和产品所有者到优选管理层的每一个人。但开发人员和解决方案架构师面临的真正挑战是从头开始创建 API 平台。
通过本书,你将学习构建和测试 REST API 的策略,这些REST API 使用 API 网关在微服务级别组合产品。三位作者解释了如何通过基础架构微调帮助工程师团队和组织平滑迁移到云,并创造使用服务网格等技术连接内部服务的机会。
通过阅读本书,你将:
·学习构建 API 平台的 API 基础知识和架构模式。
·使用实际示例来了解如何设计、构建和测试基于 API 的系统。
·部署、运维和配置 API 平台的关键组件。
·根据案例研究合理使用 API 网关和服务网格。
·了解 API 架构中的核心安全性和常见漏洞。
·使用威胁建模以及 OAuth2 和 TLS 等技术保护数据和 API。
·了解如何将现有系统向 API 和云架构演进。
内容推荐
本书分为四部分,共十章,提供了关于设计、运维和演进API架构的全景图。本书以一个虚拟的案例贯穿始终,即如何通过小步快跑的策略,将一个用三层架构方式设计的传统应用系统迭代为一个基于API的现代架构。全书囊括了从设计、测试、运维、安全、部署和发布等整个软件生命周期的各个环节,其中第一部分介绍API的设计、构建和测试,第二部分介绍如何开展API流量管理,第三部分阐述API运维、发布和安全管理之道,第四部分介绍API架构的迭代演进,本书内容贴近实践,易于理解和应用。
目录
目录<br />序1<br />前言3<br />第0章 导论11<br />0.1 架构之旅11<br />0.2 API简介12<br />0.3 真实示例:会议系统案例研究13<br />0.3.1 会议案例研究中的 API 类型14<br />0.3.2 改进会议系统的原因15<br />0.3.3 从分层架构到API建模15<br />0.3.4 案例研究:演进步骤15<br />0.3.5 API 基础设施和流量模式17<br />0.3.6 会议系统案例研究的路线图17<br />0.4 使用C4图表18<br />0.4.1 C4上下文关系图18<br />0.4.2 C4容器图18<br />0.4.3 C4 组件图18<br />0.5 使用架构决策记录19<br />0.5.1 参会者演进ADR20<br />0.5.2 精通API:ADR指南20<br />0.6 小结21<br />第一部分 设计、构建和测试API<br />第1章 设计、构建和规范API25<br />1.1 案例研究:设计参会者API25<br />1.2 REST介绍26<br />1.2.1 通过示例介绍REST和HTTP26<br />1.2.2 Richardson成熟度模型27<br />1.3 RPC API介绍28<br />1.4 GraphQL简要介绍29<br />1.5 REST API标准和结构29<br />1.5.1 集合和分页31<br />1.5.2 过滤集合32<br />1.5.3 错误处理32<br />1.5.4 ADR指南:选择API标准33<br />1.6 使用OpenAPI规范定义REST API33<br />1.7 OpenAPI规范的实际应用34<br />1.7.1 代码生成34<br />1.7.2 OpenAPI验证34<br />1.7.3 示例和模拟35<br />1.7.4 检测变更35<br />1.8 API版本控制35<br />1.8.1 语义化版本控制36<br />1.8.2 OpenAPI规范和版本控制37<br />1.9 用gRPC实现RPC38<br />1.10 交互建模和API格式选择40<br />1.10.1 高流量服务40<br />1.10.2 大尺寸交互负载40<br />1.10.3 HTTP/2的性能优势41<br />1.10.4 旧格式处理41<br />1.11 指南:交互建模41<br />1.12 同时使用多个规范42<br />1.12.1 是否存在黄金规范42<br />1.12.2 合并规范的挑战43<br />1.13 小结43<br />第2章 API接口测试45<br />2.1 本章的会议系统场景46<br />2.2 测试策略46<br />2.2.1 测试四象限47<br />2.2.2 测试金字塔48<br />2.2.3 用于测试策略的ADR指南50<br />2.3 契约测试50<br />2.3.1 契约测试的益处51<br />2.3.2 契约的实现方式51<br />2.3.3 ADR指南:契约测试55<br />2.4 API组件测试56<br />2.4.1 契约测试和组件测试的比较57<br />2.4.2 案例研究:用组件测试进行验证57<br />2.5 API集成测试58<br />2.5.1 使用存根服务器的好处和方法59<br />2.5.2 ADR指南:集成测试60<br />2.5.3 容器化测试组件:Testcontainers61<br />2.5.4 案例研究:使用Testcontainers验证集成61<br />2.6 端到端测试62<br />2.6.1 自动化端到端验证63<br />2.6.2 端到端测试的类型64<br />2.6.3 ADR指南:端到端测试64<br />2.7 小结65<br />第二部分 API流量管理<br />第3章 API网关:入口流量管理69<br />3.1 API网关是专享解决方案吗69<br />3.2 指南:代理、负载均衡器或API网关70<br />3.3 案例研究:向消费者提供参会者服务71<br />3.4 什么是API网关71<br />3.5 API网关能提供哪些功能72<br />3.6 在哪里部署API网关72<br />3.7 API网关如何在网络边缘与其他技术集成73<br />3.8 为何使用API网关74<br />3.8.1 减少耦合:前端和后端之间的适配器/外观75<br />3.8.2 简化调用方式:聚合/转换后端服务75<br />3.8.3 保护API免受过度使用和滥用:威胁检测和防范76<br />3.8.4 了解API是如何被使用的:可观测性77<br />3.8.5 将API作为产品进行管理:API生命周期管理78<br />3.8.6 商业化API:账户管理、计费和支付79<br />3.9 API网关的现代史80<br />3.9.1 20世纪90年代以后:硬件负载均衡器80<br />3.9.2 21世纪00年代以后:软件负载均衡器80<br />3.9.3 21世纪00年代中期:应用程序交付控制器81<br />3.9.4 21世纪10年代初:第一代API网关82<br />3.9.5 2015年以后:第二代API网关82<br />3.10 当前API网关分类83<br />3.10.1 传统企业网关84<br />3.10.2 微服务/微网关84<br />3.10.3 服务网格网关84<br />3.10.4 不同类型API网关比较84<br />3.11 案例研究:使用API网关改进会议系统85<br />3.11.1 在Kubernetes中安装Ambassador Edge Stack87<br />3.11.2 配置URL路径到后端服务的映射87<br />3.11.3 使用基于主机的路由配置映射88<br />3.12 部署API网关:了解和管理故障88<br />3.12.1 API网关成为单点故障89<br />3.12.2 检测问题并接管89<br />3.12.3 解决事故和故障89<br />3.12.4 防范风险90<br />3.13 常见的API网关实现陷阱90<br />3.13.1 API网关回路91<br />3.13.2 API网关作为ESB91<br />3.13.3 从上到下都是“乌龟”(API网关)91<br />3.14 选择API网关92<br />3.14.1 明确需求92<br />3.14.2 自建还是购买92<br />3.14.3 ADR指南:选择API网关92<br />3.15 小结93<br />第4章 服务网格:服务间流量管理95<br />4.1 服务网格是专享解决方案吗95<br />4.2 指南:你应该采用服务网格吗96<br />4.3 案例研究:把议程功能提取成服务96<br />4.4 什么是服务网格98<br />4.5 服务网格能提供什么功能99<br />4.6 服务网格部署在何处100<br />4.7 服务网格如何与其他网络技术集成100<br />4.8 为何使用服务网格102<br />4.8.1 对路由、可靠性和流量管理的精细化控制102<br />4.8.2 提供透明的可观测性105<br />4.8.3 强化安全性:传输安全、验证和授权105<br />4.8.4 支持多语言的跨职能通信105<br />4.8.5 分离入站流量管理和服务间流量管理106<br />4.9 服务网格的演进历史107<br />4.9.1 早年历史和动机107<br />4.9.2 实现方式109<br />4.10 服务网格分类法114<br />4.11 案例研究:使用服务网格来实现路由、可观测性和安全性115<br />4.11.1 用Istio进行路由选择115<br />4.11.2 用Linkerd观测流量117<br />4.11.3 用Consul进行网络分段119<br />4.12 部署服务网格:理解并管理故障121<br />4.13 常见的服务网格实施误区121<br />4.13.1 服务网格作为ESB121<br />4.13.2 服务网格作为网关121<br />4.13.3 太多的网络层122<br />4.14 选择服务网格122<br />4.14.1 明确需求122<br />4.14.2 自建还是购买122<br />4.14.3 检查清单:选择服务网格123<br />4.15 小结124<br />第三部分 API运维与安全<br />第5章 部署和发布API127<br />5.1 分离部署和发布127<br />5.1.1 案例研究:功能开关128<br />5.1.2 流量管理130<br />5.2 案例研究:建模会议系统的发布130<br />5.2.1 API生命周期130<br />5.2.2 将发布策略映射到生命周期131<br />5.2.3 ADR指南:使用流量管理和功能开关将发布与部署分离132<br />5.3 发布策略132<br />5.3.1 金丝雀发布133<br />5.3.2 流量镜像134<br />5.3.3 蓝绿发布135<br />5.4 案例研究:使用Argo Rollouts执行部署过程136<br />5.5 监控成功和识别失败139<br />5.5.1 可观测性的三大支柱140<br />5.5.2 API的重要指标140<br />5.5.3 读取信号141<br />5.6 有效软件发布的应用程序决策142<br />5.6.1 响应缓存142<br />5.6.2 应用层标头传播142<br />5.6.3 协助调试的日志143<br />5.6.4 考虑使用理念型平台143<br />5.6.5 ADR指南:理念型平台143<br />5.7 小结144<br />第6章 运维安全性:API的威胁建模145<br />6.1 案例研究:将OWASP应用于参会者API145<br />6.2 忽略外部API安全的风险146<br />6.3 威胁建模101147<br />6.4 以攻击者思维思考148<br />6.5 如何进行威胁建模149<br />6.5.1 第1步:确定目标149<br />6.5.2 第2步:收集正确的信息150<br />6.5.3 第3步:分解系统150<br />6.5.4 第4步:识别威胁—以STRIDE为例150<br />6.5.5 第5步:评估威胁的风险159<br />6.5.6 第6步:验证162<br />6.6 小结162<br />第7章 API 身份验证和授权163<br />7.1 身份验证163<br />7.1.1 使用令牌进行最终用户身份验证164<br />7.1.2 系统对系统的认证165<br />7.1.3 为什么不能将密钥和用户混用165<br />7.2 OAuth2166<br />7.2.1 授权服务器在API交互中的角色167<br />7.2.2 JSON网络令牌167<br />7.2.3 OAuth2授权的术语和机制170<br />7.2.4 ADR指南:我是否应该考虑使用OAuth2171<br />7.2.5 授权码授权171<br />7.2.6 刷新令牌175<br />7.2.7 基于客户端凭据的授权175<br />7.2.8 其他OAuth2授权方式176<br />7.2.9 ADR指南:选择支持哪些OAuth2授权方式176<br />7.2.10 OAuth2作用域177<br />7.2.11授权执行178<br />7.3 OIDC介绍179<br />7.4 SAML 2.0181<br />7.5 小结181<br />第四部分 使用API的演进架构<br />第8章 将应用程序重新设计为API驱动的架构185<br />8.1 为何使用API来演进系统185<br />8.1.1 提取有用抽象:加强内聚186<br />8.1.2 划清领域边界:拥抱松耦合187<br />8.2 案例研究:建立参会者的领域界限188<br />8.3 最终状态架构选择188<br />8.3.1 单体架构188<br />8.3.2 面向服务的架构189<br />8.3.3 微服务189<br />8.3.4 函数189<br />8.4 管理演进过程190<br />8.4.1 明确目标190<br />8.4.2 使用适应度函数190<br />8.4.3 将系统分解成模块191<br />8.4.4 创建API作为扩展的“拼接点”193<br />8.4.5 识别系统内的变更杠杆点194<br />8.4.6 持续交付和验证194<br />8.5 用API演进系统的架构模式194<br />8.5.1 扼杀者195<br />8.5.2 外观和适配器196<br />8.5.3 API分层蛋糕架构196<br />8.6 识别痛点和机会197<br />8.6.1 升级和维护问题197<br />8.6.2 性能问题198<br />8.6.3 打破依赖性:高度耦合的API198<br />8.7 小结198<br />第9章 使用API基础设施向云平台演进200<br />9.1 案例研究:将参会者服务迁移到云环境200<br />9.2 选择云迁移策略201<br />9.2.1 保留或重审202<br />9.2.2 重新托管202<br />9.2.3 平台化改造203<br />9.2.4 重新购买203<br />9.2.5 重构/重新架构203<br />9.2.6 退役204<br />9.3 案例研究:将参会者服务迁移到云平台204<br />9.4 API管理的作用205<br />9.5 南北向与东西向:模糊的流量管理界限206<br />9.5.1 从外向内进行迁移206<br />9.5.2 跨越边界:跨网络路由206<br />9.6 从区域架构到零信任架构207<br />9.6.1 进入分区的世界207<br />9.6.2 不信任任何人并始终验证208<br />9.6.3 服务网格在零信任架构中的作用209<br />9.7 小结211<br />第10章 总结213<br />10.1 案例研究:回顾213<br />10.2 API、康威定律和组织机构218<br />10.3 了解决策类型219<br />10.4 准备好迎接未来219<br />10.4.1 异步通信219<br />10.4.2 HTTP/3220<br />10.4.3 基于平台的网格220<br />10.5 如何不断学习API架构220<br />10.5.1 不断磨炼基本功221<br />10.5.2 了解近期新行业新闻221<br />10.5.3 雷达、象限和趋势报告221<br />10.5.4 学习很好实践和用例222<br />10.5.5 寓学于练222<br />10.5.6 教学相长223<br /><br />
标签
缩略图
书名 精通API架构:设计、运维与演进
副书名
原作名
作者 [英]詹姆斯·高夫(James Gough),[英]丹尼尔·布莱恩特(Daniel Bryant),[英]马修·奥本(Matthew Auburn)
译者
编者
绘者
出版社 机械工业出版社
商品编码(ISBN) 9787111757467
开本 16开
页数 224
版次 1
装订
字数 304
出版时间 2024-07-01
首版时间
印刷时间 2024-07-01
正文语种
读者对象
适用范围
发行范围
发行模式 实体书
首发网站
连载网址
图书大类 教育考试-考试-计算机类
图书小类
重量
CIP核字
中图分类号 TP317
丛书名
印张
印次 1
出版地
整理
媒质
用纸
是否注音
影印版本
出版商国别
是否套装
著作权合同登记号
版权提供者
定价
印数
出品方
作品荣誉
主角
配角
其他角色
一句话简介
立意
作品视角
所属系列
文章进度
内容简介
作者简介
目录
文摘
安全警示 适度休息有益身心健康,请勿长期沉迷于阅读小说。
随便看

 

兰台网图书档案馆全面收录古今中外各种图书,详细介绍图书的基本信息及目录、摘要等图书资料。

 

Copyright © 2004-2025 xlantai.com All Rights Reserved
更新时间:2025/5/6 19:17:18