มารู้จักกับ Data Platform ของ Twitter บน Google Cloud ที่ประมวลผลข้อมูล 2 ล้านครั้ง / วินาที!

219
219

Twitter เป็น Social Media ที่ได้รับความนิยมอันดับต้น ๆ ของโลก ด้วยความง่ายในการใช้งาน ความรวดเร็ว และความหลากหลายของข้อมูลบน Twitter ทำให้ปัจจุบันมีผู้ใช้ (Daily Active Users) มากกว่า 200 ล้านคน

นั่นทำให้ Twitter กลายเป็นหนึ่งในเครื่องมือที่นักการตลาดใช้ในการสื่อสารถึงคนหมู่มาก รายได้หลักของ Twitter จึงมาจากการโฆษณานั่นเอง ซึ่งจากสถิติล่าสุด Twitter มีรายได้ถึง 1,200 ล้านเหรียญสหรัฐใน 3 เดือนที่ผ่านมา

Data Platform ที่รองรับการวิเคราะห์ข้อมูลโฆษณาบน Twitter จึงต้องเก็บรวบรวม และแสดงผลข้อมูลได้แม่นยำ ซึ่งพอมีผู้ใช้จำนวนมาก และมีข้อมูลมหาศาลวิ่งอยู่ในระบบ ทำให้การพัฒนาระบบแบบนี้เป็นปัญหาที่ท้าทายมากครับ

Twitter ทำได้อย่างไร ใช้เครื่องมือตัวไหนบ้าง ในบทความนี้ผมจะมาเล่าให้ฟังครับ

Twitter Revenue Data Platform แบบ On-Premise

Twitter Revenue Data Platform คือ ระบบวิเคราะห์ข้อมูลการแสดงผลโฆษณาบน Twitter ที่ผู้ใช้สามารถเข้ามาดูได้ โดยมี Dashboard ที่แสดงผลข้อมูลแบบ Real-time

ก่อนหน้าที่ทีม Engineering ของ Twitter จะตัดสินใจย้ายมาใช้ Google Cloud ทางทีมได้พัฒนา Revenue Data Platform บนเซิร์ฟเวอร์ของบริษัทเอง หรือที่เราเรียกว่า On-Premise นั่นเองครับ

โดยระบบส่วนหนึ่ง ทาง Twitter เลือกนำระบบที่เป็น Open Source มาใช้งาน อาทิ ระบบจัดเก็บข้อมูลหลักที่ คือ Hadoop Distributed File System (HDFS), Apache Thrift, Heron ระบบประมวลผลข้อมูลแบบ Stream

[บทความแนะนำ: หากคุณสนใจทำความรู้จักกับ Hadoop ระบบจัดการ Big Data ที่บริษัททั่วโลกใช้ สามารถ อ่านเพิ่มเติมเกี่ยวกับ Hadoop บนเว็บไซต์ DataTH ซึ่งเป็น Partner ของ CloudHM ได้เลยครับ]

ระบบอีกส่วนหนึ่ง Twitter เลือกที่จะพัฒนาขึ้นมาเอง เช่น ฐานข้อมูลแบบ NoSQL ชื่อ Manhattan และระบบส่งข้อความชื่อ EventBus

Data Platform ที่ Twitter สร้างขึ้นมา ก็ทำงานมาได้เป็นสิบปี แต่ Twitter เติบโตขึ้นเรื่อย ๆ จน Data Platform ตัวนี้เติบโตตามไม่ทัน ทำให้ทีมเริ่มพบปัญหาระบบช้า, Data Pipeline ล่มเป็นพัก ๆ, และค่าใช้จ่ายก็สูงขึ้นเรื่อย ๆ

เพื่อให้ระบบรองรับการเติบโตของ Twitter ทั้งในปัจจุบัน และในอนาคตได้ ทีม Engineering จึงตัดสินใจออกแบบ Data Platform นี้ขึ้นมาใหม่ โดยอาศัยความสามารถในการจัดเก็บและประมวลผลข้อมูลมหาศาล ของ Google Cloud Platform

มาดูกันครับว่า Data Platform ตัวที่ปรับปรุงแล้ว มีหน้าตาเป็นอย่างไร

Twitter Revenue Data Platform เวอร์ชั่น Google Cloud Platform

ทีม Engineering ได้มีการพัฒนา Data Platform ตัวนี้ขึ้นในปี 2017 และได้ปรับปรุงใหม่เพื่อให้ระบบเสถียรกว่าเดิมในปี 2019 ซึ่งปัจจุบัน Architecture ของ Revenue Data Platform บน Google Cloud Platform มีหน้าตาเป็นแบบนี้ครับ

