5 คุณสมบัติที่สำคัญของ DevOps

“DevOps” ถ้าคุณเป็นคนที่อยู่ในอุตสาหกรรมซอฟต์แวร์ ก็คงจะได้ยินกันอยู่บ่อยๆ เพราะเริ่มมีการใช้งานอย่างแพร่หลายในช่วงหลายปีที่ผ่านมา และนับว่าเป็นอีกส่วนประกอบหนึ่งที่มีความสำคัญต่ออุตสาหกรรมซอฟต์แวร์ในปัจจุบัน โดยในบทความนี้ ผมจะขอยก 5 คุณสมบัติที่สำคัญของ DevOps มาอธิบายไว้

แต่ก่อนอื่น ผมขออนุญาตยกอธิบายความหมายของคำๆ นี้ ไว้โดยสังเขปดังนี้ครับ

DevOps คืออะไร?

เริ่มจากผมขอยกคำนิยามมาจากหนังสือ A Software Architect’s Perspective ซึ่งได้ถูกนำไปอ้างอิงไว้ใน wikipedia โดยในหนังสือเล่มนี้ได้นิยามคำว่า DevOps เอาไว้สั้นๆ ว่า

DevOps is a set of practices intended to reduce the time between committing a change to a system and the change being placed into normal production, while ensuring high quality.

ถ้าอยากได้ยาวอีกสักหน่อย ข้างล่างนี้คือคำนิยามจาก AWS ครับ

DevOps is the combination of cultural philosophies, practices, and tools that increases an organization’s ability to deliver applications and services at high velocity: evolving and improving products at a faster pace than organizations using traditional software development and infrastructure management processes. This speed enables organizations to better serve their customers and compete more effectively in the market.

ซึ่งเราก็สามารถสรุปได้ว่า DevOps นั้นจะเป็นเรื่องการผสมผสานหลายๆ ปัจจัยในการทำงานทั้งแนวคิด วิธีการ และเครื่องมือต่างๆ เพื่อเพิ่มความเร็ว เพิ่มประสิทธิภาพ และยังรวมไปถึงการพัฒนากระบวนการทั้งด้าน Software และการจัดการ Infrastructure นั่นเอง

แล้ว devops ไม่ใช่ตำแหน่งงานเหรอ?

ใช่ครับ มีตำแหน่งงานชื่อ DevOps ที่เปิดรับสมัครกันอยู่แพร่หลายทั่วโลก รวมถึงที่ LINE Company Thailand เองก็มีสายงานในตำแหน่งนี้ครับ ซึ่งอาจจะกล่าวได้ว่า DevOps Engineer ก็คือคนที่เข้ามาสนับสนุนและทำให้รูปแบบการทำงานตามคำนิยามข้างต้นนี้เป็นจริงนั่นเองครับ

และเมื่อไม่นานมานี้ ก็ยังมีคำอื่นๆ ที่ได้ถูกนิยามเพิ่มเติมขึ้นมาอีก เช่น SysOps, DevSecOps และ BizSecOps เป็นต้น ซึ่งผมจะยังไม่อธิบายในบทความนี้นะครับ

คุณสมบัติที่สำคัญของ DevOps

ในปัจจุบัน บริษัท Startup ขนาดเล็กไปจนถึงบริษัทที่เป็น Enterprise Software ขนาดใหญ่ ล้วนนำเอา DevOps เข้ามามีบทบาทต่อการพัฒนากันอย่างแพร่หลาย แต่ก็ไม่ใช่ว่าทุกๆบริษัท จะสามารถนำ DevOps มาใช้ได้อย่างมีประสิทธิภาพหรือประสบความสำเร็จได้เสมอไปนะครับ เพราะการจะนำ DevOps เข้ามาใช้ให้เกิดประโยชน์สูงสุดนั้น ย่อมต้องมีการประยุกต์ใช้ ปรับเปลี่ยน และแก้ไขวิธีการทำงานที่มีอยู่เดิมหลายๆ อย่าง โดยในบทความนี้ ผมจะขอสรุป 5 คุณสมบัติสำคัญ ที่จะทำให้การนำ DevOps ไปใช้นั้นมีโอกาสประสบความสำเร็จได้มากขึ้นครับ

