Cloud Native Go - 基于Go和React的web云服务构建指南

北京植物园桃花

(题图:北京植物园桃花 Mar 26,2016)

更新于Apr 3,2017

最近在翻译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等工具构建持续交付管道; 自动推送应用程序到平台上; 并系统地监控生产中的应用程序性能。

  • 学习“云之道”:为什么开发好的云软件基本上是关于心态和规则
  • 了解为什么使用Go语言是云本地微服务开发的理想选择
  • 规划支持持续交付和部署的云应用程序
  • 设计服务生态系统,然后以test-first的方式构建它们

  • 将正在进行的工作推送到云

  • 使用事件源和CQRS模式来响应大规模和高吞吐量

  • 安全的基于云的Web应用程序:做与不做的选择

  • 使用第三方消息传递供应商创建响应式云应用程序

  • 使用React和Flux构建大规模,云友好的GUI

  • 监控云中的动态扩展,故障转移和容错

下面先罗列下目录,以飨读者。

目录

Cloud Native Go. 1

构建基于Go和React的云原生Web应用… 1

云服务构建完全指南… 1

目录… 4

前言… 8

关于作者… 9

致谢… 9

第1章 云之道… 10

云的优势… 10

崇尚简洁… 11

测试优先,测试一切… 11

尽早发布, 频繁发布… 12

自动化一切… 13

建立服务生态系统… 13

为什么使用GO?. 14

总结… 15

第2章 开始… 16

正确的工具… 16

配置Git 16

建立Go. 18

配置您的Go工作区… 18

检查环境… 19

总结… 19

第3章 Go入门… 20

建立Hello Cloud. 20

使用基本函数… 21

使用结构体… 23

介绍Go接口… 24

向结构体添加方法… 24

Go中的接口动态类型检查… 25

使用第三方包… 27

创建自己的包… 28

导出函数和数据… 28

创建包… 28

总结… 30

第4章 持续交付… 31

Docker介绍… 31

为什么要使用Docker?… 31

安装Docker 32

运行Docker镜像… 33

与Wercker的持续集成… 33

持续集成最佳实践… 34

为什么使用Wercker?… 34

安装Wercker CLI 36

创建Wercker配置文件… 36

使用Wercker进行构建… 40

部署到DockerHub. 41

读者练习:创建完整的开发管道… 42

高级挑战:集成第三方库… 42

总结… 43

第5章 在Go中构建微服务… 44

设计API First的服务… 44

通过Apiary测试和发布文档… 46

架设微服务… 46

构建Test First的服务… 48

创建第一个失败测试… 49

测试Location Header 51

壮丽的蒙太奇 - 迭代测试… 52

在云中部署和运行… 53

总结… 55

第6章 运用后端服务… 56

设计服务系统… 56

测试优先构建依赖服务… 57

构建Fulfillment服务… 57

构建Catalog服务… 60

在服务之间共享结构化数据… 64

使用服务捆绑去外部化地址与元数据… 65

服务发现… 67

读者练习… 69

总结… 70

第7章 构建数据服务… 71

构建MongoDB存储库… 71

集成测试一个Mongo-Backed服务… 76

在云中运行… 80

总结… 81

第8章 事件源和CQRS.. 83

现实源自事件… 83

最终还是一致的… 85

介绍命令查询责任分离… 86

事件源案例… 87

代码示例:管理无人机军队… 88

构建命令处理程序服务… 88

构建事件处理器… 92

构建查询处理程序服务… 95

总结… 96

第9章 使用Go构建web应用程序… 97

处理静态文件和资产… 97

支持javascript客户端… 98

使用服务端模板… 100

处理表单… 102

使用Cookie和会话状态… 102

使用Wercker构建和部署… 104

总结… 105

第10章 云安全… 106

保护一个web应用程序… 106

保护微服务… 111

隐私和数据安全… 113

阅读练习… 114

总结… 115

第11章 使用WebSockets. 116

解析WebSockets. 116

WebSockets和云的诞生… 117

使用消息传递提供程序构建WebSocket应用程序… 119

总结… 122

第12章 使用React构建web视图… 123

JavaScript State of the Union JavaScript 
. 123

为什么选择React?… 123

React应用程序的解剖… 125

构建一个简单的React应用程序… 127

测试React应用程序… 132

进一步阅读… 132

总结. 133

第13章 使用Flux构建高可扩展性UI 134

Flux介绍… 134

创建Flux应用程序… 136

总结… 141

第14章 创建完整应用World of FluxCraft 143

World of FluxCraft介绍… 143

架构概览… 145

Flux GUI 146

命令处理… 148

事件处理… 149

维持现实服务的状态… 149

地图管理… 150

自动验收测试… 150

总结… 151

第15章 结论… 152

我们学到了什么?… 152

下一步… 153

A云应用的故障排查… 154

使用日志流… 154

健康和性能监控… 154

在云中调试应用程序… 155