2009/12/16 sjtirtha <sjtir...@gmail.com>

>
>
> Hi,
>
> ada yg udah pernah implementasi CDN belom? Arsitektur CDN baiknya kaya
> gimana yah?
> Gua cari2 CDN open source utk store images, tapi ga ketemu.
> Yg gua ketemu commercial punya namannya AKAMAI, dipake YouTube juga.
>
>
> Steve
>
>
>
>
Akamai bisa aja gratis asal lu punya AS number (a.k.a ISP sendiri) dengan
traffic GEDE sekali.
Gw sendiri menganggap CDN itu adalah arsitektur untuk content networking.
Bukan teknologinya sendiri. Karena content networking sendiri luas, jadi
memang tidak ada "pattern" baku yang bisa langsung digunakan.

Sebelum ke level CDN, mending explore saja teknologi2 content networking
secara urut:

1. Cache. Ini bisa dikerjakan dari layer 4 ke 7. Bisa saja beli network
appliances yang dukung cache, bisa ngoprek aplikasinya, bisa dari sisi app
server, bisa juga pakai dedicated cache server seperti memcached.

2. Load balancing. Kalau cache udah ga cukup, teknik load balancing bisa
dipakai. Load balancing lebih mahal tapi juga cukup fleksibel karena bukan
cuma static content yang bisa dibagi beban, aplikasi juga bisa.

3. Gabungan keduanya: Load balancing + cache. Sampe bisa ketingkat tiga saja
ini sudah hebat lho, baik dari sisi aplikasi maupun volume penggunanya.


CDN baru layak dipertimbangkan saat setidaknya ada dua kondisi (logika
AND):
1. Content yang harus dideliver buaaanyak sekali dan yang akses juga buanyak
sekali.
2. Si pengakses tersebar di banyak area, atau PoP, atau edge network... atau
lebih gampangnya: di banyak negara.

And let's say, kita mau bikin CDN sendiri (dan secara ini milis Java jadi
semuanya kudu Java :D), yang dibutuhkan setidaknya:

1. DNS server. JDNSS.
2. Distributed file system. Sun Lustre.
3. GeoIP. MaxMind Java API.

Yang pertama kudu dikerjakan adalah routing.
- GeoIP is no brainer, kalo si pengakses dari Indonesia, kasih instalasi
server dari Indonesia secara dinamis oleh GeoIP + JDNSS.
- Atau jika dalam satu negara, bikin algoritma routing tambahan untuk
menentukan route secara round robin (gantian), list connection (lempar ke
server dengan ICMP paling kecil), dan lain-lain.
- Kalo punya banyak duit dan ga mau repot, ya niru telco saja: beli F5 :D
- Urusan routing di CDN banyak mazhab-nya dan banyak patentnya. Kalo mau
bikin sendiri kudu pinter2 milih (dan punya uang).

Yang kedua untuk dikerjakan adalah manajemen content
- CMS jelas butuh untuk CRUD content-nya.
- Konfigure distributed FS-nya. Kalo pakai Lustre, saat taruh file di satu
server, otomatis server lain akan ikut mereplika.
- Mau cara 'low-tech' juga bisa, misal pake rsync doank. Atau bash script cp
file yang dieksekusi oleh crontab. Whatever it works.

Yang ketiga urusan network: beli pipa (kabel) atau beli air (bandwidth)
supaya masing-masing server bisa saling nyambung. Antar PoP biasanya beli
partai besar semacam STM1 (45mbps). Tinggal pilih mana yang cocok dengan
kantong. Kecepatan replika antar server a.k.a heartbeat bergantung pada
besar pipa dan banyak air yang bisa kita sediakan.


Simple gitu aja sih kira-kira.



-- 
http://twitter.com/andry

Kirim email ke