作者簡介
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/。
1 雲之道 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
-- 部署到Docker Hub 50
讀者練習:創建完整的開發管道 51
-- 高級挑戰:集成第三方庫 53
本章小結 53
5 在Go中構建微服務 55
設計API First的服務 55
-- 設計match API 56
-- 創建API Blueprint 56
-- 通過Apiary測試和發布文檔 58
架設微服務 59
構建Test First的服務 62
-- 創建第一個失敗測試 63
-- 測試Location Header 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
支持JavaScript客戶端 145
使用服務端模闆 148
處理錶單 150
使用cookie和會話狀態 151
-- 寫入cookie 152
-- 讀取cookie 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
-- 關於JavaScript框架 183
-- 運行WebSockets示例 183
本章小結 184
12 使用React構建Web視圖 185
JavaScript的形勢
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 雲應用的故障排查 235
· · · · · · (
收起)
評分
☆☆☆☆☆
是不怎麼樣啊
評分
☆☆☆☆☆
更多是視野的一種擴展。
評分
☆☆☆☆☆
名字高大上,內容卻超級入門的書.蜻蜓點水說瞭一堆技術,算是完整的技術棧吧,可惜好多在2019都已經過時瞭.除瞭TDD,CQRS,基本沒有什麼營養..
評分
☆☆☆☆☆
是不怎麼樣啊
評分
☆☆☆☆☆
就和作者說的那樣,這本書不是一本參考書。 基於Cloud Native的選擇介紹瞭基於go從版本控製,持續集成,以及服務化的一些常見架構模式Event Source/CQRS。 全書內容還是比較基礎,有web開發的基礎的話,可以快速瀏覽一下。
評分
☆☆☆☆☆
KevinHoffmanand Dan Nemeth start with a primer on Go, a programming language that's rapidly gaining traction due to its elegant simplicity, performance, and exceptional suitability for cloud development. Next, they describe the modern cloud-native applicati...
評分
☆☆☆☆☆
KevinHoffmanand Dan Nemeth start with a primer on Go, a programming language that's rapidly gaining traction due to its elegant simplicity, performance, and exceptional suitability for cloud development. Next, they describe the modern cloud-native applicati...
評分
☆☆☆☆☆
KevinHoffmanand Dan Nemeth start with a primer on Go, a programming language that's rapidly gaining traction due to its elegant simplicity, performance, and exceptional suitability for cloud development. Next, they describe the modern cloud-native applicati...
評分
☆☆☆☆☆
KevinHoffmanand Dan Nemeth start with a primer on Go, a programming language that's rapidly gaining traction due to its elegant simplicity, performance, and exceptional suitability for cloud development. Next, they describe the modern cloud-native applicati...
評分
☆☆☆☆☆
KevinHoffmanand Dan Nemeth start with a primer on Go, a programming language that's rapidly gaining traction due to its elegant simplicity, performance, and exceptional suitability for cloud development. Next, they describe the modern cloud-native applicati...