您好,欢迎来到聚文网。 登录 免费注册
微服务实战

微服务实战

  • 字数: 465000
  • 装帧: 平装
  • 出版社: 人民邮电出版社
  • 作者: (英)摩根·布鲁斯,(英)保罗·A.佩雷拉
  • 出版日期: 2020-05-01
  • 商品条码: 9787115529879
  • 版次: 1
  • 开本: 16开
  • 页数: 318
  • 出版年份: 2020
定价:¥89 销售价:登录后查看价格  ¥{{selectedSku?.salePrice}} 
库存: {{selectedSku?.stock}} 库存充足
{{item.title}}:
{{its.name}}
精选
编辑推荐
·本书涵盖微服务设计到部署的各个阶段,贯穿全书的真实案例,实战性较强。 ·本书作者技术背景深厚,均在英国有名身份识别与认证公司Onfido担任技术方向的负责人。该公司用机器学习主要从事图像识别、面部识别等技术的开发。 ·源自作者日常开发中得到的积累和感悟,带给你真实的沉浸式体验。 ·示例代码基于Python语言,可在异步社区轻松下载。
内容简介
本书主要介绍与微服务应用开发和部署相关的内容,并辅以实际示例来引导读者体验从设计到部署微服务的全过程。 全书共13章,分为4部分。第一部分介绍微服务的设计和运行,并把微服务方案运用到一个示例(SimpleBank)中;第二部分先介绍微服务应用的架构,然后通过为SimpleBank设.计新功能来讲述如何决定微服务的职责范围,还介绍了微服务的事务与查询、高可靠服务的设计以及可复用微服务框架的构建等内容;第三部分展示了微服务部署的一些很好实践,包括基于容器和调度器的部署、构建微服务交付流水线等;第四部分着重探讨微服务的可观测性以及微服务开发中“人”的因素。 通过学习本书的内容,读者将了解如何进行微服务应用的开发和部署、如何通过微服务来实现有效的持续交付,以及如何用Kubernetes、Docker和Google Containerr Engine开发实例。 本书适合了解企业级应用架构和云平台(如AWS和GcP)的中级开发人员和架构师阅读,也适合对微服务感兴趣的读者参考。
目录
第一部分概述
第1章微服务的设计与运行3
1.1什么是微服务应用4
1.1.1通过分解来实现扩展6
1.1.2核心原则7
1.1.3谁在使用微服务9
1.1.4为什么微服务是一个明智的选择10
1.2微服务的挑战12
1.2.1设计挑战13
1.2.2运维挑战15
1.3微服务开发生命周期16
1.3.1微服务设计17
1.3.2微服务部署18
1.3.3服务监控21
1.4有责任感和运维意识的工程师文化22
1.5小结23
第2章SimpleBank公司的微服务24
2.1SimpleBank公司的业务范围24
2.2微服务是否是正确的选择25
2.2.1金融软件的风险和惰性26
2.2.2减少阻力和持续交付价值27
2.3开发新功能27
2.3.1通过领域建模识别微服务28
2.3.2服务协作30
2.3.3服务编排32
2.4向外界开放服务34
2.5将功能发布到生产环境中35
2.5.1高质量的自动化部署37
2.5.2可恢复性37
2.5.3透明性38
2.6大规模微服务开发39
2.6.1技术分歧40
2.6.2孤立40
2.7接下来的内容41
2.8小结41
第二部分设计
第3章微服务应用的架构45
3.1整体架构45
3.1.1从单体应用到微服务46
3.1.2架构师的角色47
3.1.3架构准则47
3.1.4微服务应用的4层架构48
3.2微服务平台49
3.3服务层51
3.3.1功能51
3.3.2聚合与多元服务52
3.3.3关键路径和非关键路径53
3.4通信54
3.4.1何时使用同步消息54
3.4.2何时使用异步消息55
3.4.3异步通信模式55
3.4.4服务定位57
3.5服务边界58
3.5.1API网关60
3.5.2服务于前端的后端61
3.5.3消费者驱动网关62
3.6客户端63
3.6.1前端单体63
3.6.2微前端64
3.7小结65
第4章新功能设计66
4.1SimpleBank的新功能67
4.2按业务能力划分68
4.2.1能力和领域建模69
4.2.2创建投资策略70
4.2.3内嵌型上下文和服务75
4.2.4挑战和不足76
4.3按用例划分77
4.3.1按投资策略下单77
4.3.2动作和存储82
4.3.3编配与编排83
4.4按易变性划分84
4.5按技术能力划分85
4.5.1发送通知85
4.5.2何时使用技术能力86
4.6处理不确定性87
4.6.1从粗粒度服务开始88
4.6.2准备进一步分解88
4.6.3下线和迁移89
4.7组织中的服务所有权91
4.8小结92
第5章微服务的事务与查询93
5.1分布式应用的事务一致性94
5.2基于事件的通信96
5.3Saga98
5.3.1编排型Saga100
5.3.2编配型Saga102
5.3.3交织型Saga104
5.3.4一致性模式105
5.3.5事件溯源106
5.4分布式世界中的查询操作107
5.4.1保存数据副本108
5.4.2查询和命令分离110
5.4.3CQRS挑战112
5.4.4分析和报表114
5.5延伸阅读114
5.6小结114
第6章设计高可靠服务116
6.1可靠性定义117
6.2哪些会出错119
6.2.1故障源119
6.2.2连锁故障122
6.3设计可靠的通信方案125
6.3.1重试126
6.3.2后备方案128
6.3.3超时130
6.3.4断路器132
6.3.5异步通信134
6.4优选限度地提高服务可靠性135
6.4.1负载均衡与服务健康135
6.4.2限流136
6.4.3验证可靠性和容错性137
6.5默认安全140
6.5.1框架140
6.5.2服务网格141
6.6小结142
第7章构建可复用的微服务框架143
7.1微服务底座144
7.2微服务底座的目的146
7.2.1降低风险147
7.2.2快速启动147
7.3设计服务底座148
7.3.1服务发现149
7.3.2可观测性153
7.3.3平衡和限流159
7.4探索使用底座实现的特性161
7.5差异性是否是微服务的承诺163
7.6小结164
第三部分部署
第8章微服务部署167
8.1部署的重要性167
8.2微服务生产环境169
8.2.1微服务生产环境的特点169
8.2.2自动化和速度170
8.3部署服务的快捷方式171
8.3.1服务启动171
8.3.2配置虚拟机172
8.3.3运行多个服务实例173
8.3.4添加负载均衡器175
8.3.5开发者学到了什么177
8.4构建服务工件178
8.4.1工件的组成179
8.4.2不可变性179
8.4.3服务工件的类型180
8.4.4配置184
8.5服务与主机关系模型185
8.5.1单服务主机185
8.5.2单主机多静态服务185
8.5.3单主机多调度化服务186
8.6不停机部署服务187
8.7小结190
第9章基于容器和调度器的部署191
9.1服务容器化192
9.1.1镜像使用192
9.1.2构建镜像194
9.1.3运行容器197
9.1.4镜像存储199
9.2集群部署200
9.2.1pod的设计与运行201
9.2.2负载均衡204
9.2.3快速揭秘205
9.2.4健康检查208
9.2.5部署新版本服务210
9.2.6回滚215
9.2.7连接多个服务215
9.3小结216
第10章构建微服务交付流水线217
10.1让部署变得平淡217
10.2使用Jenkins构建流水线219
10.2.1构建流水线配置220
10.2.2构建镜像223
10.2.3运行测试224
10.2.4发布工件226
10.2.5部署至预发布环境227
10.2.6预发布环境230
10.2.7部署生产环境230
10.3构建可复用的流水线步骤233
10.4降低部署影响以及实现功能发布的技术235
10.4.1暗发布235
10.4.2功能标记236
10.5小结237
第四部分可观测性和所有权
第11章构建监控系统241
11.1稳固的监控技术栈241
11.1.1良好的分层监控243
11.1.2黄金标志244
11.1.3度量指标的类型244
11.1.4实践建议245
11.2利用Prometheus和Grafana监控SimpleBank246
11.2.1配置度量指标收集基础设施247
11.2.2收集基础设施度量指标——RabbitMQ253
11.2.3监控下单功能255
11.2.4告警设置257
11.3生成合理的可执行的告警261
11.3.1系统出错时哪些人需要知悉261
11.3.2症状,而非原因262
11.4监测整个应用262
11.5小结264
第12章使用日志和链路追踪了解系统行为265
12.1了解服务间的行为265
12.2生成一致的、结构化的、人类可读的日志268
12.2.1日志中的有用信息268
12.2.2结构化和可读性269
12.3为SimpleBank配置日志基础设施271
12.3.1基于ELK和Fluentd的解决方案272
12.3.2配置日志解决方案274
12.3.3配置应收集哪些日志276
12.3.4大海捞针279
12.3.5记录合适的信息281
12.4服务间的跟踪交互281
12.4.1请求关联:trace和span282
12.4.2在服务内配置链路追踪283
12.5链路追踪可视化287
12.6小结291
第13章微服务团队建设292
13.1建设高效团队292
13.1.1康威定律294
13.1.2高效团队原则294
13.2团队模型296
13.2.1按职能分组296
13.2.2跨职能分组298
13.2.3设置团队边界299
13.2.4基础设施、平台和产品300
13.2.5谁负责值班302
13.2.6知识共享303
13.3微服务团队的实践建议304
13.3.1微服务变更的驱动力305
13.3.2架构的角色305
13.3.3同质性与技术灵活性307
13.3.4开源模型307
13.3.5设计评审308
13.3.6动态文档309
13.3.7回答应用的问题310
13.4延伸阅读311
13.5小结311
附录A在Minikube上安装Jenkins312

蜀ICP备2024047804号

Copyright 版权所有 © jvwen.com 聚文网