The Simulation Setup Production with DevSecOps & CI/CD Pipeline
การจำลองการตั้งค่าระบบ Production ด้วย DevSecOps และ CI/CD Pipeline
ผู้จัดทำ: นายกษิดิศ ช่อรัก (รหัสนิสิต 65109010125)
อาจารย์ที่ปรึกษา: ผศ.วัชรชัย วิริยะสุทธิวงศ์
ที่มาและความสำคัญ
ในสภาพแวดล้อมทางธุรกิจปัจจุบัน การพัฒนาซอฟต์แวร์มีความสำคัญอย่างยิ่งในการสนับสนุนการดำเนินงาน นวัตกรรม และความต้องการของลูกค้า การนำหลักการ DevSecOps มาใช้จะช่วยปรับปรุงกระบวนการพัฒนาซอฟต์แวร์แบบดั้งเดิม โดยผสานการพัฒนา ความปลอดภัย และการปฏิบัติการเข้าสู่ระบบ CI/CD อัตโนมัติ ลดกระบวนการ Manual เพิ่มประสิทธิภาพ คุณภาพ และรองรับการส่งมอบซอฟต์แวร์ที่เชื่อถือได้
วัตถุประสงค์
- ศึกษาและทำความเข้าใจหลักการ DevSecOps เพื่อ Software Development Life Cycle (SDLC) ที่มีประสิทธิภาพ
- จำลองการ Build และ Deploy แอปพลิเคชันและโครงสร้างพื้นฐานผ่านกระบวนการอัตโนมัติ
- ออกแบบและพัฒนา CI/CD เพื่อการส่งมอบซอฟต์แวร์ที่รวดเร็ว
วิธีการดำเนินงาน (Methodologies)
โครงการแบ่งออกเป็น 2 ส่วนหลัก ได้แก่
- CI/CD Pipeline Setup — ตั้งค่าระบบอัตโนมัติสำหรับ Software Delivery Workflow
- Infrastructure Setup — ตั้งค่าโครงสร้างพื้นฐานเพื่อรองรับการ Deploy และการดำเนินงานของแอปพลิเคชัน
ขั้นตอนการดำเนินงาน ประกอบด้วย:
- ตั้งค่า Continuous Integration (CI) และ Cloud Infrastructure ผ่านกระบวนการอัตโนมัติบน AWS Cloud และ GitLab
- ตั้งค่า Continuous Delivery (CD) ด้วย K3s เพื่อ Deploy และ Monitor แอปพลิเคชัน
- รันกระบวนการทั้งหมดตั้งแต่ขั้นตอนการพัฒนาจนถึงการ Deploy และการ Monitor หลัง Deploy
ผลการดำเนินงาน
- CI Workflow ทำงานได้อย่างถูกต้องและสามารถตรวจจับโค้ดหรือกระบวนการที่ไม่ปลอดภัยในการ Commit ใหม่ก่อนปล่อยแอปพลิเคชันขึ้น Server
- ระบบอัตโนมัติช่วยลดงานซ้ำซ้อนและลด Human Error ในกระบวนการพัฒนา พร้อมผ่านสถานการณ์การทดสอบทั้งหมด
- Application Images ถูกจัดระเบียบ จัดเก็บ และบริหารจัดการผ่าน Container Registry ได้อย่างถูกต้อง
เปรียบเทียบ Traditional Workflow vs DevSecOps Workflow
| Criteria |
Traditional Workflow |
DevSecOps Workflow |
| Security Process |
ดำเนินการแยกต่างหากหรือภายหลัง |
รวม Security ตั้งแต่ขั้นตอนแรก |
| Deployment Process |
Deploy แอปพลิเคชันทีละตัว |
อัตโนมัติด้วย Orchestrator |
| Server Initial |
จัดการแต่ละ Node ด้วยมือ |
อัตโนมัติด้วย Infrastructure as Code |
| Post-Deployment Validation |
ตรวจสอบด้วยมือ |
Automated Health & Monitoring |
| Risk of Human Error |
สูงในงานที่ทำซ้ำ |
ลดลงด้วยระบบอัตโนมัติ |
บทสรุป
- Application versions และ Infrastructure ใหม่สามารถผ่าน DevSecOps Workflow Deploy ได้สำเร็จ และพร้อมใช้งาน
- ระบบช่วยเพิ่มความเร็ว ประสิทธิภาพ และความราบรื่นของกระบวนการทั้งหมดตลอด Software Development Life Cycle (SDLC)