Home | Mirror | Search

Netkiller Architect 手札

Multi-dimension Architecture Design & Implementation

Mr. Neo Chan, 陳景峰(BG7NYT)


中國廣東省深圳市龍華新區民之街道溪山美地
518109
+86 13113668890
+86 755 29812080

文檔尚未完成,請勿轉載!

版權聲明

轉載請與作者聯繫,轉載時請務必標明文章原始出處和作者信息及本聲明。

文檔出處:
http://netkiller.sourceforge.net
http://netkiller.github.com

$Date: 2013-02-04 09:33:18 +0800 (Mon, 04 Feb 2013) $


您可以使用iBook閲讀當前文檔

目錄

自述
1. 系列文檔
2. 作者簡介
3. 寫給讀者
I. Multi-dimension Architecture
1. Architecture Overview
1. CDN (Content Delivery Network)
2. Systems architecture(系統架構)
1. 集群(Cluster)
1.1. 負載均衡
1.1.1. DNS負載均衡
1.1.2. 軟件四層交換負載均衡
1.1.3. 應用層負載均衡
1.2. 高可用性集群
1.3. 負載均衡設備
1.4. 會話保持
1.5. 健康狀態檢查
2. 緩存技術
2.1. 瀏覽器緩存
2.1.1. Expires
2.1.2. If-Modified-Since / Last-Modified
2.1.3. ETag / If-None-Match
2.2. CDN/逆向代理緩存
2.3. 負載均衡設備
2.4. WEB伺服器緩存
2.5. 應用程序緩存
2.6. 資料庫緩存
3. 靜態化
3.1. 生成方式
3.2. 抓取方式
3.3. 偽靜態化
3.4. 混合方式
3.5. 靜態化中的動態內容
4. 多媒體數據分離
4.1. 圖片伺服器分離
4.2. 目錄層次規劃
4.3. 多域名訪問
5. 壓縮數據傳輸
6. 時間同步
7. 郵件系統
7.1. Mailing List
8. 日誌集中管理
8.1. 系統日誌
8.2. 應用程序日誌
9. SSL
10. Storage 存儲
10.1. 存儲種類
10.1.1. Direct Attached Storage
10.1.2. Network-attached storage
10.1.3. Storage area network
10.2. RAID
10.2.1. 緩存伺服器
10.2.2. Web 伺服器
10.2.3. 資料庫
10.2.4. 數據備份
10.3. File System 檔案系統
10.3.1. Distributed File System(DFS)
10.4. 數據訪問協議
10.5. 數據管理
10.5.1. Share 共享
10.5.2. Mirror 遠程鏡像同步
10.5.3. 壓縮與重複數據消除
10.5.4. Backup 備份與恢復
10.5.5. 故障報告
3. RPC (Remote Procedure Call Protocol)
1. Gearman
II. Database Modeling Design
4. RDBMS 資料庫設計
1. 數據字典
2. 用戶帳號表
3. 分類表設計
3.1. 樹形分類表
3.2. 多對多分類
3.3. 快速檢索子分類設計
3.4. Example
4. 文章表設計
4.1. 分區表設計
4.2. Title性能優化
5. 評論表
6. 記錄點擊率,閲讀次數,及評分表
7. 產品屬性表
7.1. 簡單實現
7.2. 實現屬性組管理
7.3. 可編輯屬表
8. 國際化語言表
9. Workflow
10. 內容版本控制
11. logging 日誌表的設計
12. Sharding
12.1. horizontal
12.2. vertical
5. Hierarchical Database Management System
1. User And Profile
2. Category
3. Article
4. Product and ProductAttribute
5. Address
6. 練習
6. ORDBMS / OODBMS
III. DevOps
7. What is DevOps
8. DevOps Environment
1. Trac Project Management
2. Development Environment
3. Testing Environment
9. 持續改進
1. Coding workflow
2. Project directory
3. 版本控制及如何運作
3.1. 版本庫佈局
3.2. 策略
3.3. nightly version
3.4. rc1,rc2,rc4
3.5. 怎樣寫註釋信息
3.5.1. Fixed Bug
3.5.2. Implemented
3.5.3. Add
4. 標準
4.1. XHTML/HTML
4.2. CSS
4.3. Script
5. 性能
6. 安全
6.1. Interface
6.2. SQL注入
10. Automation
1. Automation Deployment
1.1. Deployment Toolkit
1.2. Deployment Script
1.2.1. FTP Script
1.2.2. SFTP Script
1.2.3. SCP Script
1.3. Upgrade
IV. Software architecture (軟件架構)
11. Project
1. 開源模式
2. 開發語言及平台
2.1. 分層架構
2.1.1. 中間件 Middleware
2.1.2. 分層
2.2. Web 2.0
2.3. 雲計算
2.4. 跨平台
2.5. 編譯語言比腳本語言安全
2.6. 封裝重用
2.7. 相關的工具
2.7.1. 開發工具
12. Coding
1. php 檔案
1.1. 格式
1.2. 編碼
1.3. 取出行尾的空格以及多餘的換行符
1.4. php 標籤
1.5. 頭部註釋
2. String
3. Database
3.1. 結果集使用注意事項
3.2. 索引
3.3. 緩存
13. 頁面設計 Design
1. 頁面元素命名
2. XHTML+DIV+CSS
3. 頁面結構設計
3.1. Home page (首頁)
3.2. 導航爛
3.3. Left Bar
3.4. 區塊設計 Block
4. 表格
5. 圖片優化
5.1. onMouseOver/onMouseOut
5.2. 使用一幅圖片處理BLOCK四角
5.3. 圖片用背景圖代替 img 標記
5.4. 合併圖片
6. HTML嵌入圖片
7. 頁面內容安全
7.1. 禁止滑鼠右鍵
7.2. 禁止複製剪切 及粘貼
8. html,css 有效性檢查 Validation
14. Framework Design
1. 開發框架 Framework
1.1. HMVC
1.2. REST
1.3. SNA (Shared Nothing Architecture)
1.4. 其他
2. MVC Framework Design (設計MVC框架)
3. HMVC Framework
4. REST
4.1. RESTful JSON API
5. Dispatcher MVC核心分發器
5.1. URL設計
5.1.1. URL 作為MVC 的Controller
5.1.2. URL 偽靜態化,用於SEO優化
5.2. Dispatcher 的實現方式
6. Plugin & Hook 設計與實現
6.1. 插件管理平台
6.2. 介面定義
6.3. 插件
6.4. 測試
7. Interface
7.1. 介面安全問題
7.2. 訪問介面協議
7.3. 介面性能問題
8. Javascript Framework
8.1. Minify JS
8.1.1. jsmin
8.1.2. yuicompressor
8.1.3. shrinksafe
9. 模板(template)
9.1. HTML 頁面優化
10. Session/Cookie
10.1. Session
10.2. Session 共享
10.3. Cookie
10.4. Cookie 安全
10.5. cookie-free domains
11. 國際化 Locale database。
11.1. Unicode
11.2. 繁簡轉換
12. 資料庫訪問
12.1. CRUD
12.2. Active Record
12.3. OR Mapping
13. Cache
13.1. 頁面緩存
13.2. 局部緩存
14. Single sign-on (SSO) 單點登錄
15. 搜索引擎
16. Synchronous/Asynchronous
17. Message Queuing
18. Hash
19. Sharding 垂直/水平切割
19.1. 面向服務
19.2. 面向資料庫
20. 日誌系統
21. Cache
21.1. CDN (Content Delivery Network) 與反向代理
21.1.1. CDN介面API
21.1.2. 方向代理頁面過期處理
21.1.3. 內容版本化
21.2. HTTP Cache
21.2.1. 在程序中靈活操作 Cache-Control
21.2.2. 非程序檔案緩存處理
21.3. Cache 生存時間
22. i18n 國際化
22.1. 數組方式
22.2. 資料庫方式
22.3. 檔案檔案
22.4. Gettext
22.5. 資料結構
23. RSS / ATom
23.1. Atom
24. Logging
25. Search
25.1. 搜索結果靜態化
25.2. SEO Module
25.2.1. robots.txt
25.2.2. sitemaps
26. 性能優化
26.1. 儘量使用單引號
27. 信息安全
27.1. CSRF(Cross-site request forgery)跨站請求偽造
27.2. 用戶註冊與登錄安全
27.3. 目錄檔案與權限
27.3.1. 讀寫權限
27.3.2. 訪問權限
27.4. 密碼安全
27.5. 注入檢查
27.6. 防止惡意刷新與重複提交
27.7. 屏蔽出錯信息
27.7.1. 屏蔽php出錯信息
27.8. 環境安全
27.8.1. 開發環境
27.8.2. 測試環境
27.8.3. 程序
27.8.4. 資料庫
28. debug
15. Logging
1. Remote Syslog
V. Operations
16. How Opensource Helps Optimize IT and Save You Money
1. Traffic
1.1. bandwidth
1.1.1. firewall
1.1.2. switch
1.1.3. Server
1.2. Session
1.2.1. firewall
1.2.2. Server
1.2.3. application
1.3. IO
1.3.1. 分佈IO
1.3.2. FC SAN
1.3.3. iSCSI / FCoE
1.3.4. InfiniBand 或 RDMA
2. Distributed File System(簇檔案系統)
2.1. 聚合檔案系統
2.2. 全局檔案系統
2.3. 負載均衡檔案系統
2.4. 網絡塊設備
17. 常用工具
1. 自動化腳本
1.1. Install Script
1.2. FTP User Script
1.3. SVN User Script
18. IDC
1. 接入線路
1.1. 頻寬計算
1.2. 雙線/多綫
1.2.1. 智能DNS (Smart DNS)
1.3. BGP
1.4. 接入線路測試
2. 機櫃(Cabinets)
2.1. 強電相關
2.2. IP 分配
2.3. 伺服器與設備命令
3. Network
3.1. Firewall
3.1.1. DIY Firewall & VPN
3.2. Switch
3.3. 物理拓撲圖
4. 伺服器部署與網絡拓撲
4.1. 小型網站
4.2. 集群網站
4.3. 聚合連接埠
4.4. 關於伺服器遠程管理
5. DDOS 攻擊與流量清洗
6. RALDRS
19. Hardware
1. Server
1.1. TPC
1.2. IOPS (Input/Output Operations Per Second, pronounced i-ops)
1.3. rPerf
1.4. 網卡
1.4.1. 網口規劃
1.4.2. 常見網絡適配器品牌
1.4.3. 1G 千兆乙太網產品
1.4.4. 10G 萬兆乙太網產品
1.5. Fibre Channel HBA 卡
1.6. iDRAC / iLO / IMM
1.7. Hardware configuration
1.7.1. www/app
1.7.2. cache
1.7.3. database
1.8. 密碼管理
2. Network
2.1. Firewall
2.1.1. Cisco ASA
2.1.2. Juniper
2.2. Switch
2.2.1. 2960G / 2960S
2.2.2. 3560 / 3750
2.2.3. 4948
2.2.4. 4506 / 4507
2.3. SLB
20. Monitor solution
1. 網絡監控
1.1. 流量監控
1.2. 交換機監控
2. 集群監控
3. 伺服器狀態監控
3.1. 負載監控
3.2. 磁碟空間監控
3.3. 內存監控
3.4. CPU監控
4. MySQL 監控
5. 網站安全與預警機制
21. Backup
1. help
1.1. Task
1.2. Schedule
1.3. Crontab
2. 配置檔案備份
2.1. Firewall and Switch
2.2. Server
22. 伺服器安全
1. 防火牆
2. Web Server
2.1. 目錄訪問控制
2.2. fastcgi 安全
2.3. php 函數安全
2.4. 伺服器版本信息
VI. Testing
23. Automatic Testing
1. Cluster Testing
2. 靜態內容並發測試
3. 動態內容測試
4. 業務邏輯並發能力
VII. 設計與解決方案
24. 支付平台方案
1. 方案
1.1. 商戶方案
1.2. 銀行方案
2. 支付介面
3. 支付派台後台
25. 電子商務網站
1. Product
2. Cart & Checkout
2.1. 物流配送插件設計
3. 促銷優惠組件設計
A. 附錄
術語表

範例清單

4.1. identity_card 身份證歸屬地表
13.1. 表格排版範例
13.2. XHTML+DIV+CSS排版範例
13.3. 例子
13.4. 例子
14.1. php language package
14.2. sql table language package
14.3. example robots.txt
14.4. Example for ECSHOP
21.1. Backup program
修訂歷史
修訂 0.1.1Sep 12, 2011Neo
章節做了大調整,將文檔分為五塊,多維度架構,開發,運維,SQA,還有DevOps。
修訂 0.1.0May 15, 2010Neo
增加解決方案一節,並填充了大量章節。同時對完成這篇文檔信心大增
修訂 0.0.42010Neo
這篇文檔几乎沒有時間和精力編輯,內容增加不多。
修訂 0.0.4April 15, 2009Neo
這篇文檔几乎擱淺,沒有時間和精力,沒有編輯加入。今天做了一下佈局調整,增加一些內容。
修訂 0.0.3Sep. 17, 2008Neo
加入關於存儲的內容
修訂 0.0.1May 24, 2008Neo
李振韜加入編譯團隊
修訂 0.0.0May 22, 2008Neo
這是一個值得紀念的日子
comments powered by Disqus