Skip to main content
0
Computer SystemProgramming Concept

DevOps คืออิหยังวะ ?

ในกระบวนการผลิตซอฟแวร์นั้น มักจะมีการขัดแย้งกันระหว่าง 2 ฝ่ายหลักๆนั่นคือ ฝ่าย Development กับ ฝ่าย Operations ที่แบ่งตามหน้าที่หลักๆในการผลิตซอฟแวร์นั่นคือ ฝ่าย Dev ต้องผลิตซอฟแวร์อย่างรวดเร็วส่งมอบให้ทันเวลา และฝ่าย Ops ต้องดูแลด้านความสเถียรของซอฟแวร์เพื่อมีความผิดพลาดน้อยที่สุด และในกระบวนการผลิตก็จะต้องเลือกระหว่าง

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

DevOps จุดพบกันของทั้ง 2 team

DevOps เป็นแนวคิดการทำงานที่เปลี่ยนรูปแบบระบบการทำงานของทีมโดยมีการเปลี่ยนแปลงที่สำคัญดังนี้

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

เปลี่ยนจากการส่งมอบแบบรอบเดียวจบต่อ 1 งาน เป็นส่งเป็นรอบย่อยๆใน 1 งาน จากเดิมที่ทั้ง 2 ทีมทำหน้าที่กันคนละส่วน งาน 1 งาน Dev ทำงานส่วนของตัวเองเสร็จจึงส่งมอบให้ Ops ไปจัดการติดตั้งแล้วทดสอบต่อทำให้กระบวนการติดตั้งและทดสอบหลักๆสามารถเกิดขึ้นระหว่างการพัฒนา 1 ครั้งเท่านั้น ตอนนี้ต้องเปลี่ยนใหม่เป็น งาน 1 งานย่อยเป็นหลายส่วน เมื่อทำเสร็จส่วนย่อยๆ 1 ส่วน ก็นำไปติดตั้งและทดสอบทันที ทำให้ได้ทดสอบหลายครั้ง ทดลองตั้งค่าหลายครั้ง และได้รับ feedback ทันทีในแต่ละส่วนๆ ทำให้ตรงกับความต้องการจริงๆ ปัญหาไม่เป็นดินพอกหางหมูในตอนท้าย

นอกจากระบบการทำงานดีแล้วเครื่องมือก็เป็นสิ่งสำคัญ

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

  • ปัญหาที่ว่าตอนทดสอบระหว่างพัฒนามันรัน/ติดตั้งได้แต่ตอนที่ให้คนอื่นทดสอบทำไมมันรัน/ติดตั้งไม่ได้ซะงั้น?

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

  • ตัวช่วยในการทำงานแบบ automation เองก็สำคัญ เพื่อลดการทำงานที่ซ้ำซ้อน เช่น การทดสอบในส่วนนี้มีการทดสอบเกิดขึ้นแล้ว การส่งส่วนงานชิ้นถัดไปก็ต้องมาทดสอบส่วนนี้อีก ถ้าเรามีตัวช่วยในการทดสอบส่วนที่ซ้ำซ้อนนี้ก็สามารถช่วยได้มาก

สรุปแล้ว DevOps ก็คือแนวทางอีกแนวทางหนึ่งของระบบการพัฒนาซอฟแวร์ ที่ลดปัญหาการทำงานแบบเดิมที่ต้องเลือกระหว่างความเสถียรภาพกับความเร็วในการส่งมอบ ด้วยการค่อยๆส่งทีละส่วนทำให้ Ops ได้ทดสอบระบบได้บ่อยขึ้น ลูกค้าได้เห็นชิ้นงานได้ถี่ขึ้น Dev ก็สามารถรับ feedback ได้มากขึ้น ทำให้การพัฒนารวดเร็วแต่ก็มีความสถียรภาพได้นั่นเอง

Develeper

Author Develeper

More posts by Develeper

เราใช้คุกกี้เพื่อพัฒนาประสิทธิภาพ และประสบการณ์ที่ดีในการใช้เว็บไซต์ของคุณ คุณสามารถศึกษารายละเอียดได้ที่ นโยบายความเป็นส่วนตัว และสามารถจัดการความเป็นส่วนตัวเองได้ของคุณได้เองโดยคลิกที่ ตั้งค่า

ตั้งค่าความเป็นส่วนตัว

คุณสามารถเลือกการตั้งค่าคุกกี้โดยเปิด/ปิด คุกกี้ในแต่ละประเภทได้ตามความต้องการ ยกเว้น คุกกี้ที่จำเป็น

ยอมรับทั้งหมด
จัดการความเป็นส่วนตัว
  • คุกกี้ที่จำเป็น
    เปิดใช้งานตลอด

    ประเภทของคุกกี้มีความจำเป็นสำหรับการทำงานของเว็บไซต์ เพื่อให้คุณสามารถใช้ได้อย่างเป็นปกติ และเข้าชมเว็บไซต์ คุณไม่สามารถปิดการทำงานของคุกกี้นี้ในระบบเว็บไซต์ของเราได้
    รายละเอียดคุกกี้

  • คุกกี้สำหรับการติดตามทางการตลาด

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

บันทึกการตั้งค่า