Back to notes
mastery-architecture
Featured

CI/CD: เปลี่ยนการ Deploy ที่แสนน่ากลัว ให้เป็นเรื่องอัตโนมัติเพียงแค่คลิกเดียว

เจาะลึกระบบการส่งมอบซอฟต์แวร์ยุคใหม่ที่ช่วยให้โปรเจกต์ของคุณปลอดภัยและรวดเร็ว ด้วยการใช้ Pipeline อัตโนมัติ

February 6, 20262 min read readNNexis by Seereen

🛑 1. The Fear: "การ Deploy คือฝันร้ายที่ทุกคนไม่อยากแตะ"

ในอดีต (หรือในทีมที่ยังไม่เป็นมืออาชีพ) การ Deploy คือพิธีกรรมที่น่ากลัว:

  • ต้องเข้าเครื่อง Server ผ่าน SSH ไปแก้ไฟล์เอง
  • ต้องจำว่าต้องรันคำสั่งอะไรบ้าง 1, 2, 3...
  • "ลืมรันคำสั่งที่ 4 แอปเลยพังทั้งระบบ!"

Senior Solution: งานทุกอย่างที่ต้องทำซ้ำๆ และมีความเสี่ยงสูง ต้องถูกจัดการด้วย CI/CD Pipeline ครับ เพื่อให้ทุกขั้นตอนถูกทำเหมือนเดิมทุกครั้งโดยคอมพิวเตอร์ที่ไม่มีวันเหนื่อยหรือลืม


💡 2. Real-Life Analogy: สายพานผลิตรถยนต์อัตโนมัติ

  • Continuous Integration (CI): เหมือนสายพานที่คอยเช็กอะไหล่ทุกชิ้นที่ไหลเข้ามา ถ้ามีน็อตตัวไหนเบี้ยว (Code พัง หรือ Test ไม่ผ่าน) สายพานจะหยุดทันทีและแจ้งเตือนคนคุมงาน (แจ้งผ่าน Slack/Line)
  • Continuous Deployment (CD): เมื่อรถประกอบเสร็จและตรวจผ่านทุกจุดแล้ว สายพานจะพารถคันนั้นไปส่งที่โชว์รูม (Server) โดยอัตโนมัติทันที
  • บทสรุป: วิศวกรแค่มีหน้าที่ออกแบบรถที่ดี (Write Code) ส่วนการประกอบและขนส่งเป็นหน้าที่ของโรงงาน (Pipeline) ครับ

🚀 3. Execution Journey: กางแผนผัง CI/CD ระดับสากล

ในโปรเจกต์อย่าง Aura Tour Booking และ Impressa Shop ผมวางระบบ Pipeline ดังนี้ครับ:

🛠 Step-by-step:

  1. Stage 1: Build & Lint: ตรวจสอบ Syntax และ Format ของโค้ดให้ตรงตามมาตรฐานทีม (Linting) และลอง Build โปรเจกต์ดูว่าไม่มี Error ขั้นรุนแรง
  2. Stage 2: Test: รัน Unit Test ทุกตัวที่มี ถ้าไม่ผ่าน 1 ตัว ขั้นตอนถัดไปจะไม่เกิดขึ้นเด็ดขาด (Security Gate)
  3. Stage 3: Dockerize: ห่อหุ้มโค้ดใส่ Docker Image และส่งขึ้นไปเก็บไว้ที่ Repository (เช่น Docker Hub)
  4. Stage 4: Deploy to Staging: ส่งแอปขึ้น Server สำหรับทดสอบเพื่อให้ QA หรือลูกค้ามาตรวจความเรียบร้อยก่อน
  5. Stage 5: Production Release: เมื่อทุกคนพอใจ ก็แค่กดปุ่มเดียวเพื่อสลับเอาเวอร์ชันใหม่ขึ้นหน้าเว็บบริษัททันที
HLJS YAML
# ✅ ตัวอย่างเบื้องต้นของ GitHub Actions Workflow
jobs:
  build_and_test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Install Dependencies
        run: npm install
      - name: Run Tests
        run: npm test
      - name: Build Project
        run: npm run build

