เหมือน “ครูภาษาไทย / คณิตศาสตร์ / ภาษาอังกฤษ” ที่คอยตรวจการบ้านเพื่อให้แน่ใจว่างานของคุณ สะอาด เป็นระเบียบ และไม่มีจุดบกพร่องในระยะยาว ครับ
SonarQube เป็นแพลตฟอร์มแบบ Open-platform สำหรับการทำ Static Application Security Testing ( SAST ) และตรวจวัด Code Quality โดยอัตโนมัติ
📊 4 เสาหลักที่ SonarQube ตรวจสอบ
- Bugs: ตรวจหาข้อผิดพลาดทาง Logic ที่อาจทำให้โปรแกรมพัง ( เช่น Null Pointer Dereference หรือ Infinite Loops )
- Vulnerabilities: ตรวจหาช่องโหว่ด้านความปลอดภัยเบื้องต้น ( เช่น SQL Injection, Hardcoded Passwords )
- Code Smells: ตรวจหาโค้ดที่ “อ่านยาก” หรือ “ดูแลยาก” ( Maintainability ) เช่น ฟังก์ชันที่ยาวเกินไป หรือตัวแปรที่ประกาศไว้แต่ไม่ได้ใช้
- Security Hotspots: ชี้จุดที่ดู “น่าสงสัย” ในเชิงความปลอดภัย เพื่อให้ Developer เข้ามาตรวจสอบด้วยตัวเอง ( Review manual )
💡 ฟีเจอร์เด่นที่ขาดไม่ได้
- Code Coverage: บอกเราว่า Unit Test ที่เขียนไปนั้นครอบคลุม Source Code กี่เปอร์เซ็นต์ ( ถ้าตัวเลขต่ำเกินไป ระบบจะเตือน )
- Duplications: ตรวจสอบว่ามีการ Copy-Paste โค้ดซ้ำ ๆ หรือไม่ เพื่อลดความซ้ำซ้อน
- Quality Gate: เป็นการตั้ง “เกณฑ์มาตรฐาน” ( เช่น ต้องไม่มี Bug ใหม่ และ Coverage ต้องเกิน 80% ) หากไม่ผ่านเกณฑ์นี้ SonarQube จะไม่อนุญาตให้ Merge Code หรือผ่าน Pipeline
- Multi-Language: รองรับมากกว่า 30 ภาษา ( Java, C#, JavaScript, TypeScript, Python, PHP, Go และอื่น ๆ )
🔄 ความแตกต่างระหว่าง Trivy vs SonarQube
เพื่อให้เห็นภาพชัดเจนในสายงาน DevSecOps
| คุณลักษณะ | Trivy | SonarQube |
| จุดเน้นหลัก | Infrastructure & Security ( Image, OS, Library ) | Application Code Quality ( Logic, Structure, Syntax ) |
| สิ่งที่สแกน | Docker Image, Packages, IaC, Secret | Source Code ( Inside out ) |
| ความเร็ว | เร็วมาก ( สแกนได้บ่อยทุกครั้งที่ Build ) | ช้ากว่า ( มักสแกนตอนทำ CI หรือ Pull Request ) |
| การใช้งาน | ป้องกันช่องโหว่ภายนอกและ Misconfig | ป้องกันหนี้ทางเทคนิค ( Technical Debt ) |
🛠️ ตัวอย่างการนำไปใช้ ( Workflow )
ในฐานะที่คุณทำงานด้าน System Analyst และ Developer คุณอาจเห็น Workflow นี้ในองค์กร
- Developer เขียนโค้ดและ Push ขึ้น Git
- SonarQube Scan ทำงานเพื่อตรวจความสะอาดของโค้ด ( ถ้าไม่ผ่าน Quality Gate ให้แก้ใหม่ )
- Build Image และใช้ Trivy Scan เพื่อตรวจหาช่องโหว่ในระดับ OS และ Library
- ถ้าผ่านทั้งคู่ ถึงจะอนุญาตให้ Deploy ขึ้น Server
สรุปง่ายๆ: อยากให้ระบบ “ปลอดภัย” ใช้ Trivy อยากให้โค้ด “สุขภาพดี” ใช้ SonarQube ครับ
อ่านเพิ่มเติม