-- 會員 / 註冊 --  
 帳號:
 密碼:
  | 註冊 | 忘記密碼
3/26 新書到! 3/19 新書到! 3/14 新書到! 12/12 新書到!
購書流程Q & A站務留言版客服信箱
3ds MaxMayaRhinoAfter EffectsSketchUpZBrushPainterUnity
PhotoShopAutoCadMasterCamSolidWorksCreoUGRevitNuke
C#CC++Java遊戲程式Linux嵌入式PLCFPGAMatlab
駭客資料庫搜索引擎影像處理FluentVR+ARANSYS深度學習
單晶片AVROpenGLArduinoRaspberry Pi電路設計CadenceProtel
HadoopPythonStm32CortexLabview手機程式AndroidiPhone
可查書名,作者,ISBN,3dwoo書號
詳細書籍分類

App后臺開發運維和架構實踐

( 簡體 字)
作者:曾健生類別:1. -> 程式設計 -> 手機程式 -> 其它
譯者:
出版社:電子工業出版社App后臺開發運維和架構實踐 3dWoo書號: 43988
詢問書籍請說出此書號!

有庫存
NT售價: 295

出版日:4/1/2016
頁數:280
光碟數:0
站長推薦:
印刷:黑白印刷+數頁彩色插圖語系: ( 簡體 版 )
加入購物車 加到我的最愛
(請先登入會員)
ISBN:9787121283802
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證)
作者序:

譯者序:

前言:

筆者在 2012 年從開發電子商務網站轉向了開發 App 后臺,當時在一家做社交 App 的創業公司里工作,筆者和搭檔都沒有任何從事移動互聯網開發的經驗,不清楚 App 后臺怎么架構,只能摸著石頭過河,那時網絡上只有一些零散的資料,當遇到問題時只能不斷地摸索和思考,來找到解決問題的方法。
在從事開發 App 后臺接近 4 年的時間中,筆者參與了兩款社交 App 的開發,現在就職于bmob,從事云后臺服務的研發工作,慢慢地對 App后臺的架構有了一些體會。
從 2013 年年底開始,筆者把工作筆記發表在 CSDN 博客專欄“App 后端技術架構”,陸陸續續收到了很多網友的反饋,后來在 QQ 里面接觸了很多剛剛從事開發 App 后臺的開發者、找技術合伙人的創業者,在聊天的過程中,發現很多基本的問題被不停地問,例如:
隊列有什么用?
Redis的應用場景有哪些?
怎么保證通信的安全性?
看著對未來無限向往的同行也在重復著本人當初經歷過的迷茫,也在糾結著這些技術問題,在網絡上,沒找到一本系統講述 App 后臺架構的書籍,能搜索到的不是“高大尚”公司的解決方案,就是針對一個技術點很詳細的講解。
于是在網友的鼓勵下,筆者決定把本人所掌握的開發 App 后臺的知識系統地講解一次(當時計劃是寫 30 篇左右的文章),筆者利用業余的時間陸陸續續地寫成文章發表在 CSDN博客專欄“App 后端技術架構”,這也是本書前 3 章的初稿。
后來在博文視點的付睿編輯幫助下,筆者有機會把自身所學習的知識再系統地整理一次,以書籍的形式展現給各位讀者,希望本書能夠幫助更多的剛進入 App 后臺開發的朋友們,以及對 App 后臺技術感興趣的產品經理和 Android、iOS開發者。
因為本書的讀者定位主要是 App 后臺的初學者,因此筆者盡量以圖文并茂的方式給讀者
介紹 App 后臺各方面的技術。筆者一向推崇的架構原則是,“盡量使用成熟可靠的云服務和開源軟件,自身只專注于業務邏輯”,對于某項具體的技術必須掌握下面兩點。
技術的應用場景。
技術的基本原理。
掌握上面兩點后就能對這項技術有了基本的了解,在此基礎上技術選型的優先級如下。
云服務。
開源軟件。
自主研發。
通過上面的措施能在最大程度上減輕技術人員的額外研發負擔,讓自身的精力更加專注于業務。
至于某項技術的其他方面,例如怎么部署、開源軟件的深度剖析等,筆者并不打算在本書中做深入的闡述,讀者如果感興趣可自行深入學習。筆者希望在本書中能給讀者描繪一個 App后臺開發的藍圖。
本書主要分為 4 部分。
第 1~3章:App 后臺常用技術的講解。
第 4~8章:App 后臺常用軟件的運維和相關原理。
第 9 章:4 種類型 App 的后臺架構。
第 10 章:App 后臺架構的知識。
內容簡介:

