Cloud Native Go:构建基于Go和React的云原生Web应用与微服务 平装 – 2017年8月4日
定价 69元
- 出版社: 电子工业出版社; 第1版 (2017年7月1日)
- 平装
- ISBN: 9787121321092
- 条形码: 9787121321092
- 品牌: 电子工业出版社
Kevin Hoffman和Dan Nemeth著的《Cloud Native Go - 基于Go和React的web云原生应用构建指南》将由电子工业出版社出版。
简介
Cloud Native Go向开发人员展示如何构建大规模云应用程序,在满足当今客户的强大需求的同时还可以动态扩展来处理几乎任何规模的数据量、流量或用户。
Kevin Hoffman和Dan Nemeth详细描述了现代云原生应用程序,阐明了与快速、可靠的云原生开发相关的因素、规则和习惯。他们还介绍了Go这种“简单优雅”的高性能语言,它特别适合于云开发。
在本书中你将使用Go语言创建微服务,使用ReactJS和Flux添加前端Web组件,并掌握基于Go的高级云原生技术。Hoffman和Nemeth展示了如何使用Wercker、Docker和Dockerhub等工具构建持续交付管道; 自动推送应用程序到平台上; 并系统地监控生产中的应用程序性能。
章节简介如下图。
关于作者
Kevin Hoffman通过现代化和以多种不同语言构建云原生服务的方式帮助企业将其应用程序引入云端。他10岁时开始编程,在重新组装的CommodoreVIC-20上自习BASIC。从那时起,他已经沉迷于构建软件,并花了很多时间学习语言、框架和模式。他已经构建了从遥控摄影无人机、仿生性安全系统、超低延迟金融应用程序到移动应用程序等一系列软件。他在构建需要与Pivotal Cloud Foundry配合使用的自定义组件时爱上了Go语言。
Kevin 是流行的幻想书系列(*The Sigilord Chronicles*,http://amzn.to/2fc8iES)的作者,他热切地期待着小终能够将自己对构建软件的热爱与对构建幻想世界的热爱结合起来。
Dan Nemeth目前在Pivotal担任咨询解决方案架构师,负责支持Pivotal Cloud Foundry。他从Commodore 64开始就一直在开发软件,从1995年起开始专业编码,使用ANSIC编写了用于本地ISP的CGI脚本。从那时起,他职业生涯的大部分时间里是作为独立顾问为从金融到制药行业提供解决方案,并使用当时流行的各种语言和框架。Dan小近接受了Go作为自己的归宿,并热情地将它用于所有的项目。
如果你发现Dan没在电脑前,他很可能就是在靠近安纳波利斯的水域玩帆船或飞钓。
下面先罗列下目录,以飨读者。
目录
云之道.. 1
云之道的优点.. 2
遵循简单.. 2
测试优先,测试一切.. 3
尽早发布,频繁发布.. 5
自动化一切.. 6
建立服务生态系统.. 7
为什么使用Go. 8
简单.. 8
开源.. 8
易于自动化和IDE自由化.. 8
本章小结.. 9
2 开始.. 11
正确的工具.. 11
配置Git 12
安装Homebrew. 12
安装Git客户端.. 13
安装Mercurial和Bazaar 13
创建Github账户.. 14
创建Go环境.. 14
配置Go工作区.. 14
检查环境.. 15
本章小结.. 16
3 Go入门.. 17
建立Hello Cloud. 18
使用基本函数.. 19
使用结构体.. 22
介绍Go接口.. 25
向结构体添加方法.. 25
Go中的接口动态类型检查.. 26
使用第三方包.. 28
创建自有包.. 30
导出函数和数据.. 31
创建包.. 31
本章小结.. 34
4 持续交付.. 35
Docker介绍.. 36
为什么要使用Docker 36
安装Docker 36
运行Docker镜像.. 38
与Wercker的持续集成.. 39
持续集成的小佳实践.. 39
为什么使用Wercker 40
创建Wercker应用程序.. 41
安装Wercker CLI 42
创建Wercker配置文件.. 43
使用Wercker进行构建.. 48
部署到DockerHub. 50
读者练习:创建完整的开发管道.. 51
高级挑战:集成第三方库.. 53
本章小结.. 53
5 在Go中构建微服务.. 55
设计API First的服务.. 55
设计Matches API 56
创建APIBlueprint 56
通过Apiary测试和发布文档.. 58
架设微服务.. 59
构建Test First的服务.. 62
创建d一个失败测试.. 63
测试LocationHeader 66
壮丽的蒙太奇:迭代测试.. 67
在云端部署和运行.. 70
创建PWS帐户.. 70
配置PCF开发环境.. 70
提交到Cloud Foundry. 71
本章小结.. 72
6 运用后端服务.. 75
设计服务系统.. 75
测试优先构建依赖服务.. 77
构建Fulfillment服务.. 78
构建Catalog服务.. 81
在服务之间共享结构化数据.. 87
客户端引用服务端包.. 88
客户端复制服务端结构.. 88
客户端与服务端引用共享包.. 89
使用服务捆绑来外部化地址与元数据.. 90
服务发现.. 93
动态服务发现.. 94
Netflix的服务发现系统Eureka 94
读者练习.. 97
进阶操作.. 97
本章小结.. 98
7 构建数据服务.. 99
构建MongoDB存储库.. 100
为什么选择MongoDB. 100
更新存储库模型.. 100
通过Go来操作MongoDB. 101
以Test-First方式编写MongoDB存储库.. 102
集成测试一个Mongo-Backed服务.. 107
集成临时MongoDB数据库.. 108
编写一个集成测试.. 110
在云中运行.. 115
后端服务的配置.. 115
本章小结.. 117
8 事件溯源和CQRS. 119
现实源自事件.. 120
幂等.. 121
隔离.. 121
可测试.. 122
可再现,可恢复.. 123
大数据.. 123
拥抱小终一致性.. 123
CQRS(命令查询责任分离)简介.. 124
事件溯源案例.. 126
天气监测.. 126
互联网汽车.. 127
社交媒体消息处理.. 127
代码示例:管理无人机舰队.. 128
构建命令处理程序服务.. 129
介绍RabbitMQ. 129
构建命令处理器服务.. 133
构建事件处理器.. 135
对事件处理器进行集成测试.. 140
构建查询处理程序服务.. 140
本章小结.. 141
9 使用Go构建Web应用程序.. 143
处理静态文件和asset 143
支持客户端.. 145
使用服务端模板.. 148
处理表单.. 150
使用cookies和会话状态.. 151
写入cookies 152
读取cookies 153
使用Wercker构建和部署.. 153
本章小结.. 155
10 云安全.. 157
保护Web应用程序.. 157
应用程序安全性选项.. 158
设置Auth0账户.. 159
构建一个OAuth安全的Web应用程序.. 160
运行安全的Web应用程序.. 164
保护微服务.. 166
客户端凭据模式概述.. 166
使用客户端凭据保护微服务.. 168
关于SSL的注意事项.. 169
隐私和数据安全.. 170
黑客不能得到你没有的.. 170
读者练习.. 172
本章小结.. 173
11 使用WebSockets. 175
WebSockets解析.. 175
WebSockets如何工作.. 176
WebSockets与服务器发送事件对比.. 177
设计WebSockets服务器 . 177
WebSockets的云原生适应性.. 178
使用消息服务创建WebSockets应用.. 180
关于框架.. 183
运行WebSockets示例.. 183
本章小结.. 184
12 使用React构建Web视图.. 185
的形势 . 186
为什么选择React 186
虚拟DOM.. 187
组件组合.. 187
响应式数据流.. 188
集中焦点.. 188
使用的便利性.. 189
React应用程序剖析.. 189
package.json文件.. 189
Webpack.config.js 文件.. 191
.babelrc文件.. 191
理解JSX和Webpack. 191
React组件.. 192
构建简单的React应用程序.. 192
不赞成的做法.. 199
测试React应用程序.. 200
进一步阅读.. 200
React网站.. 200
React书籍.. 201
其他资料 . 201
本章小结 . 201
13 使用Flux构建可扩展的UI 203
Flux介绍.. 203
dispatcher 204
store 204
view. 205
action. 205
source 205
Flux的复杂性.. 205
创建Flux应用程序.. 206
本章小结.. 215
14 创建完整应用World Of FluxCraft 217
World of FluxCraft介绍.. 218
架构概览.. 219
独立扩展、版本控制和部署.. 221
数据库不是集成层.. 221
单向不可变数据流.. 221
Flux GUI 222
Go UI宿主服务.. 223
玩家移动时序图.. 224
命令处理.. 225
事件处理.. 226
维持现实服务的状态.. 227
地图管理.. 227
自动验收测试.. 228
本章小结.. 230
15 结论.. 231
我们学到了什么.. 231
Go不是小众语言.. 231
微服务应该有多“微” 232
持续交付和部署.. 232
测试一切.. 232
尽早发布,频繁发布.. 232
事件溯源、CQRS和更多首字母缩略词.. 233
下一步.. 233
附录A 云应用的故障