🪤 4. The Junior Trap: "Manual Fixes" (การแอบเข้าไปแก้ที่ Server)

ปัญหาคลาสสิกคือเมื่อแอปบน Server พัง แล้วมีคนแอบ SSH เข้าไปแก้โค้ดตรงๆ ที่นั่นเพื่อให้มันรันได้:

  • ปัญหา: โค้ดที่แก้บน Server จะไม่ถูกเก็บไว้ใน Git และเมื่อมีการ Deploy รอบถัดไป สิ่งที่แก้ไว้จะหายไปทันที (Configuration Drift)
  • ✅ การแก้ไข: กฎเหล็กของ Senior คือ "ห้ามแตะ Server โดยตรง". ทุกอย่างต้องแก้ผ่าน Git และให้ Pipeline เป็นคนส่งขึ้นไปเท่านั้น เพื่อให้ระบบทุกที่ (Dev, Staging, Production) เหมือนกัน 100% ครับ

⚖️ 5. The Choice: จะเลือกใช้เครื่องมือตัวไหนดี?

เครื่องมือจุดเด่นเหมาะสำหรับ
GitHub Actions💎 ยอดนิยม, ใช้ง่าย, รวมอยู่กับ Git เลยทุกโปรเจกต์ (Senior Recommended)
GitLab CIทรงพลังมาก, เหมาะสำหรับงาน Enterpriseบริษัทขนาดใหญ่ที่มี Server เป็นของตัวเอง
Vercel / Netlify🚀 คลิกเดียวจบ, เร็วที่สุดสำหรับ Frontendโปรเจกต์ Next.js หรือ Static Site

🎓 6. Senior Mindset Summary

CI/CD ไม่ใช่แค่เรื่องเทคนิค แต่มันคือเรื่องของ "ความเชื่อใจ (Trust)" ครับ เมื่อคุณมีระบบอัตโนมัติที่ดี ทุกคนในทีมจะกล้าส่งโค้ดบ่อยขึ้น กล้าแก้บั๊กเร็วขึ้น เพราะรู้ว่ามีสายพานคอยช่วยตรวจสอบความปลอดภัยให้อีกชั้นเสมอ การเพิ่ม "ความเร็วในการส่งมอบ (Velocity)" โดยที่ "ความเสถียร (Stability)" ไม่ลดลง นั่นคือเป้าหมายสูงสุดของ Senior อย่างเราครับ!

## References

Share this note

Related notes

View all notes
mastery-architecture
Intermediate

Agile & GitFlow: บริหารจัดการฟีเจอร์อย่างไรไม่ให้เกิด 'สงคราม Merge Conflict'

เจาะลึกการทำงานแบบ Agile และการใช้ GitFlow ในระดับมืออาชีพ เพื่อให้ทีมเดินหน้าได้อย่างรวดเร็วโดยไม่ต้องเสียเวลากับปัญหาไฟล์ทับกัน

February 6, 20262 min read
mastery-architecture
Advanced

The Testing Pyramid: ทำไมการเทสต์ 100% ถึงอาจเป็นกับดักที่ทำให้โปรเจกต์ล่าช้า?

เจาะลึกกลยุทธ์การออกแบบระบบทดสอบให้คุ้มค่าที่สุด ด้วยหลักการ Testing Pyramid เพื่อให้แอปของคุณเสถียรโดยไม่ต้องเสียเวลาเขียนเทสต์จนไม่ได้เขียนโค้ดจริง

February 6, 20262 min read
mastery-architecture
Advanced

Modern SDLC: จาก Database Schema สู่ Production ในฐานะ Fullstack Engineer

เจาะลึกมหากาพย์การสร้าง Digital Product ตั้งแต่การวาด ER Diagram ไปจนถึงการทำ CI/CD และทำไมการเข้าใจ 'วงจรชีวิต' ถึงทำให้คุณเหนือกว่าแค่การเป็นคนเขียนโค้ด

February 5, 20263 min read

© 2026 My Notes by Seereen