using cdn to improve performance

Post on 09-Jun-2015

7.705 Views

Category:

Technology

5 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Using CDN to improve

performanceGea-Suan Lin

gslin@pixnet.tw

如果有問題…

請不要舉手,

請直接打斷!

亂發問才會亂爆八卦

我不能回答的,

有人可以回答。

不過因為投影片超過一百張

所以請節制…

Anyway…

開始。

從小網站開始…

一台 Server

一台 Web

一台 Database

不小心把網站搞大了

Tuning

很多台 Web

DNS Round Robin

每一台 Web 都有 Public IP

前面架一台 Load balancer

兩個禮拜後…

Load balancer 凌晨三點當掉

總經理還沒睡

把換燈管的叫起來

換燈管的把我叫起來

買硬體的 Load balancer

出事就找人罰站

繼續 Tuning

用 Apache 提供 css ?

一個 css 3KB 佔用一個 50MB 的 httpd…

動態頁面與靜態檔案分離

靜態檔案

獨立網域

static.bubble.com

nginx 或 lighttpd

為什麼用 nginx ?

CSS/JavaScript +gzip on-the-fly

一台 nginx

兩台 nginx ( 兩份檔案 )

出事了…

客服殺人…

IE6 + gzip 地雷

IE6 時 gzip 關掉

繼續成長…

N 台 nginx (N 份檔案 )

政治不正確

Reverse Proxy Cache

Squid

Invalidate 問題

/main.css

/main.css?v=[ 修改時間 ]

/main.css?v=[CRC32]

講到這裡,有沒有問題?

網站繼續大下去…

「拓展海外市場」

需要改善非台灣的瀏覽速度

光速是固定的

台北 – 美西120+ms

台北 – 美東180+ms

在美國放伺服器

用 GeoDNS 分配流量

寫 Health Check 當國外當掉時改用台灣的伺服器

ZzZz…

除了美洲還有歐洲

自己管理的成本過高

外包給專業的…

CDN

( 終於進入主題了 )

Content Delivery Network

內容傳遞網路

(屁 )

等於沒解釋…

多個伺服器群

多個地點

提供相同的內容

所以…

1. 就近取得內容

加快 TCP handshake 速度

加快 TCP 下載速度

2. 提供高可靠度

不同地點互相備援

3. DoS 防禦

「由專業公司防禦 DoS 」

「死道友不死貧道」

4. 成本

CDN 頻寬比較貴?

台灣頻寬比 CDN 貴!

一般頻寬計算方法: 95%

五分鐘取樣一次

一個月 30 天共 8640 次

刪除最高的 5% (432 次 )

取剩下最高的

From http://en.wikipedia.org/wiki/Burstable_billing

CDN 頻寬計算方式:總量

總量 = 平均流量 (等價 )

1Mbps ~ 10GB/day

換算?

依照網站的 MRTG Pattern

From http://en.wikipedia.org/wiki/Burstable_billing

95% 2.62M 與平均 1.27M

大約 2.06 倍

5. 克服瀏覽器壓縮 bug

用 CDN 後總量反而下降

講到這裡,有沒有問題?

CDN 的分類

Latency、 Thoughput、 Cost

CSS、 JavaScript

低 Latency、初期 Thoughput 要高、 Cost 不

是主要考量

亞洲要有直接連線的 PoPs

尤其是 HiNet 與 TANet

影音

Latency 不重要, Thoughput 足夠就好, Cost 要低

封包到美西再到香港

所以…

( 如果有時間的話 )

總是要講一下實際案例?

Akamai

很大,非常大,第一大

效能是最好的

台灣唯一有 PoPs 的 CDN

台灣有經銷商

價錢…

Limelight Networks

第二大?

YouTube 被 Google 買之前的 CDN

有香港與日本的 PoPs

但是都是導到美西 PoPs

第二大不一定比其他的好

CDNetworks

第三大?

二月買下 Panther Express

討論 Panther Express

有香港與日本的 PoPs

HiNet 與 TANet 到香港都是 20+ms

HiNet 調整 routing 時會自動跳到日本,約 30+ms

PIXNET 的 CSS/JavaScript

EdgeCast

第 N 大 ( 不重要了 )

有香港與日本的 PoPs

會導到香港的 PoP ,但是會先到美西

但是速度沒問題

PIXNET 的影音

Voxel

就是一家 CDN 業者…

價錢公佈在網站上

沒有亞洲的 PoPs

Amazon CloudFront

Because it’s Amazon…

Don’t waste your time

Amazon S3 應該找其他 CDN 搭配用

SimpleCDN

完全是拼價錢的 CDN

目前沒有亞洲的 PoPs

不吃 file.css?v=[ 時間 ]

就…

實際案例

( 如果還有時間的話 )

download.microsoft.com

Akamai + Limelight

js.microsoft.com

Akamai

www.barackobama.com

Panther Express (g2)

US-only PoPs

public.slideshare.net

Panther Express (g1)

US + EU PoPs

cdn.slideshare.net

Panther Express (l1)

價錢導向的 CDN Level

cdn1.badongo.com

cdn2.badongo.com

cdn3.badongo.com

cdn4.badongo.com

Amazon CloudFront

Akamai

EdgeCast (目前是這個 )

EdgeCast

Thanks

top related