Apache Kafka for Event-Driven Systems

Apache Kafka for Event-Driven Systems

ระบบที่เชื่อมต่อกันแบบเรียกตรง (Point-to-Point) จะพันกันยุ่งเหยิงเมื่อมีบริการมากขึ้น และเมื่อระบบปลายทางล่ม ข้อมูลก็หายไปด้วย Apache Kafka แก้ปัญหานี้ด้วยการทำหน้าที่เป็นศูนย์กลางรับส่งเหตุการณ์ (Event) ที่เก็บข้อมูลไว้อย่างทนทาน ให้ผู้ผลิตข้อมูลกับผู้บริโภคข้อมูลแยกกันเป็นอิสระ ระบบปลายทางที่ล่มสามารถกลับมาอ่านข้อมูลต่อจากจุดเดิมได้ และเพิ่มผู้บริโภคใหม่ได้โดยไม่กระทบของเดิม หลักสูตรนี้พาผู้เรียนใช้ Kafka ตั้งแต่แนวคิดจนถึงระดับใช้งานจริง ครอบคลุมสถาปัตยกรรม Broker และ Partition, การออกแบบ Topic และการเลือก Key ให้ข้อมูลกระจายตัวดี, การเขียน Producer พร้อมเข้าใจการรับประกันการส่งข้อมูล, การทำงานของ Consumer Group และการจัดการ Offset, การจัดการรูปแบบข้อมูลด้วย Schema, การเชื่อมระบบภายนอกด้วย Kafka Connect, การประมวลผลสตรีมด้วย Kafka Streams ไปจนถึงความน่าเชื่อถือ ความปลอดภัย และการเฝ้าระวังในการใช้งานจริง (อบรม 3 วัน วันละ 6 ชั่วโมง รวม 18 ชั่วโมง ระดับ Intermediate)

สาขากรุงเทพฯ (ลาดพร้าว)
  • ยังไม่มีรอบเปิดอบรม (ลงชื่อจองไว้ได้)
  • เข้าใจแนวคิด Event-Driven Architecture และเมื่อใดควรใช้แทนการเรียก API ตรง
  • อธิบายสถาปัตยกรรมของ Kafka: Broker, Topic, Partition, Replica และ Offset
  • ติดตั้งและใช้งาน Kafka Cluster พร้อมเครื่องมือบรรทัดคำสั่งที่จำเป็น
  • ออกแบบ Topic และเลือก Key ให้ข้อมูลกระจายตัวเหมาะสมและรักษาลำดับได้
  • เขียน Producer และเข้าใจการรับประกันการส่ง (Acknowledgement) และ Idempotent Producer
  • เขียน Consumer และเข้าใจการทำงานของ Consumer Group, Rebalance และการจัดการ Offset
  • จัดการรูปแบบข้อมูลและการเปลี่ยนแปลงโครงสร้างด้วย Schema อย่างปลอดภัย
  • เชื่อมต่อฐานข้อมูลและระบบภายนอกด้วย Kafka Connect โดยไม่ต้องเขียนโค้ดมาก
  • ประมวลผลข้อมูลแบบสตรีมด้วย Kafka Streams และวางระบบให้ปลอดภัยและเฝ้าระวังได้
  • นักพัฒนาซอฟต์แวร์ที่ออกแบบระบบหลายบริการ (Microservices)
  • Data Engineer ที่ต้องส่งข้อมูลแบบเรียลไทม์ระหว่างระบบ
  • สถาปนิกระบบที่ต้องออกแบบการเชื่อมต่อระหว่างระบบให้ยืดหยุ่นและทนทาน
  • ผู้ดูแลระบบและ DevOps ที่ต้องติดตั้งและดูแล Kafka Cluster
  • ทีมที่มีปัญหาระบบผูกกันแน่นเกินไปและข้อมูลหายเมื่อระบบปลายทางล่ม
  • เข้าใจการทำงานของระบบงานและการเชื่อมต่อระหว่างระบบในระดับพื้นฐาน
  • อ่านและเขียนโค้ดได้อย่างน้อยหนึ่งภาษา (ตัวอย่างในคลาสใช้ Python เป็นหลัก)
  • ใช้งาน Command Line และเข้าใจแนวคิดเครือข่ายพื้นฐาน
  • หากเคยใช้ Docker มาบ้างจะช่วยให้ทำ Lab ได้ราบรื่นขึ้น
  • 18 ชั่วโมง
  • ราคาปกติ 12,500 บาท / คน
  • โปรโมชั่นลด 10% เหลือ 11,250 บาท / คน
  • ราคาเหมาจ่าย (ผู้อบรมตั้งแต่ 10 คน) ตามแต่ตกลงกัน
  • ขอใบเสนอราคา

รายละเอียดหลักสูตร

