เปลี่ยนสู่ VMware GemFire เพื่อประมวลผลแบบ Distributed in-memory database

เชื่อว่าทุกคนคงคุ้นเคยกับการใช้งานฐานข้อมูลตัวเดียวเพื่อรองรับกับข้อมูลที่เกิดขึ้น ซึ่งวิธีเดิมในการรับมือกับโหลดปริมาณมากคือสร้างเว็บแอปไว้หลายตัว และใช้ Load Balancer กระจายงาน อย่างไรก็ดีสุดท้ายแล้วความรวดเร็วของฐานข้อมูลก็คือคอขวดของระบบอยู่ดี ยิ่งในยุคสมัยใหม่นี้ที่ข้อมูลเกิดขึ้นท่วมท้นพร้อมกับความคาดหวังที่จะได้รับการตอบสนองอย่างทันที ในบทความนี้ทุกท่านจะได้รู้จัก VMware GemFire โซลูชัน Distributed in-memory database ที่จะช่วยให้ท่านเอาชนะความท้าทายของข้อมูล

Credit : VMware

In-memory เกิดขึ้นได้อย่างไร

ตามหลักการประมวลผลทางคอมพิวเตอร์เราทราบดีกันอยู่แล้วการประมวลผลนำข้อมูลออกมาอย่างเป็นลำดับชั้น เช่น Register, SRAM, DRAM และ Disk ซึ่งต้นทุนของการผลิตอุปกรณ์เรียงจากสูงมาหาต่ำตามลำดับ หากเราเทียบระหว่างความจุของ RAM และฮาร์ดดิสก์ทุกท่านจะเห็นภาพได้อย่างชัดเจน 

อย่างไรก็ดีเราต่างทราบดีว่าหากเก็บข้อมูลใน RAM ได้มากย่อมดีกว่าดิสก์แน่นอน โดยข้อจำกัดเหล่านี้เคยเกิดขึ้นเมื่อหลายสิบปีก่อน เพราะเรื่องเหล่านี้ใกล้เคียงความจริงมากขึ้นจากต้นทุนของเทคโนโลยี RAM ในปัจจุบัน ที่จะเห็นได้ว่า RAM มีความสูงถึงระดับเทระไบต์ นั่นจึงเป็นที่มาของแนวคิด In-memory ในแอปพลิเคชันต่างๆ ที่นำข้อมูลมาเก็บไว้พร้อมใช้งานที่ RAM เพื่อการให้เข้าถึงมีประสิทธิภาพมากขึ้น เพราะยังไงเสียการใช้งาน DRAM ย่อมเร็วกว่าดิสก์ แม้ Vendor ด้าน Storage จะชูโรงเรื่อง All flash SSD พร้อมเสริมเทคนิคมากมายก็ตาม

ย้อนกลับมาที่ประเด็นของฐานข้อมูลที่จำเป็นต้องเขียนอ่านกลับดิสก์ แม้จะแลกมาด้วยความคงทนของข้อมูล แต่ข้อเสียคือเรื่องความรวดเร็วที่ไม่เพียงต่อแอปพลิชันหลายประเภทในปัจจุบัน แม้องค์กรพยายามเพิ่มความสามารถของอัตราอ่านเขียนด้วยด้วยการเพิ่มอัตราของ I/O ที่ดิสก์แต่ก็ยังมีข้อจำกัดและค่าใช้จ่ายสูง ดังนั้นจึงถือกำเนิดฐานข้อมูลที่ออกแบบมาเพื่อใช้บนหน่วยความจำที่เรียกว่า In-memory database เพื่อรองรับกับการใช้งานของแอปที่ต้องการตอบสนองได้รวดเร็วเช่น เกม การจัดการข้อมูลเซสชันปริมาณมาก หรือการวิเคราะห์ข้อมูลแบบเรียลไทม์

VMware GemFire

Credit : VMware

