Cloud Native Go:構建基於Go和React的雲原生Web套用與微服務

Cloud Native Go:構建基於Go和React的雲原生Web套用與微服務

《Cloud Native Go:構建基於Go和React的雲原生Web套用與微服務》一書原作者Kevin Hoffman(凱文·霍夫曼)、Dan Nemeth(丹·內梅斯),中文版由宋淨超、吳迎松、徐蓓、馬超 譯,電子工業出版社2017年7月出版

基本介紹

  • 書名:Cloud Native Go:構建基於Go和React的雲原生Web套用與微服務
  • 作者:【美】Kevin Hoffman(凱文·霍夫曼) 【美】Dan Nemeth(丹·內梅斯)
  • 譯者:宋淨超 吳迎松 徐蓓 馬超
  • ISBN:978-7-121-32109-2
  • 頁數:262
  • 定價:69.00
  • 出版社:電子工業出版社
  • 出版時間:2017年7月
  • 開本:16
內容提要,目錄,

內容提要

《Cloud Native Go:構建基於Go和React的雲原生Web套用與微服務》旨在向開發人員展示如何構建適用於大流量、高並發場景下的雲原生Web套用。《Cloud Native Go:構建基於Go和React的雲原生Web套用與微服務》從搭建開發測試環境開始,逐步介紹使用Go語言構建微服務的方法,通過引入CI/CD流程和Wercker、Docker等工具將套用推送到雲中。結合微服務構建中的後端服務、數據服務、事件溯源和CQRS模式、基於React和Flux的UI設計等,本書最後構建了一個基於Web的RPG遊戲World of FluxCraft,可以作為使用Go構建雲原生Web套用的參考,適合於雲計算與Go語言編程從業者們閱讀。

目錄

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 雲套用的故障排查

相關詞條

熱門詞條

聯絡我們