SlideShare une entreprise Scribd logo
1  sur  157
Télécharger pour lire hors ligne
在家也能架出⼤大網站-
     ⾮非典型精實貧窮網站維運經驗
            分享


                慕凡(@ryudoawaru)於WebConf2013
                        2013/01/13


                             1
13年1月13⽇日星期⽇日                                 1
About Me



                   2
13年1月13⽇日星期⽇日              2
慕凡
                  (ryudo)
                @ryudoawaru



                     3
13年1月13⽇日星期⽇日                 3
遊戲業10年



                  4
13年1月13⽇日星期⽇日            4
1996




                http://goo.gl/m2Xga
                         5
13年1月13⽇日星期⽇日                         5
2006




                http://hbo.x-legend.com.tw
                            6
13年1月13⽇日星期⽇日                                6
roles
                • Game System Designer
                • Executive Producer
                • Release Manager
                • DB Tool Programmer


                                7
13年1月13⽇日星期⽇日                            7
2007轉職




                  8
13年1月13⽇日星期⽇日            8
網站創業者




                  9
13年1月13⽇日星期⽇日           9
Tomlan軟體⼯工作室
                • http://www.tomlan.tw
                • Founded on 2007.03
                • 專⻑⾧長為以論壇(Discuz!)為主體的社群系
                 統




                            10
13年1月13⽇日星期⽇日                                10
旗下網站



                 11
13年1月13⽇日星期⽇日          11
http://www.freebbs.tw
                          12
13年1月13⽇日星期⽇日                           12
http://www.gameclub.tw
                          13
13年1月13⽇日星期⽇日                            13
freebbs.com.tw
                  和我們無關


                      14
13年1月13⽇日星期⽇日                    14
6 years




                   15
13年1月13⽇日星期⽇日             15
Organize



                   with




                    16
13年1月13⽇日星期⽇日              16
順帶⼀一提



                  17
13年1月13⽇日星期⽇日           17
謙虛的⼈人也可以學Rails




                      18
13年1月13⽇日星期⽇日                    18
Agendas
                • 為何要在家架網站
                • 在家架網站的細節
                 • 頻寬
                 • 硬體
                 • 軟體
                 • 其它好⽤用的服務
                          19
13年1月13⽇日星期⽇日                   19
Why Self-Hosting?



                        20
13年1月13⽇日星期⽇日                       20
成本控制



                 21
13年1月13⽇日星期⽇日          21
雲端 V.S. 在家架站
                  成本⽐比較


                     22
13年1月13⽇日星期⽇日                  22
⺫⽬目標網站
                • 網站類型:論壇社群
                • 訪客:Unique Visitor 40,000+/day
                • 月流量:
                 • 主站:800GB
                 • 圖庫:1.4TB

                                 23
13年1月13⽇日星期⽇日                                     23
如果在AWS(JP)
                • 1 EC2 Large Instance
                 • 月流量約800GB
                • 1 S3 Storage
                 • 月流量約1.4TB
                • 1 RDS(Large) for MySQL

                                 24
13年1月13⽇日星期⽇日                              24
28,000NTD/月




                     25
13年1月13⽇日星期⽇日                 25
轉職游⺠民確定




                   26
13年1月13⽇日星期⽇日             26
同樣的條件⾃自⼰己架站



                     27
13年1月13⽇日星期⽇日                 27
⼀一個月不到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




                                 28
13年1月13⽇日星期⽇日                                             28
成本結構
                1. 經常性開銷
                 1. 網路費
                 2. 電費
                 3. 房租(如果有)
                2. ⼀一次性費⽤用
                 1. 硬體設備


                              29
13年1月13⽇日星期⽇日                      29
頻寬費⽤用



                  30
13年1月13⽇日星期⽇日           30
便宜的頻寬
                就像折凳的奧妙之處⼀一樣




                     31
13年1月13⽇日星期⽇日                  31
光世代固定制
                • 20M上傳(含)以下幾乎所有⼈人都可以裝
                • 40M以上需要有FTTH(光化箱)到府




                     http://fttb.hinet.net/3ip/fttx_rates.html
                                        32
13年1月13⽇日星期⽇日                                                    32
硬體
                • 必要的
                  • 伺服器
                  • HUB
                  • UPS
                • 不⼀一定要的
                  • IP-KVM
                  • 機櫃
                  • 遠端電源管理
                  • NAS
                             33
13年1月13⽇日星期⽇日                     33
Server




                  34
13年1月13⽇日星期⽇日            34
安靜 V.S.效能




                    35
