
Workflow engine บน Kubernetes
Argo Workflows คือ workflow engine แบบ open-source ที่ออกแบบมาเพื่อจัดการงานแบบขนาน (parallel jobs) บน Kubernetes โดยทำงานเป็น Kubernetes controller แทนที่จะเป็นเซิร์ฟเวอร์ส่วนกลาง ทำให้แต่ละขั้นตอนของ workflow ทำงานเป็น pod แยกกัน สถาปัตยกรรมนี้ช่วยให้ขยายระบบได้มหาศาล รองรับการใช้งานร่วมกับทรัพยากรของ Kubernetes (volumes, secrets, RBAC) ได้โดยตรง และจัดการ DAG หรือลำดับงานที่ซับซ้อนได้ ถือเป็นมาตรฐานอุตสาหกรรมสำหรับ CI/CD pipelines, การฝึกโมเดล Machine Learning และงานประมวลผลข้อมูลที่ต้องการประสิทธิภาพสูงและทนทานต่อความผิดพลาด
Argo ทำงานเป็น Custom Resource Definition (CRD) ภายใน Kubernetes ทำให้ใช้ความสามารถของ cluster ได้โดยตรง ไม่ต้องมีเซิร์ฟเวอร์ workflow ภายนอก และจัดการผ่านคำสั่ง 'kubectl' ได้เลย workflow pods จะได้รับนโยบายความปลอดภัย เครือข่าย และพื้นที่จัดเก็บข้อมูลของ cluster ทำให้ทีม DevOps ทำงานได้ราบรื่น
รองรับทั้ง Directed Acyclic Graphs (DAGs) สำหรับงานที่มีความสัมพันธ์ซับซ้อนและทำงานขนานกัน และแบบลำดับขั้นตอน (step-based) สำหรับงานเชิงเส้น ช่วยให้วิศวกรสร้างโมเดลตั้งแต่ CI/CD pipelines ไปจนถึงงาน Data Science ที่มีเงื่อนไขและการลองใหม่ (retries) ได้อย่างยืดหยุ่น
รองรับการส่งข้อมูลระหว่างขั้นตอนผ่าน artifacts โดยเชื่อมต่อกับ S3, GCS และ Artifactory เพื่อจัดเก็บและดึงข้อมูลอัตโนมัติ ไม่ต้องจัดการ shared volumes หรือฐานข้อมูลภายนอกเอง ระบบจะจัดการวงจรชีวิตของข้อมูลให้พร้อมใช้งานทั่วทั้ง cluster
เนื่องจากทุกขั้นตอนคือ pod ของ Kubernetes ทำให้ Argo ขยายตัวได้ตามความจุของ cluster รองรับงานนับพันพร้อมกัน เหมาะสำหรับงาน batch processing หรือ ML training ขนาดใหญ่ โดยใช้ Kubernetes scheduler ในการจัดการทรัพยากรแทนการใช้เซิร์ฟเวอร์กลาง
UI บนเว็บแสดงสถานะการทำงานแบบเรียลไทม์ ผู้ใช้สามารถดูโครงสร้าง DAG, ตรวจสอบสถานะ pod, ดู log และสั่งรันขั้นตอนที่ล้มเหลวใหม่ได้จากเบราว์เซอร์ ช่วยให้การแก้ไขปัญหาใน pipeline ที่ซับซ้อนทำได้ง่ายขึ้น
นักวิทยาศาสตร์ข้อมูลใช้ Argo จัดการวงจรชีวิต ML ตั้งแต่การเตรียมข้อมูล การฝึกโมเดล ไปจนถึงการประเมินผล โดยกำหนดเป็น DAG เพื่อให้มั่นใจว่าการฝึกจะเริ่มหลังจากทำความสะอาดข้อมูลเสร็จสิ้น ช่วยให้การทดลองเป็นไปอย่างอัตโนมัติและทำซ้ำได้
วิศวกร DevOps ใช้ Argo ในการสร้าง ทดสอบ และ deploy แอปพลิเคชัน ช่วยให้สร้าง pipeline หลายขั้นตอนที่ซับซ้อนและ deploy ข้ามสภาพแวดล้อมต่างๆ ได้อย่างสม่ำเสมอโดยไม่ต้องพึ่งพาผู้ให้บริการ CI ภายนอก
วิศวกรข้อมูลใช้ Argo รันงาน ETL ขนาดใหญ่ โดยแบ่งข้อมูลเป็นส่วนย่อยๆ เพื่อประมวลผลแบบขนานใน pods ช่วยลดเวลาประมวลผลรวมได้อย่างมากเมื่อเทียบกับสคริปต์แบบเดิม พร้อมได้รับประโยชน์จากความทนทานต่อความผิดพลาดของ Kubernetes
ต้องการระบบอัตโนมัติสำหรับโครงสร้างพื้นฐานและ CI/CD pipelines Argo ช่วยให้จัดการกระบวนการเหล่านี้ใน Kubernetes cluster ได้อย่างยืดหยุ่นและลดภาระการทำงาน
ต้องการการจัดการ pipeline สำหรับ ML ที่แข็งแกร่ง Argo ช่วยให้กำหนด dependencies และความต้องการทรัพยากรสำหรับงานประมวลผลหนักๆ ได้อย่างแม่นยำ
รับผิดชอบการสร้างแพลตฟอร์มสำหรับนักพัฒนา Argo ทำหน้าที่เป็น engine หลักสำหรับบริการ workflow-as-a-service เพื่อให้ทีมอื่นใช้งานได้อย่างมาตรฐาน
Open source (Apache License 2.0) ใช้งานได้ฟรีโดยสมบูรณ์ โดยติดตั้งบนโครงสร้างพื้นฐาน Kubernetes ของคุณเอง