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