ปฎิเสธไม่ได้เลยว่าในปัจจุบันการใช้ประโยชน์จากข้อมูลเป็นเรื่องพื้นฐานที่แต่ละองค์กรต้องรู้ เพื่อนำมาสร้างมูลค่าให้กับธุรกิจ แต่การจัดการข้อมูลเหล่านั้นยังเป็นเรื่องที่ซับซ้อนและบริหารได้ลำบากเนื่องจากปริมาณข้อมูลนั้นเพิ่มขึ้นอย่างรวดเร็วมหาศาล อีกทั้งยังมีที่มาจากหลากหลายแหล่งที่เพิ่มขึ้นทุกวัน
หากกระบวนการในการจัดการข้อมูลในแต่ละ Workflow หรือ Pipeline ไม่เป็นระบบระเบียบก็จะทำให้เราทำงานได้ล่าช้าจนเกิดเป็นคอขวดที่เราไม่สามารถ Scale เพิ่มขึ้นได้ ด้วยเหตุผลเหล่านี้เราจึงต้องมีการบริหารจัดการ Data Pipeline หรือ Workflow ของเราให้เป็นระบบและง่ายต่อการใช้งาน ง่ายต่อการ Operation ต่าง ๆ และเครื่องมือตัวนั้นคือ Cloud Composer
Cloud Composer คืออะไร?
Credit: https://thecloudgirl.dev/Composer.html
Cloud Composer เป็นบริการบน Google Cloud Platform ที่ใช้สำหรับ Orchestrate Data ควบคุมการทำงานของ Data Workflow ต่าง ๆ ซึ่งบูรณาการเข้ากับบริการต่าง ๆ บน Google Cloud อาทิ BigQuery, Cloud Storage, Pub/Sub, Dataflow โดยสร้างมาจาก Open Source ที่ชื่อว่า Apache Airflow
หน้าที่หลักๆ ของ Airflow นั่นคือ Author, Schedule, Monitor, Manage ซึ่งเราสามารถเขียนภาษา Python บน Composer เหมือนกับ Apache Airflow ได้เลย โดยไม่จำเป็น ต้องสร้าง Virtual Machine ขึ้นมา เพื่อติดตั้ง Airflow และจัดการในเชิง Operation ด้วยตนเอง เพราะทั้งหมดนั้น Google เป็นคนจัดการให้ ทั้งด้านการ Setup, Security และการทำ Auto Scaling ให้รองรับ workflow ที่เพิ่มมากขึ้นได้อย่างมีประสิทธิภาพ ทำให้เราสะดวกสบายและรวดเร็วในการใช้งานมากขึ้น
Cloud Composer นั้นสามารถดึงจุดเด่นประสิทธิภาพต่าง ๆ ของ Apache Airflow ออกมาได้เป็นอย่างดี ดังนั้นก่อนที่เราจะไปรู้จักกับ Composer จึงอยากแนะนำทุกท่านให้รู้จักกับ Apache Airflow กันอีกสักครั้งหนึ่ง
Apache Airflow คืออะไร ?
Apache Airflow เป็น Open Source Platform ที่ได้รับความนิยมในการทำ Workflow ที่เข้ามาจัดการ Task ต่าง ๆ อีกทั้งยังรองรับแบบ Hybrid & Multi-Cloud โดยเกิดขึ้นมาจาก Data Pipeline ที่มีจำนวนมากซึ่งทำให้ควบคุมได้ยาก
Apache Airflow มีการเขียน Workflow เป็น DAG (Directed Acyclic Graph) กราฟที่มีหัวลูกศรทิศทางเดียว โดยไม่สามารถวนกลับมาที่จุดเดิมได้ ซึ่ง DAG ประกอบไปด้วยหลายๆ Task ที่เชื่อมต่อกันและในแต่ละ Task นั้นก็มีความสามารถที่แตกต่างกัน
ความสามารถของ Apache Airflow
บนหน้า Web UI ของ Apache Airflow เราสามารถดูรายการของ DAGs ใน Environments ของเราได้ซึ่งช่วยให้เราจัดการ DAGs ต่าง ๆ ได้ง่ายยิ่งขึ้น และในหน้า Web UI เราสามารถใช้ฟังก์ชัน Graph view, Tree View เพื่อดูว่า Task ไหน Success หรือ Failure
Tree view
มุมมองที่แสดงถึง Task ของ DAG ในช่วงเวลาต่าง ๆ แต่ละคอลัมน์แสดงถึงการเรียกใช้ DAG และแต่ละช่องเป็น Instance ของ Task โดยแต่ละ Instance มีรหัสสีตามสถานะของ DAG Runs
Graph view
มุมมองที่แสดงถึง Task ที่ทำงานต่อกันใน DAG มุมมองนี้มีประโยชน์อย่างยิ่งเพราะสามารถใช้ตรวจทาน DAG ดู Flow การทำงานได้อย่างง่ายดายและมีสถานะบอกการทำงานของแต่ละ Task
นอกจากนั้น Apache Airflow ยังสามารถรองรับข้อมูลได้หลากหลาย Data Source และหลากหลาย Cloud Providers
Cloud Composer ทำให้เราจัดการ Data Pipeline ได้ง่ายขึ้น
ในการทำ Data Pipeline เราต้องคำนึงถึงการ Capture, Process, Store และ Analyze เพื่อนำข้อมูลไปใช้ต่อ ซึ่ง Composer จะควบคุมและ orchestrate ทุกกระบวนการบน Data Pipeline ของเรา ซึ่งการใช้งานก็ง่ายแค่เพียงเราเขียน Python Script เป็น Text File นำไปวางบน Cloud Storage ใน Folder ที่ระบุไว้ Composer จะอ่าน Script สร้างเป็น DAG ( Directed Acyclic Graph) ให้อัตโนมัติ
Cloud Composer จะมีการสร้าง Google Cloud Storage ที่เก็บ DAGs ให้โดยอัตโนมัติ จากเดิมที่เราเรียกใช้ Path บน Local เป็น Path ที่อยู่บน Cloud Storage แทนและข้อมูลบน Cloud Composer กับข้อมูลบน Google Cloud Storage จะ Sync กัน ทำให้เราสามารถ Upload File ไปที่ Cloud Storage ได้โดยตรงเลย อำนวยความสะดวกในการเรียกใช้ File และแก้ไขไฟล์ได้ง่ายขึ้น
Composer ใช้ง่ายแค่ One click!
เราสามารถเข้าถึง Web UI หรือ DAGs folder ของ Apache Airflow ได้ทันทีผ่าน Cloud Console
Airflow webserver
DAGs Folder
Cloud Composer Benefits
- หมดห่วงในเรื่องงาน Operation Google จัดการงาน Operation ให้ทั้งหมด ทำให้เรา Focus ในเรื่องการทำ Workflow และ Pipeline โดยไม่ต้องกังวลเรื่อง Infrastructure ทั้งเรื่องระบบปฎิบัติการหรือการติดตั้ง Apache Airflow ทำให้ประหยัดในเรื่องเวลาได้เป็นอย่างมาก
- หมดกังวลในเรื่อง Security Composer มีความปลอดภัยสูงทั้งในเรื่องการ Access หรือ Firewall ต่าง ๆ รวมถึงการจำกัดสิทธิ์ผู้ใช้ร่วมกับ Cloud IAM
- รองรับการ Auto Scale ทำให้รองรับ Workload ขนาดใหญ่ได้
- สร้าง Workflow ใหม่ได้ง่ายดาย เพียงแค่วาง Python Script บน Cloud Storage
- บูรณาการกับบริการอื่นๆ บน Google Cloud อย่างไร้รอยต่อ เช่น Cloud SDK, Cloud Storage, BigQuery, Dataproc, Pub/Sub, Kubernetes Engine, Cloud Monitoring และอื่นๆ
- รองรับหลากหลาย Data Source และ Multi-Cloud อาทิ Azure, AWS, Snowflake, Databricks, Hive, MySQL, Druid, MongoDB และอื่นๆ
- สามารถ Manage หรือ Trigger Pipeline ผ่าน APIs ของ Google ได้
Conclusion
จากที่กล่าวมาทั้งหมดนั้นจะเห็นได้ว่า Cloud Composer ทำให้การจัดการข้อมูลนั้นง่ายและมีประสิทธิภาพ รวมถึงประหยัด Cost ทั้งในเรื่องเวลาและทรัพยากรบุคคลที่ต้องดูแลต่าง ๆ ทำให้เราสามารถขับเคลื่อนธุรกิจได้อย่างรวดเร็วเหนือคู่แข่ง เพราะในโลกของ Big Data นั้น ความรวดเร็วเป็นสิ่งที่สำคัญที่สุด