13年1月13⽇日星期⽇日               35
Home Server要點
                • 省空間
                • 安靜/低溫
                 • 放在家不能太吵或太熱
                 • 不要外接顯卡
                • 平均的效能
                 • 主流4核⼼心以上CPU
                 • ⾼高速I/O
                          36
13年1月13⽇日星期⽇日                    36
候選清單
                • XPC
                • Mac Mini
                • ⼩小型塔式品牌Server
                • ⾃自組


                             37
13年1月13⽇日星期⽇日                     37
不考慮機架Server
                   (因為太吵)




                     38
13年1月13⽇日星期⽇日                 38
XPC




                 39
13年1月13⽇日星期⽇日         39
XPC-成本
           • 準系統:內含主機板/電源/機殼
           • 需要購買:
            • CPU
            • RAM
            • 硬碟

                     40
13年1月13⽇日星期⽇日                  40
XPC-優點
                • ⾮非常耐⽤用(個⼈人經驗)
                • 擴充性/效能與成本的平衡選擇
                • 意外安靜的POWER與熱導管系統
                • 最⼩小Size可以插四條RAM的選擇
                • 幾乎所有機型都有內顯
                           41
13年1月13⽇日星期⽇日                          41
XPC-缺點
                •   BIOS寫的不太好

                •   維修服務品質低落




                                42
13年1月13⽇日星期⽇日                        42
Mac Mini




                   43
13年1月13⽇日星期⽇日              43
Mac Mini-優點
                • 最⼩小體積
                • Apple品質保證
                • 終極的靜⾳音



                              44
13年1月13⽇日星期⽇日                      44
Mac Mini-缺點
                • 低(⾼高貴)擴充性,RAM只有兩條
                • 總體持有成本⽐比XPC貴約5~7,000
                • 改裝SSD需⼿手⼯工或找店家
                • CPU頻率較低(2.3 v.s. 3.4)
                • 改裝Linux系OS需調整(http://goo.gl/
                 cEDw2)


                               45
13年1月13⽇日星期⽇日                                    45
⼩小型塔式品牌Server




                      46
13年1月13⽇日星期⽇日                   46
Mini Tower Server-優點
                • Micro-ATX機殼(約2台XPC)
                • 伺服器規格,穩定性可期待
                • 考量靜⾳音與持續運作的散熱之設計
                • 內建雙網卡/硬碟熱抽換模組/獨⽴立顯⽰示
                • 價格平⺠民化,可插⼀一般RAM

                           47
13年1月13⽇日星期⽇日                            47
Mini Tower Server-缺點
                • 相對佔空間
                • 零組件相容性問題




                         48
13年1月13⽇日星期⽇日                      48
DIY主機




                  49
13年1月13⽇日星期⽇日           49
DIY-優點
                • 對成本完全控制
                • 100%的⾃自訂性
                • 享受(?)HomeBrew的快感
                • 便宜組件的穩定性也不賴


                             50
13年1月13⽇日星期⽇日                        50
DIY-缺點
                • 組合複雜
                • 相容性問題不少
                • 散熱與降噪不易處理
                • 要⾃自⼰己抓問題


                         51
13年1月13⽇日星期⽇日                 51
⽐比較表
                                   Mac     直⽴立
                       XPC
                                   mini   Server
                  $    便宜          最貴     有點貴
                 靜⾳音   安靜         超安靜      普通
                 散熱    普通          普通      最好
                佔空間     ⼩小         最⼩小      ⼤大
                 效能     ⾼高         最低       ⾼高
                擴充性     中           無       ⾼高
                穩定性    OK          OK      最⾼高

                             52
13年1月13⽇日星期⽇日                                      52
其它硬體注意事項



                   53
13年1月13⽇日星期⽇日              53
絕對不要裝家⽤用級硬
                 碟在你的Server上
                   (備份碟除外)



                      54
13年1月13⽇日星期⽇日                  54
企業級硬碟
                • WD:暴⻯⿓龍/RE系列
                • Seagate:ConstellationCS/ES
                • Hitachi/Toshiba:就叫企業級
                • 所有SAS硬碟


                                 55
13年1月13⽇日星期⽇日                                  55
便宜安全⾼高效⽅方案:
                拆機SAS硬碟+低價
                  SAS Raid卡

                     56
13年1月13⽇日星期⽇日                 56
永遠不要⽤用主機板上
                  的fakeRaid


                     57
13年1月13⽇日星期⽇日                 57
其它硬體



                 58
13年1月13⽇日星期⽇日          58
IP-KVM




                  59
13年1月13⽇日星期⽇日            59
IP-POWER




                   60
13年1月13⽇日星期⽇日              60
機櫃




                61
13年1月13⽇日星期⽇日        61
NAS




                 62
