DevOps คือชื่อเรียกรวมของวัฒนธรรมและแนวปฏิบัติที่บูรณาการการพัฒนาซอฟต์แวร์ (Development) และการดำเนินงาน (Operations) เข้าด้วยกัน โดยมุ่งเร่งรอบวงจรการเผยแพร่และยกระดับคุณภาพไปพร้อมกัน ผ่าน CI/CD pipeline และเครื่องมืออัตโนมัติต่าง ๆ
ในการพัฒนาซอฟต์แวร์แบบดั้งเดิม รูปแบบการแบ่งงานที่ทีมพัฒนาเขียนโค้ดและทีมดำเนินงานนำไปติดตั้งในสภาพแวดล้อม production ถือเป็นเรื่องปกติ ปัญหาคือ "กำแพง" ที่เกิดจากการแบ่งงานนี้ ฝั่งพัฒนาต้องการออก feature ใหม่ให้เร็ว ฝั่งดำเนินงานต้องการรักษาเสถียรภาพ ผลประโยชน์ขัดแย้งกัน และเกิดแรงเสียดทานทุกครั้งที่มีการ release
DevOps คือการรื้อกำแพงนี้ทิ้ง นักพัฒนาตระหนักถึงการดำเนินงาน และผู้ดูแลระบบเข้ามามีส่วนร่วมในกระบวนการพัฒนา แก่นแท้ของ DevOps คือการสร้างวัฒนธรรมที่ทั้งสองฝ่ายแบ่งปันเป้าหมายเดียวกัน นั่นคือ "ส่งมอบคุณค่าให้ผู้ใช้อย่างรวดเร็ว และแก้ไขปัญหาได้อย่างรวดเร็วเมื่อเกิดขึ้น"
CI/CD (Continuous Integration / Continuous Delivery): pipeline ที่ build, test และ deploy การเปลี่ยนแปลงของโค้ดโดยอัตโนมัติ ช่วยปลดปล่อยจากความหวาดกลัวของการ deploy ด้วยมือ
Infrastructure as Code (IaC): การจัดการการกำหนดค่าเซิร์ฟเวอร์และเครือข่ายด้วยโค้ด เช่น Terraform หรือ Pulumi ขจัดคำถามที่ว่า "เซิร์ฟเวอร์ตัวนี้ ใครเปลี่ยนการตั้งค่าเมื่อไหร่?"
Monitoring และ Observability: แสดงสถานะของระบบแบบ real-time ด้วยเครื่องมืออย่าง Datadog, Grafana และ OpenTelemetry เป้าหมายคือการลดระยะเวลาตั้งแต่การตรวจพบความผิดปกติจนถึงการกู้คืน (MTTR)
เมื่อการนำ LLM และ AI agent ไปใช้งานใน production เพิ่มมากขึ้น ขอบเขตของ DevOps ก็ขยายตามไปด้วย ความท้าทายด้านการดำเนินงานที่ไม่เคยมีในแอปพลิเคชันแบบดั้งเดิมได้เพิ่มเข้ามา ไม่ว่าจะเป็นการจัดการเวอร์ชันของโมเดล, auto-scaling ของ inference server และการทำ A/B testing ของ prompt ในบริบทนี้เองที่ MLOps ถือกำเนิดขึ้น และ DevSecOps คือการผนวกมุมมองด้านความปลอดภัยเข้าไปด้วย


DevSecOps คือแนวทางที่นำมาตรการด้านความปลอดภัยมาผนวกรวมไว้ตั้งแต่ต้นในกระบวนการ DevOps pipeline โดยบูรณาการสามด้านเข้าด้วยกัน ได้แก่ การพัฒนา (Development) ความปลอดภัย (Security) และการปฏิบัติการ (Operations)

MLOps คือแนวปฏิบัติที่มุ่งทำให้วงจรชีวิตทั้งหมดของการพัฒนา การเทรน การ deploy และการติดตามตรวจสอบโมเดล machine learning เป็นแบบอัตโนมัติและมีมาตรฐาน เพื่อให้สามารถดำเนินการโมเดลในสภาพแวดล้อม production ได้อย่างต่อเนื่อง

ATDD (Acceptance Test-Driven Development) คือวิธีการพัฒนาซอฟต์แวร์ที่ทีมงานทั้งหมดร่วมกันกำหนดเกณฑ์การทดสอบการยอมรับ (Acceptance Test) ก่อนเริ่มการพัฒนา จากนั้นจึงทำการ Automate การทดสอบดังกล่าว แล้วจึงดำเนินการ Implement ต่อไป

Harness Engineering คืออะไร? วิธีการออกแบบเชิงโครงสร้างเพื่อป้องกันข้อผิดพลาดของ AI Agent

TDD (Test-Driven Development) คือวิธีการพัฒนาซอฟต์แวร์ที่เขียน Test ก่อนเขียนโค้ดจริง โดยวนซ้ำในวงจรสั้น ๆ ได้แก่ Test ล้มเหลว (RED) → การ Implement (GREEN) → การ Refactor (Refactor)