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 ทำตาม โดยมีกระบวนการหลักดังนี้:
- Continuous Integration (CI):
- เมื่อนักพัฒนา
push
โค้ดใหม่ขึ้นไปยัง GitLab Repository - GitLab จะตรวจจับการเปลี่ยนแปลงและสั่งรัน
pipeline
อัตโนมัติ - Pipeline จะประกอบด้วย
stages
(ขั้นตอน) ต่าง ๆ เช่น:- Build: คอมไพล์โค้ดหรือสร้าง Docker Image
- Test: รันการทดสอบต่าง ๆ (Unit Test, Integration Test)
- หากขั้นตอนเหล่านี้ผ่านทั้งหมด แสดงว่าโค้ดใหม่สามารถทำงานร่วมกับโค้ดที่มีอยู่ได้โดยไม่มีปัญหา
- เมื่อนักพัฒนา
- 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