the vocket

2
The Vocket – merupakan projek usahasama dengan sahabat saya, Mohd Fazreen Jasni semenjak awal Julai 2014. Projek berusia 6 bulan ini memberi satu pentas kepada saya untuk bermain dengan 'huge crowd' dan rata-ratanya adalah 'readers'. Monthly Pageviews: 5,200,000 views Daily Pageviews: 100k - 200k views Peak Traffic: 2000+ live readers Normal Traffic: 300 - 500 live readers Beberapa rakan dan pembaca tanya macam mana 'configuration' server & sistemthevocket.com. Ok, mari kita kupas bersama dan maaflah jika terlalu teknikal. WORDPRESS Projek ini menggunakan CMS WordPress sebagai 'publishing' platform kerana ia percuma, mudah dibelajar dan mempunyai 'support' yang luas. Untuk WordPress, saya cuba menggunakan 'plugin' seminimum yang mungkin. Jika sesuatu fungsi itu boleh di code sendiri, jangan gunakan plugin. Kadang-kadang, apa yang dikehendaki sangat static dan boleh 'hard coded'. Plugin yang penting untuk projek ini adalah W3 Total Cache untuk fungsi caching. Caching ini termasuk page caching dan juga database caching (memcached). Page caching menyimpan sesuatu page yang telah siap sepenuh dalam bentuk HTML, selepas diproses melalui PHP. THEME Setiap file akan di compress, termasuk CSS, JavaScript. Gunakan CSS/JavaScript compressor untuk membuang spaces yang tidak diperlukan, atau meringkaskan sesuatu file (JavaScript) tersebut. Jika terdapat beberapa file CSS/JavaScript, maka kita satukan supaya kurang request file daripada server. Ini boleh mengurangkan trafik kepada server. SERVER Merujuk kepada gambar, User Request adalah pembaca. Apabila websitethevocket.com dibuka pada browser, ia akan menghantar 'request' pada server. Dan server yang akan dicapai adalah Server A kerana ia adalah paling dihadapan. Server A bertujuan untuk menyimpan segala maklumat yang telah lengkap diproses dan ini dipanggil 'Caching'. Tujuan server ini hanyalah sebagai suatu 'Library' yang luas. Tiada unsur processing data disini. Jika page yang dicari tidak dijumpai di Server A, request tersebut akan dilanjutkan kepada Server B. Server B menggunakan setup LEMP (Linux Nginx MySQL PHP). Nginx dibaca sebagai 'Engine X'. Disebabkan Nginx hanyalah HTTP server, request dilanjutkan kepada PHP untuk diproses kerana WordPress dikod menggunakan PHP. Pada peringkat ini, kod-kod PHP yang pernah digunakan akan disimpan (cache) oleh OPcache untuk kegunaan semula. Melalui plugin W3TC, page tersebut akan dihasilkan sebagai HTML (final rendered file) untuk dihantar kepada browser pembaca.

Upload: azri-mohd-khanil

Post on 30-Sep-2015

23 views

Category:

Documents


1 download

DESCRIPTION

test

TRANSCRIPT

The Vocket merupakan projek usahasama dengan sahabat saya,Mohd Fazreen Jasnisemenjak awal Julai 2014. Projek berusia 6 bulan ini memberi satu pentas kepadasaya untuk bermain dengan 'huge crowd' dan rata-ratanya adalah 'readers'.Monthly Pageviews: 5,200,000 viewsDaily Pageviews: 100k - 200k viewsPeak Traffic: 2000+ live readersNormal Traffic: 300 - 500 live readersBeberapa rakan dan pembaca tanya macam mana 'configuration' server & sistemthevocket.com.Ok, mari kita kupas bersama dan maaflah jika terlalu teknikal.WORDPRESSProjek ini menggunakan CMS WordPress sebagai 'publishing' platform kerana ia percuma, mudah dibelajar dan mempunyai 'support' yang luas.Untuk WordPress, saya cuba menggunakan 'plugin' seminimum yang mungkin. Jika sesuatu fungsi itu boleh di code sendiri, jangan gunakan plugin. Kadang-kadang, apa yang dikehendaki sangat static dan boleh 'hard coded'.Plugin yang penting untuk projek ini adalah W3 Total Cache untuk fungsi caching. Caching ini termasuk page caching dan juga database caching (memcached). Page caching menyimpan sesuatu page yang telah siap sepenuh dalam bentuk HTML, selepas diproses melalui PHP.THEMESetiap file akan di compress, termasuk CSS, JavaScript. Gunakan CSS/JavaScript compressor untuk membuang spaces yang tidak diperlukan, atau meringkaskan sesuatu file (JavaScript) tersebut.Jika terdapat beberapa file CSS/JavaScript, maka kita satukan supaya kurang request file daripada server. Ini boleh mengurangkan trafik kepada server.SERVERMerujuk kepada gambar, User Request adalah pembaca. Apabila websitethevocket.comdibuka pada browser, ia akan menghantar 'request' pada server. Dan server yang akan dicapai adalah Server A kerana ia adalah paling dihadapan.Server A bertujuan untuk menyimpan segala maklumat yang telah lengkap diproses dan ini dipanggil 'Caching'. Tujuan server ini hanyalah sebagai suatu 'Library' yang luas. Tiada unsur processing data disini.Jika page yang dicari tidak dijumpai di Server A, request tersebut akan dilanjutkan kepada Server B.Server B menggunakan setup LEMP (Linux Nginx MySQL PHP). Nginx dibaca sebagai 'Engine X'. Disebabkan Nginx hanyalah HTTP server, request dilanjutkan kepada PHP untuk diproses kerana WordPress dikod menggunakan PHP.Pada peringkat ini, kod-kod PHP yang pernah digunakan akan disimpan (cache) oleh OPcache untuk kegunaan semula. Melalui plugin W3TC, page tersebut akan dihasilkan sebagai HTML (final rendered file) untuk dihantar kepada browser pembaca.Kemudian, dihantar semula melalui Server A, yang turut akan menyimpan (cache) file tersebut untuk permintaan oleh pembaca lain, tanpa perlu ke Server B untuk melalui proses-proses awal tadi.PENUTUPRujukan gambar adalah khas untukthevocket.com, sebuah blog artikel. Setup ini mementingkan pembacaan sahaja (read). Untuk server dengan input dari user yang banyak (facebook / twitter / instagram / katsana), kuasa proses data amat dititik-beratkan. Ia melibatkan BANYAK RAM dan PROCESSOR power.Jika diperhatikan,thevocket.comtidak menggunakan sebarang CDN services, kerana CDN tertumpu kepada luar Malaysia, sedangkan pembaca kami adalah rakyat Malaysia (dalam negara). Malahan, kos CDN seperti MaxCDN masih jauh dari bajet kami, serta quality Cloudflare (Free) tidak memuaskan kami.Tak jumpa CDN yang memuaskan? Kami tak perlu CDN, hanya perlu Cache server, iaitu Server A (dengan Varnish Cache).Feel free to comment for Q/A. Penat taip bahasa melayu rojak. TabikAmanz Network.