GemFire เป็นเรื่องราวที่สืบเนื่องกันมาตั้งแต่หลายปีก่อนของบริษัท Pivotal Software โดยนอกจากที่มีความสามารถของ in-memory แล้วยังครอบคลุมไปถึงสถาปัตยกรรมแบบกระจาย (distributed) อีกด้วย ทั้งนี้ยังมีการส่งไม้ต่อให้กลุ่มโอเพ่นซอร์สภายใต้ชื่อ Apache Geode แต่หากเป็นตัว Commercial ก็จะอยู่ภายใต้ชื่อการค้าที่เรียกว่า GemFire นั่นเอง ต่อมาในปี 2020 Pivotal ก็ได้ถูก VMware เข้าซื้อกิจการและปัจจุบัน GemFire นี้ได้กลายเป็นส่วนหนึ่งภายใต้กลุ่มโซลูชัน Tanzu นั่นเอง

เมื่อพูดถึงการเป็น Distributed นั่นหมายถึงว่าระบบต้องมีกลุ่มก้อนของเครื่องที่ประมวลผลที่ทำงานร่วมกัน (Cluster) โดยสิ่งที่ GemFire ตอบโจทย์การใช้งานในภาคองค์กรก็คือความสามารถในระดับของการ Scale-out ซึ่งสามารถเพิ่มจำนวนโหนดเข้ามาในกลุ่มหรือกำจัดโหนดที่มีปัญหาออกจากกลุ่มได้ แต่ความท้าทายคือจะทำอย่างไรให้กลไกนี้เกิดขึ้นได้อย่างชาญฉลาดและไม่กระทบกับประสิทธิภาพการทำงานของโหนดอื่นๆ 

โดยกลุ่มของการทำงานสมาชิกจะรู้จักกันและเชื่อมต่อกันในรูปแบบของ Peer-to-peer (P2P) แลกเปลี่ยนข้อมูลซึ่งกันและกัน โดย GemFire ใช้ระบบจัดการสมาชิก (Group Membership Service : GMS) ที่ทำให้ขั้นตอนการนำเข้าหรือตัดการเป็นสมาชิกเกิดขึ้นได้อย่างรวดเร็วหากสมาชิกรายนั้นมีปัญหาหรือขาดการติตต่อเกินเวลาที่กำหนด อีกทั้งกระบวนการจะไม่กระทบต่อการทำงานของสมาชิกรายอื่น 

VMware GemFire เป็นฐานข้อมูลประเภท Key-Value Datastore ซึ่งจัดอยู่ในกลุ่มของ noSQL โดยไอเดียก็คือค่าของข้อมูลจะเชื่อมโยงกับ Key ซึ่งมีค่าไม่ซ้ำกัน (คล้ายกับ Primary Key ในระบบ Relational Database แต่รูปแบบการเก็บไม่ได้ถูกนิยามโดยตาราง) จุดเด่นก็คือค่าของข้อมูลเป็นชนิดใดก็ได้และมีความซับซ้อนภายใต้ของข้อมูลได้ ทำให้ใช้งานมีความยืดหยุ่น รองรับกับแอปพลิเคชันที่มักมีการเปลี่ยนโครงสร้าง ต่างกับ Relational Database ที่สร้างแล้วมักแก้ไขเปลี่ยนแปลงยาก

นอกจากนี้เอง GemFire ยังมีคอนเซปต์ของ Regions เป็นขอบเขตของข้อมูลในหนึ่งคลัสเตอร์ โดยสามารถกำหนดได้ว่า Region นี้จะครอบคลุมในคลัสเตอร์ (Distributed), เก็บอยู่บนสมาชิกเพียงตัวเดียว (Non-distributed), สำหรับการสำรองข้อมูล (Replicated) และแบ่งส่วนของข้อมูล (Partition) เหมาะสำหรับการที่มีข้อมูลปริมาณมากให้ทุกคนถือข้อมูลคนละส่วน ตอบโจทย์ด้านประสิทธิภาพในการเข้าถึงและใช้ร่วมกับการทำ HA หรือบันทึกลงบนดิสก์ได้ถาวร

