Why Varnish Cache

User <-------> Varnish <-------> Web Server <--------> DB

วันนี้ ผมมีโอกาสมาพูดถึง เจ้า Varnish อีกครั้ง ว่าทำไม มันถึงน่าสนใจ มันมีอะไรดี
แล้วมันช่วยอะไรกับระบบเว็บขนาดใหญ่ ที่มีคนเข้าจำนวนมากได้ ..
โดยเฉพาะถ้าเว็บคุณเป็น content พวก static ยิ่งดีเลย เพราะว่า varnish สามารถ
caching ตรงส่วนนี้ได้หมด บน memory ทำให้ เครื่อง web server และ DB เอง
แทบไม่ต้องทำงานอะไรเลย แต่ถ้าเป็นพวก dynamic ตัว varnish เอง ก็ช่วยได้เหมือนกัน
มาดูรายละเอียดกันครับ ว่าทำไมต้อง varnish ??

– เพราะเป็น Open Source ที่มีคุณภาพ ทำไมต้องไปใช้ BlueCoat ที่มีราคาแพงด้วย
ทั้งๆ ที่ Varnish ดีกว่ามากๆๆๆๆๆๆๆๆๆ ถ้าคุณใช้มันเป็น 🙂

– Varnish Configuration Language (VCL) ซึ่งเป็นการเขียน config แบบเข้าใจได้ง่าย
เป็นโครงสร้างที่คล้ายๆ ภาษา C ทำให้เราสามารถ เขียน VCL ให้ทำงานต่างๆ ได้ละเอียด
ตามที่เราต้องการ และใช้การ compile เพียงครั้งเดียว ทำให้ การทำงานทำได้อย่างดี เร็ว
และมีประสิทธิภาพมากๆ

– Varnish เก็บ cache ต่างๆ บน memory ด้วยโครงสร้างที่ดี ทำให้ lookup ได้เร็วมาก
เวลาต้องการเรียกใช้งาน cache ที่ต้องการ โดยแทบจะไม่ทำให้ เครื่อง เกิด i/o load เลย

– Varnish สามารถทำเป็น Load Balance ได้

– Purge URL ที่ต้องการไม่ให้ cache ได้ โดยใช้คำสั่งเข้าใจง่ายๆ สามารถใช้ PHP
เขียนติดต่อ ที่ T port เพื่อทำการ purge URL ทำให้เว็บ มีประสิทธิภาพมาก เพราะว่า
ในกรณีนี้ เราจะสามารถ เขียน VCL ให้ cache URL ทั้งหมด ของระบบได้ ทำให้
Web Server และ DB Server แทบไม่ต้องทำงานเลย แต่ถ้าเวลามีการ update ต่างๆ
เราก็สามารถส่ง URL ที่ต้องการ มา purge ได้ 🙂

ที่เล่ามาก็เป็นส่วนหนึ่งที่ทำไมผมคิดว่า Varnish เหมาะที่จะมาช่วยทำให้ระบบเว็บขนาดใหญ่
สามารถทำงานได้ดีขึ้น มีประสิทธิภาพสูงขึ้น และประหยัดค่าใช้จ่ายในการซื้อ Software
และ Hardware ที่ไม่จำเป็น เป็นการช่วยลดโลกร้อน ที่เป็นปัญหาให้เกิดน้ำท่วมได้ 🙂

Open Compute Project by Facebook

สวัสดีครับ ไม่ได้มา  update blog นานมาก พอดีมีเรื่องน่าสนใจครับ
ที่ผมคิดว่าจริงๆ น่าจะเกิดขึ้นมานานแล้ว โครงการ Open Compute Project
ที่งานนี้ Facebook เป็นแกนนำหลัก ซึ่งถือว่าเป็นการนำเทคโนโลยี
ที่ดีๆ มาแบ่งปันให้กับคนทั่วโลกได้ครับรู้ครับ ..

สำหรับโครงการ Open Compute Project ของ Facebook ก็คือ
เป็นการทำ Server ที่มีคุณภาพ มีประสิทธิภาพสูง ราคาไม่แพงขึ้นมาใช้เอง
ซึ่งเหมาะอย่างยิ่งกับพวกเว็บขนาดใหญ่ ที่ให้บริการคนทั้งโลก เพราะว่า
ต้องใช้ Server จำนวนมาก และต้องประหยัดค่าใช้จ่าย ทั้งอุปกรณ์
การดูแลรักษา และค่าไฟฟ้า .. เรามาดูกันครับ ว่ามีอะไรบ้าง


สำหรับตัว Classic จะมีขนาดพิเศษคือ 1.5U เพื่อที่จะได้ใส่ Sink ได้สะดวก
และเป็นการทำให้ระบายความร้อนได้ดีกว่า ขนาด 1U ที่ทุกอย่างต้องจำกัด
ด้านหน้าประกอบด้วยพัดลม 4 ตัว แบบนี้รับรองระบายความร้อนได้ดีครับ


สำหรับ Motherboard สำหรับ AMD ก็จะรองรับกับ CPU AMD
dual AMD Opteron® 6100 Series ครับ และรองรับ การใส่
Memory ได้ถึง 24 DIMM slots เรียกว่าอัดแรมกันได้สะใจเลยทีเดียว
ตัว Motherboard เองตัดพวก port ต่างๆ ที่ไม่จำเป็นออกไป เพื่อ
เป็นการประหยัดไฟไปในตัว


สำหรับ Motherboard สำหรับ Intel ก็จะรองรับกับ CPU Intel
dual Intel Xeon® 5500 or Intel Xeon® 5600 ใส่ Memory
ได้ทั้งหมด 18 DIMM ครับ ส่วนอื่นๆ ก็จะคล้ายๆ กับของ AMD


ส่วนของ Power Supply ก็จะออกแบบมาอย่างดี ให้กำลังได้ 450W
ทั้ง AC/DC ส่วนรายละเอียด ในเชิงลึก อ่านได้ใน Datasheet ครับ

ทั้งหมดนี้ ผมว่าเป็นสิ่งที่ดีมากๆ ที่ต่อไปทั่วโลกจะได้มี Server ดีๆ ใช้กัน
ในราคาที่ไม่แพงมาก เกินความจำเป็น ยิ่งสั่งที่ละจำนวนมาก ก็ยิ่งน่าจะ
ทำให้ประหยัดได้มากขึ้น ..
บริษัทใหญ่ๆ ในไทย ลองเอา idea นี้ไปทำกันดูได้นะครับ น่าจะช่วยองค์กร
ประหยัดค่า Server ไปได้ปีละจำนวนมากครับ 🙂

สำหรับรายละเอียดเพิ่มเติม
URL : http://opencompute.org/