0
在家也能架出⼤大網站-     ⾮非典型精實貧窮網站維運經驗            分享                慕凡(@ryudoawaru)於WebConf2013                        2013/01/13 ...
About Me                   213年1月13⽇日星期⽇日              2
慕凡                  (ryudo)                @ryudoawaru                     313年1月13⽇日星期⽇日                 3
遊戲業10年                  413年1月13⽇日星期⽇日            4
1996                http://goo.gl/m2Xga                         513年1月13⽇日星期⽇日                         5
2006                http://hbo.x-legend.com.tw                            613年1月13⽇日星期⽇日                                6
roles                • Game System Designer                • Executive Producer                • Release Manager          ...
2007轉職                  813年1月13⽇日星期⽇日            8
網站創業者                  913年1月13⽇日星期⽇日           9
Tomlan軟體⼯工作室                • http://www.tomlan.tw                • Founded on 2007.03                • 專⻑⾧長為以論壇(Discuz!)為...
旗下網站                 1113年1月13⽇日星期⽇日          11
http://www.freebbs.tw                          1213年1月13⽇日星期⽇日                           12
http://www.gameclub.tw                          1313年1月13⽇日星期⽇日                            13
freebbs.com.tw                  和我們無關                      1413年1月13⽇日星期⽇日                    14
6 years                   1513年1月13⽇日星期⽇日             15
Organize                   with                    1613年1月13⽇日星期⽇日              16
順帶⼀一提                  1713年1月13⽇日星期⽇日           17
謙虛的⼈人也可以學Rails                      1813年1月13⽇日星期⽇日                    18
Agendas                • 為何要在家架網站                • 在家架網站的細節                 • 頻寬                 • 硬體                 • 軟體...
Why Self-Hosting?                        2013年1月13⽇日星期⽇日                       20
成本控制                 2113年1月13⽇日星期⽇日          21
雲端 V.S. 在家架站                  成本⽐比較                     2213年1月13⽇日星期⽇日                  22
⺫⽬目標網站                • 網站類型:論壇社群                • 訪客:Unique Visitor 40,000+/day                • 月流量:                 • 主...
如果在AWS(JP)                • 1 EC2 Large Instance                 • 月流量約800GB                • 1 S3 Storage                ...
28,000NTD/月                     2513年1月13⽇日星期⽇日                 25
轉職游⺠民確定                   2613年1月13⽇日星期⽇日             26
同樣的條件⾃自⼰己架站                     2713年1月13⽇日星期⽇日                 27
⼀一個月不到5,000                             價格       折舊期間/月 ⼀一年費⽤用                伺服器         NT$27,000      36 NT$9,000      ...
成本結構                1. 經常性開銷                 1. 網路費                 2. 電費                 3. 房租(如果有)                2. ⼀一次...
頻寬費⽤用                  3013年1月13⽇日星期⽇日           30
便宜的頻寬                就像折凳的奧妙之處⼀一樣                     3113年1月13⽇日星期⽇日                  31
光世代固定制                • 20M上傳(含)以下幾乎所有⼈人都可以裝                • 40M以上需要有FTTH(光化箱)到府                     http://fttb.hinet.ne...
硬體                • 必要的                  • 伺服器                  • HUB                  • UPS                • 不⼀一定要的      ...
Server                  3413年1月13⽇日星期⽇日            34
安靜 V.S.效能                    3513年1月13⽇日星期⽇日               35
Home Server要點                • 省空間                • 安靜/低溫                 • 放在家不能太吵或太熱                 • 不要外接顯卡           ...
候選清單                • XPC                • Mac Mini                • ⼩小型塔式品牌Server                • ⾃自組                   ...
不考慮機架Server                   (因為太吵)                     3813年1月13⽇日星期⽇日                 38
XPC                 3913年1月13⽇日星期⽇日         39
XPC-成本           • 準系統:內含主機板/電源/機殼           • 需要購買:            • CPU            • RAM            • 硬碟                    ...
XPC-優點                • ⾮非常耐⽤用(個⼈人經驗)                • 擴充性/效能與成本的平衡選擇                • 意外安靜的POWER與熱導管系統                • 最...
XPC-缺點                •   BIOS寫的不太好                •   維修服務品質低落                                4213年1月13⽇日星期⽇日            ...
Mac Mini                   4313年1月13⽇日星期⽇日              43
Mac Mini-優點                • 最⼩小體積                • Apple品質保證                • 終極的靜⾳音                              4413年1月...
Mac Mini-缺點                • 低(⾼高貴)擴充性,RAM只有兩條                • 總體持有成本⽐比XPC貴約5~7,000                • 改裝SSD需⼿手⼯工或找店家      ...
⼩小型塔式品牌Server                      4613年1月13⽇日星期⽇日                   46
Mini Tower Server-優點                • Micro-ATX機殼(約2台XPC)                • 伺服器規格,穩定性可期待                • 考量靜⾳音與持續運作的散熱之設計 ...
Mini Tower Server-缺點                • 相對佔空間                • 零組件相容性問題                         4813年1月13⽇日星期⽇日             ...
DIY主機                  4913年1月13⽇日星期⽇日           49
DIY-優點                • 對成本完全控制                • 100%的⾃自訂性                • 享受(?)HomeBrew的快感                • 便宜組件的穩定性也不賴 ...
DIY-缺點                • 組合複雜                • 相容性問題不少                • 散熱與降噪不易處理                • 要⾃自⼰己抓問題                ...
⽐比較表                                   Mac     直⽴立                       XPC                                   mini   Serv...
其它硬體注意事項                   5313年1月13⽇日星期⽇日              53
絕對不要裝家⽤用級硬                 碟在你的Server上                   (備份碟除外)                      5413年1月13⽇日星期⽇日                  54
企業級硬碟                • WD:暴⻯⿓龍/RE系列                • Seagate:ConstellationCS/ES                • Hitachi/Toshiba:就叫企業級    ...
便宜安全⾼高效⽅方案:                拆機SAS硬碟+低價                  SAS Raid卡                     5613年1月13⽇日星期⽇日                 56
永遠不要⽤用主機板上                  的fakeRaid                     5713年1月13⽇日星期⽇日                 57
其它硬體                 5813年1月13⽇日星期⽇日          58
IP-KVM                  5913年1月13⽇日星期⽇日            59
IP-POWER                   6013年1月13⽇日星期⽇日              60
機櫃                6113年1月13⽇日星期⽇日        61
NAS                 6213年1月13⽇日星期⽇日         62
SOFTWARE                   6313年1月13⽇日星期⽇日              63
沒有要講的                • 程式語⾔言                • Framework                • OS / Distribution 的選擇                            ...
要講的                • Web Server                • DB(RDBMS)                • 檔案系統與備份策略                • 網路攻擊的應對            ...
WEB Server                    6613年1月13⽇日星期⽇日                66
個⼈人經驗                • 3年Apache(2.2 Worker MPM)                 • Rails⽤用Mongrel + mod_proxy(前期) /                   Passe...
APACHE                  6813年1月13⽇日星期⽇日            68
易上⼿手                (套件管理增加功能便利)                     6913年1月13⽇日星期⽇日                  69
模組多                (裝模組不⽤用重編全部)                     7013年1月13⽇日星期⽇日                  70
⼤大家都愛.htaccess                   (修改不⽤用重開)                       7113年1月13⽇日星期⽇日                    71
功能包⼭山包海                (幾乎不⽤用開別的Daemon)                       7213年1月13⽇日星期⽇日                      72
靜態檔案效能低落                  (和Nginx⽐比)                      7313年1月13⽇日星期⽇日                  73
Proxy效能低落                  (和Nginx⽐比)                      7413年1月13⽇日星期⽇日                  74
重啟時間⻑⾧長                (連線數很多時)                   7513年1月13⽇日星期⽇日              75
重點:⼀一定不要⽤用                  Prefork                    7613年1月13⽇日星期⽇日                76
Nginx                  7713年1月13⽇日星期⽇日           77
靜態檔案速度爆快                   7813年1月13⽇日星期⽇日              78
需要調整的選項不多                  (和Apache⽐比)                       7913年1月13⽇日星期⽇日                   79
添加功能需要重編譯                    8013年1月13⽇日星期⽇日               80
例:增加Passenger      #!/bin/bash      cd $PASSENGER_ROOT      rake nginx      make clean      ./configure --prefix=/usr/local/...
改設定需要重開或reload                      8213年1月13⽇日星期⽇日                    82
php需要另外設定                  apache或fpm                (framework需特定rewrite rule)                            8313年1月13⽇日星期⽇日...
RewriteRule和Apache不太⼀一樣                  (不難學習)                     8413年1月13⽇日星期⽇日                       84
⼀一些⼩小技巧                   8513年1月13⽇日星期⽇日             85
將靜態檔案拆到不同                  VirtualHost                  (針對單⾴頁⾼高request數)                          8613年1月13⽇日星期⽇日        ...
⽤用X-Sendfile或                SecureLink做權限控管                 (避免無謂消耗後端程式資源)                       8713年1月13⽇日星期⽇日          ...
Secure Link                Nginx:HttpSecureLinkModule                 Apache:mod_auth_token                            881...
URL加料做驗證                       md5(密鑰+時間撮記+檔名+IP)                /uri-prefix/$token/$timestamp-in-hex/rel-path         /dow...
案例-線上影視串流服務                • 配合H.264模組, 無需外部Media Server                • 無需⽤用後端程式輸出                • User在看到連結後該連結極短時間內即 ...
SQL-RDBMS                • MySQL                • PostgreSQL                               9113年1月13⽇日星期⽇日                ...
MySQL                  9213年1月13⽇日星期⽇日           92
⼀一般Storage Engine                • MyISAM                • Innodb                           9313年1月13⽇日星期⽇日               ...
MyISAM的問題                • 資料稍⼤大時效能低落                • 沒有ACID(Transaction)                • 常常需要Repair table(data may lose...
MyISAM的便利性                • DB較⼩小時效能⾼高                • ⺫⽬目錄即DB,可攜性⾼高                • 需要調整的選項較少                          ...
InnoDB                  9613年1月13⽇日星期⽇日            96
參數調整很重要                   9713年1月13⽇日星期⽇日             97
Always set                innodb_buffer_pool_size >= DB size                     (RAM is very cheap now)                  ...
PostgreSQL                (別名:Oracle開源版)                      9913年1月13⽇日星期⽇日                    99
Much Stabler                     10013年1月13⽇日星期⽇日                  100
某線上遊戲(2006)                • 使⽤用版本:7.2(10 years+ )                • 同時上線⼈人數:20k+                • 程式的杯具:射⼀一⽀支箭寫⼀一次DB      ...
友善的授權條款(MIT)                     10213年1月13⽇日星期⽇日                  102
完整的現代化RDBMS功能                (View/Trigger/Stored Procedure)                              10313年1月13⽇日星期⽇日                ...
Transactional DDL            (ALTER TABLE等可rollback,MySQL不可)                          10413年1月13⽇日星期⽇日                    ...
完整字串/加密function                   (base64/md5...etc)                           10513年1月13⽇日星期⽇日                           ...
內建完整全⽂文檢索功能                   (中⽂文斷詞可能)                       10613年1月13⽇日星期⽇日                  106
Schema Namespace                (適⽤用於Multi-Tenancy架構應⽤用)                           10713年1月13⽇日星期⽇日                       ...
知名使⽤用機構                • NASA                • Instagram                • NTT                • Skype                • IMDB...
與MySQL⽐比較                (http://goo.gl/uWgil)                         10913年1月13⽇日星期⽇日                           109
File System(Linux)                        11013年1月13⽇日星期⽇日                        110
EXT家族                • 通⽤用性⼯工具⽀支援                • 多數套件預設使⽤用                • 平衡的效能                • 可容納檔案數⼩小於xfs         ...
XFS                • ⾃自成⼀一體的⼯工具體系                • ⾼高檔案承載數                • 需花時間學習⼯工具⽤用法                • 中⽂文資源較少         ...
LVM                 11313年1月13⽇日星期⽇日          113
What is LVM?(from⿃鳥哥)         LVM 的全名是 Logical Volume Manager,中⽂文可          以翻譯作邏輯捲軸管理員。之所以稱為『捲          軸』可能是因為可以將 filesys...
Everyone should use                       LVM.                         11513年1月13⽇日星期⽇日                         115
分享:Snapshot備份法                (from: 我是ricky⼤大⼤大)                        11613年1月13⽇日星期⽇日                         116
流程                1. 停⽌止所有服務                2. make & mount LVM snapshot                3. 啟動所有服務                4. ⽤用snap...
Example code                #!/bin/bash                ####STOP	  services#####################                /etc/init.d...
優點                • 可適⽤用所有組合                • 停機時間⼩小於10秒                • 可獲得完整分割區備份                         11913年1月13⽇日星...
網路攻擊防範                (別名:⼈人體防⽕火牆訓練養成中⼼心)                         12013年1月13⽇日星期⽇日                         120
⾃自建主機最⼤大挑戰                    12113年1月13⽇日星期⽇日                121
攻擊者的⺫⽬目的                • $$$$$                •爽                • 純研究                • 攻擊和網站有關的特定對象                      ...
概念:資源對資源的                    戰爭                    12313年1月13⽇日星期⽇日               123
不會有真正有效的辦法                除⾮非                 12413年1月13⽇日星期⽇日          124
唯⼀一可以確定的是                    12513年1月13⽇日星期⽇日               125
讓攻擊⼿手知道你不好                惹, 要花很多成本攻擊                    你, 知難⽽而退                     12613年1月13⽇日星期⽇日                  126
攻擊⽅方式分類                • 癱瘓服務                 • 針對程式弱點                 • 讓系統負載暴衝                • 塞爆頻寬                 • S...
針對程式弱點的攻擊                • 好發於:                 • Multi-Tenancy式系統(BSP/FSP...)                 • 廣泛被⼤大眾使⽤用的系統             ...
塞爆頻寬的攻擊                • 後備頻寬⾮非常重要                • 問題在找出該封堵的IP                          12913年1月13⽇日星期⽇日                 ...
處理流程                1. 搜尋log檔                2. 建⽴立scan log流程                3. 執⾏行scan log流程,產⽣生問題IP清單                4. ...
scan log⽅方式                • ⽤用tail看log找出怪異之處                 • 異常快速增⻑⾧長的request                 • hostname異常的request     ...
重導virtualhost                                         (nginx)                	  	  server{                	  	  	  	  serv...
終極絕招-阻擋國家IP                   xt_geoip                     13313年1月13⽇日星期⽇日                 133
xt_geoip                • part of xtables-addons                • iptables addon                • need kernel 2.6+        ...
Why xt_geoip                • 攻擊IP(⾁肉雞)幾乎全部來⾃自外國                 • 中國佔90%                 • 東歐國家                 • 中東國家   ...
好⽤用省錢的服務                   13613年1月13⽇日星期⽇日              136
KDDI CloudCore VPS                    13713年1月13⽇日星期⽇日                    137
純iaas,無其它功能                     13813年1月13⽇日星期⽇日                 138
難以置信的超低價                   13913年1月13⽇日星期⽇日              139
不⽤用流量計費, 單⼀一規                   格(擴充不可)                      14013年1月13⽇日星期⽇日                   140
缺乏管理功能與圖表                    14113年1月13⽇日星期⽇日               141
令⼈人安⼼心的ping值(50                     出頭)                       14213年1月13⽇日星期⽇日                     142
不保證Uptime                  (其實很可靠)                     14313年1月13⽇日星期⽇日               143
開發者⽀支援制度                   (淚)                   14413年1月13⽇日星期⽇日              144
imgur                  14513年1月13⽇日星期⽇日           145
imgur                • 經實驗證明真正不限流量圖庫                • 限制⽅方式為每⼩小時上傳量                • 具後端上傳的API                • 商業使⽤用需付費(條...
End                (Any qustion?)                      14713年1月13⽇日星期⽇日                    147
題外話                 14813年1月13⽇日星期⽇日          148
公會網正在尋求合作                  經營的夥伴                    14913年1月13⽇日星期⽇日               149
番外篇                世⼈人對雲端的誤解                    15013年1月13⽇日星期⽇日               150
以下觀點可能會包含                 部份或全部的偏⾒見                 (歡迎提出指正或疑問)                      15113年1月13⽇日星期⽇日                  151
⼀一般對雲端的認知                1. 雲端⽐比較省錢                2. 雲端⽐比較省⼒力                3. 雲端⽐比較穩定                              1521...
認知⼆二:雲端省⼒力論           由於雲端(尤其是Paas類服務           如Heroku/EngineYard)已經           幫你設定好, 你所做的就是去           開機器或是設定dyno數.    ...
等價交換原則                  15413年1月13⽇日星期⽇日            154
等價交換原則       • iaas服務:只是給你⼀一台灌好OS的虛擬機       • Paas服務:給你的越多, 限制的也越多       • 第三⽅方服務:⽤用的越多, 花的$$越多       • ⽣生態圈綁定問題          ...
認知三:雲端穩定論           雲端是別⼈人設定好的, 硬體不           會壞掉所以⽐比較穩定.                    15613年1月13⽇日星期⽇日                156
關鍵因素:第三⽅方服務                15713年1月13⽇日星期⽇日           157
Upcoming SlideShare
Loading in...5
×

Webconf2013-非典型貧窮網站維運經驗分享

10,128

Published on

http://www.webconf.tw/program.html

Published in: Technology
0 Comments
51 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
10,128
On Slideshare
0
From Embeds
0
Number of Embeds
7
Actions
Shares
0
Downloads
170
Comments
0
Likes
51
Embeds 0
No embeds

No notes for slide

Transcript of "Webconf2013-非典型貧窮網站維運經驗分享"

  1. 1. 在家也能架出⼤大網站- ⾮非典型精實貧窮網站維運經驗 分享 慕凡(@ryudoawaru)於WebConf2013 2013/01/13 113年1月13⽇日星期⽇日 1
  2. 2. About Me 213年1月13⽇日星期⽇日 2
  3. 3. 慕凡 (ryudo) @ryudoawaru 313年1月13⽇日星期⽇日 3
  4. 4. 遊戲業10年 413年1月13⽇日星期⽇日 4
  5. 5. 1996 http://goo.gl/m2Xga 513年1月13⽇日星期⽇日 5
  6. 6. 2006 http://hbo.x-legend.com.tw 613年1月13⽇日星期⽇日 6
  7. 7. roles • Game System Designer • Executive Producer • Release Manager • DB Tool Programmer 713年1月13⽇日星期⽇日 7
  8. 8. 2007轉職 813年1月13⽇日星期⽇日 8
  9. 9. 網站創業者 913年1月13⽇日星期⽇日 9
  10. 10. Tomlan軟體⼯工作室 • http://www.tomlan.tw • Founded on 2007.03 • 專⻑⾧長為以論壇(Discuz!)為主體的社群系 統 1013年1月13⽇日星期⽇日 10
  11. 11. 旗下網站 1113年1月13⽇日星期⽇日 11
  12. 12. http://www.freebbs.tw 1213年1月13⽇日星期⽇日 12
  13. 13. http://www.gameclub.tw 1313年1月13⽇日星期⽇日 13
  14. 14. freebbs.com.tw 和我們無關 1413年1月13⽇日星期⽇日 14
  15. 15. 6 years 1513年1月13⽇日星期⽇日 15
  16. 16. Organize with 1613年1月13⽇日星期⽇日 16
  17. 17. 順帶⼀一提 1713年1月13⽇日星期⽇日 17
  18. 18. 謙虛的⼈人也可以學Rails 1813年1月13⽇日星期⽇日 18
  19. 19. Agendas • 為何要在家架網站 • 在家架網站的細節 • 頻寬 • 硬體 • 軟體 • 其它好⽤用的服務 1913年1月13⽇日星期⽇日 19
  20. 20. Why Self-Hosting? 2013年1月13⽇日星期⽇日 20
  21. 21. 成本控制 2113年1月13⽇日星期⽇日 21
  22. 22. 雲端 V.S. 在家架站 成本⽐比較 2213年1月13⽇日星期⽇日 22
  23. 23. ⺫⽬目標網站 • 網站類型:論壇社群 • 訪客:Unique Visitor 40,000+/day • 月流量: • 主站:800GB • 圖庫:1.4TB 2313年1月13⽇日星期⽇日 23
  24. 24. 如果在AWS(JP) • 1 EC2 Large Instance • 月流量約800GB • 1 S3 Storage • 月流量約1.4TB • 1 RDS(Large) for MySQL 2413年1月13⽇日星期⽇日 24
  25. 25. 28,000NTD/月 2513年1月13⽇日星期⽇日 25
  26. 26. 轉職游⺠民確定 2613年1月13⽇日星期⽇日 26
  27. 27. 同樣的條件⾃自⼰己架站 2713年1月13⽇日星期⽇日 27
  28. 28. ⼀一個月不到5,000 價格 折舊期間/月 ⼀一年費⽤用 伺服器 NT$27,000 36 NT$9,000 42U機櫃 NT$12,000 60 NT$2,400 HUB NT$5,500 36 NT$1,833 IPKVM NT$23,000 36 NT$7,667 2U機架UPS NT$23,000 36 NT$7,667 網路費 20M/月 NT$2,000n/a NT$24,000 電費/月 NT$300n/a NT$3,600 ⼩小計 NT$56,167 2813年1月13⽇日星期⽇日 28
  29. 29. 成本結構 1. 經常性開銷 1. 網路費 2. 電費 3. 房租(如果有) 2. ⼀一次性費⽤用 1. 硬體設備 2913年1月13⽇日星期⽇日 29
  30. 30. 頻寬費⽤用 3013年1月13⽇日星期⽇日 30
  31. 31. 便宜的頻寬 就像折凳的奧妙之處⼀一樣 3113年1月13⽇日星期⽇日 31
  32. 32. 光世代固定制 • 20M上傳(含)以下幾乎所有⼈人都可以裝 • 40M以上需要有FTTH(光化箱)到府 http://fttb.hinet.net/3ip/fttx_rates.html 3213年1月13⽇日星期⽇日 32
  33. 33. 硬體 • 必要的 • 伺服器 • HUB • UPS • 不⼀一定要的 • IP-KVM • 機櫃 • 遠端電源管理 • NAS 3313年1月13⽇日星期⽇日 33
  34. 34. Server 3413年1月13⽇日星期⽇日 34
  35. 35. 安靜 V.S.效能 3513年1月13⽇日星期⽇日 35
  36. 36. Home Server要點 • 省空間 • 安靜/低溫 • 放在家不能太吵或太熱 • 不要外接顯卡 • 平均的效能 • 主流4核⼼心以上CPU • ⾼高速I/O 3613年1月13⽇日星期⽇日 36
  37. 37. 候選清單 • XPC • Mac Mini • ⼩小型塔式品牌Server • ⾃自組 3713年1月13⽇日星期⽇日 37
  38. 38. 不考慮機架Server (因為太吵) 3813年1月13⽇日星期⽇日 38
  39. 39. XPC 3913年1月13⽇日星期⽇日 39
  40. 40. XPC-成本 • 準系統:內含主機板/電源/機殼 • 需要購買: • CPU • RAM • 硬碟 4013年1月13⽇日星期⽇日 40
  41. 41. XPC-優點 • ⾮非常耐⽤用(個⼈人經驗) • 擴充性/效能與成本的平衡選擇 • 意外安靜的POWER與熱導管系統 • 最⼩小Size可以插四條RAM的選擇 • 幾乎所有機型都有內顯 4113年1月13⽇日星期⽇日 41
  42. 42. XPC-缺點 • BIOS寫的不太好 • 維修服務品質低落 4213年1月13⽇日星期⽇日 42
  43. 43. Mac Mini 4313年1月13⽇日星期⽇日 43
  44. 44. Mac Mini-優點 • 最⼩小體積 • Apple品質保證 • 終極的靜⾳音 4413年1月13⽇日星期⽇日 44
  45. 45. Mac Mini-缺點 • 低(⾼高貴)擴充性,RAM只有兩條 • 總體持有成本⽐比XPC貴約5~7,000 • 改裝SSD需⼿手⼯工或找店家 • CPU頻率較低(2.3 v.s. 3.4) • 改裝Linux系OS需調整(http://goo.gl/ cEDw2) 4513年1月13⽇日星期⽇日 45
  46. 46. ⼩小型塔式品牌Server 4613年1月13⽇日星期⽇日 46
  47. 47. Mini Tower Server-優點 • Micro-ATX機殼(約2台XPC) • 伺服器規格,穩定性可期待 • 考量靜⾳音與持續運作的散熱之設計 • 內建雙網卡/硬碟熱抽換模組/獨⽴立顯⽰示 • 價格平⺠民化,可插⼀一般RAM 4713年1月13⽇日星期⽇日 47
  48. 48. Mini Tower Server-缺點 • 相對佔空間 • 零組件相容性問題 4813年1月13⽇日星期⽇日 48
  49. 49. DIY主機 4913年1月13⽇日星期⽇日 49
  50. 50. DIY-優點 • 對成本完全控制 • 100%的⾃自訂性 • 享受(?)HomeBrew的快感 • 便宜組件的穩定性也不賴 5013年1月13⽇日星期⽇日 50
  51. 51. DIY-缺點 • 組合複雜 • 相容性問題不少 • 散熱與降噪不易處理 • 要⾃自⼰己抓問題 5113年1月13⽇日星期⽇日 51
  52. 52. ⽐比較表 Mac 直⽴立 XPC mini Server $ 便宜 最貴 有點貴 靜⾳音 安靜 超安靜 普通 散熱 普通 普通 最好 佔空間 ⼩小 最⼩小 ⼤大 效能 ⾼高 最低 ⾼高 擴充性 中 無 ⾼高 穩定性 OK OK 最⾼高 5213年1月13⽇日星期⽇日 52
  53. 53. 其它硬體注意事項 5313年1月13⽇日星期⽇日 53
  54. 54. 絕對不要裝家⽤用級硬 碟在你的Server上 (備份碟除外) 5413年1月13⽇日星期⽇日 54
  55. 55. 企業級硬碟 • WD:暴⻯⿓龍/RE系列 • Seagate:ConstellationCS/ES • Hitachi/Toshiba:就叫企業級 • 所有SAS硬碟 5513年1月13⽇日星期⽇日 55
  56. 56. 便宜安全⾼高效⽅方案: 拆機SAS硬碟+低價 SAS Raid卡 5613年1月13⽇日星期⽇日 56
  57. 57. 永遠不要⽤用主機板上 的fakeRaid 5713年1月13⽇日星期⽇日 57
  58. 58. 其它硬體 5813年1月13⽇日星期⽇日 58
  59. 59. IP-KVM 5913年1月13⽇日星期⽇日 59
  60. 60. IP-POWER 6013年1月13⽇日星期⽇日 60
  61. 61. 機櫃 6113年1月13⽇日星期⽇日 61
  62. 62. NAS 6213年1月13⽇日星期⽇日 62
  63. 63. SOFTWARE 6313年1月13⽇日星期⽇日 63
  64. 64. 沒有要講的 • 程式語⾔言 • Framework • OS / Distribution 的選擇 6413年1月13⽇日星期⽇日 64
  65. 65. 要講的 • Web Server • DB(RDBMS) • 檔案系統與備份策略 • 網路攻擊的應對 6513年1月13⽇日星期⽇日 65
  66. 66. WEB Server 6613年1月13⽇日星期⽇日 66
  67. 67. 個⼈人經驗 • 3年Apache(2.2 Worker MPM) • Rails⽤用Mongrel + mod_proxy(前期) / Passenger • 2年Nginx • PHP 5.3 FPM + FastCGI • Rails⽤用Passenger/Thin 6713年1月13⽇日星期⽇日 67
  68. 68. APACHE 6813年1月13⽇日星期⽇日 68
  69. 69. 易上⼿手 (套件管理增加功能便利) 6913年1月13⽇日星期⽇日 69
  70. 70. 模組多 (裝模組不⽤用重編全部) 7013年1月13⽇日星期⽇日 70
  71. 71. ⼤大家都愛.htaccess (修改不⽤用重開) 7113年1月13⽇日星期⽇日 71
  72. 72. 功能包⼭山包海 (幾乎不⽤用開別的Daemon) 7213年1月13⽇日星期⽇日 72
  73. 73. 靜態檔案效能低落 (和Nginx⽐比) 7313年1月13⽇日星期⽇日 73
  74. 74. Proxy效能低落 (和Nginx⽐比) 7413年1月13⽇日星期⽇日 74
  75. 75. 重啟時間⻑⾧長 (連線數很多時) 7513年1月13⽇日星期⽇日 75
  76. 76. 重點:⼀一定不要⽤用 Prefork 7613年1月13⽇日星期⽇日 76
  77. 77. Nginx 7713年1月13⽇日星期⽇日 77
  78. 78. 靜態檔案速度爆快 7813年1月13⽇日星期⽇日 78
  79. 79. 需要調整的選項不多 (和Apache⽐比) 7913年1月13⽇日星期⽇日 79
  80. 80. 添加功能需要重編譯 8013年1月13⽇日星期⽇日 80
  81. 81. 例:增加Passenger #!/bin/bash cd $PASSENGER_ROOT rake nginx make clean ./configure --prefix=/usr/local/nginx --with-http_ssl_module --add- module=$PASSENGER_ROOT/ext/nginx 8113年1月13⽇日星期⽇日 81
  82. 82. 改設定需要重開或reload 8213年1月13⽇日星期⽇日 82
  83. 83. php需要另外設定 apache或fpm (framework需特定rewrite rule) 8313年1月13⽇日星期⽇日 83
  84. 84. RewriteRule和Apache不太⼀一樣 (不難學習) 8413年1月13⽇日星期⽇日 84
  85. 85. ⼀一些⼩小技巧 8513年1月13⽇日星期⽇日 85
  86. 86. 將靜態檔案拆到不同 VirtualHost (針對單⾴頁⾼高request數) 8613年1月13⽇日星期⽇日 86
  87. 87. ⽤用X-Sendfile或 SecureLink做權限控管 (避免無謂消耗後端程式資源) 8713年1月13⽇日星期⽇日 87
  88. 88. Secure Link Nginx:HttpSecureLinkModule Apache:mod_auth_token 8813年1月13⽇日星期⽇日 88
  89. 89. URL加料做驗證 md5(密鑰+時間撮記+檔名+IP) /uri-prefix/$token/$timestamp-in-hex/rel-path /downloads/dee0ed6174a894113d5e8f6c98f0e92b/ 43eaf9c5/file_to_protect.txt $token為預先設定的AuthTokenSecret加上檔名與時 間撮記後md5加密⽽而成, 具有時效性 8913年1月13⽇日星期⽇日 89
  90. 90. 案例-線上影視串流服務 • 配合H.264模組, 無需外部Media Server • 無需⽤用後端程式輸出 • User在看到連結後該連結極短時間內即 失效, 故user無法下載檔案. 9013年1月13⽇日星期⽇日 90
  91. 91. SQL-RDBMS • MySQL • PostgreSQL 9113年1月13⽇日星期⽇日 91
  92. 92. MySQL 9213年1月13⽇日星期⽇日 92
  93. 93. ⼀一般Storage Engine • MyISAM • Innodb 9313年1月13⽇日星期⽇日 93
  94. 94. MyISAM的問題 • 資料稍⼤大時效能低落 • 沒有ACID(Transaction) • 常常需要Repair table(data may lose) • 備份時會卡住全DB 9413年1月13⽇日星期⽇日 94
  95. 95. MyISAM的便利性 • DB較⼩小時效能⾼高 • ⺫⽬目錄即DB,可攜性⾼高 • 需要調整的選項較少 9513年1月13⽇日星期⽇日 95
  96. 96. InnoDB 9613年1月13⽇日星期⽇日 96
  97. 97. 參數調整很重要 9713年1月13⽇日星期⽇日 97
  98. 98. Always set innodb_buffer_pool_size >= DB size (RAM is very cheap now) 9813年1月13⽇日星期⽇日 98
  99. 99. PostgreSQL (別名:Oracle開源版) 9913年1月13⽇日星期⽇日 99
  100. 100. Much Stabler 10013年1月13⽇日星期⽇日 100
  101. 101. 某線上遊戲(2006) • 使⽤用版本:7.2(10 years+ ) • 同時上線⼈人數:20k+ • 程式的杯具:射⼀一⽀支箭寫⼀一次DB • 程式掛了,但DB還活著 10113年1月13⽇日星期⽇日 101
  102. 102. 友善的授權條款(MIT) 10213年1月13⽇日星期⽇日 102
  103. 103. 完整的現代化RDBMS功能 (View/Trigger/Stored Procedure) 10313年1月13⽇日星期⽇日 103
  104. 104. Transactional DDL (ALTER TABLE等可rollback,MySQL不可) 10413年1月13⽇日星期⽇日 104
  105. 105. 完整字串/加密function (base64/md5...etc) 10513年1月13⽇日星期⽇日 105
  106. 106. 內建完整全⽂文檢索功能 (中⽂文斷詞可能) 10613年1月13⽇日星期⽇日 106
  107. 107. Schema Namespace (適⽤用於Multi-Tenancy架構應⽤用) 10713年1月13⽇日星期⽇日 107
  108. 108. 知名使⽤用機構 • NASA • Instagram • NTT • Skype • IMDB 10813年1月13⽇日星期⽇日 108
  109. 109. 與MySQL⽐比較 (http://goo.gl/uWgil) 10913年1月13⽇日星期⽇日 109
  110. 110. File System(Linux) 11013年1月13⽇日星期⽇日 110
  111. 111. EXT家族 • 通⽤用性⼯工具⽀支援 • 多數套件預設使⽤用 • 平衡的效能 • 可容納檔案數⼩小於xfs 11113年1月13⽇日星期⽇日 111
  112. 112. XFS • ⾃自成⼀一體的⼯工具體系 • ⾼高檔案承載數 • 需花時間學習⼯工具⽤用法 • 中⽂文資源較少 11213年1月13⽇日星期⽇日 112
  113. 113. LVM 11313年1月13⽇日星期⽇日 113
  114. 114. What is LVM?(from⿃鳥哥) LVM 的全名是 Logical Volume Manager,中⽂文可 以翻譯作邏輯捲軸管理員。之所以稱為『捲 軸』可能是因為可以將 filesystem 像捲軸⼀一樣 伸⻑⾧長或縮短之故吧!LVM 的作法是將幾個實體 的 partitions (或 disk) 透過軟體組合成為⼀一塊看 起來是獨⽴立的⼤大磁碟 (VG) ,然後將這塊⼤大磁 碟再經過分割成為可使⽤用分割槽 (LV), 最終就 能夠掛載使⽤用了。 11413年1月13⽇日星期⽇日 114
  115. 115. Everyone should use LVM. 11513年1月13⽇日星期⽇日 115
  116. 116. 分享:Snapshot備份法 (from: 我是ricky⼤大⼤大) 11613年1月13⽇日星期⽇日 116
  117. 117. 流程 1. 停⽌止所有服務 2. make & mount LVM snapshot 3. 啟動所有服務 4. ⽤用snapshot partition的資料進⾏行備份 5. umount & delete snapshot partition 6. 收⼯工 11713年1月13⽇日星期⽇日 117
  118. 118. Example code #!/bin/bash ####STOP  services##################### /etc/init.d/nginx  stop /etc/init.d/php-­‐fpm  stop /etc/init.d/mongod  stop /etc/init.d/mysqld  stop ####Make  &  mount  snapshot  partition### /sbin/lvcreate  -­‐l  350  -­‐s  -­‐n  DATASNAP  /dev/VG1/DATA /bin/mount  /dev/VG1/DATASNAP  /mnt/DATASNAP ####Start  services#################### /etc/init.d/mongod  start /etc/init.d/mysqld  start /etc/init.d/php-­‐fpm  start /etc/init.d/nginx  start ####Backup  Process#################### ..... ####umount  &  remove  partition######### /bin/umount  /mnt/DATASNAP /sbin/lvremove  -­‐f  /dev/VG1/DATASNAP 11813年1月13⽇日星期⽇日 118
  119. 119. 優點 • 可適⽤用所有組合 • 停機時間⼩小於10秒 • 可獲得完整分割區備份 11913年1月13⽇日星期⽇日 119
  120. 120. 網路攻擊防範 (別名:⼈人體防⽕火牆訓練養成中⼼心) 12013年1月13⽇日星期⽇日 120
  121. 121. ⾃自建主機最⼤大挑戰 12113年1月13⽇日星期⽇日 121
  122. 122. 攻擊者的⺫⽬目的 • $$$$$ •爽 • 純研究 • 攻擊和網站有關的特定對象 12213年1月13⽇日星期⽇日 122
  123. 123. 概念:資源對資源的 戰爭 12313年1月13⽇日星期⽇日 123
  124. 124. 不會有真正有效的辦法 除⾮非 12413年1月13⽇日星期⽇日 124
  125. 125. 唯⼀一可以確定的是 12513年1月13⽇日星期⽇日 125
  126. 126. 讓攻擊⼿手知道你不好 惹, 要花很多成本攻擊 你, 知難⽽而退 12613年1月13⽇日星期⽇日 126
  127. 127. 攻擊⽅方式分類 • 癱瘓服務 • 針對程式弱點 • 讓系統負載暴衝 • 塞爆頻寬 • SYN_FLOOD • DDOS 12713年1月13⽇日星期⽇日 127
  128. 128. 針對程式弱點的攻擊 • 好發於: • Multi-Tenancy式系統(BSP/FSP...) • 廣泛被⼤大眾使⽤用的系統 • 具有歷史共業的系統 • 完全⾃自製系統通常不會有此問題 • 通常只能⽤用改程式處理 • 短期的防堵也是⼀一種⽅方法 12813年1月13⽇日星期⽇日 128
  129. 129. 塞爆頻寬的攻擊 • 後備頻寬⾮非常重要 • 問題在找出該封堵的IP 12913年1月13⽇日星期⽇日 129
  130. 130. 處理流程 1. 搜尋log檔 2. 建⽴立scan log流程 3. 執⾏行scan log流程,產⽣生問題IP清單 4. 將問題IP加到iptables的封堵清單 5. restart iptables 6. 將3-5變成⾃自動執⾏行 13013年1月13⽇日星期⽇日 130
  131. 131. scan log⽅方式 • ⽤用tail看log找出怪異之處 • 異常快速增⻑⾧長的request • hostname異常的request • 純ip request • 無agent或奇怪agent的request 13113年1月13⽇日星期⽇日 131
  132. 132. 重導virtualhost (nginx)    server{        server_name  _;        root  /var/www/html;        access_log  logs/DDOS-­‐access.log  main;        error_log  /dev/error.log;        return  400;    } 13213年1月13⽇日星期⽇日 132
  133. 133. 終極絕招-阻擋國家IP xt_geoip 13313年1月13⽇日星期⽇日 133
  134. 134. xt_geoip • part of xtables-addons • iptables addon • need kernel 2.6+ • http://goo.gl/NoqRh 13413年1月13⽇日星期⽇日 134
  135. 135. Why xt_geoip • 攻擊IP(⾁肉雞)幾乎全部來⾃自外國 • 中國佔90% • 東歐國家 • 中東國家 • 簡單⽽而粗暴(但是有效)的⽅方法 • ⼀一⾏行iptables設定封堵⼀一整國 13513年1月13⽇日星期⽇日 135
  136. 136. 好⽤用省錢的服務 13613年1月13⽇日星期⽇日 136
  137. 137. KDDI CloudCore VPS 13713年1月13⽇日星期⽇日 137
  138. 138. 純iaas,無其它功能 13813年1月13⽇日星期⽇日 138
  139. 139. 難以置信的超低價 13913年1月13⽇日星期⽇日 139
  140. 140. 不⽤用流量計費, 單⼀一規 格(擴充不可) 14013年1月13⽇日星期⽇日 140
  141. 141. 缺乏管理功能與圖表 14113年1月13⽇日星期⽇日 141
  142. 142. 令⼈人安⼼心的ping值(50 出頭) 14213年1月13⽇日星期⽇日 142
  143. 143. 不保證Uptime (其實很可靠) 14313年1月13⽇日星期⽇日 143
  144. 144. 開發者⽀支援制度 (淚) 14413年1月13⽇日星期⽇日 144
  145. 145. imgur 14513年1月13⽇日星期⽇日 145
  146. 146. imgur • 經實驗證明真正不限流量圖庫 • 限制⽅方式為每⼩小時上傳量 • 具後端上傳的API • 商業使⽤用需付費(條款限制) • 不可思議的低價 14613年1月13⽇日星期⽇日 146
  147. 147. End (Any qustion?) 14713年1月13⽇日星期⽇日 147
  148. 148. 題外話 14813年1月13⽇日星期⽇日 148
  149. 149. 公會網正在尋求合作 經營的夥伴 14913年1月13⽇日星期⽇日 149
  150. 150. 番外篇 世⼈人對雲端的誤解 15013年1月13⽇日星期⽇日 150
  151. 151. 以下觀點可能會包含 部份或全部的偏⾒見 (歡迎提出指正或疑問) 15113年1月13⽇日星期⽇日 151
  152. 152. ⼀一般對雲端的認知 1. 雲端⽐比較省錢 2. 雲端⽐比較省⼒力 3. 雲端⽐比較穩定 15213年1月13⽇日星期⽇日 152
  153. 153. 認知⼆二:雲端省⼒力論 由於雲端(尤其是Paas類服務 如Heroku/EngineYard)已經 幫你設定好, 你所做的就是去 開機器或是設定dyno數. 15313年1月13⽇日星期⽇日 153
  154. 154. 等價交換原則 15413年1月13⽇日星期⽇日 154
  155. 155. 等價交換原則 • iaas服務:只是給你⼀一台灌好OS的虛擬機 • Paas服務:給你的越多, 限制的也越多 • 第三⽅方服務:⽤用的越多, 花的$$越多 • ⽣生態圈綁定問題 15513年1月13⽇日星期⽇日 155
  156. 156. 認知三:雲端穩定論 雲端是別⼈人設定好的, 硬體不 會壞掉所以⽐比較穩定. 15613年1月13⽇日星期⽇日 156
  157. 157. 關鍵因素:第三⽅方服務 15713年1月13⽇日星期⽇日 157
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×