2026-10-17 · 1 min read

10306343 การจัดการโครงสร้างพื้นฐานและการส่งมอบซอฟต์แวร์อย่างต่อเนื่อง (Development Operations: DevOps)

วิชา การจัดการโครงสร้างพื้นฐานและการส่งมอบซอฟต์แวร์อย่างต่อเนื่อง (Development Operations: DevOps) สอนให้คุณส่งแอปจากเครื่องตัวเองขึ้นเซิร์ฟเวอร์ได้อย่างอัตโนมัติ ปลอดภัย และตรวจสอบได้ ทุกบทใช้แอป Node.js ตัวเดียวกันต่อเนื่อง และใช้ GitHub Actions เป็นเครื่องมือ CI/CD หลัก คุณจะไม่ต้องเรียนเครื่องมือใหม่ทุกสัปดาห์

วิชานี้เป็นวิชาเอกของหลักสูตร วท.บ. เทคโนโลยีสารสนเทศ คณะวิทยาศาสตร์ มหาวิทยาลัยแม่โจ้ เรียนชั้นปีที่ 3 ภาคการศึกษาที่ 1 จำนวน 3 หน่วยกิต (2–3–5) และไม่มีวิชาบังคับก่อน ถ้าคุณยังไม่เคยใช้ GitHub Actions ลองอ่าน เริ่มต้น CI ด้วย GitHub Actions ใน 6 ขั้นตอน ก่อนเริ่มบทที่ 5 ได้

ลำดับการเรียน

บทเรียนแต่ละบทจะเพิ่มลิงก์ที่นี่เมื่อเผยแพร่

  1. วัฒนธรรม DevOps และ Linux ที่จำเป็น — ทำไมทีมพัฒนากับทีมดูแลระบบต้องทำงานร่วมกัน พร้อมคำสั่ง Linux และสิทธิ์ไฟล์ที่ใช้ตลอดวิชา
  2. Git พื้นฐาน — commit, branch และแก้ merge conflict
  3. ทำงานเป็นทีมบน GitHub — GitHub flow, pull request และ code review
  4. Build และ dependency — npm ci, lockfile และเลขเวอร์ชันแบบ SemVer
  5. CI ด้วย GitHub Actions — workflow แรกที่รัน test ทุกครั้งที่ push
  6. Docker — เขียน Dockerfile และสร้าง image ของแอป
  7. Docker Compose — รันแอปกับฐานข้อมูลพร้อมกัน ด้วย network และ volume
  8. CD: ส่ง image ขึ้น registry และ deploy — ให้ GitHub Actions build และส่ง image ขึ้น ghcr.io แล้ว deploy ลงเซิร์ฟเวอร์
  9. Nginx และค่าตั้งระบบ — reverse proxy และการแยกค่าตั้งออกจากโค้ด
  10. DevSecOps พื้นฐาน — สแกนช่องโหว่ใน image ด้วย Trivy และเก็บรหัสผ่านด้วย GitHub Secrets
  11. Observability พื้นฐาน — healthcheck, log, SLO และ dashboard ด้วย Prometheus กับ Grafana
  12. ปฏิบัติการรวม — ต่อทุกส่วนตั้งแต่ Git ถึง deploy และทดสอบ rollback
  13. นำเสนอผลงานและสะท้อนการเรียนรู้ — สาธิตงาน อธิบายสิ่งที่ทำ และใช้ AI ช่วยงานอย่างรับผิดชอบ

หัวข้อเสริม

หัวข้อเหล่านี้ไม่บังคับ ใช้เมื่อมีเวลาเหลือหรือเลือกเป็นหัวข้อค้นคว้าด้วยตนเอง แต่ละหัวข้อต่อยอดจากแอปตัวเดิมที่คุณทำในบทหลัก

  • Jenkins — ทำ pipeline จากบทที่ 5 ซ้ำบน Jenkins แล้วเทียบกับ GitHub Actions
  • Kubernetes ด้วย kind — deploy image จากบทที่ 8 ลงคลัสเตอร์ในเครื่องและดู self-healing
  • Terraform — แนวคิดการสร้างโครงสร้างพื้นฐานด้วยโค้ด (Infrastructure as Code) โดยไม่ใช้ผู้ให้บริการคลาวด์
  • Ansible — ตั้งค่าเซิร์ฟเวอร์หลายเครื่องให้เหมือนกัน
  • Helm และ GitOps — ให้ Argo CD deploy ตามที่เขียนไว้ใน Git (เรียน Kubernetes ก่อน)
  • Platform Engineering — แนวคิด golden path ที่ทำให้ทีมส่งมอบงานได้เอง

By Watcharin Sarachai