GitLab CI/CD ตัวช่วยสำหรับ DevOps

GitLab CI/CD คือฟีเจอร์ที่อยู่ใน GitLab ซึ่งเป็นแพลตฟอร์มสำหรับ DevOps โดยตรง หน้าที่หลักของมันคือการสร้างระบบ Continuous Integration (CI) และ Continuous Delivery/Deployment (CD) แบบอัตโนมัติ

การทำงานของ GitLab CI/CD

การทำงานของ GitLab CI/CD จะอาศัยไฟล์ที่ชื่อว่า .gitlab-ci.yml ซึ่งเป็นไฟล์ YAML ที่อยู่ในโฟลเดอร์หลักของโปรเจกต์ โค้ดในไฟล์นี้จะทำหน้าที่เป็นคำสั่งให้ GitLab Runner ทำตาม โดยมีกระบวนการหลักดังนี้:

  1. Continuous Integration (CI):
    • เมื่อนักพัฒนา push โค้ดใหม่ขึ้นไปยัง GitLab Repository
    • GitLab จะตรวจจับการเปลี่ยนแปลงและสั่งรัน pipeline อัตโนมัติ
    • Pipeline จะประกอบด้วย stages (ขั้นตอน) ต่าง ๆ เช่น:
      • Build: คอมไพล์โค้ดหรือสร้าง Docker Image
      • Test: รันการทดสอบต่าง ๆ (Unit Test, Integration Test)
    • หากขั้นตอนเหล่านี้ผ่านทั้งหมด แสดงว่าโค้ดใหม่สามารถทำงานร่วมกับโค้ดที่มีอยู่ได้โดยไม่มีปัญหา
  2. Continuous Delivery/Deployment (CD):
    • หลังจากขั้นตอน CI ผ่านแล้ว Pipeline จะดำเนินการต่อในขั้นตอน CD
    • Continuous Delivery: จัดเตรียมแอปพลิเคชันให้พร้อมสำหรับการ Deploy โดยอัตโนมัติ
    • Continuous Deployment: Deploy แอปพลิเคชันที่พร้อมแล้วขึ้นสู่ Production Environment โดยอัตโนมัติ

ส่วนประกอบหลักของ GitLab CI/CD

  • Pipeline: คือกระบวนการทั้งหมดตั้งแต่ต้นจนจบของการทำงาน CI/CD
  • Stages: คือขั้นตอนย่อย ๆ ใน Pipeline เช่น Build, Test, Deploy
  • Jobs: คือชุดคำสั่งที่ต้องทำในแต่ละ Stage
  • GitLab Runner: คือ Agent ที่ทำหน้าที่รัน Jobs และส่งผลลัพธ์กลับไปยัง GitLab