ป้ายกำกับ: Actions

DevOps: DevOps (Development + Operations) คืออะไรDevOps: DevOps (Development + Operations) คืออะไร

DevOps (Development + Operations) เป็นหนึ่งในคำที่คนสายไอทีพูดถึงบ่อยที่สุด แต่หลายคนอาจจะยังเห็นภาพไม่ชัดเจนว่าตกลงแล้วคนทำ DevOps หรือตำแหน่ง DevOps Engineer เขานั่งทำอะไรกันแน่ในแต่ละวัน?

ถ้าให้สรุปสั้น ๆ DevOps คือ “สะพานเชื่อม” ที่ทลายกำแพงระหว่างฝั่งพัฒนาซอฟต์แวร์ (Developer) และฝั่งดูแลระบบ (Operations) เพื่อให้ทีมสามารถส่งมอบงานได้เร็วขึ้น เสถียรขึ้น และมีข้อผิดพลาดน้อยที่สุดครับ

นี่คือหน้าที่หลัก ๆ ว่าคนทำ DevOps เขาทำอะไรกันบ้าง


วางระบบ CI/CD (Continuous Integration / Continuous Deployment)

นี่คือหัวใจหลักของ DevOps เลยก็ว่าได้ แทนที่จะให้ Developer ต้องมานั่ง Compile โค้ด, รัน Test, และกดอัปโหลดไฟล์ขึ้นเซิร์ฟเวอร์เองแบบแมนนวล DevOps จะสร้าง Automated Pipeline ขึ้นมา

  • CI (Continuous Integration): ทุกครั้งที่ Dev ตรวจโค้ดเสร็จและ Push เข้าระบบ ระบบจะดึงโค้ดไปรันสคริปต์ตรวจสอบความถูกต้อง (Linting) และรัน Unit Test อัตโนมัติทันที เพื่อเช็กว่าไม่มีอะไรพัง
  • CD (Continuous Deployment): ถ้าเทสผ่านหมด ระบบจะนำโค้ดนั้นไป Deploy ขึ้นเซิร์ฟเวอร์ (Staging หรือ Production) ให้โดยอัตโนมัติ

เครื่องมือที่ใช้บ่อย: Jenkins, GitLab CI, GitHub Actions, ArgoCD


จัดการโครงสร้างระบบด้วยโค้ด (Infrastructure as Code – IaC)

สมัยก่อนเวลาจะตั้งเซิร์ฟเวอร์ใหม่ เราต้องคลิกสร้างในหน้าเว็บ Cloud หรือเดินไปเปิดเครื่องในห้อง Data Center แต่สาย DevOps จะมองโครงสร้างพื้นฐาน (Infrastructure) เป็นโค้ดทั้งหมด

  • สามารถเขียนสคริปต์เพื่อสั่งสร้าง Server, Database, เครือข่าย (Network) หรือ Firewall ได้ภายในไม่กี่นาที
  • ข้อดีคือทำซ้ำได้ง่ายมาก (Replicable) และถ้ามีปัญหาก็สามารถย้อนกลับ (Rollback) ไปเวอร์ชันก่อนหน้าได้เหมือนการเขียนโค้ด

เครื่องมือที่ใช้บ่อย: Terraform, OpenToFu, Ansible


ทำระบบ Containerization และ Orchestration

เพื่อแก้ปัญหาคลาสสิกของ Developer ที่ชอบบอกว่า “เครื่องผมรันได้นะ แต่ทำไมบนเซิร์ฟเวอร์รันไม่ได้?” DevOps จึงนำเทคโนโลยี Container เข้ามาช่วย

  • แพ็กโค้ดและสภาพแวดล้อมทั้งหมด (Environment) มัดรวมกันเป็นก้อน (Container) เพื่อให้มั่นใจว่ารันที่ไหนก็ผลลัพธ์เหมือนกัน
  • เมื่อระบบใหญ่ขึ้น มีเป็นร้อยเป็นพัน Container ก็ต้องใช้ระบบ Orchestration ในการจัดการ คอยสั่งเปิด-ปิด ย้ายเครื่อง หรือสเกลระบบอัตโนมัติเวลามีผู้ใช้งานเข้ามาเยอะ ๆ

เครื่องมือที่ใช้บ่อย: Docker, Kubernetes (K8s)


เฝ้าระวังและเก็บสถิติระบบ (Monitoring and Logging)

ระบบที่เสถียรไม่ใช่ระบบที่ไม่เคยล่ม แต่คือระบบที่เวลามีปัญหาแล้วทีมรู้ตัวก่อนลูกค้า และแก้ไขได้ทันท่วงที DevOps มีหน้าที่วางระบบ Monitor เพื่อดูความพร้อมใช้งาน

  • Metrics: ดูภาพรวมของเซิร์ฟเวอร์ เช่น CPU, RAM, Network เกินขีดจำกัดไหม
  • Logging: รวม Log จากทุก ๆ บริการมารวมไว้ที่เดียว เพื่อให้ง่ายต่อการค้นหาต้นตอเวลาเกิด Error
  • Alerting: ตั้งระบบแจ้งเตือน (เช่น เข้า Slack หรือ LINE) ทันทีเมื่อระบบเกิดสิ่งผิดปกติ

เครื่องมือที่ใช้บ่อย: Prometheus, Grafana, ELK Stack (Elasticsearch, Logstash, Kibana)


อ่านเพิ่มเติม