จะเห็นได้ว่า GemFire ได้พยายามรับมือกับความท้าทายของระบบการประมวลผลแบบ Distributed และ in-memory หลายอย่าง ซึ่งนำไปสู่ฟีเจอร์ต่างๆที่ครอบคลุมดังนี้

  • การันตีเรื่อง Persistance ผู้ใช้งานสามารถคอนฟิคให้ GemFire Region ให้เก็บข้อมูลมากกว่า Memory สู่พื้นที่จัดเก็บถาวรได้ไม่ว่าจะเป็นฮาร์ดไดร์ฟหรือสตอเรจภายนอก ด้วยเหตุนี้เองจึงการันตีว่าข้อมูลจะไม่สูญหายแม้เครื่องจะดับไป
  • คอนเซปต์ของ Share Nothing หรือแต่ละเซิร์ฟเวอร์จะมี CPU Memory และ Disk ของตัวเองไม่ต้องมีการแชร์ทรัพยากรร่วมกัน พร้อมทั้งมีชุดข้อมูลสำรองในสตอเรจอื่นจึงรับประกันว่าจะไม่เกิด Single point of failure
  • คอนเซปต์ของ Data Colocation ทำให้เกิดการจัดเก็บข้อมูลที่คล้ายคลึงกันอยู่ในสถาที่เดียวกันทำให้การเรียกใช้มีประสิทธิภาพมากกว่า
  • มีภาษาในการ Query ข้อมูลที่เข้าใจง่ายคล้ายกับ Syntax ของ SQL แต่ยืดหยุ่นมากกว่าที่เรียกว่า Object Query Language (OQL)
  • ความสามารถของ GemFire ยังสร้างการทำงานแบบกระจายข้ามเครือข่าย WAN ได้ ด้วยเหตุนี้จึงตอบสนองกับแอปพลิเคชันที่มีข้อมูลต่างสถานที่หรืออยู่ไกลกันออกไป
  • มีระบบการจัดการที่ชาญฉลาดที่ฝั่ง Client ให้สื่อสารกับสมาชิกได้ในครั้งเดียว และระบบ Local Cache ที่พร้อมกับข้อมูลล่าสุด
  • พร้อมใช้ง่ายได้ง่ายๆผ่าน Spring Framework หรือการใช้ API ช่วยงานนักพัฒนาเริ่มต้นได้โดยง่าย 
  • มีระบบ indexing เพื่อช่วยให้ Query ที่มักเกิดขึ้นบ่อยมีความรวดเร็ว 
  • รองรับการทำ Full-text Search ด้วย Apache Lucene ที่เป็นโอเพ่นซอร์สที่ถูก integrate เข้ามา
  • มีการ Replicate ข้อมูลท่ามกลางสมาชิกตัวอื่นเพื่อเป็นการสำรองข้อมูลซึ่งกันและกัน 
  • สามารถปรับสมดุลย์การทำงานได้อย่างอัตโนมัติเช่น ในการกระจายข้อมูลให้ใกล้กับการใช้งาน หรือไปยังสมาชิกที่เหมาะสม

จะนำ VMware GemFire ไปใช้ในองค์กรได้อย่างไร

อย่างที่ทราบดีแล้วว่า GemFire ได้ถูกออกแบบมาให้ตอบสนองการทำงานที่ต้องการความรวดเร็วด้วยความเป็น in-memory database และกลไกการทำงานร่วมจากกลุ่มของสมาชิก แต่ยังการรันตีเรื่อง ACID ที่ข้อมูลสมบูรณ์ถูกต้อง สมาชิกทำงานร่วมกันได้และทนทางต่อการสูญเสีย ทำให้ GemFire เหมาะกับแอปปัจจุบันตัวอย่างเช่น

1.) GemFire อยู่เบื้องหลังของระบบขนส่งสาธารณะในประเทศที่มีประชากรหนาแน่นอย่างจีนและอินเดีย โดยในกรณีศึกษาแรกปัญกาคือช่วงปีใหม่จีนมีผู้คนจำนวนมากใช้บริการขนส่งเพื่อกลับบ้าน ซึ่งพวกเขาสามารถขยายการซื้อตั๋วได้ถึง 15,000 ใบต่อนาทีและยอดเข้าชมเพจสูงถึง 1,400 ล้านครั้งต่อวัน หรือ 40,000 ครั้งต่อวินาที เช่นกันในรถไฟของอินเดียโปรลดราคาเวลาสายของวันทำให้ความหนาแน่นของยอดผู้ชมพุ่งพรวด ซึ่งระบบเดิมจะประสิทธิภาพตกลงเมื่อมีผู้ใช้งานแตะ 40,000 คนทำให้ต้องผู้ใช้ต้องเผชิญกับความล้าช้า แต่เมื่อทีมไอทีตัดสินใจเข้าสู่ GemFire ระบบของพวกเขาก็รองรับการซื้อตั๋วกระโดดจาก 2,000 ต่อนาทีสู่ 10,000 ต่อนาทีหรือ 120,000 Concurrent 