อบรม 3 วัน วันละ 6 ชั่วโมง รวม 18 ชั่วโมง รูปแบบบรรยายพร้อมปฏิบัติจริงกับ Kafka Cluster แบบหลาย Broker (Hands-on Lab) ระดับ Intermediate ผู้เรียนจะได้ Lab Guide, โค้ด Producer, Consumer และ Kafka Streams ตัวอย่างครบทุก Lab พร้อมไฟล์ Docker Compose สำหรับตั้ง Cluster และ Checklist การนำ Kafka ขึ้น Production กลับไปใช้งานจริง Kafka เป็นโอเพนซอร์สที่นำไปใช้ในองค์กรได้โดยไม่มีค่าลิขสิทธิ์

Day 1: แนวคิดและสถาปัตยกรรม Kafka

Section 1: แนวคิด Event-Driven Architecture

  • ปัญหาของการเชื่อมระบบแบบเรียกตรงเมื่อบริการเพิ่มขึ้นและระบบปลายทางล่ม
  • แนวคิด Event, Message Queue และ Event Streaming และความต่างที่สำคัญ
  • กรณีใช้งานจริง: การรวมข้อมูลระหว่างระบบ, การประมวลผลเรียลไทม์ และการบันทึกเหตุการณ์
  • เมื่อใดควรใช้ Kafka และเมื่อใดการเรียก API ตรงยังเหมาะสมกว่า

Section 2: สถาปัตยกรรมของ Apache Kafka

  • องค์ประกอบหลัก: Broker, Topic, Partition, Replica, Leader และ Follower
  • แนวคิด Log แบบต่อท้าย (Append-only Log) และ Offset ที่ทำให้ย้อนอ่านข้อมูลได้
  • การทำสำเนาข้อมูล (Replication) และการทนต่อความล้มเหลวของ Broker
  • การกำหนดระยะเวลาเก็บข้อมูล (Retention) และการบีบอัด Log (Compaction)

Section 3: การติดตั้งและใช้งาน Cluster

  • การติดตั้ง Kafka Cluster ด้วย Docker Compose และการตรวจสอบสถานะ Cluster
  • เครื่องมือบรรทัดคำสั่งสำหรับสร้าง Topic ส่งข้อความ และอ่านข้อความ
  • การใช้ UI ดู Topic, Partition และ Consumer Group
  • Lab: ติดตั้ง Cluster สร้าง Topic แรก และส่งและอ่านข้อความจากบรรทัดคำสั่ง

Section 4: การออกแบบ Topic และ Partition

  • หลักการตั้งชื่อ Topic และการกำหนดจำนวน Partition ให้เหมาะกับปริมาณงาน
  • การเลือก Key เพื่อกระจายข้อมูลและรักษาลำดับของข้อมูลที่เกี่ยวข้องกัน
  • ผลของจำนวน Partition ต่อความเร็ว ความขนาน และการเพิ่ม Consumer ในอนาคต
  • Lab: ออกแบบและสร้าง Topic สำหรับโจทย์ธุรกิจพร้อมทดสอบการกระจายข้อมูล

Day 2: Producer Consumer และการเชื่อมระบบ

Section 5: Producer และการรับประกันการส่ง

  • การเขียน Producer และการตั้งค่าที่สำคัญ เช่น acks, retries และ batching
  • การรับประกันการส่ง: At most once, At least once และ Exactly once
  • Idempotent Producer และการใช้ Transaction เมื่อต้องการความถูกต้องสูง
  • Lab: เขียน Producer ส่งข้อมูลและทดสอบพฤติกรรมเมื่อ Broker ไม่ตอบสนอง

Section 6: Consumer และ Consumer Group

  • การเขียน Consumer และการทำงานของ Consumer Group ในการแบ่ง Partition
  • การจัดการ Offset: การ Commit อัตโนมัติเทียบกับการ Commit เอง และผลต่อข้อมูลซ้ำหรือหาย
  • การเกิด Rebalance และผลกระทบ และแนวทางลดปัญหา
  • Lab: เพิ่มและลด Consumer ในกลุ่มและสังเกตการกระจาย Partition ใหม่

Section 7: Schema และการจัดการรูปแบบข้อมูล

  • รูปแบบข้อมูลที่ใช้บ่อย: JSON และ Avro และข้อดีข้อเสียของแต่ละแบบ
  • แนวคิด Schema Registry และการรักษาความเข้ากันได้เมื่อโครงสร้างข้อมูลเปลี่ยน
  • แนวปฏิบัติการออกแบบ Event ให้ระบบอื่นนำไปใช้ต่อได้ยาวนาน
  • Lab: กำหนด Schema ให้ Event และทดสอบการเปลี่ยนโครงสร้างโดยไม่ทำให้ระบบพัง

Section 8: Kafka Connect เชื่อมระบบภายนอก

  • แนวคิด Kafka Connect และความต่างระหว่าง Source Connector และ Sink Connector
  • การดึงข้อมูลจากฐานข้อมูลเข้าสู่ Kafka และการส่งข้อมูลออกไปยังปลายทาง
  • แนวคิด Change Data Capture สำหรับติดตามการเปลี่ยนแปลงข้อมูลในฐานข้อมูล
  • Lab: ตั้งค่า Connector ดึงข้อมูลจากฐานข้อมูลเข้าสู่ Topic โดยไม่ต้องเขียนโค้ด