13年1月13⽇日星期⽇日         62
SOFTWARE



                   63
13年1月13⽇日星期⽇日              63
沒有要講的
                • 程式語⾔言
                • Framework
                • OS / Distribution 的選擇



                                 64
13年1月13⽇日星期⽇日                             64
要講的
                • Web Server
                • DB(RDBMS)
                • 檔案系統與備份策略
                • 網路攻擊的應對


                          65
13年1月13⽇日星期⽇日                  65
WEB Server



                    66
13年1月13⽇日星期⽇日                66
個⼈人經驗
                • 3年Apache(2.2 Worker MPM)
                 • Rails⽤用Mongrel + mod_proxy(前期) /
                   Passenger
                • 2年Nginx
                 • PHP 5.3 FPM + FastCGI
                 • Rails⽤用Passenger/Thin
                                 67
13年1月13⽇日星期⽇日                                         67
APACHE



                  68
13年1月13⽇日星期⽇日            68
易上⼿手
                (套件管理增加功能便利)




                     69
13年1月13⽇日星期⽇日                  69
模組多
                (裝模組不⽤用重編全部)




                     70
13年1月13⽇日星期⽇日                  70
⼤大家都愛.htaccess
                   (修改不⽤用重開)




                       71
13年1月13⽇日星期⽇日                    71
功能包⼭山包海
                (幾乎不⽤用開別的Daemon)




                       72
13年1月13⽇日星期⽇日                      72
靜態檔案效能低落
                  (和Nginx⽐比)




                      73
13年1月13⽇日星期⽇日                  73
Proxy效能低落
                  (和Nginx⽐比)




                      74
13年1月13⽇日星期⽇日                  74
重啟時間⻑⾧長
                (連線數很多時)




                   75
13年1月13⽇日星期⽇日              75
重點:⼀一定不要⽤用
                  Prefork


                    76
13年1月13⽇日星期⽇日                76
Nginx



                  77
13年1月13⽇日星期⽇日           77
靜態檔案速度爆快



                   78
13年1月13⽇日星期⽇日              78
需要調整的選項不多
                  (和Apache⽐比)




                       79
13年1月13⽇日星期⽇日                   79
添加功能需要重編譯



                    80
13年1月13⽇日星期⽇日               80
例:增加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'




                                                 81
13年1月13⽇日星期⽇日                                                               81
改設定需要重開或reload



                      82
13年1月13⽇日星期⽇日                    82
php需要另外設定
                  apache或fpm
                (framework需特定rewrite rule)



                            83
13年1月13⽇日星期⽇日                                83
RewriteRule和Apache不太⼀一樣
                  (不難學習)




                     84
13年1月13⽇日星期⽇日                       84
⼀一些⼩小技巧



                   85
13年1月13⽇日星期⽇日             85
將靜態檔案拆到不同
                  VirtualHost
                  (針對單⾴頁⾼高request數)



                          86
13年1月13⽇日星期⽇日                         86
⽤用X-Sendfile或
                SecureLink做權限控管
                 (避免無謂消耗後端程式資源)




                       87
13年1月13⽇日星期⽇日                     87
Secure Link
                Nginx:HttpSecureLinkModule
                 Apache:mod_auth_token




                            88
13年1月13⽇日星期⽇日                                88
URL加料做驗證
                       md5(密鑰+時間撮記+檔名+IP)
                /uri-prefix/$token/$timestamp-in-hex/rel-path


         /downloads/dee0ed6174a894113d5e8f6c98f0e92b/
                   43eaf9c5/file_to_protect.txt

     $token為預先設定的AuthTokenSecret加上檔名與時
           間撮記後md5加密⽽而成, 具有時效性
                                     89
13年1月13⽇日星期⽇日                                                  89
案例-線上影視串流服務
                • 配合H.264模組, 無需外部Media Server
                • 無需⽤用後端程式輸出
                • User在看到連結後該連結極短時間內即
                 失效, 故user無法下載檔案.




                              90
13年1月13⽇日星期⽇日                                   90
SQL-RDBMS
                • MySQL
                • PostgreSQL




                               91
13年1月13⽇日星期⽇日                       91
MySQL



                  92
13年1月13⽇日星期⽇日           92
⼀一般Storage Engine
                • MyISAM
                • Innodb




                           93
13年1月13⽇日星期⽇日                        93
MyISAM的問題
                • 資料稍⼤大時效能低落
                • 沒有ACID(Transaction)
                • 常常需要Repair table(data may lose)
                • 備份時會卡住全DB


                                94
13年1月13⽇日星期⽇日                                       94
MyISAM的便利性
                • DB較⼩小時效能⾼高
                • ⺫⽬目錄即DB,可攜性⾼高
                • 需要調整的選項較少



                             95
