การพัฒนาระบบจัดส่งข้อความแจ้งเตือนปริมาณมากแบบหลายช่องทางด้วยเทคนิคประมวลผลแบบขนาน
Development of High-Volume Multi-Channel Notification System using Concurrent Processing
ผู้จัดทำ: นายกฤษณะ สุขจร
อาจารย์ที่ปรึกษา: อาจารย์อาคม ม่วงเขาแดง
ที่มาและความสำคัญ
ปัจจุบันในธุรกิจแอปพลิเคชันมีความต้องการส่งข้อความแจ้งเตือนแบบเฉพาะบุคคล (Personalized Notification) ไปยังผู้ใช้จำนวนหลักหมื่นรายผ่าน 3 ช่องทางหลัก ได้แก่ LINE, FCM และ In-App Chat. อย่างไรก็ตาม การประมวลผลข้อมูลปริมาณมหาศาลโดยปราศจากกลไกควบคุมที่ดี ก่อให้เกิดปัญหาคอขวดและความล่าช้าในการจัดส่งจนเกินกรอบเวลาข้อตกลงระดับบริการ (SLA) ส่งผลให้เสียโอกาสทางธุรกิจในช่วงเวลาสำคัญ (Prime Time) และยังเสี่ยงต่อการถูกระบบปลายทางปฏิเสธคำขอเนื่องจากเรียกใช้งานเกินกำหนด (API Rate Limit Exceeded).
เพื่อแก้ปัญหาดังกล่าว โครงงานนี้จึงพัฒนาระบบจัดส่งข้อความขึ้นใหม่ด้วยภาษา Go โดยนำสถาปัตยกรรมประมวลผลแบบขนาน (Concurrent Processing) และเทคนิคกลุ่มงาน (Worker Pool) มาใช้กระจายภาระงานอย่างเป็นระบบ มุ่งเน้นการปรับจูนหาจุดสมดุล (Sweet Spot) ที่ทำความเร็วได้สูงสุดภายใต้กรอบเวลา SLA โดยไม่ขัดต่อข้อจำกัดของ API ปลายทาง เพื่อยกระดับประสิทธิภาพการทำงาน ลดภาระของผู้ดูแลระบบ และส่งมอบข่าวสารที่รวดเร็วแม่นยำที่สุดให้แก่ผู้ใช้งาน.
วัตถุประสงค์
-
เพื่อพัฒนาระบบประมวลผลและจัดส่งข้อความปริมาณมหาศาลด้วยเทคนิคการทำงานแบบขนาน ที่สามารถลดระยะเวลาการทำงานรวม (Total Execution Time) ให้อยู่ภายใต้กรอบเวลาที่ธุรกิจกำหนด หรือ SLA
-
เพื่อเสริมสร้างเสถียรภาพและความแม่นยำของระบบจัดส่งข้อความ โดยรับประกันว่าข้อมูลจะถูกส่งถึงเป้าหมายอย่างถูกต้อง ทันท่วงที และตอบสนองต่อความต้องการใช้งานจริงของทั้งทีมผู้ดูแลระบบและผู้ใช้งานปลายทาง
วิธีการดำเนินงาน (Methodology)
กระบวนการพัฒนาระบบดำเนินงานตามวงจรการพัฒนาซอฟต์แวร์ SDLC (Software Development Life Cycle) ประกอบด้วย 5 ขั้นตอนหลัก ได้แก่ Analysis, Design, Implement, Test และ Deploy โดยมีสถาปัตยกรรมการประมวลผลหลัก (Core Architecture) ทำงานผ่าน Go Channel และเทคนิค Worker Pool Execution ดังนี้:
-
Data Streaming & Batching: ระบบจะอ่านข้อมูลผู้ใช้งานเป้าหมายจากฐานข้อมูล PostgreSQL ในรูปแบบสตรีมมิ่ง (Streaming) และจัดกลุ่มข้อมูลออกเป็นชุด (Batching) เพื่อควบคุมการใช้หน่วยความจำ (Memory) ให้มีประสิทธิภาพและป้องกันระบบล่ม.
-
Job Queuing: ชุดข้อมูล (Batch) จะถูกส่งเข้าสู่ Go Channel ซึ่งทำหน้าที่เสมือนสายพานลำเลียง (Conveyor Belt) เพื่อเตรียมแจกจ่ายงานอย่างเป็นลำดับขั้น.
-
Segment Validation: กลุ่มหน่วยประมวลผลย่อย (Goroutine) ตามจำนวนที่เหมาะสม (N Workers) จะดึงข้อมูลจากสายพานไปทำงานพร้อมกัน โดยแต่ละ Worker จะรับหน้าที่ตรวจสอบเงื่อนไขกลุ่มเป้าหมาย (Segment) และจับคู่เนื้อหา (Content) ให้ตรงกับความสนใจของผู้ใช้แบบเฉพาะบุคคล.
-
การจัดส่งข้อความ: Worker ดำเนินการยิง API เพื่อจัดส่งข้อความไปยังช่องทางที่กำหนด (LINE, FCM, In-App Chat) ได้อย่างรวดเร็ว แม่นยำ และมีการควบคุมจังหวะการส่ง (Throttling) เพื่อไม่ให้เกินข้อจำกัด (Rate Limit) ของผู้ให้บริการปลายทาง.
ผลการดำเนินงาน (Results)
-
จุดสมดุลของสมรรถนะระบบ: จากการทดสอบประเมินสมรรถนะพบว่า การกำหนดกลุ่มงานขนานไว้ที่ 50 Workers คือจุดสมดุลที่ทำให้ระบบทำงานได้ประสิทธิภาพสูงสุด.
-
ความเร็วในการจัดส่งข้อความ: ระบบสามารถประมวลผลและจัดส่งข้อความแบบเฉพาะบุคคลจำนวนมากกว่า 13,000 รายการ เสร็จสิ้นภายในเวลาเพียง 7 นาที 34 วินาที ซึ่งบรรลุเป้าหมายตาม SLA ที่กำหนดไว้ไม่เกิน 10 นาทีได้อย่างสมบูรณ์แบบ โดยเร็วกว่าเป้าหมายถึง 24.3% และไม่เกิดข้อผิดพลาดจากการถูกจำกัดปริมาณการเรียกใช้งานจากผู้ให้บริการปลายทาง (API Rate Limit).
-
ผลการประเมินการยอมรับระบบ (User Acceptance):
-
กลุ่มทีมงานผู้ดูแลระบบ (10 คน): ให้คะแนนความพึงพอใจเฉลี่ยสูงถึง 4.80 คะแนน เนื่องจากพึงพอใจในเสถียรภาพของระบบที่ช่วยลดภาระงานแบบแมนนวลได้อย่างชัดเจน.
-
กลุ่มผู้ใช้งานปลายทาง (30 คน): ให้คะแนนความพึงพอใจเฉลี่ยสูงถึง 4.84 คะแนน โดยให้การยอมรับสูงสุดในด้านความรวดเร็ว ความถูกต้อง และการไม่ได้รับข้อความแจ้งเตือนที่ซ้ำซ้อน.
สรุปผล (Conclusion)
โครงงานนี้ประสบความสำเร็จในการยกระดับประสิทธิภาพระบบจัดส่งข้อความแจ้งเตือนปริมาณมหาศาลไปยัง 3 ช่องทางหลัก โดยมุ่งเน้นการแก้ปัญหาความล่าช้า เพื่อให้ธุรกิจสามารถสื่อสารข้อมูลสำคัญถึงมือเป้าหมายได้อย่างถูกต้องและทันท่วงที. ผลลัพธ์เชิงประจักษ์พิสูจน์แล้วว่าระบบสามารถจัดส่งข้อมูลกว่า 13,000 รายการ ได้เร็วกว่าข้อตกลงระดับบริการ (SLA) ถึง 24.3% ซึ่งความรวดเร็วและแม่นยำนี้ไม่เพียงแต่ช่วยลดภาระต้นทุนเวลาของทีมผู้ดูแลระบบ แต่ยังสร้างประสบการณ์ที่ดีเยี่ยมให้กับผู้รับข้อความ สะท้อนผ่านผลประเมินความพึงพอใจในระดับดีมาก ความสำเร็จนี้จึงเป็นเครื่องยืนยันว่าโครงสร้างของระบบมีความพร้อม มีเสถียรภาพสูง และสามารถนำไปต่อยอดเพื่อรองรับการขยายตัวทางธุรกิจในระดับองค์กรได้อย่างยั่งยืน.