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