13年1月13⽇日星期⽇日                     95
InnoDB



                  96
13年1月13⽇日星期⽇日            96
參數調整很重要



                   97
13年1月13⽇日星期⽇日             97
Always set
                innodb_buffer_pool_size >= DB size
                     (RAM is very cheap now)




                                98
13年1月13⽇日星期⽇日                                        98
PostgreSQL
                (別名:Oracle開源版)




                      99
13年1月13⽇日星期⽇日                    99
Much Stabler



                     100
13年1月13⽇日星期⽇日                  100
某線上遊戲(2006)
                • 使⽤用版本:7.2(10 years+ )
                • 同時上線⼈人數:20k+
                • 程式的杯具:射⼀一⽀支箭寫⼀一次DB
                • 程式掛了,但DB還活著


                             101
13年1月13⽇日星期⽇日                             101
友善的授權條款(MIT)



                     102
13年1月13⽇日星期⽇日                  102
完整的現代化RDBMS功能
                (View/Trigger/Stored Procedure)




                              103
13年1月13⽇日星期⽇日                                     103
Transactional DDL
            (ALTER TABLE等可rollback,MySQL不可)




                          104
13年1月13⽇日星期⽇日                                 104
完整字串/加密function
                   (base64/md5...etc)




                           105
13年1月13⽇日星期⽇日                           105
內建完整全⽂文檢索功能
                   (中⽂文斷詞可能)




                       106
13年1月13⽇日星期⽇日                  106
Schema Namespace
                (適⽤用於Multi-Tenancy架構應⽤用)




                           107
13年1月13⽇日星期⽇日                              107
知名使⽤用機構
                • NASA
                • Instagram
                • NTT
                • Skype
                • IMDB

                              108
