เป็น แนวความคิดเชิงวัฒนธรรม
(Culture) และ แนวทางปฏิบัติ
(Practice) ที่เกิดมาเพื่อส่งเสริมการทำงานของ Development Team และ Operations Team เพื่อให้สามารถผลิตและส่งมอบ Software ไปยังผู้ใช้ได้อย่างรวดเร็ว และมีประสิทธิภาพมากที่สุด
โดยมีเป้าหมายคือ การลดตุ้นทุนของ เวลา
(Time) และ ค่าใช้จ่าย
(Cost) ที่ไม่จำเป็นออกไป โดยอาศัยเครื่องมือ (Tools) ต่าง ๆ ที่มีอยู่มาทำให้เกิดความราบรื่นในระหว่างกระบวนการพัฒนา ไปจนถึงการ Deploy ระบบขึ้น Production
แต่ละองค์กรอาจจะมอง Development Team และ Operations Team ไม่เหมือนกัน ทั้งนี้ขึ้นอยู่กับบทบาท ความรับผิดชอบ และ Scope งาน ที่คน ๆ นั้นได้รับ ว่ามีส่วนช่วยเหลือ หรือร่วมพัฒนาระบบมากแค่ไหน
บางองค์กรอาจจะมองว่า
หมายถึง
อาจจะหมายถึง
มาจากการที่บริษัทต่าง ๆ เกิดปัญหาในการพัฒนา Software ซึ่งไม่สามารถที่จะพัฒนา และปล่อย (Launch) Product ได้เร็วเท่าที่ควรจะเป็น
วิศวกรทั่วโลกจึงได้พยายามคิดค้นวิธีการ และแนวทางปฏิบัติต่าง ๆ ที่เห็นว่า มันดี
เพื่อนำมาแก้ไขปัญหาที่เกิดขึ้น โดยมีวัตถุประสงค์เพื่อให้เราสามารถที่จะพัฒนาและส่งมอบ Software ได้เร็ว ลดต้นทุนเวลา ค่าใช้จ่าย และมีประสิทธิภาพในการทำงาน
จนแนวความคิดและแนวทางปฏิบัตินั้น เกิดการบอกต่อ และทำกันจนกลายเป็นแนวทางปฏิบัติ (Practice) และ วัฒนธรรม
(Culture)
และเราก็เรียกและนิยามวัฒนธรรมนั้นกันว่า DevOps
ในความเป็นจริง DevOps ไม่ได้มีรูปแบบ หรือเครื่องมือที่ใช้ในการทำงานตายตัว บางบริษัทอาจจะทำ DevOps ในอีกรูปแบบนึง บางบริษัทก็ใช้เครื่องมืออีกเครื่องมือนึง
แต่สุดท้ายแล้วก็มีเป้าหมายในการทำ DevOps แบบเดียวกัน นั่นก็คือ การทำให้ Developer สามารถที่จะปล่อย Software ออกมาได้เร็ว และมีประสิทธิภาพมากที่สุด พร้อมทั้งช่วยลดต้นทุนด้านเวลา และค่าใช้จ่าย ต่าง ๆ ที่จะเกิดขึ้นในระบบ
แนวคิด Automation เป็นหนึ่งในแนวความคิด และแนวทางปฏิบัติที่ดี (Best Practice) ที่ถูกนำมาใช้กับ DevOps มากที่สุด โดยการ Setup ระบบทั้งหมดให้ทำงานแบบอัตโนมัติ ให้สามารถทำงานแทนคน เพื่อลดความซ้ำซ้อน และข้อผิดพลาดที่อาจจะเกิดจากคนได้
จากภาพเมื่อเราเขียน Code เสร็จ (1)
จากนั้น Save (Push) Code ขึ้นไปเก็บไว้บน Git Server (ที่ฝาก Source Code) (2)
จะมีระบบอัตโนมัติ มาทำการดึง Source Code ที่เราเขียนไว้
เพื่อนำไป Build
, Test
, Release
, พร้อมทั้ง Deploy
ขึ้น Server ให้เราเองโดยอัตโนมัติ (3 - 9)
โดยไม่ต้องใช้คนทำเหมือนในอดีต
เพราะเราไม่ต้องใช้คนทำ
จากที่ได้เกริ่นไปในตอนแรกว่า DevOps คือ วัฒนธรรมการทำงาน ซึ่งในความเป็นจริงแล้ว Developer เองก็สามารถทำ DevOps ได้ โดยไม่จำเป็นต้องมีตำแหน่งงาน DevOps ในองค์กร
แต่บางองค์กรที่มีคนค่อนข้างเยอะ และมี Product จำนวนมากที่ต้องคอยดูแล องค์กรจึงมีความจำเป็นที่จะต้องแยกตำแหน่งนี้ออกมาเป็นอีก 1 ตำแหน่ง เพื่อคอยดูแล และให้ความช่วยเหลือ Development Team และ Operations Team ต่าง ๆ ในองค์กรโดยเฉพาะ
การทำ DevOps เป็นศาสตร์ที่ต้องอาศัยความรู้หลายด้าน ไม่ว่าจะเป็น
แทบจะต้องมีพื้นฐานสำหรับทุก ๆ เรื่อง เพื่อให้สามารถ Setup และแก้ไขปัญหาต่าง ๆ ในระบบได้