1. ทำไมต้องเรียนเรื่องนี้? (The "Why")
หน้า 11. Speed (ความเร็ว)
โลกธุรกิจเปลี่ยนไว ใครส่งฟีเจอร์ใหม่ถึงมือลูกค้าได้ก่อนคือผู้ชนะ DevOps ช่วยลดเวลาจาก "เป็นเดือน" เหลือ "เป็นนาที" (Time-to-Market)
2. Quality (คุณภาพ)
ทดสอบอัตโนมัติ 100 ครั้งต่อวัน เทียบกับทดสอบ "ด้วยมือ" ซ้ำซ้อน Bug น้อยลง ระบบ safety มากขึ้น
3. Collaboration (การทำงานร่วมกัน)
Developers, QA, Ops ไม่ต้องต่อว่า ทำให้เกิดเสียงหัวเราะ "Why, DevOps เข้ามาช่วยแก้"
4. Cost (ประหยัดต้นทุน)
ปิดเซิร์ฟเวอร์ที่ไม่ใช้ระหว่างคืน ปรับ resource ตรงจำนวน แทนสินเสียจากการ Downtime
"Automate everything that can be automated."
เป้าหมายคือการเอาเวลาไปสร้างสรรค์นวัตกรรม ไม่ใช่ทำงานซ้ำซาก
2. CI/CD Overview
หน้า 2CI/CD คืออะไร?
CI (Continuous Integration): ทุกครั้งที่เขียนโค้ดใหม่ ระบบจะ Build + Test อัตโนมัติ
CD (Continuous Deployment): ถ้า Test ผ่าน ระบบจะส่งโค้ดไปลงบน Server จริง โดยอัตโนมัติ (ไม่ต้องปั่นเอง)
ภาพเปรียบเทียบ: ชีวิตก่อนและหลังรู้จัก CI/CD
❌ ก่อน CI/CD (Manual)
- 💻 Develop locally
- 📤 แล้วก็ส่ง File ให้ทีม Ops
- 🧪 ทีม QA test ด้วยมือ
- 👤 Ops login server และ deploy สด ๆ ร้อน ๆ
- 💥 ดึง Cable ปิด Server ก่อนเสร็จ? 😖
✅ หลัง CI/CD (Automated)
- 💻 Develop locally
- 🚀 Git push → Automatic!
- 🤖 ทดสอบ & Build หลายครั้ง/นาที
- ☕ หลับสบาย Deploy อัตโนมัติ
- ✨ Bug ลด Error ลด Downtime ลด 👍
3. Continuous Integration (CI)
หน้า 3Definition
Continuous Integration หมายถึง "รวมโค้ด + ทดสอบ" ตลอดเวลา (หลายครั้งต่อวัน) โดยใช้ Server ติด Git ตั้งหนึ่ง
ถ้าสมาชิก A push โค้ด → GitHub อัตโนมัติ trigger build → run tests → ถ้าผ่าน OK ถ้าไม่ผ่าน notify ทันที
ขั้นตอนการทำงานของ CI
สมาชิก A เพิ่ม feature ใหม่แล้ว git push ขึ้น GitHub
GitHub ส่งแจ้ง CI Server "มีโค้ดใหม่น่า" 🔔
CI Server อ่าน code.git → compile → ตรวจสอบ syntax
ทดสอบหลายไฟล์ (unit test, integration test) ทั้งหมดอัตโนมัติ
Passed? → ส่ง artifact ไป CD server | Failed? → notify developers
4. Continuous Deployment (CD)
หน้า 4Definition
Continuous Deployment หมายถึง CI ผ่าน → อัตโนมัติส่งโค้ด + resources ไปลง Production Server ทันที (ถ้าผ่าน manual approval)
ไม่ต้องรอ release schedule แบบเก่า (ทุก ๆ สัปดาห์/เดือน) → ได้อัปเดตเร็วทันใจ
🤖 Fully Automated
Deploy ไปเลย ไม่ต้องว่า โดยอัตโนมัติจาก CI pipeline
👮 Manual Approval
CI ผ่าน → ส่งเตือนให้ Manager approve ก่อน deploy
5. Git Version Control (Time Machine)
หน้า 5Git = Time Machine
Commit คือ "savepoint" ใน game บันทึกสถานะโค้ดของคุณไว้ ถ้าผิดพลาด revert กลับได้ทันที
ทำไม Git ถึงเป็นหัวใจของ DevOps?
📜 Version History
ทำให้ track ได้ว่า "ใครแก้อะไร เวลาเท่าไหร่" ถ้า bug มีที่จะชี้
🔀 Branching
สร้าง branch แยก ทำ feature ส่วนต่างๆ ไม่ conflicts กัน ทำเสร็จ merge
👥 Collaboration
หลายคนแก้ code พร้อม ๆ กัน Git merge ให้ smart ไม่ conflict
🔁 CI/CD Trigger
Push to Git → คะนึง GitHub Action ทำให้ automation เกิดขึ้น
คำศัพท์และคำสั่งพื้นฐาน
= Folder ที่เก็บ code + history ทั้งหมด
= Savepoint เฉพาะ (บันทึก version ที่จุดนั้น ๆ)
= ขั้ว version ที่แยก เล่นแต่งอ่าง main/development
Push = ส่งขึ้น | Pull = ดึงลงมา