13年1月13⽇日星期⽇日                       108
與MySQL⽐比較
                (http://goo.gl/uWgil)




                         109
13年1月13⽇日星期⽇日                           109
File System(Linux)



                        110
13年1月13⽇日星期⽇日                        110
EXT家族
                • 通⽤用性⼯工具⽀支援
                • 多數套件預設使⽤用
                • 平衡的效能
                • 可容納檔案數⼩小於xfs


                           111
13年1月13⽇日星期⽇日                    111
XFS
                • ⾃自成⼀一體的⼯工具體系
                • ⾼高檔案承載數
                • 需花時間學習⼯工具⽤用法
                • 中⽂文資源較少


                           112
13年1月13⽇日星期⽇日                    112
LVM




                 113
13年1月13⽇日星期⽇日          113
What is LVM?(from⿃鳥哥)
         LVM 的全名是 Logical Volume Manager,中⽂文可
          以翻譯作邏輯捲軸管理員。之所以稱為『捲
          軸』可能是因為可以將 filesystem 像捲軸⼀一樣
         伸⻑⾧長或縮短之故吧!LVM 的作法是將幾個實體
         的 partitions (或 disk) 透過軟體組合成為⼀一塊看
          起來是獨⽴立的⼤大磁碟 (VG) ,然後將這塊⼤大磁
         碟再經過分割成為可使⽤用分割槽 (LV), 最終就
                       能夠掛載使⽤用了。


                          114
13年1月13⽇日星期⽇日                                   114
Everyone should use
                       LVM.


                         115
13年1月13⽇日星期⽇日                         115
分享:Snapshot備份法
                (from: 我是ricky⼤大⼤大)




                        116
13年1月13⽇日星期⽇日                         116
流程
                1. 停⽌止所有服務
                2. make & mount LVM snapshot
                3. 啟動所有服務
                4. ⽤用snapshot partition的資料進⾏行備份
                5. umount & delete snapshot partition
                6. 收⼯工


                                   117
13年1月13⽇日星期⽇日                                           117
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




                                                            118
13年1月13⽇日星期⽇日                                                                                118
優點
                • 可適⽤用所有組合
                • 停機時間⼩小於10秒
                • 可獲得完整分割區備份



                         119
13年1月13⽇日星期⽇日                  119
網路攻擊防範
                (別名:⼈人體防⽕火牆訓練養成中⼼心)




                         120
13年1月13⽇日星期⽇日                         120
⾃自建主機最⼤大挑戰



                    121
13年1月13⽇日星期⽇日                121
攻擊者的⺫⽬目的
                • $$$$$
                •爽
                • 純研究
                • 攻擊和網站有關的特定對象


                         122
13年1月13⽇日星期⽇日                    122
概念:資源對資源的
                    戰爭


                    123
13年1月13⽇日星期⽇日               123
不會有真正有效的辦法
                除⾮非




                 124
13年1月13⽇日星期⽇日          124
唯⼀一可以確定的是



                    125
13年1月13⽇日星期⽇日               125
讓攻擊⼿手知道你不好
                惹, 要花很多成本攻擊
                    你, 知難⽽而退

                     126
13年1月13⽇日星期⽇日                  126
攻擊⽅方式分類
                • 癱瘓服務
                 • 針對程式弱點
                 • 讓系統負載暴衝
                • 塞爆頻寬
                 • SYN_FLOOD
                 • DDOS
                           127
13年1月13⽇日星期⽇日                    127
針對程式弱點的攻擊
                • 好發於:
                 • Multi-Tenancy式系統(BSP/FSP...)
                 • 廣泛被⼤大眾使⽤用的系統
                 • 具有歷史共業的系統
                • 完全⾃自製系統通常不會有此問題
                • 通常只能⽤用改程式處理
                • 短期的防堵也是⼀一種⽅方法
                                128
13年1月13⽇日星期⽇日                                     128
塞爆頻寬的攻擊
                • 後備頻寬⾮非常重要
                • 問題在找出該封堵的IP




                          129
13年1月13⽇日星期⽇日                   129
處理流程
                1. 搜尋log檔
                2. 建⽴立scan log流程
                3. 執⾏行scan log流程,產⽣生問題IP清單
                4. 將問題IP加到iptables的封堵清單
                5. restart iptables
                6. 將3-5變成⾃自動執⾏行


                                      130
13年1月13⽇日星期⽇日                                130
scan log⽅方式
                • ⽤用tail看log找出怪異之處
                 • 異常快速增⻑⾧長的request
                 • hostname異常的request
                 • 純ip request
                 • 無agent或奇怪agent的request

                              131
13年1月13⽇日星期⽇日                               131
重導virtualhost
                                         (nginx)

                	
  	
  server{
                	
  	
  	
  	
  server_name	
  _;
                	
  	
  	
  	
  root	
  /var/www/html;
                	
  	
  	
  	
  access_log	
  logs/DDOS-­‐access.log	
  main;
                	
  	
  	
  	
  error_log	
  /dev/error.log;
                	
  	
  	
  	
  return	
  400;
                	
  	
  }




                                                132
13年1月13⽇日星期⽇日                                                                   132
終極絕招-阻擋國家IP
                   xt_geoip


                     133
13年1月13⽇日星期⽇日                 133
xt_geoip
                • part of xtables-addons
                • iptables addon
                • need kernel 2.6+
                • http://goo.gl/NoqRh


                                   134
13年1月13⽇日星期⽇日                              134
Why xt_geoip
                • 攻擊IP(⾁肉雞)幾乎全部來⾃自外國
                 • 中國佔90%
                 • 東歐國家
                 • 中東國家
                • 簡單⽽而粗暴(但是有效)的⽅方法
                • ⼀一⾏行iptables設定封堵⼀一整國
                             135
13年1月13⽇日星期⽇日                            135
好⽤用省錢的服務



                   136
13年1月13⽇日星期⽇日              136
KDDI CloudCore VPS




                    137
13年1月13⽇日星期⽇日                    137
純iaas,無其它功能



                     138
13年1月13⽇日星期⽇日                 138
難以置信的超低價




                   139
13年1月13⽇日星期⽇日              139
不⽤用流量計費, 單⼀一規
                   格(擴充不可)


                      140
13年1月13⽇日星期⽇日                   140
缺乏管理功能與圖表




                    141
13年1月13⽇日星期⽇日               141
令⼈人安⼼心的ping值(50
                     出頭)


                       142
13年1月13⽇日星期⽇日                     142
不保證Uptime
                  (其實很可靠)




                     143
13年1月13⽇日星期⽇日               143
開發者⽀支援制度
                   (淚)




                   144
13年1月13⽇日星期⽇日              144
imgur




                  145
13年1月13⽇日星期⽇日           145
imgur
                • 經實驗證明真正不限流量圖庫
                • 限制⽅方式為每⼩小時上傳量
                • 具後端上傳的API
                • 商業使⽤用需付費(條款限制)
                • 不可思議的低價

                         146
13年1月13⽇日星期⽇日                      146
End
                (Any qustion?)


                      147
13年1月13⽇日星期⽇日                    147
題外話



                 148
13年1月13⽇日星期⽇日          148
公會網正在尋求合作
                  經營的夥伴


                    149
13年1月13⽇日星期⽇日               149
番外篇
                世⼈人對雲端的誤解


                    150
13年1月13⽇日星期⽇日               150
以下觀點可能會包含
                 部份或全部的偏⾒見
                 (歡迎提出指正或疑問)




                      151
13年1月13⽇日星期⽇日                  151
⼀一般對雲端的認知
                1. 雲端⽐比較省錢
                2. 雲端⽐比較省⼒力
                3. 雲端⽐比較穩定




                              152
13年1月13⽇日星期⽇日                       152
認知⼆二:雲端省⼒力論
           由於雲端(尤其是Paas類服務
           如Heroku/EngineYard)已經
           幫你設定好, 你所做的就是去
           開機器或是設定dyno數.


                     153
13年1月13⽇日星期⽇日                      153
等價交換原則




                  154
13年1月13⽇日星期⽇日            154
等價交換原則
       • iaas服務:只是給你⼀一台灌好OS的虛擬機
       • Paas服務:給你的越多, 限制的也越多
       • 第三⽅方服務:⽤用的越多, 花的$$越多
       • ⽣生態圈綁定問題


                   155
13年1月13⽇日星期⽇日                     155
認知三:雲端穩定論
           雲端是別⼈人設定好的, 硬體不
           會壞掉所以⽐比較穩定.




                    156
13年1月13⽇日星期⽇日                156
關鍵因素:第三⽅方服務



                157
13年1月13⽇日星期⽇日           157

Contenu connexe

En vedette

130113 why.&.how.smb.running.ux-light
130113 why.&.how.smb.running.ux-light130113 why.&.how.smb.running.ux-light
130113 why.&.how.smb.running.ux-lightDavid Liu
 
WebConf 2013「Best Practices - The Upload」
WebConf 2013「Best Practices - The Upload」WebConf 2013「Best Practices - The Upload」
WebConf 2013「Best Practices - The Upload」Orange Tsai
 
Designing physical and digital experience in social web
Designing physical and digital experience in social webDesigning physical and digital experience in social web
Designing physical and digital experience in social webJanet Huang
 
20130112用原型驅動設計@webconf
20130112用原型驅動設計@webconf20130112用原型驅動設計@webconf
20130112用原型驅動設計@webconfJustin Lee
 
那些mockup沒告訴你的事@WebConf.tw 2013
那些mockup沒告訴你的事@WebConf.tw 2013那些mockup沒告訴你的事@WebConf.tw 2013
那些mockup沒告訴你的事@WebConf.tw 2013Adam Wang
 
超理性使用者介面設計 - Data-driven A/B Testing
超理性使用者介面設計 - Data-driven A/B Testing超理性使用者介面設計 - Data-driven A/B Testing
超理性使用者介面設計 - Data-driven A/B TestingYing-Hsiang Liao
 
TypeScript 開發實戰:開發即時互動的 html5 websocket 聊天室應用程式
TypeScript 開發實戰:開發即時互動的 html5 websocket 聊天室應用程式TypeScript 開發實戰:開發即時互動的 html5 websocket 聊天室應用程式
TypeScript 開發實戰:開發即時互動的 html5 websocket 聊天室應用程式Will Huang
 
A brief introduction to SPDY - 邁向 HTTP/2.0
A brief introduction to SPDY - 邁向 HTTP/2.0A brief introduction to SPDY - 邁向 HTTP/2.0
A brief introduction to SPDY - 邁向 HTTP/2.0Wen-Tien Chang
 
使用Javascript及HTML5打造協同運作系統
使用Javascript及HTML5打造協同運作系統使用Javascript及HTML5打造協同運作系統
使用Javascript及HTML5打造協同運作系統Hsu Ping Feng
 
借力使力的乾坤挪移大法-以使用者為中心的設計決策奧妙
借力使力的乾坤挪移大法-以使用者為中心的設計決策奧妙 借力使力的乾坤挪移大法-以使用者為中心的設計決策奧妙
借力使力的乾坤挪移大法-以使用者為中心的設計決策奧妙 悠識學院
 
Disneyland Project presenting slide for HTM
Disneyland Project presenting slide for HTMDisneyland Project presenting slide for HTM
Disneyland Project presenting slide for HTMApichart Namsiriviwat
 
Ies electrical-engineering-paper-2-2005
Ies electrical-engineering-paper-2-2005Ies electrical-engineering-paper-2-2005
Ies electrical-engineering-paper-2-2005Venugopala Rao P
 
Hsu Presentation
Hsu PresentationHsu Presentation
Hsu Presentationsealt
 
Creating an Evolving Social Technology Strategy
Creating an Evolving Social Technology StrategyCreating an Evolving Social Technology Strategy
Creating an Evolving Social Technology StrategyPerficient, Inc.
 
Top Thirty Global Media Owners 2014
Top Thirty Global Media Owners 2014Top Thirty Global Media Owners 2014
Top Thirty Global Media Owners 2014Performics
 
Financial management ....the millieum financial management
Financial management ....the millieum financial managementFinancial management ....the millieum financial management
Financial management ....the millieum financial managementraufik tajuddin
 

En vedette (20)

130113 why.&.how.smb.running.ux-light
130113 why.&.how.smb.running.ux-light130113 why.&.how.smb.running.ux-light
130113 why.&.how.smb.running.ux-light
 
WebConf 2013「Best Practices - The Upload」
WebConf 2013「Best Practices - The Upload」WebConf 2013「Best Practices - The Upload」
WebConf 2013「Best Practices - The Upload」
 
Designing physical and digital experience in social web
Designing physical and digital experience in social webDesigning physical and digital experience in social web
Designing physical and digital experience in social web
 
20130112用原型驅動設計@webconf
20130112用原型驅動設計@webconf20130112用原型驅動設計@webconf
20130112用原型驅動設計@webconf
 
那些mockup沒告訴你的事@WebConf.tw 2013
那些mockup沒告訴你的事@WebConf.tw 2013那些mockup沒告訴你的事@WebConf.tw 2013
那些mockup沒告訴你的事@WebConf.tw 2013
 
超理性使用者介面設計 - Data-driven A/B Testing
超理性使用者介面設計 - Data-driven A/B Testing超理性使用者介面設計 - Data-driven A/B Testing
超理性使用者介面設計 - Data-driven A/B Testing
 
TypeScript 開發實戰:開發即時互動的 html5 websocket 聊天室應用程式
TypeScript 開發實戰:開發即時互動的 html5 websocket 聊天室應用程式TypeScript 開發實戰:開發即時互動的 html5 websocket 聊天室應用程式
TypeScript 開發實戰:開發即時互動的 html5 websocket 聊天室應用程式
 
A brief introduction to SPDY - 邁向 HTTP/2.0
A brief introduction to SPDY - 邁向 HTTP/2.0A brief introduction to SPDY - 邁向 HTTP/2.0
A brief introduction to SPDY - 邁向 HTTP/2.0
 
使用Javascript及HTML5打造協同運作系統
使用Javascript及HTML5打造協同運作系統使用Javascript及HTML5打造協同運作系統
使用Javascript及HTML5打造協同運作系統
 
借力使力的乾坤挪移大法-以使用者為中心的設計決策奧妙
借力使力的乾坤挪移大法-以使用者為中心的設計決策奧妙 借力使力的乾坤挪移大法-以使用者為中心的設計決策奧妙
借力使力的乾坤挪移大法-以使用者為中心的設計決策奧妙
 
Disneyland Project presenting slide for HTM
Disneyland Project presenting slide for HTMDisneyland Project presenting slide for HTM
Disneyland Project presenting slide for HTM
 
Wais i
Wais   iWais   i
Wais i
 
Auraplus ciuziniai
Auraplus ciuziniaiAuraplus ciuziniai
Auraplus ciuziniai
 
Ies electrical-engineering-paper-2-2005
Ies electrical-engineering-paper-2-2005Ies electrical-engineering-paper-2-2005
Ies electrical-engineering-paper-2-2005
 
Hsu Presentation
Hsu PresentationHsu Presentation
Hsu Presentation
 
Creating an Evolving Social Technology Strategy
Creating an Evolving Social Technology StrategyCreating an Evolving Social Technology Strategy
Creating an Evolving Social Technology Strategy
 
Top Thirty Global Media Owners 2014
Top Thirty Global Media Owners 2014Top Thirty Global Media Owners 2014
Top Thirty Global Media Owners 2014
 
1886 6445-1-pb
1886 6445-1-pb1886 6445-1-pb
1886 6445-1-pb
 
Financial management ....the millieum financial management
Financial management ....the millieum financial managementFinancial management ....the millieum financial management
Financial management ....the millieum financial management
 
1200 j lipman
1200 j lipman1200 j lipman
1200 j lipman
 

Plus de Mu-Fan Teng

My experience of Ruby Education in Taiwan
My experience of Ruby Education in TaiwanMy experience of Ruby Education in Taiwan
My experience of Ruby Education in TaiwanMu-Fan Teng
 
WebSocket For Web Rubyists
WebSocket For Web RubyistsWebSocket For Web Rubyists
WebSocket For Web RubyistsMu-Fan Teng
 
20150118 學個 Sinatra 好過年
20150118 學個 Sinatra 好過年20150118 學個 Sinatra 好過年
20150118 學個 Sinatra 好過年Mu-Fan Teng
 
Mopcon2014 - 使用 Sinatra 結合 Ruby on Rails 輕鬆打造完整 Full Stack 網站加 API Service服務
Mopcon2014 - 使用 Sinatra 結合 Ruby on Rails 輕鬆打造完整 Full Stack 網站加 API Service服務Mopcon2014 - 使用 Sinatra 結合 Ruby on Rails 輕鬆打造完整 Full Stack 網站加 API Service服務
Mopcon2014 - 使用 Sinatra 結合 Ruby on Rails 輕鬆打造完整 Full Stack 網站加 API Service服務Mu-Fan Teng
 
實踐大學教案20140329
實踐大學教案20140329實踐大學教案20140329
實踐大學教案20140329Mu-Fan Teng
 
Rails Girls Taiwan 2014 Intro
Rails Girls Taiwan 2014 IntroRails Girls Taiwan 2014 Intro
Rails Girls Taiwan 2014 IntroMu-Fan Teng
 
Eventmachine Websocket 實戰
Eventmachine Websocket 實戰Eventmachine Websocket 實戰
Eventmachine Websocket 實戰Mu-Fan Teng
 
Introduce Ruby Taiwan@Rubykaigi2013
Introduce Ruby Taiwan@Rubykaigi2013Introduce Ruby Taiwan@Rubykaigi2013
Introduce Ruby Taiwan@Rubykaigi2013Mu-Fan Teng
 
Concurrency model for mysql data processing@rubyconf.tw 2012
Concurrency model for mysql data processing@rubyconf.tw 2012Concurrency model for mysql data processing@rubyconf.tw 2012
Concurrency model for mysql data processing@rubyconf.tw 2012Mu-Fan Teng
 
Sinatra Tutorial@Rubyconf.TW2011
Sinatra Tutorial@Rubyconf.TW2011Sinatra Tutorial@Rubyconf.TW2011
Sinatra Tutorial@Rubyconf.TW2011Mu-Fan Teng
 
Ruby程式語言入門導覽
Ruby程式語言入門導覽Ruby程式語言入門導覽
Ruby程式語言入門導覽Mu-Fan Teng
 

Plus de Mu-Fan Teng (12)

My experience of Ruby Education in Taiwan
My experience of Ruby Education in TaiwanMy experience of Ruby Education in Taiwan
My experience of Ruby Education in Taiwan
 
WebSocket For Web Rubyists
WebSocket For Web RubyistsWebSocket For Web Rubyists
WebSocket For Web Rubyists
 
20150118 學個 Sinatra 好過年
20150118 學個 Sinatra 好過年20150118 學個 Sinatra 好過年
20150118 學個 Sinatra 好過年
 
Mopcon2014 - 使用 Sinatra 結合 Ruby on Rails 輕鬆打造完整 Full Stack 網站加 API Service服務
Mopcon2014 - 使用 Sinatra 結合 Ruby on Rails 輕鬆打造完整 Full Stack 網站加 API Service服務Mopcon2014 - 使用 Sinatra 結合 Ruby on Rails 輕鬆打造完整 Full Stack 網站加 API Service服務
Mopcon2014 - 使用 Sinatra 結合 Ruby on Rails 輕鬆打造完整 Full Stack 網站加 API Service服務
 
實踐大學教案20140329
實踐大學教案20140329實踐大學教案20140329
實踐大學教案20140329
 
Rails Girls Taiwan 2014 Intro
Rails Girls Taiwan 2014 IntroRails Girls Taiwan 2014 Intro
Rails Girls Taiwan 2014 Intro
 
Eventmachine Websocket 實戰
Eventmachine Websocket 實戰Eventmachine Websocket 實戰
Eventmachine Websocket 實戰
 
Introduce Ruby Taiwan@Rubykaigi2013
Introduce Ruby Taiwan@Rubykaigi2013Introduce Ruby Taiwan@Rubykaigi2013
Introduce Ruby Taiwan@Rubykaigi2013
 
Concurrency model for mysql data processing@rubyconf.tw 2012
Concurrency model for mysql data processing@rubyconf.tw 2012Concurrency model for mysql data processing@rubyconf.tw 2012
Concurrency model for mysql data processing@rubyconf.tw 2012
 
Sinatra Tutorial@Rubyconf.TW2011
Sinatra Tutorial@Rubyconf.TW2011Sinatra Tutorial@Rubyconf.TW2011
Sinatra Tutorial@Rubyconf.TW2011
 
Ruby程式語言入門導覽
Ruby程式語言入門導覽Ruby程式語言入門導覽
Ruby程式語言入門導覽
 
Ruby on discuz
Ruby on discuzRuby on discuz
Ruby on discuz
 

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

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