1. No “us versus them”

ปัญหาระหว่าง Dev และ Ops นั้น เป็นสิ่งที่เกิดขึ้นมาช้านานครับ ถึงขั้นมีคำกล่าวที่ว่า

“Devs are from Venus. Ops are from Mars”

หึหึ มาจากคนละดาวกันเลยทีเดียว ซึ่งผมคิดว่า ข้อนี้นับเป็นคุณสมบัติที่สำคัญที่สุด ถ้าหากฝั่ง Development และ Operations (หรือไม่ว่าใครก็ตามที่เกี่ยวข้อง)สามารถทำงานร่วมกันได้โดยไม่มีความรู้สึกที่ว่า “us versus them” โดยที่ต่างฝ่ายต่างเข้าใจ priority และ pain points ของกันและกัน ก็จะช่วยให้สามารถร่วมกันสร้างวิธีการทำงานที่มีประสิทธิภาพขึ้นมาแก้ปัญหาต่างๆ ได้อย่างตรงจุด

2. Take small steps

ข้อนี้จะช่วยให้ซอฟต์แวร์สามารถขึ้นสู่ Production ได้อย่างรวดเร็วครับ การออกชิ้นส่วนงานเล็กๆ ที่สามารถนำไปใช้ในการติดตั้ง (deployment) ได้บ่อยๆ แทนที่จะออกเป็นชิ้นส่วนใหญ่ๆ ชิ้นส่วนเดียว ย่อมทำได้ง่ายและมีความเสี่ยงน้อยกว่า
ออกบ่อย ออกง่าย สบายใจ ไร้ความเสี่ยง ทุกคนแฮปปี้ จบครับ…

3. มองหาวิธีการที่เป็น Automation

คงไม่มีใครชอบทำอะไรซ้ำๆ ใช่ไหมครับ เช่น การที่เราต้องไปรันคำสั่งเดิมซ้ำๆ บน server ทุกครั้งเมื่อเจอปัญหาแบบเดิมๆ หรือแม้กระทั้งการทำ scaling ก็คงจะยากและใช้เวลานานหากไม่มีการ automate ไว้ โดยข้อดีที่เห็นได้ชัดเจนที่สุดก็คือการเพิ่ม productivity ของเรานั่นเองครับ

4. ต้องอธิบายปัญหาหรือความผิดพลาดได้

ในความเป็นจริง เราไม่สามารถที่จะหลีกเลี่ยงความผิดพลาดได้ตลอดครับ แต่เมื่อเกิดปัญหาหรือความผิดพลาดขึ้น เราจะต้องพยายามค้นหาและอธิบายสาเหตุที่ทำให้เกิดความผิดพลาดขึ้นให้ได้มากที่สุด กระบวนการนี้จะรวมไปถึงการทำระบบเก็บข้อมูล log หรือการทำ monitoring ต่างๆ เพื่อใช้ในการวิเคราะห์ปัญหาครับ

5. We’re not perfect, or finished

และข้อสุดท้าย การพัฒนาสิ่งต่างๆ เหล่านี้ไม่มีวันจบครับ ตราบใดที่ software ยังคงมี release ใหม่ๆ ออกมา ปัญหาใหม่ๆ ก็ย่อมจะเกิดขึ้นตามมาด้วย ดังนั้นสิ่งที่เราต้อง automate และ monitor ก็มีเพิ่มมากขึ้น เราจึงต้องมีการทบทวนกระบวนการทำงานของเรา และพัฒนาให้ดีขึ้นอยู่เสมอๆ

บทความนี้เราก็ได้รู้ถึง 5 คุณสมบัติสำคัญของ DevOps กันไปแล้ว และหวังเป็นอย่างยิ่งว่าจะทำให้ทุกท่านได้เข้าใจความหมายและบทบาทของคำๆ นี้ชัดเจนมากยิ่งขึ้นครับ

LINE Developers Thailand

Witthaya Sakulsubwatthana

Written by

DevOps Engineer at LINE Company Thailand

LINE Developers Thailand

Closing the distance. Our mission is to bring people, information and services closer together

More From Medium

More on Line from LINE Developers Thailand

More on Line from LINE Developers Thailand

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade