Consulting
Solution
ณ เวลานี้คงไม่มีใครไม่เคยเห็นตู้เต่าบินเจ้าตู้กดกาแฟเครื่องดื่มที่แสนสะดวกสบายและมีเมนูให้เลือกหลากหลาย แต่คุณรู้หรือไม่ว่าเบื้องหลังการทำงานมันเป็นอย่างไร
หลังจากได้ใช้บริการตู้นี้บ่อยระหว่างรอกาแฟก็ยืนวิเคราะห์ระบบของมัน
ถามว่าผมมั่นใจได้ไงว่า เจ้าเต่าบินใช้ Kafka แน่ ๆ คำตอบก็คือในประกาศรับสมัครงานของเต่าบินเองทำให้ผมพอจะวางคร่าว ๆได้ว่าระบบใช้อะไรบ้าง
แต่นั่นไม่ใช่ส่ิงที่เราจะคุยกันในบทความนี้เพราะเราจะพยามไม่พูดถึง Technical มากไป
คุณอาจจะตั้งคำถามเหล่านี้ แต่ถ้าไม่ก็สงสัยหน่อยเถอะนะ ๆ
สงสัยไหมว่า ตู้มันรู้ได้อย่างไรว่าเราจ่ายเงินมันแล้ว แล้วมันบอกให้ เจ้าหน้าที่รู้ได้อย่างไรเมื่อมีปัญหา เช่น ของหมด ปล. อันนี้ไม่รู้เขาใส่ไว้ไหม ส่งข้อมูลไปฐานข้อมูลได้อย่างไรรู้ได้ไงเมื่อไรควรส่งอะไร
ใครที่พอคุ้น ชื่อ Apache Kafka อาจจะพอจำได้ว่ามันเป็นคู่แข่งกับ Rabbit MQ ซึ่งเป็น Message Queue เหมือนกัน แต่จริงมันก็ต่างไปหน่อยที่ Kafka บอกว่าตัวเอง คือ Distributed Event Streaming
เอาละก่อนจะงงไปมากกว่านี้เรามาดูกันดีกว่าปกติถ้าที่ไม่รู้จัก 2 ตัวนี้จะทำตู้แบบนี้จะทำอย่างไร
คือ จะเห็นได้ว่ามีการส่งกันไปมารับส่งกันไปมาระหว่าง Service แต่ละตัว เหมือน A ต้องคอยเดินไปบอก B ใกล้ๆ ว่าต้องทำอะไร เมื่อ B ทำเสร็จก็ต้องเดินมาบอก A อีกแบบวุ่นวายสุด ๆ
นี่แค่จำลองนะ ฝันร้ายจะเกิดทันทีถ้ามีตัว Service มากว่านี้แถมยังทำงานแบบ Synchronous อีก คือ ต้องรอ 1 เสร็จก่อน 2 งั้นลองดูแบบใช้ Kafka บ้าง
ถ้าแบบแรก คือ การเดินไปบอกใกล้ ๆ Kafka เหมือนตะโกนบอก โดยแต่ละ Service จะเลือกฟังเฉพาะเรื่องที่ตัวเองสนใจเท่านั้น เพราะฉะนั้นจึงดีกว่าการรอการทำงานทีละ ตัว ทำให้ดีต่อการ Scale ในอนาคตจะไปเข้ากับ Concept การออกระบบ Micro Services ซึ่งเป็นระบบยุคใหม่
ระหว่างนั้นอาจจะมี Event บางยังที่ต้องแสดงเลยก็ไม่ต้องทำเป็นระบบเรียกกันไปมา อนาคตอาจจะมีการส่ง Steam Event ระหว่างที่ User กดเลือกเมนูเก็บไว้ทำ Data Analytics วิเคราะห์แนว ๆ มา User มีความลังเลไหมต่าง ๆ (ชี้ช่องละนะ)
ใด ๆ แล้วเหรียญยอมมี 2 ด้าน มีข้อดีก็ต้องมีข้อเสีย Kafka ไม่ใช่ทุกคำตอบของ Micro services และไม่ใช่คำตอบของทุกงาน
ข้อเสียหลัก ๆ คือ ความยากในการ Setup และ ความซับซ้อน ถ้าเราทำระบบทั่วไปไม่มีความจำเป็นเลยที่ต้องใช้งาน Kafka
ถึงเวลาต้องลาจากันไป ฝากติดตามผมได้ที่เพจ StandUpCode และทุก ๆ ช่องทาง Youtube, Spotify