Day 3: Streams ความน่าเชื่อถือ และ Production

Section 9: การประมวลผลสตรีมด้วย Kafka Streams

  • แนวคิดการประมวลผลข้อมูลระหว่างทาง: กรอง แปลง และรวมข้อมูลแบบเรียลไทม์
  • การรวมข้อมูลตามช่วงเวลา (Windowing) และการนับหรือสรุปค่าแบบต่อเนื่อง
  • ความต่างระหว่าง Stream และ Table และการเชื่อมข้อมูลสองสตรีมเข้าด้วยกัน
  • Lab: สร้างงานประมวลผลสตรีมที่สรุปข้อมูลแบบเรียลไทม์จาก Topic

Section 10: ความน่าเชื่อถือและประสิทธิภาพ

  • การตั้งค่า Replication และ Minimum In-Sync Replica เพื่อไม่ให้ข้อมูลหาย
  • การจัดการเมื่อ Broker ล่มและการกู้คืน และการทดสอบสถานการณ์จริง
  • การปรับแต่งประสิทธิภาพฝั่ง Producer และ Consumer และการจัดการ Consumer Lag
  • Lab: จำลอง Broker ล่มและสังเกตว่าระบบยังทำงานต่อได้อย่างไร

Section 11: ความปลอดภัยและการเฝ้าระวัง

  • การเข้ารหัสการเชื่อมต่อและการยืนยันตัวตนของ Client
  • การกำหนดสิทธิ์การเข้าถึง Topic ตามหลัก Least Privilege
  • การเฝ้าระวัง Cluster: Consumer Lag, สถานะ Broker และ Metric สำคัญที่ต้องดู
  • การวางแผนดูแล Cluster และการอัปเกรดโดยไม่ให้บริการหยุด

Section 12: Capstone และการนำไปใช้จริง

  • โจทย์: ออกแบบและสร้างระบบ Event-Driven สำหรับกระบวนการธุรกิจหนึ่งตั้งแต่ต้นจนจบ
  • การนำเสนอสถาปัตยกรรม Topic และเหตุผลของการออกแบบ
  • แนวทางการนำ Kafka ไปใช้จริงในองค์กรและการเริ่มจากระบบเล็กก่อนขยาย
  • Workshop: นำเสนอระบบที่สร้างและทบทวนการออกแบบร่วมกัน

คอร์ส Apache Kafka สำหรับระบบ Event-Driven เหมาะกับใคร ต้องมีพื้นฐานอะไรมาก่อน

ดูรายละเอียดกลุ่มเป้าหมายและพื้นฐานที่ต้องมีได้ในหัวข้อ "กลุ่มเป้าหมาย" และ "พื้นฐานที่ผู้เรียนต้องมี" บนหน้านี้ หากไม่แน่ใจว่าพื้นฐานพอหรือไม่ ปรึกษาทีมงานได้ฟรีทาง LINE @itgenius หรือโทร 02-570-8449

คอร์ส Apache Kafka สำหรับระบบ Event-Driven ราคาเท่าไร ใช้เวลาเรียนกี่ชั่วโมง

ราคาปกติ 12,500 บาท (โปรโมชันปัจจุบันเหลือ 11,250 บาท) ใช้เวลาอบรม 18 ชั่วโมง ราคานี้รวมเอกสารประกอบการอบรม อาหารกลางวัน และอาหารว่างตลอดหลักสูตร

เรียนจบได้รับ Certificate หรือไม่

ได้รับ ผู้ผ่านการอบรมทุกท่านจะได้รับใบประกาศนียบัตร (Certificate of Completion) จากสถาบันไอทีจีเนียส

อบรมที่ไหน มีเรียนแบบออนไลน์หรือไม่

อบรมแบบ Onsite ที่สถาบันไอทีจีเนียส สาขาลาดพร้าววังหิน 68 กรุงเทพฯ และมีบริการจัดอบรมนอกสถานที่ (In-house Training) สำหรับองค์กร บางหลักสูตรมีเวอร์ชันเรียนออนไลน์ผ่าน GeniusHub ดูได้ที่เมนูคอร์สออนไลน์

ถ้าเรียนไม่ทันหรือขาดเรียน มีเรียนซ้ำ/เรียนชดเชยหรือไม่

มี ผู้เรียนสามารถแจ้งขอเรียนซ้ำ (repeat) ในรอบถัดไปของหลักสูตรเดียวกันได้ฟรีตามเงื่อนไขของสถาบัน ดูรายละเอียดที่หน้า "เรียนซ้ำฟรี" หรือสอบถามทีมงาน

สมัครเรียนหรือขอใบเสนอราคาในนามบริษัทได้อย่างไร

สมัครออนไลน์ได้จากแบบฟอร์มลงทะเบียนบนหน้านี้ หรือขอใบเสนอราคา (Quotation) ในนามนิติบุคคลได้ทันทีจากปุ่ม "ขอใบเสนอราคา" สอบถามเพิ่มเติมโทร 02-570-8449 หรือ LINE @itgenius