DevOps

DevOps

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)

DevOps ในยุค AI

เมื่อการนำ LLM และ AI agent ไปใช้งานใน production เพิ่มมากขึ้น ขอบเขตของ DevOps ก็ขยายตามไปด้วย ความท้าทายด้านการดำเนินงานที่ไม่เคยมีในแอปพลิเคชันแบบดั้งเดิมได้เพิ่มเข้ามา ไม่ว่าจะเป็นการจัดการเวอร์ชันของโมเดล, auto-scaling ของ inference server และการทำ A/B testing ของ prompt ในบริบทนี้เองที่ MLOps ถือกำเนิดขึ้น และ DevSecOps คือการผนวกมุมมองด้านความปลอดภัยเข้าไปด้วย

บทความที่กล่าวถึงคำศัพท์นี้