บทความนี้เป็นการแนะนำ Tool ต่างๆ ที่ใช้ในการทำ DevOps ซึ่ง ณ ปัจจุบันค่อนข้างมีหลากหลายตัวเลือก ก่อนอื่น เรามาทำความรู้จักก่อนว่า DevOps คืออะไร และมีความสำคัญอย่างไรในการพัฒนาระบบในปัจจุบัน
DevOps คือแนวคิดที่นำมาใช้ในการพัฒนาระบบ Software ให้มีประสิทธิภาพมากขึ้น โดยหลักการของ DevOps จะแบ่งการทำงานออกเป็น 2 ทีมคือทีม Dev และ ทีม Ops โดยทีม Dev (ย่อมาจาก Development ) ทำหน้าที่พัฒนาระบบตามความต้องการของลูกค้า รวมถึงการทดสอบระบบให้สมบูรณ์ก่อนส่งมอบให้กับลูกค้า ส่วนทีม Ops (ย่อมาจาก Operation) ซึ่งทำหน้าที่ในการจัดการ Server ที่ใช้ในการติดตั้งระบบ รวมถึงการ monitor ระบบหลังจากที่มีการส่งมอบให้กับลูกค้าแล้ว
ซึ่ง DevOps คือหลักการหรือวิธีการที่จะช่วยให้ทั้งสองทีมสามารถทำงานร่วมกันได้อย่างต่อเนื่องและเป็นระบบโดยการนำกระบวนการและ Tool ต่างๆ เข้ามาช่วยประสานการทำงานของทั้งสองทีม ทำให้ Software ที่พัฒนาออกมามีคุณภาพและมีความเสถียรมากขึ้น รวมทั้งยังช่วยลดปัญหาความขัดแย้งที่เกิดขึ้นจากการทำงานร่วมกันของทั้งสองทีมอีกด้วย

ในที่นี้จะขอยกตัวอย่าง Tool ที่ใช้บางส่วนดังนี้
Tool ที่ช่วยในการ Build

ขอแนะนำ Tool ที่มีชื่อว่า Apache Maven เป็น Tool ที่เข้ามาช่วยตั้งแต่การจัดการ Library ของระบบจนถึงการ Build application ออกมาเป็นไฟล์ package เช่น .jar .war .ear เป็นต้น เพื่อให้พร้อมสำหรับการไป Deploy โดยส่วนของจัดการ Library และการกำหนด version สำหรับการ Build นั้นผู้พัฒนาจะสามารถจัดการผ่านการตั้งค่าไฟล์ XML (Pom.xml) ได้เลย และ Library ต่างๆ ก็มีการอัปเดตอย่างสม่ำเสมอบนหน้า Website ของทาง Maven https://mvnrepository.com/ สำหรับรายละเอียดเพิ่มเติมสามารถศึกษาได้ตามลิ้งก์นี้ https://maven.apache.org
Tool ที่ช่วยในการ Release

Jenkins Tools ประเภท Server-Based Application ช่วยในการ Release Application แบบอัตโนมัติ โดยที่ Jenkins จะเชื่อมต่อเข้ากับ Repository ที่ Developer ทำการพัฒนา
เมื่อมีการ commit code เข้ามาใน Repository ที่กำหนด Jenkins จะทำการ Build และ Release Application ของเราขึ้นบน Server ให้โดยอัตโนมัติ ในกรณีที่มีการ Build ผิดพลาดก็จะมีการแจ้งเตือนผ่านหน้าระบบของ Jenkins เอง ช่วยลดปัญหาเรื่องข้อผิดพลาดที่อาจเกิดขึ้นจากการ Release Application แบบ Manual ได้
นอกจากนี้ตัว Jenkins ยังรองรับหลาย Platform ทั้ง Window, Mac และ Linux สำหรับรายละเอียดเพิ่มเติมสามารถศึกษาได้ตามลิ้งก์นี้ https://www.jenkins.io/
Tool ที่ช่วยในการ Monitor

Grafana เป็น Tool ที่ใช้สำหรับการแสดงผลบน Dashboard ช่วยให้ทีมตรวจสอบสถานะได้แบบ Realtime โดย Grafana เป็น Open source ที่สามารถเชื่อมต่อเข้ากับหลากหลาย Open source นอกจากนี้ยังสามารถแจ้งเตือนในกรณีที่ระบบที่กำลัง Monitor อยู่เกิดปัญหา
ตัวอย่างการใช้งานเช่น ใช้ Grafana ในการ monitor งานทดสอบระบบโดยการเชื่อมต่อเข้ากับ JMeter (เป็น Tool ที่ช่วยในการทดสอบระบบ) เพื่อให้ผลการเทสมาแสดงบน Dashboard ของ Grafana
หรือใช้ Grafana สำหรับ Monitoring Server กรณีที่ server มีการปัญหาก็สามารถเชื่อมต่อและแสดงผลข้อมูลของ Server ผ่านทาง Grafana ได้ สำหรับรายละเอียดเพิ่มเติมสามารถศึกษาได้ตามลิ้งก์นี้ https://grafana.com/
นอกจาก Tool ที่ได้นำมาแนะนำในบทความนี้แล้วยังมี Tool อื่นๆ อีกมากมายที่นำมาใช้ในการทำ DevOps ซึ่งสามารถศึกษาได้จากบทความต่างๆ ที่อยู่บนอินเทอร์เน็ต แต่สิ่งสำคัญมากกว่า Tool ที่ใช้ ก็คือการเข้าใจหลักการในการทำงานและกระบวนการทำงานร่วมกันระหว่างทีม Dev และ ทีม Ops โดยใช้ Tool เหล่านี้เป็นตัวช่วย เพื่อให้สามารถผลิตผลงานที่มีคุณภาพตามเป้าหมายที่ได้ตั้งไว้