《App 后臺開發運維和架構實踐》通過闡述移動互聯網中 App 后臺開發的特點,梳理了 App 后臺開發中會遇到的各個技術點,給出了生產環境常用軟件的實戰運維經驗總結,剖析了常見 App 后臺技術架構設計,為讀者呈現一幅包括技術選型、后臺搭建、性能優化、運維實踐、架構設計的 App 后臺開發藍圖。
本書的目標讀者是對技術感興趣的產品經理、剛入行的 App 后臺開發人員,以及從傳統軟件行業轉向 App 后臺開發的技術人員。

目錄:

推薦序 .................. 3
前言 ................... 5
致謝 ................... 7
目錄 ................... 8
第 1 章 App 后臺入門 ............... 16
1.1 App 后臺的功能 ................ 16
1.2 App 后臺架構 ................ 17
1.3 App 和 App 后臺的通信 .............. 19
1.4 App 后臺和 Web 后端的區別 ............. 22
1.5 選擇服務器 ................ 23
1.6 選擇編程語言 ................ 24
1.7 快速入門新技術 ................ 25
1.7.1 思維模式 ................ 25
1.7.2 4種快速入門新技術的方法 ............ 25
1.8 App 是怎樣煉成的 ................ 26
1.8.1 項目啟動階段 ............... 26
1.8.2 研發階段 ................ 28
1.8.3 測試階段 ................ 29
1.8.4 正式推出階段 ............... 29
1.9 最適合 App 的開發模式——敏捷開發 ........... 30
1.9.1 Sprint 計劃會議 .............. 31
1.9.2 日常開發 ................ 32
1.9.3 每日例會 ................ 33
1.9.4 測試和修復 Bug .............. 33
1.9.5 評審會議 ................ 34
1.9.6 回顧會議 ................ 34
1.9.7 及時反饋 ................ 34
1.9.8 總結................. 34
第 2 章 App 后臺基礎技術 .............. 35
2.1 從 App業務邏輯中提煉 API接口 ............ 35
2.1.1 業務邏輯思維導圖 .............. 36
2.1.2 功能—業務邏輯思維導圖 ............ 37
2.1.3 基本功能模塊關系 .............. 40
2.1.4 功能模塊接口 UML(設計出 API) .......... 41
2.1.5 編寫在線 API測試文檔............ 42
2.1.6 設計稿標注 API .............. 45
2.2 設計 API的要點 ................ 46
2.3 如何選擇合適的數據庫產品 ............. 50
2.3.1 Redis,MongoDB,MySQL讀寫數據的區別 ........ 50
2.3.2 Redis,MongoDB,MySQL查找數據的區別 ........ 50
2.3.3 Redis,MongoDB,MySQL適用場景 .......... 51
2.4 如何選擇消息隊列軟件 .............. 52
2.4.1 為什么要用消息隊列? ............ 52
2.4.2 消息隊列的工作流程 ............. 53
2.4.3 常見的一些消息隊列產品 ............ 54
2.5 使用分布式服務實現業務的復用 ............ 54
2.5.1 巨無霸系統的危害 .............. 55
2.5.2 遠程服務的優點 .............. 56
2.5.3 遠程服務的實現 .............. 56
2.6 搜索技術入門 ................ 59
2.6.1 一個簡單的搜索例子 ............. 59
2.6.2 搜索技術的基本原理 ............. 60
2.6.3 常見的開源搜索軟件介紹 ............ 62
2.7 定時任務 .................. 65
2.7.1 Linux定時任務 Crontab ............ 65
2.7.2 在后臺輕松管理各種各樣的定時任務 .......... 66
第 3 章 App 后臺核心技術 .............. 68
3.1 用戶驗證方案 ................ 68
3.1.1 使用 HTTPS協議 .............. 68
3.1.2 基本的用戶登錄方案 ............. 69
3.2 App 通信安全 ................ 72
3.2.1 URL簽名 ................ 72
3.2.2 AES對稱加密 ............... 74
3.2.3 更進一步的通信安全 ............. 77
3.3 短信服務 .................. 78
3.3.1 App 后臺發送短信簡介 ............ 78
3.3.2 選擇短信平臺 ............... 78
3.3.3 建立可靠的短信服務 .............. 79
3.4 處理表情的一些技巧 ............... 80
3.4.1 表情在 MySQL的存儲 ............. 80
3.4.2 當文字中夾帶表情的處理 ............ 80
3.4.3 Openfire中發送表情引起連接斷開的問題 ........ 81
3.5 高效更新數據 ................ 82
3.5.1 內容的推拉 ................ 83
3.5.2 數據增量更新策略 .............. 84
3.6 圖片處理 .................. 90
3.7 視頻處理 .................. 91
3.7.1 FFmpeg 簡介 ............... 91
3.7.2 后臺調用 FFmpeg 的功能 ............ 92
3.8 獲取 APK 和 IPA文件里的資源 ............ 94
3.8.1 Android 的 APK 文件 ............. 94
3.8.2 iOS的 IPA文件 .............. 96
3.9 文件系統 .................. 98
3.9.1 文件云存儲服務 .............. 99
3.9.2 架設文件系統 ............... 99
3.10 ELK日志分析平臺 ............... 101
3.10.1 基本模塊 ................ 101
3.10.2 日志分析流程 .............. 102
3.11 Docker構建一致的開發環境 ............ 103
3.11.1 Docker 原理 ............... 103
3.11.2 搭建一致的開發環境 ............ 104
第 4 章 Linux——App 后臺應用最廣泛的系統 .......... 107
4.1 基本的系統優化 ................ 107
4.1.1 開機自啟動服務優化 ............. 107
4.1.2 增大文件描述符 .............. 109
4.2 常用的命令 ................ 110
4.2.1 全面了解系統資源情況——top ........... 110
4.2.2 顯示進程狀態——ps ............. 115
4.2.3 查看網絡相關信息——netstat ........... 116
4.2.4 查看某個進程打開的所有文件——lsof ......... 118
4.2.5 跟蹤數據到達主機所經路由——traceroute ........ 119
4.2.6 文件下載/上傳工具——“ssh secure shell client”和“lrzsz” .... 119
4.2.7 查看程序的依賴庫——LD_DEBUG .......... 121
4.2.8 進程管理利器——superivisor ........... 122
4.3 故障案例分析 ................ 125
第 5 章 Nginx——App 后臺 HTTP 服務的利器 .......... 126
5.1 簡介 .................. 126
5.2 基本原理 ................. 127
5.2.1 工作模型 ................ 127
5.2.2 進程解析 ................ 128
5.3 常用配置 ................. 129
5.3.1 Nginx的全局配置 .............. 130
5.3.2 event配置 ................ 130
5.3.3 http配置 ................ 131
5.3.4 負載均衡配置 ............... 133
5.3.5 server虛擬主機配置 ............. 134
5.3.6 location配置 ............... 134
5.3.7 HTTPS的配置 .............. 135
5.3.8 下載 App 的配置 .............. 136
5.3.9 生產環境中修改配置的良好習慣 .......... 136
5.4 性能統計 ................. 136
5.5 實現負載均衡的方案 .............. 137
5.6 用 Nginx 處理業務邏輯 .............. 139
第 6 章 MySQL——App 后臺最常用的數據庫 .......... 140
6.1 基本架構 ................. 140
6.2 選擇版本 ................. 141
6.3 配置文件詳解 ................ 142
6.4 軟件優化 ................. 144
6.4.1 正確使用 MyISAM和 InnoDB存儲引擎 ........ 144
6.4.2 正確使用索引 ............... 145
6.4.3 避免使用 select * .............. 146
6.4.4 字段盡可能地設置為 NOT NULL .......... 146
6.5 硬件優化 ................. 147
6.5.1 增加物理內存 ............... 147
6.5.2 增加應用緩存 ............... 147
6.5.3 用固態硬盤代替機械硬盤 ............ 148
6.5.4 SSD 硬盤+SATA硬盤混合存儲方案 .......... 149
6.6 架構優化 ................. 149
6.6.1 分表................ 150
6.6.2 讀寫分離 ................ 151
6.6.3 分庫................ 153
6.7 SQL慢查詢分析 ................ 156
6.8 云數據庫簡介 ................ 157
6.9 靈活的存儲結構 ................ 158
6.10 故障排除案例 ................ 159
第 7 章 Redis——App 后臺高性能的緩存系統 .......... 160
7.1 Redis簡介 ................ 160
7.2 Redis的常用數據結構及應用場景 ............ 161
7.2.1 string——存儲簡單的數據 ............ 162
7.2.2 hash——存儲對象的數據 ............ 163
7.2.3 list——模擬隊列操作 ............. 165
7.2.4 set——無序且不重復的元素集合 .......... 167
7.2.5 sorted set——有序且不重復的元素集合 ......... 168
7.3 內存優化 ................. 170
7.3.1 監控內存使用的狀況 ............. 170
7.3.2 優化存儲結構 ............... 170
7.3.3 限制使用的最大內存 ............. 172
7.3.4 設置過期時間 ............... 172
7.4 集群 .................. 174
7.4.1 客戶端分片 ............... 174
7.4.2 Twemproxy ............... 175
7.4.3 Codis ................ 176
7.4.4 Redis 3.0集群 ............... 179
7.4.5 云服務器上的集群服務 ............ 180
7.5 持久化 .................. 180
7.5.1 RDB ................ 181
7.5.2 AOF................ 182
7.6 故障排除案例 ................ 184
第 8 章 MongoDB——App 后臺新興的數據庫 .......... 185
8.1 簡介 .................. 185
8.2 核心機制解析 ................ 186
8.2.1 MMAP(內存文件映射) ............ 186
8.2.2 Journal日志 ............... 187
8.3 入門 .................. 187
8.3.1 基本操作 ................ 188
8.3.2 數組操作 ................ 190
8.3.3 實例演示 MySQL和 MongoDB設計數據庫的區別 ...... 191
8.4 高可用集群 ................ 195
8.4.1 主從................ 195
8.4.2 副本集 ................ 196
8.4.3 分片................ 198
8.5 LBS——地理位置查詢 .............. 200
8.6 MongoDB 3.0版本的改進 .............. 205
8.6.1 靈活的存儲架構 .............. 206
8.6.2 性能提升 7~10 倍 .............. 206
8.6.3 存儲空間最多減少 80% ............ 207
8.6.4 運維成本最多降低 95% ............ 207
第 9 章 App 后臺架構剖析 .............. 208
9.1 聊天 App 后臺架構 ............... 208
9.1.1 移動互聯網的網絡特性 ............ 209
9.1.2 協議................ 212
9.1.3 整體架構 ................ 218
9.2 社交 App 后臺架構 ............... 221
9.2.1 基本表結構 ............... 222
9.2.2 推拉模式 ................ 223
9.2.3 數據庫架構的演進 .............. 225
9.2.4 緩存架構的演進 .............. 229
9.3 LBS App 后臺架構 ............... 234
9.3.1 地理坐標詳解 ............... 235
9.3.2 查找附近的人 ............... 236
9.3.3 基于 MongoDB的 LBS后臺架構演進 .......... 240
9.4 推送服務器后臺架構 .............. 242
9.4.1 Android 推送 ............... 242
9.4.2 iOS推送 ................ 248
9.5 獲得更多 App后臺架構資料 ............. 252
第 10 章 App 后臺架構的演進 ............. 255
10.1 架構的核心要素 ............... 255
10.1.1 高性能 ................ 256
10.1.2 高可用 ................ 258
10.1.3 可伸縮 ................ 261
10.1.4 可擴展 ................ 262
10.1.5 安全性 ................ 262
10.2 架構選型的要點 ............... 262
10.2.1 用成熟穩定的開源軟件 ............ 263
10.2.2 盡可能使用云服務 ............. 264
10.3 架構的演進 ................ 268
10.3.1 單機部署 ................ 269
10.3.2 分布式部署 ............... 275
10.3.3 服務化 ................ 277
10.4 架構的特點 ................ 279
10.4.1 每個 App 的后臺架構不會完全一樣 .......... 279
10.4.2 架構的演進是由業務驅動的 ........... 279
10.4.3 架構不是為了炫耀技術 ............ 280
序: