书籍作者:Kevin | ISBN:9787121321092 |
书籍语言:简体中文 | 连载状态:全集 |
电子书格式:pdf,txt,epub,mobi,azw3 | 下载次数:6932 |
创建日期:2021-02-14 | 发布日期:2021-02-14 |
运行环境:PC/Windows/Linux/Mac/IOS/iPhone/iPad/Kindle/Android/安卓/平板 |
本书旨在向开发人员展示如何构建适用于大流量、高并发场景下的云原生Web应用。本书从搭建开发测试环境开始,逐步介绍使用Go语言构建微服务的方法,通过引入CI/CD流程和Wercker、Docker等工具将应用推送到云中。结合微服务构建中的后端服务、数据服务、事件溯源和CQRS模式、基于React和Flux的UI设计等,本书最后构建了一个基于Web的RPG游戏WorldofFluxCraft,可以作为使用Go构建云原生Web应用的参考,适合于云计算与Go语言编程从业者们阅读。
Kevin Hoffman通过现代化和以多种不同语言构建云原生服务的方式帮助企业将其应用程序引入云端。他10岁时开始编程,从那时起便已经沉迷于构建软件,并花了很多时间学习语言、框架和模式。他已经构建了从遥控摄影无人机、仿生性安全系统、超低延迟金融应用程序到移动应用程序等一系列软件,并且在构建需要与Pivotal Cloud Foundry配合使用的自定义组件时爱上了Go语言。
Dan Nemeth目前在Pivotal担任咨询解决方案架构师,负责支持Pivotal Cloud Foundry。他从1995年开始从事专业编码,使用ANSI C编写了用于本地ISP的CGI脚本。他职业生涯的大部分时间都是作为独立顾问为金融、制药等各个行业提供解决方案,其间不断使用当时流行的各种语言和框架。Dan最近接受了Go作为自己的“归宿”,其间不断热情地将它用于所有的项目。
译者简介
宋净超,TalkingData技术运营团队工程师。拥有多年的Hadoop大数据平台运维管理经验,熟悉Hadoop技术、Docker生态系统以及PaaS平台,主导了 TalkingData的Yarn on Docker项目改造和微服务落地,关注开源软件及Docker、Kubernetes的前沿发展,关注Kubernetes和TensorFlow的实践。多次在全球架构师峰会、QCon 、CNUTCon、云栖大会等技术会议上作为讲师进行技术分享,博客地址:http://rootsongjc.github.io/。
适读人群 :云计算从业人员、Go语言开发人员。
1.云原生是云计算时代的发展趋势和必然结果
《Cloud Native Go:构建基于Go和React的云原生Web应用与微服务》通过一个云原生应用项目的构建,为大家介绍了云原生的道与术,引导读者了解云原生理念的产生、应用场景、优势。
2.集现今诸多热点技术之大成
《Cloud Native Go:构建基于Go和React的云原生Web应用与微服务》在构建云原生项目时,涉及Docker、持续集成、微服务、DevOps、事件溯源与CQRS等众多备受关注的技术热点,无疑会让读者受益匪浅。
3.Go语言助理云开发完美实现
Go语言以其简单优雅、快速安全、支持高并发等特性,成为云计算时代的zui优语言。《Cloud Native Go:构建基于Go和React的云原生Web应用与微服务》将带领读者正确认识Go语言,掌握用Go构建应用程序的方法。
4.流程完整,示例具体详细
《Cloud Native Go:构建基于Go和React的云原生Web应用与微服务》从搭建平台开始,逐步带领读者开发一个完整的云上项目。其中的每一环节都有详细讲解。示例具有代表性,代码详细,帮助读者轻松掌握云原生开发的关键。
当Dan和我开始写这本书时,我们不希望它成为一本参考书或“一本语法书”。相反,我们希望能够充分利用自己为Pivotal客户构建云原生解决方案的经验,以及近一生的综合经验来为各种规模、形态和行业的公司构建软件。
这本书从一个哲学章节“云之道”开始,因为我们坚信构建良好软件的秘诀在于开发人员的心态和纪律,而不是工具或语言。
在本书中,我们将按照测试驱动和高度自动化的方式逐步实现云之道,通过一系列章节提高大家在Go中构建云原生服务的能力。本书涵盖构建服务的基本原理,中间件技术,Git、Docker和Wercker等工具的使用,还包括云基础设施的相关内容,如基于环境的配置、服务发现以及基于响应和推送式的应用程序。本书涵盖了事件溯源和CQRS等模式,书中的所有内容组合成最终的示例,相信可以为大家的项目构建提供灵感。
我们始终秉承着一个坚定的信念——构建软件应该像使用它一样有趣(或更有趣)。如果没有乐趣,那么一定是你做错了。我们希望在使用Go构建服务时获得的快乐可以感染读者,希望你在阅读本书时能像我们在写作它时一样,获得更多的乐趣。
关于作者
KevinHoffman通过现代化和以多种不同语言构建云原生服务的方式帮助企业将其应用程序引入云端。他10岁时开始编程,在重新组装的CommodoreVIC-20上自习BASIC。从那时起,他已经沉迷于构建软件,并花了很多时间学习语言、框架和模式。他已经构建了从遥控摄影无人机、仿生性安全系统、超低延迟金融应用程序到移动应用程序等一系列软件。他在构建需要与PivotalCloudFoundry配合使用的自定义组件时爱上了Go语言。
Kevin是流行的系列幻想书TheSigilordChronicles(http://amzn.to/2fc8iES)的作者,他热切地期盼着最终能够将自己对构建软件的热爱与对构建幻想世界的热爱结合起来。
DanNemeth目前在Pivotal担任咨询解决方案架构师,负责支持PivotalCloudFoundry。他从Commodore64开始就一直在开发软件,从1995年开始从事专业编码,使用ANSIC编写了用于本地ISP的CGI脚本。从那时起,他职业生涯的大部分时间都是作为独立顾问为金融、制药等各个行业提供解决方案,其间不断使用当时流行的各种语言和框架。Dan最近接受了Go作为自己的“归宿”,其间不断热情地将它用于所有的项目。
如果你发现Dan没在电脑前,他很可能就是在靠近安纳波利斯的水域玩帆船或飞钓。
致谢
这本书能够诞生要感谢我的家人,特别是我的妻子,她给予了我无限的耐心。尽管我在过去曾多次说过,我不会再写技术书,但事实上目前我正在写另一本技术书。她们忍受了漫长的夜晚,忍受我在家里的地板上迁思回虑,以及为了保证这本书的质量带来的巨大时间消耗。完成这本书比过去完成任何其他工作都让我感到更加自豪,这本书是家人、朋友和杰出的合著者给我的宝贵支持的结晶。
——KevinHoffman
这本书献给A-Team:四个在Pivotal工作的人。他们现在正在寻找需要指导的开发人员。如果你需要将软件迁移到云上,他们一定会找到你。
没有这些勇敢的人,编写软件的过程将变得非常无聊和难以忍受,也许永远不会有这本书。事实上,作者们可能已经放弃了他们一直以来所致力的云服务,而是希望余生能在咖啡店当一名咖啡师。
A-Team成员有:
Dan“Hannibal”Nemeth
Chris“Murdock”Umbel
Tom“Face”Collings
Kevin“B.A.”Hoffman
1 云之道 1
云之道的优点 2
为什么使用Go 8
本章小结 9
2 开始 11
正确的工具 11
配置Git 12
创建Go环境 14
-- 配置Go工作区 14
检查环境 15
本章小结 16
3 Go入门 17
建立Hello cloud 18
使用基本函数 19
使用结构体 22
介绍Go接口 25
向结构体添加方法 25
使用第三方包 28
创建自有包 30
本章小结 34
4 持续交付 35
Docker介绍 36
与Wercker的持续集成 39
读者练习:创建完整的开发管道 51
本章小结 53
5 在Go中构建微服务 55
设计API First的服务 55
架设微服务 59
构建Test First的服务 62
在云端部署和运行 70
本章小结 72
6 运用后端服务 75
设计服务系统 75
测试优先构建依赖服务 77
在服务之间共享结构化数据 87
使用服务捆绑来外部化地址与元数据 90
服务发现 93
读者练习 97
本章小结 98
7 构建数据服务 99
构建MongoDB存储库 100
集成测试一个Mongo-Backed服务 107
在云中运行 115
本章小结 117
8 事件溯源和CQRS 119
现实源自事件 120
拥抱最终一致性 123
CQRS简介 124
事件溯源案例 126
代码示例:管理无人机舰队 128
构建命令处理程序服务 129
构建事件处理器 135
构建查询处理程序服务 140
本章小结 141
9 使用Go构建Web应用程序 143
处理静态文件和asset 143
支持JavaScript客户端 145
使用服务端模板 148
处理表单 150
使用cookie和会话状态 151
使用Wercker构建和部署 153
本章小结 155
10 云安全 157
保护Web应用程序 157
保护微服务 166
隐私和数据安全 170
读者练习 172
本章小结 173
11 使用WebSockets 175
WebSockets解析 175
WebSockets的云原生适应性 178
使用消息服务创建WebSockets应用 180
本章小结 184
12 使用React构建Web视图 185
JavaScript的形势 186
为什么选择React 186
React应用程序剖析 189
构建简单的React应用程序 192
测试React应用程序 200
进一步阅读 200
本章小结 201
13 使用Flux构建可扩展的UI 203
Flux介绍 203
创建Flux应用程序 206
本章小结 215
14 创建完整应用World of FluxCraft 217
World of FluxCraft介绍 218
架构概览 219
Flux GUI 222
命令处理 225
事件处理 226
维持现实服务的状态 227
地图管理 227
自动验收测试 228
本章小结 230
15 结论 231
我们学到了什么 231
下一步 233
附录A 云应用的故障排查 235
https://mall.jd.com/index-1000011743.html