2.) IoT ได้สร้างปริมาณของข้อมูลเพิ่มขึ้นเป็นอย่างมากเข้ามาในระบบ ซึ่งระบบฐานข้อมูลที่ต้องเขียนอ่านบนดิสก์จะไม่สามารถตอบสนองกับข้อมูลที่พุ่งเข้ามาอย่างรวดเร็วและมหาศาล หากต้องการวิเคราะห์ข้อมูลเพื่อสร้างการตัดสินใจที่ทันท่วงที การใช้งาน GemFire นั้นดูเหมาะสมกว่า

3.) การประมวลผลตามอีเว้นต์เช่น บริษัทบัตรเครดิตที่ต้องการตรวจจับการปลอมแปลง ด้วยฟังก์ชัน Continuous Querying จะทำให้เกิดการแจ้งเตือนผู้เกี่ยวข้องเมื่อเกิดผลลัพธ์ที่เข้าเงื่อนไขที่ตั้งเอาไว้ ในกรณีของบัตรเครดิตอาจส่งข้อมูลการปฏิเสธไปหาเจ้าหน้าที่บริษัทเป็นต้น

4.) GemFire ยังสามารถนำหน้าที่เป็น Cache ของระบบเพื่อขวางหน้าฐานข้อมูลเดิม ลดการเข้าถึงฐานข้อมูลที่ล่าช้ามากกว่า เพื่อประสิทธิภาพการตอบสนองให้เร็วขึ้นของบริการได้

5.) ในยุคของ microservice มักมาพร้อมกับความคาดหวังในการตอบสนองข้อมูลได้ทันสถานการณ์ ซึ่งความเป็น Stateless ของสถาปัตยกรรมทำให้ต้องมีที่เก็บข้อมูล แต่แน่นอนว่าต้องสอดคล้องกับการขยายตัวของแอปพลิเคชันได้ โดย GemFire มีจุดประสงค์หลักเพื่อการ Scale-out อยู่แล้ว จึงสอดคล้องกับแนวทาง microservice ได้เป็นอย่างดี

สนใจศึกษาข้อมูลเพิ่มเติมได้จากวีดีโอด้านล่าง

ท่านใดสนใจผลิตภัณฑ์ VMware GemFire ติดต่อทีมงาน Cloud HM ได้ที่

โทร (0)2-119-7300 หรืออีเมล์ sales@cloudhm.co.th หรือเยี่ยมชมเว็บไซต์ของ Cloud HM ได้ที่ https://www.cloudhm.co.th

ที่มา :

About nattakon

จบการศึกษา ปริญญาตรีและโท สาขาวิศวกรรมคอมพิวเตอร์ KMITL เคยทำงานด้าน Engineer/Presale ดูแลผลิตภัณฑ์ด้าน Network Security และ Public Cloud ในประเทศ ปัจจุบันเป็นนักเขียน Full-time ที่ TechTalkThai

Check Also

Salesforce เข้าซื้อกิจการ Fin มูลค่าราว 3,600 ล้านดอลลาร์ เสริมแกร่ง AI Agent งานบริการลูกค้า

Salesforce ประกาศลงนามข้อตกลงขั้นสุดท้ายเข้าซื้อกิจการ Fin ผู้ให้บริการแพลตฟอร์ม customer agent ในมูลค่าราว 3,600 ล้านดอลลาร์สหรัฐ เพื่อนำเทคโนโลยี AI Agent สำหรับงานบริการลูกค้ามาเสริมความสามารถให้กับ Agentforce

Cisco ออกแพตช์แก้ช่องโหว่ Zero-day บน Catalyst SD-WAN Manager ที่ถูกใช้โจมตียกระดับสิทธิ์เป็น root

Cisco ปล่อยอัปเดตด้านความปลอดภัยแก้ช่องโหว่บน Catalyst SD-WAN Manager (เดิมคือ SD-WAN vManage) หลังพบว่าถูกใช้โจมตีจริงในลักษณะ Zero-day เพื่อยกระดับสิทธิ์เป็น root บนระบบที่ได้รับผลกระทบ