Architecture ของ Twitter Revenue Data Platform บน GCP [ขอบคุณรูปจาก Google Cloud]

สิ่งที่น่าสนใจ คือ Twitter ยังใช้ HDFS สำหรับเก็บข้อมูลบนเซิร์ฟเวอร์ของตัวเองอยู่ แต่มีการคัดลอกข้อลมูมาเก็บไว้ใน Google Cloud Storage ซึ่งเป็นบริการเก็บข้อมูลที่มีความทนทานสูง โดยทาง Google รับรองว่าต่อให้เรามีล้านล้านไฟล์ ต้องใช้เวลาถึง 100 ปีถึงไฟล์จะมีโอกาสหาย 1 ไฟล์

นอกจากนั้น ข้อมูลที่อยู่บน EventBus ที่ Twitter ใช้สำหรับรับ/ส่งข้อความด้วยความเร็วสูง ก็ถูกคัดลอกเข้ามาเก็บในบริการชื่อ Google Cloud Pub/Sub ระบบรับ/ส่งข้อความแบบ Real-time ที่รองรับข้อมูลขนาดใหญ่ เพื่อส่งข้อมูลไปประมวลผลในบริการที่จะเล่าให้ฟังในย่อหน้าถัดไป

หัวใจหลักของ Data Platform นี้ คือ การที่ Twitter เลือกใชั Google Cloud Dataflow ในการประมวลผลข้อมูลขนาดใหญ่ ซึ่งตัว Dataflow รองรับทั้งการประมวลผลข้อมูลที่มาเป็นกลุ่ม (Batch Layer ในภาพด้านบน) และประมวลผลข้อมูลที่เข้ามาอย่างต่อเนื่อง (Streaming Layer ในภาพด้านบน) ทำให้ทีม Twitter ไม่ต้องเขียนโค้ดประมวลผลข้อมูลแยกกันสำหรับ Batch กับ Streaming

นอกจากนั้น Dataflow ยังเป็นบริการที่ Google Cloud ดูแลประสิทธิภาพให้ทั้งหมด ทำให้ Twitter มั่นใจได้ว่า Data Pipeline จะสามารถทำงานได้อย่างเสถียร อีกทั้งค่าใช้จ่ายยังไม่บานปลาย เพราะ Dataflow คิดเงินตามเวลาที่ทำงานจริงเท่านั้น

สุดท้าย ในส่วนของบริการเก็บข้อมูลที่ประมวลผลเรียบร้อยแล้ว จากการใช้ฐานข้อมูลชื่อ Manhattan ซึ่ง Twitter พัฒนาขึ้นมาเอง ก็ได้เปลี่ยนมาใช้ BigQuery ซึ่งเป็น Data Warehouse แบบ Serverless รองรับการดึงข้อมูลด้วย SQL ที่คนในบริษัทใช้เป็นอยู่แล้ว

และสำหรับข้อมูลที่ต้องการความเร็วสูงสุด ก็ถูกเก็บใน Google Cloud Bigtable ซึ่งเป็นบริการฐานข้อมูลแบบ NoSQL ที่สามารถอ่านเขียนข้อมูลได้รวดเร็ว ด้วยระบบที่ Google พัฒนาขึ้นมาใช้ในบริษัทเอง

สรุป: การย้าย Twitter Revenue Data Platform มาบน GCP

หลังจากย้าย Data Platform ตัวนี้มาอยู่บน Google Cloud Platform แล้ว ก็ทำให้ Twitter สามารถรองรับการเติบโตของข้อมูลได้ และยังสามารถประมวลผลข้อมูลได้เสถียร ด้วยค่าใช้จ่ายแบบ Pay-as-you-go ซึ่งเป็นข้อได้เปรียบที่สำคัญอย่างหนึ่งของการใช้ Google Cloud

หากองค์กรของคุณกำลังตามหาระบบที่รองรับข้อมูลจำนวนมาก เพื่อให้รองรับการเติบโตขององค์กร หรือต้องการที่ปรึกษาด้านเทคโนโลยีเกี่ยวกับ Data และ Google Cloud สามารถติดต่อพูดคุยกับทีมงาน CloudHM ได้เลยนะครับ

สำหรับในโอกาสหน้า เราจะหาระบบที่น่าสนใจมาเล่าให้ฟังกันอีกนะครับ

Reference: https://cloud.google.com/blog/products/data-analytics/modernizing-twitters-ad-engagement-analytics-platform

— Cloud HM