สรุป Data Mesh สำหรับมือใหม่

Punsiri Boonyakiat
CJ Express Tech (TILDI)
5 min readSep 5, 2023

เชื่อว่าในปี 2023 คงมีคนไม่น้อยที่จะเคยได้ยิน หรือคุ้นเคยกับคำศัพท์ “Big Data” และ “Data-driven organization” เพราะเป็นคำที่ฮอตฮิตมากในปัจจุบัน ซึ่งหลายองค์กรไม่ว่าจะขนาดเล็กหรือใหญ่ก็ให้ความสำคัญกับการนำข้อมูลมาใช้ให้เกิดประโยชน์สูงสุด จนเกิดการเปรียบเทียบขึ้นว่า “Data is a new oil” คือหมายความว่าหากองค์กรไหนสามารถนำข้อมูลขนาดใหญ่ทั้งภายในองค์กร และภายนอกองค์กรที่มี มาวิเคราะห์ ประยุกต์ใช้ ช่วยตัดสินใจทางธุรกิจได้ ก็เหมือนได้ขุมทรัพย์ กลายเป็นเจ้าเศรษฐีบ่อน้ำมันที่มีทรัพยากรในการพัฒนาธุรกิจ

อย่างไรก็ดี ในปัจจุบันเทคโนโลยีต่างๆมีการปรับตัวอย่างรวดเร็ว รวมถึงสถาปัตยกรรมในการออกแบบแพลตฟอร์ม ซอฟต์แวร์ แอปพลิเคชั้น ก็มีการปรับเปลี่ยนไปอย่างรวดเร็ว รวมถึง Data architecture ด้วย

จึงเกิดมาเป็นคำถามที่หลายคนสงสัยว่า แล้วถ้าเราจะสร้าง Data-driven organization จะทำได้อย่างไร ให้องค์กรของเรานั้นกลายมาเป็นองค์กรที่พนักงานทุกคนสามารถเข้าถึงทรัพยากรข้อมูลที่มีในองค์กรและใช้ความเชื่ยวชาญในสายงานตนเองในการดึงข้อมูล มาสร้างคุณค่าให้กับองค์กร

Data Mesh คิดค้นโดย คุณ Zhamak Dehghani ถูกนิยามว่า เป็น principle (หลักการ), paradigm (กรอบความคิด) ในการออกแบบสถาปัตยกรรมข้อมูลสมัยใหม่ ที่หลายๆองค์กรสำคัญทั่วโลกให้ความสำคัญ! Cloud providers ชั้นนำไม่ว่าจะเป็น Google , Microsoft, AWS ต่างออกมาให้ความรู้เกี่ยวกับ Data Mesh และบอกเป็นเสียงเดียวกันว่า รองรับการออกแบบ Data platform ที่เป็น Data Mesh!

InfoQ Report ในหัวข้อ DevOps&Cloud ซึ่งเก็บสถิติจากนักพัฒนา ผู้เชี่ยวชาญด้านซอฟต์แวร์และเทคโนโลยีชั้นนำทั่วโลก ระบุว่า Data Mesh อยู่ในกลุ่มของเทคโนโลยีและนวัตกรรม ที่แนวโน้มที่กำลังมีอิทธิพลต่อการพัฒนาซอฟต์แวร์และเทคโนโลยีในปัจจุบัน ดังนั้นแม้ว่า adoption rate ของ Data Mesh ในไทยปัจจุบันจะยังน้อย แต่ขอรับประกันได้เลยว่า คุ้มค่าที่จะศึกษาแน่นอน และจะกลายเป็นแนวทางที่ในอนาคต องค์กรต่างๆ จะพิจารณาไปใช้เพื่อปรับปรุงประสิทธิภาพและศักยภาพในการจัดการแพลตฟอร์มข้อมูลที่นับวันยิ่งจะมีแต่โตขึ้นๆ

ดังนั้นบทความนี้จึงขอสรุปให้ฟังถึง Data Mesh ซึ่งเป็น concept ในการออกแบบสถาปัตยกรรมแพลตฟอร์มข้อมูลที่กำลังได้รับความสนใจหัจากหลายๆองค์กรเพื่อนำมาเพิ่มศักยภาพในการใช้ข้อมูลที่มีได้อย่างสูงสุด

  1. ทำไมต้อง Data Mesh
  2. The core concept of Data Mesh
  3. From Domain-Driven Design to Data Mesh
  4. อ่านต่อ!!

ทำไมต้อง Data Mesh

เพราะมันเจ๋ง!? ใช่ค่ะ มันเท่ห์ แหละ แต่ทำไมกันนะ?

จริงๆแล้วเรื่องของ Data analytics นั้นมีมานานแล้ว ย้อนกลับไปราวๆ ปี 1990s เป็นยุคที่ Data Werehouse ดังระเบิด หรือในช่วงปี 2000 Big Data ก็กลายเป็นคำศัพท์ที่ทุกคนพูดกันจนมาถึงปัจจุบัน แต่!!! ความต้องการของธุรกิจเปลี่ยน Technology Data มีมากขึ้น แต่!! รูปแบบการทำงาน data platform อาจตามไม่ทัน การ Maintain data​ knowledge ในองค์กรก็นับวันยิ่งยากขึ้น จะหา table หนึ่งอันเหมือนกับการงมเข็มในมหาสมุทร เพราะการออกแบบ data platform แบบเดิม จะ Scale-out ก็ยาก ทำให้ได้ data product ก็ยากเช่นกัน Data ที่ว่าเป็นขุมทรัพย์และทรัยพากรขององค์กรกลับถูกออกแบบให้เก็บอยู่ใน Centralized ตรงกลางที่เดียว! จะดึง reports ที่รอสามชั่วโมง!! หรือ! ต้องตื่นมาดึกๆเพื่อ process data เพื่อไม่ให้กระทบระบบอื่นๆ

ใช่ค่ะ! นี่แหละ Pain point ของจริง ! คนที่เคยทำงานบน Centralized data ที่ผ่านมาจะเข้าใจเรื่องนี้เป็นอย่างดี!!

แต่ข่าวดี!! วันนี้เรามี DataMesh ที่จะมาปฎิรูปวงการ data ที่จะมาเปลี่ยนมุมมองในการออกแบบ Data platform, กระบวนการทำงานกับ data ปัญหาด้านบนให้หมดไปค่ะ ดังนั้นเราจึงต้องมาทำความเข้าใจกันก่อนว่าเกิดอะไรขึ้นก่อนมี Data Mesh

ในบทความ คุณ Zhamak คุณแม่แห่งวงการ Data Mesh ได้พูกถึงเรื่อง “The great divide of data” คือ data ในโลกปัจจุบันนั้นถูกแบ่งออกเป็น 2 landscapes อันแรกคือ operational data and analytical data

โดย Operational data คือ ข้อมูลที่อยู่บน productions ข้อมูลที่เกี่ยวข้องกับกิจกรรมประจำวันของธุรกิจ เชื่อมต่อกับระบบ microservices ต่างๆ เช่น ระบบบัญชี ระบบการขาย ระบบการผลิต อาจจะอยู่บน Relational database หรือ NoSQL ก็ได้ บางครั้งก็เก็บ transaction หรือ state ของระบบ เพื่อตอบโจทย์ user journeyใน application

ส่วน Analytical data คือข้อมูลที่ใช้สำหรับการวิเคราะห์เพื่อระบุแนวโน้ม รูปแบบ และความสัมพันธ์ ข้อมูลประเภทนี้มักถูกรวบรวมจากแหล่งต่างๆ เช่น ข้อมูล operational data, ข้อมูล user profile, ข้อมูล master data, ข้อมูล พฤติกรรมการซื้อสินค้า ประสบการณ์ของลูกค้า เป้าหมายคือการระบุแนวโน้มที่เกิดขึ้นในธุรกิจ ทำนายเหตุการณ์ในอนาคต หรือวิเคราะห์เพื่อสร้างกลยุทธ์การตลาด

จะเห็นว่าแม้ว่าเป็น data เหมือนกัน แต่เป้าหมายการใช้งานก็ต่างกัน Technology stack ที่ออกแบบมาก็แตกต่างกัน จากรูปสิ่งที่เชื่อมทั้ง 2 แกนไว้ก็คือ data pipeline ซึ่งคุณ Zhamak บอกว่าความแตกต่างนี้กำลังสร้างรอยแยกที่มีระยะห่างมากขึ้น ทำให้เปราะบางทั้งในแง่การทำงานและสถาปัตยกรรม

ลองนึกถึง Data platfom ในปัจจุบัน ยิ่งระบบหน้าบ้านมีความซับซ้อนมากขึ้นมี Technology ที่หลากหลายมากขึ้น อาจนำไปสู่สถาปัตยกรรมที่เปราะบาง ETL (Extract, Transform, Load) data pipeline จะยิ่งซับซ้อนขึ้น ดูแลยากขึ้น เช่นกัน แถม! บางครั้งความแตกต่างของเทคโนโลยีนำไปสู่ความแยกขององค์กร ทีม อีก!!

The core concept of Data Mesh

Data mesh เป็นแนวทางใหม่ในการจัดการข้อมูล แทนที่จะใช้สถาปัตยกรรมที่รวมศูนย์ Data mesh กระจายความเป็นเจ้าของข้อมูลไปทั่วทั้งองค์กร สิ่งนี้ทำให้ข้อมูลมีความยืดหยุ่นและสามารถเข้าถึงได้มากขึ้น

Data mesh core principles

หลักการของ Data Mesh

Data mesh เป็นแนวทางใหม่ในการจัดการข้อมูล แทนที่จะใช้สถาปัตยกรรมที่รวมศูนย์ (Centralized data) แต่แนวคิด Data mesh กระจายความเป็นเจ้าของข้อมูลไปทั่วทั้งองค์กร สิ่งนี้ทำให้ข้อมูลมีความยืดหยุ่นและสามารถเข้าถึงได้มากขึ้น

หลักการของ data mesh มีดังนี้:

Domain Ownership :

แนวคิดของการเป็นเจ้าของข้อมูลแบบกระจายอำนาจตามโดเมน: ข้อมูลเป็นของ Domain และอำนาจในการจัดการ รับผิดชอบ เป็นของDomain นั้นๆ เพราะเราเชื่อว่าไม่มีใครรู้จักข้อมูลดีไปกว่า Domain expert และการที่ Domain เข้ามามีส่วนร่วมในการออกแบบ เป็นเจ้าของข้อมูล ทำให้ความรู้ทั้งในแกน operation layer, technical layer, data layer ถูกสื่อสารออกมาเป็น story เดียวกัน

Distributed pipelines as domain internal implementation

จากรูป ก้อนกลมๆ คือแต่ละโดเมน จะเห็นว่า data pipeline ถูกกระจายออกไปแต่ละก้อน ซึ่งอาจจะดูเหมือนซ้ำซ้อนในเชิง implementation แต่ว่าจะทำให้แต่ละโดเมนมีอำนาจในการจัดการข้อมูล ให้บริการข้อมูล แถมออกแบบนี้ทำการทำงานของ opertation, business, data teams ต้องทำงานร่วมกัน และลด kwonledge gap ระหว่างทีม ของ data platform

Domain data as a product:

ในบทความ คุณ Zhamak กล่าวว่าการจะทำ Distributed data ให้สำเร็จได้นั้น ต้องมีแนวคิดว่าข้อมูลเปรียบเสมือน product ของทีม เจ้าขอโดเมนเป็นผู้ให้บริการข้อมูล จึงมีหลายๆองค์ประกอบที่ต้องทำเพื่อให้ส่งออก data product ได้ดี

Data and product thinking convergence

จากรูปจะเห็นว่า ในแต่ละโดเมนมี product pipeline ของตัวเอง และต้องมาพร้อมกับ discoverable, addressable, trustworthy, self-describing, inter operable, secure.

  • Discoverable: ต้องค้นหาได้ง่าย เช่นปัจจุบันมีการนำแต่ละโดเมนเมื่อมี Data product ใหม่จะต้องมีข้อมูลของ data นั้นใน catalogue ส่วนกลางเพื่อให้คนในองค์กรค้นหาได้ง่าย tools ที่ปัจจุบันนิยมใช้กันก็คือ DataHub
  • Addressable: ต้องระบุที่อยู่ได้ ยกตัวอย่างเช่น ในการตั้งชื่อสามารถสื่อถึงโดเมนและที่อยู่ของ data product
  • Trustworthy: ต้องมีความน่าเชื่อถือว่าเป็นข้อมูลล่าสุด มีความถูกต้อง และเป็น single source of truth. ปัจจุบัน tools นิยมคือคือ Greate Expectations บางทีอาจจะมี SLOs ในการตกลงเรื่อง Quality ของ data ที่ serving องค์กร
  • Self-describing: การตั้งชื่อ องค์ประกอบ data set ควรอธิบายตัวมันเองได้ตามความหมาย business domain
  • Inter operable & Secure: เมื่อเป็น distributed data สิ่งที่ต้องคำนึงคือเรื่อง policy การบริหารจัดการ (Data Governance) ภายใน ระหว่าง Domain เพื่อให้ข้อมูล การเข้าถึงมีความปลอดภัย

Self-serve platform

Data Mesh Architecture

โครงสร้างพื้นฐานข้อมูลแบบบริการตนเอง ผู้ใช้สามารถเข้าถึงและประมวลผลข้อมูลได้ตามต้องการโดยใช้เครื่องมือที่ส่วนกลาง ที่ทุกคนในองค์กรสามารถใช้งานได้ง่าย เข้าถึงได้ง่าย ในรูปจะเห็นว่าแนวคิด Data Mesh พอออกมาเป็นรูป architecture จะแตกต่างจากสมัยก่อนอย่างมาก Data team ไปทำงานร่วมกับ Domain team ที่เป็น Cross-functional team รวมคนทั้ง Business expert, Tech, Data และมีทีม Enabling และ Data platform เกิดขึ้นมาพื้อสร้างฐานในการ provide data as a product ให้คนในองค์กร

Federated governance

องค์กรต้องสร้าง ecosystem ของการดูแลข้อที่จะเป็นมาตรฐานของทุกโดเมนในองค์กร มีข้อตกลงที่ผู้ใช้รับผิดชอบในการกำกับดูแลการประมวลผลข้อมูลของตนเอง สิ่งนี้ทำให้ผู้ใช้สามารถควบคุมวิธีการใช้ข้อมูลของตนได้อย่างเหมาะสม

Federated Governance

Federated governance มีความสำคัญมากๆ เพราะจะกลายมาเป็นปัจจัยหลักที่ทำให้การเอา Data Mesh มา adopt กับองค์กรได้จริง มันคือการสร้าง policy สร้าง data culture ผ่านการขับเคลื่อน Standard ภายในองค์กร

From Domain-Driven Design to Data Mesh

Data mesh เป็นแนวทางใหม่ในการจัดการข้อมูลที่มีศักยภาพในการปรับปรุงการเข้าถึง ความยืดหยุ่น และคุณภาพของข้อมูล องค์กรต่างๆ ควรพิจารณานำแนวทางนี้มาใช้เพื่อปรับปรุงความสามารถในการตัดสินใจและตอบสนองต่อการเปลี่ยนแปลง

Domian-Driven-Design เป็น ส่วนสำคัญในการผลักดันให้เกิด Data Mesh ดังนั้นจึงได้เห็นว่าพอลองๆอ่านเรื่อง Data Mesh ก็จะมีกลิ่นอายเนื้อหาของ DDD อยู่ ไม่ว่าจะเป็นเรื่อง Domain, Problem space & Solution space จึงอยากจะมาบอกผู้อ่านทุกคนว่า ไม่ว่าคุณจะเป็นใครในองค์กร คุณล้วนเป็นฟันเฟืองสำคัญในการสร้าง Data culture ในองค์กร หากใครอ่าน Data Mesh แล้วสนุกก็อย่าลืมแวะไปอ่าน DDD ก็จะเสริมสร้างความเข้าใจมากขึ้นค่ะ

รูปจาก Domain Driven Design Class by Roofimon

อ่านต่อ!!

Disclaimer!! เนื้อหาในบทความนี้ รวมถึงรูปต่างๆมาจากบทความต่อไปนี้ แม้ว่าผู้เขียนจะทำงานสาย data มาหลายปีแต่ก็อยู่ในระบบนิเวศแบบ Centralized data เรื่องของ Data Mesh นับว่าเป็นเรื่องใหม่สำหรับบีทเช่นกัน จึงอยากของใช้ โอกาสนี้เรียนเชิญเพื่อนๆมาอ่าน มาเรียนรู้ ถกเถียง เติบโตไปด้วยกันค่ะ

ปล. ที่ TILDI by CJ Express เรามีความตั้งใจอย่างมากที่จะผลักดัน Data Culture, Data Platform ขององค์กรไปในแนวทาง Data Mesh ไม่ใช่เพราะมันเท่ห์ แต่เพราะเรากำลังสร้างสถาปัตยกรรมข้อมูล ที่จะรองรับการเติบโตขององค์กรในอนาคต และสร้าง Data culture ให้คนในองค์กร เข้าถึง ใช้ประโยชน์ ดึงศักยภาพ ออกมาจากข้อมูลให้ได้มากที่สุด ดังนั้นบทความนี้จึงขอมาเกริ่นๆเล่า concept ให้ฟังไว้ก่อนค่ะ

ใครอยากให้มาสรุปการประยุกต์ Data Mesh ภายในองค์กรด้วย Cloud platform ฝากช่วยแชร์ ปรบมือเป็นกำลังใจให้ด้วยนะคะ 😘

--

--

Punsiri Boonyakiat
CJ Express Tech (TILDI)

Senior Data Engineer | Google Cloud Certified Professional Data Engineer| Traveller | A Mom | Learner