รีวิวประสบการณ์เข้าร่วม Confluent Hybrid Cloud Hands-on Workshop
สวัสดีครับทุกคน เมื่อช่วงเดือนที่แล้ว ทางทีมได้มีโอกาสเข้าร่วมเวิร์คช็อปที่ทาง Confluent จัดขึ้น ซึ่งถือเป็นงานแรกสำหรับผมที่ได้ร่วมเวิร์คช็อปแบบตัวต่อตัว (Face-to-Face) ในรอบ 2 ปีที่ผ่านมา เนื่องจากสถานการณ์โควิด (ก่อนเข้าร่วมงานทางผมก็ได้มีการตรวจ ATK เป็นที่เรียบร้อย) โดยงาน Hybrid Cloud Hands-on Workshop นี้ได้จัดขึ้นที่โรงแรมเรเนซองส์ กรุงเทพฯ ราชประสงค์ (Renaissance Bangkok Ratchaprasong Hotel) เมื่อวันที่ 9 June 2022
ช่วงปูพื้นฐาน
ช่วงแรกของงานจะเป็นการปูพื้นฐานเกี่ยวกับ Apache Kafka ในด้านต่างๆ เช่น Topic, Consumer, Producer, Kafka Connect และอื่นๆ อีกมากมาย รวมถึงหัวข้อที่น่าสนใจอย่าง Cluster Linking ซึ่งเป็นการ Sync ข้อมูลระหว่าง Kafka Cluster (ปัจจุบันเราสามารถทำได้โดยใช้ Replicator หรือแม้กระทั่ง MirrorMaker) แต่เป็นที่น่าเสียดายที่ในการทำเวิร์คช็อปครั้งนี้ไม่ได้มีการใช้งานแต่อย่างใด
Apache Kafka
ก่อนที่จะไปต่อ ผมขอปูพื้นฐานของ Apache Kafka หรือเรียกสั้นๆ ว่า Kafka ให้ทุกคนสักหน่อยครับ เจ้า Kafka เนี่ยเป็น Message Queuing System ที่มีตัวละครเอกอยู่ด้วยกัน 3 ตัว คือ
- Topic เหมือนตัวกลางที่คอยรับข้อความและส่งต่อ
- Producer ผู้เขียน/ผู้ส่ง
- Consumer ผู้อ่าน/ผู้รับ
โดย Producer (ผู้ส่ง) จะส่งข้อความเข้ามาใน Kafka และถูกเก็บไว้ใน Topic จากนั้นถ้า Consumer (ผู้รับ) พร้อมเมื่อไหร่ ก็สามารถเข้ามาอ่านข้อความที่อยู่ใน Topic ได้โดยที่ลำดับการอ่านจะเป็น FIFO (First in, First out)
ปล. จริงๆ ยังมีอีกหลายตัวละครนะครับ อย่างในบทความนี้ ทุกคนก็จะได้เห็น KSQL และ Kafka Connect เป็นต้น ซึ่งโดยพื้นฐานแล้วหลักการทำงานก็จะคล้ายๆ กัน
ช่วงจำลองสถานการณ์
ช่วงถัดไปของงานคือการเล่าเกี่ยวกับสถานการณ์จำลองที่จะเรามาทำกันในเวิร์คช็อปครั้งนี้ เสมือนการเปิดร้านขายของ โดยจะแบ่งเป็นสองส่วนคือ On-Premise และ On-Cloud
โดยเป็นการแสดงวิธีการใช้งานส่วนต่างๆ ใน Confluent Platform ซึ่งผมจะขอสรุปให้ฟังตามด้านล่างนี้ครับ
Kafka Connect
Kafka Connect จะถูกแบ่งเป็นสองส่วน คือ Source เป็นการนำข้อมูลจากระบบอื่นๆ (ยกตัวอย่างเช่น Database, File, Data Hadoop เป็นต้น) เข้าสู่ Kafka
อีกส่วนจะเรียกว่า Sink เป็นการนำข้อมูลจาก Kafka ไปสู่ระบบอื่นๆ
Confluent Replicator
Confluent Replicator ทำหน้าที่ในการ Sync ข้อมูลระหว่าง On-Premise และ On-Cloud (ซึ่งเคลมว่า Cluster Linking ใช้งานง่ายกว่า)
KSQL
เปรียบเสมือน Kafka Client ที่ใช้ในการอ่าน-เขียนข้อมูลใน Topic ที่สามารถเขียนด้วย SQL Syntax ซึ่งจริงๆ ก็คือ Kafka Stream นั่นเอง ในเวิร์คช็อปนี้จะใช ้KSQL ในการประมวลผลข้อมูล (Processing), Enrichment Data (เสมือนการ Join นั่นเอง)
หลังเวิร์คช็อปเสร็จสิ้น ทางผมก็ได้มีโอกาสพูดคุยแลกเปลี่ยนกับวิทยากรเกี่ยวกับการที่ Cluster Linking ถูกพัฒนาขึ้นมาเพื่อกลบการใช้การที่ยากและซับซ้อนของ Replicator แถมที่สำคัญ ยังได้กินของว่างอร่อยๆ อีกด้วย
หากเพื่อนๆ ต้องการที่จะเข้าร่วมเวิร์คช็อปแบบนี้ ก็สามารถติดตามข่าวสารได้ผ่าน Events Calendar บนเว็บ confluent.io เลยครับผม
Reference
สำหรับชาวเทคคนไหนที่สนใจเรื่องราวดีๆแบบนี้ หรืออยากเรียนรู้เกี่ยวกับ Product ใหม่ๆ ของ KBTG สามารถติดตามรายละเอียดกันได้ที่เว็บไซต์ www.kbtg.tech