เมื่อเดือนมีนาคม 2024 ที่ผ่านมา ทาง Redis ได้ออกมาประกาศอัพเดต license โครงการจากเดิมคือ BSD (Berkeley Software Distribution) ที่ให้อิสระสูงมาเป็น SSPL (Server Side Public License) ซึ่งมีข้อบังคับว่าหากมีการนำ Redis ไปใช้งานที่ให้บริการบน Cloud จะต้องเปิดเผยซอร์สโค้ดอื่นๆ ที่เกี่ยวข้องไปด้วย ทำให้ธุรกิจต่างๆ ต้องซื้อ license ทางธุรกิจ หากไม่อยากเปิดเผยซอร์สโค้ดนั่นเอง
ในเวลาไล่เลี่ยกัน ทางไมโครซอฟท์ก็ได้ปล่อย Garnet ออกมา ซึ่งถูกพูดถึงกันค่อนข้างมาก เพราะนอกจากจะเป็น Open source และมีความเข้ากันได้กับ Redis แล้ว ยังมีประสิทธิภาพที่ดีกว่าในหลายๆ จุดอีกด้วย
แต่ก่อนที่จะไปพูดถึง Garnet ขอแนะนำให้คนที่ยังไม่รู้จักเครื่องมือจำพวก Redis หรือ Garnet เข้าใจกันก่อนดีกว่า
ในโลกของนักพัฒนาระบบ หลายๆ ครั้งเรามักจะพบว่าฐานข้อมูลเป็นคอขวดของระบบ จึงมีการนำระบบแคชมาใช้งาน ซึ่งเครื่องมือที่นิยมกันอย่างแพร่หลายก็คือ Redis (แต่จริงๆ แล้วเรายังสามารถเอาไปใช้งานแนวอื่นได้อีก เช่น ใช้เป็นฐานข้อมูล, ใช้เป็น message broker เป็นต้น) แต่เนื่องด้วยเหตุผลที่กล่าวไปข้างต้น น่าจะส่งผลต่อความนิยมของ Redis ไม่มากก็น้อย หลายๆ คนเริ่มมองหาทางเลือกอื่น จึงเป็นที่มาของบทความนี้นั่นเอง
ทีม Microsoft Research ได้ซุ่มพัฒนาระบบแคชขึ้นมาและนำไปใช้งานในระบบต่างๆ ของไมโครซอฟท์เอง จนถึงวันนี้ทางไมโครซอฟท์ก็ได้ open source เจ้า Garnet ให้กับทุกคนได้นำไปใช้งานและต่อยอดให้ดียิ่งๆ ขึ้นไปอีก และเนื่องด้วย Garnet ถูกพัฒนาขึ้นมาใหม่ในยุคที่การใช้งานแคชเป็นสิ่งจำเป็น จึงทำให้ไมโครซอฟท์มีโจทย์ที่ชัดเจนว่า จะต้องพัฒนาให้ดีกว่าตัวที่มีอยู่ในปัจจุบัน ซึ่งสิ่งที่ออกมานั้น ก็มีข้อดีที่เป็นเอกลัษณ์หลายข้อเลยทีเดียว เช่น
- ใช้โปรโตคอล RESP ซึ่งเป็นโปรโตคอลเดียวกันกับที่ใช้ใน Redis ทำให้สามารถใช้ Garnet ได้โดยไม่ต้องแก้ code ฝั่ง client เลย
- มีความสามารถในการปรับขนาดและปริมาณงานที่ดีกว่าตัวอื่นๆ ในท้องตลาดมาก ซึ่งนำไปสู่การประหยัดต้นทุนสำหรับแอปพลิเคชันและบริการขนาดใหญ่
- ด้วยเทคโนโลยี .NET ล่าสุด ทำให้ Garnet เป็นแพลตฟอร์มข้ามแพลตฟอร์ม ขยายได้ และทันสมัย ได้รับการออกแบบมาให้ง่ายต่อการพัฒนา โดยไม่สูญเสียประสิทธิภาพการทำงานในการพัฒนาระบบทั่วๆ ไป
นอกจากนี้ทางไมโครซอฟท์ยังได้เปิดเผยผลการทดสอบประสิทธิภาพอีกด้วย ดังข้อมูลในภาพด้านล่างนี้ ซึ่งจะเห็นได้ว่า Garnet นั้นมีประสิทธิภาพดีกว่า Redis 7.2, KeyDB, ไปจนถึง Dragonfly โดยเฉพาะในกรณีที่ส่งคำสั่งเป็นแบตช์ใหญ่ๆ และค่า latency ก็ต่ำกว่าชัดเจน
จากที่กล่าวมาข้างต้น ก็พอจะทำให้เห็นได้ว่า Garnet มีความน่าสนใจไม่น้อยเลย ทั้งความสามารถและประสิทธิภาพ
หากคุณต้องการสร้างระบบที่มีความท้าทายในการรองรับปริมาณโหลดที่สูง บริษัทไอโคเน็กซ์พร้อมให้คำปรึกษาและพัฒนาระบบให้คุณ ด้วยประสบการณ์ของเราที่สั่งสมมามากกว่า 10 ปีในวงการพัฒนาซอฟต์แวร์เลยทีเดียว สามารถติดต่อเราได้ที่ thaisales@iconext.co.th หรือคลิก Inquiry Form
ที่มา: