เกริ่นแนวคิด Data Mesh จากวีดีโอ Data Mesh Paradigm Shift in Data Platform Architecture

เกริ่นแนวคิด Data Mesh จากวีดีโอ Data Mesh Paradigm Shift in Data Platform Architecture

เมื่อประมาณปลายปีที่แล้วผมได้ยินศัพท์ใหม่ "Data Mesh" ฟังแล้วดูแปลกดี แนวคิดจะเหมือนพวก Microservices หรือ Service Mesh อะไรหรือเปล่า ก็เลยได้ลองฟัง Talk ของ Zhamak Dehghani ครับ จากงาน QCon 2019

เค้าพูดตั้งแต่ปี 2019 แต่ผมเพิ่งได้ยินตอนประมาณปลายปี 2020 รู้สึกเหมือนตกข่าวอย่างแรง 😅

ไปลองฟังมาแล้วได้ใจความประมาณว่า แนวคิดที่ทำๆ เกี่ยวกับเรื่องแพลตฟอร์ม Big Data ในปัจจุบัน มีการลงทุนไปเยอะ แต่ส่วนใหญ่ก็ยังไม่สามารถที่จะ Transform องค์กรได้สักที แล้วก็เล่าประมาณว่า.. เฮ้ย จริงๆ การทำแบบนี้เราทำมาเป็นชาติแล้วนะ คือไหลข้อมูลจาก Data Sources ต่างๆ ทำ ETL (Extract-Transform-Load) มาเข้า Data Warehouse ซึ่งปัจจุบันก็มี Data Lake เข้ามาคั่นตรงกลาง เพื่อรองรับการ Scale ที่มากขึ้น และข้อมูลที่มาหลากหลายรูปแบบมากขึ้น

อย่างไรก็ดี จริงๆ สิ่งที่เราทำมันก็ไม่ได้ต่างจากเดิมในยุคที่ Data Warehouse เพิ่งเกิดขึ้นมาเลย 😱

รูปแบบ Centralized แบบเดิมหน้าตาก็จะประมาณนี้

แบบ Centralized แบบเดิม

แล้วเพราะอะไรถึงไม่ค่อยเวิร์คล่ะ? เค้าตอบว่า.. มันไม่มี Domain น่ะสิ! ซึ่งจากรูปด้านล่างนี้ เราจะเห็นว่ามันคือระบบ Monolithic ที่ไม่มี Domain Boundaries

มันคือ Monolithic ที่ไม่มี Domain Boundaries

ถ้าเป็นแบบนี้ต่อไปมันจะ Scale ไม่ได้แล้วนะ เพราะว่าคน 3 กลุ่มนี้

  1. Ops ที่อยู่ฝั่ง Feed ข้อมูลมา
  2. Data Engineers ที่คอยจัดการการไหลข้อมูล
  3. ฝั่ง Data Scientists ที่รอข้อมูลเพื่อเอาไปวิเคราะห์

จะเริ่มก่อกำแพงและกลายเป็น Silo ในที่สุด 🥲 เนื่องจากสุดท้ายแล้ว ทั้ง 3 กลุ่มไม่ได้เห็น End-to-End เลย แต่ละกลุ่มก็จะเริ่มไม่ได้มีเป้าหมายเดียวกัน ดูน่าเศร้าเนอะ

ตอนต้นวีดีโอเค้าเกริ่นไว้ด้วยว่า ตอนนี้มันเหมือนมี 2 โลก คู่ขนานกันอยู่ คือโลกฝั่ง Operational (พวก Microservices) กับฝั่ง Data ตามรูปด้านล่างนี้เลย

โลกฝั่ง Operational กับฝั่ง Data

แนวคิดของ Data Mesh มันก็คือบอกว่าเราจะหยิบเอาสิ่งที่ดีงามจากฝั่ง Operational นั่นก็คือ Domain-Driven Design (DDD) มาใช้กับฝั่ง Data ด้วย ผมนี่ลุกขึ้นยืนเลย 🤩 ตอนที่ผมเรียน DDD กับพี่รูฟ ตอนนั้นยังคิดอยู่ว่าเราก็หยิบเอาพวก Event หรือข้อมูลต่างๆ จาก Event Repository อย่าง Kafka เอาก็ได้ แล้วก็ไหลเข้าไปยังฝั่งของ Data แต่แนวคิด Data Mesh นี่คือเหมือนรวบเข้าไว้ด้วยกันเลย

รูปด้านล่างนี้เป็น Data Mesh Principles

Data Mesh Principles

เอาล่ะ ผมขอเกริ่นไว้ประมาณนี้ ส่วนที่เหลือ ผมอยากลองไปดูวีดีโอกันต่อนะ รายละเอียดยังมีอีกเยอะเลยครับ 😎 ซึ่งจากหัวข้อ Talk ที่บอกว่า Paradigm Shift นี่ ผมเห็นด้วยอย่างมากเลย

หรือถ้าอยากจะตามอ่านเป็นบทความ ก็ไปได้ที่ How to Move Beyond a Monolithic Data Lake to a Distributed Data Mesh