Devops คืออะไร ทำไมควรมีในองค์กร
การปล่อยซอฟต์แวร์ออกมาสู่ตลาดได้เร็วนั้น เท่ากับว่าได้เปรียบคู่แข่งในด้านของการแข่งขัน หลาย ๆ คนอาจสงสัยว่า ทำไมบริษัทชั้นนำส่วนใหญ่ถึงสามารถปล่อยซอฟต์แวร์ที่เพิ่งจะพัฒนาขึ้นใหม่ออกมาสู่ตลาดได้อย่างรวดเร็ว ซึ่งโดยปกติแล้วในการที่จะพัฒนาซอฟต์แวร์นั้นจะใช้ระยะเวลาในการดำเนินงานยาวนาน
ดังนั้น สิ่งที่ทุกบริษัทต้องการ คือการส่งมอบงานให้ถึงมือลูกค้าได้อย่างรวดเร็วและมีประสิทธิภาพมากที่สุด ซึ่งหนึ่งในวิธีการที่จะทำให้บรรลุเป้าหมาย คือ การนำรูปแบบการทำงาน DevOps มาประยุกต์ใช้ในองค์กร ในบทความนี้จะมาอธิบายให้เข้าใจกันว่า DevOps คืออะไรและมีความสำคัญอย่างไร
DevOps = Dev + Ops
- Dev ย่อมาจากคำว่า ‘Development’ ซึ่งหมายถึง ทีมที่ทำหน้าที่ในการพัฒนาระบบให้กับธุรกิจ เพื่อให้เพิ่มประสิทธิภาพ เพิ่มความสามารถในการแข่งขัน และตามการเปลี่ยนแปลงของตลาดได้ทัน
- Ops ย่อมาจากคำว่า ‘Operation’ ซึ่งหมายถึง ทีมปฏิบัติการที่ทำหน้าที่ให้บริการระบบที่มีประสิทธิภาพ ดูแลความเสถียร และสามารถส่งมอบให้กับลูกค้าได้ภายในเวลาที่กำหนด
(Image: compuware.com)
จะเห็นได้ว่า การดำเนินงานของทั้งสองทีมนั้นมีหน้าที่และเป้าหมายที่แตกต่างกัน หากเลือกการดำเนินงานรวดเร็วเป็นหลัก ก็จะสามารถส่งมอบงานที่อาจจะมีปัญหาในเรื่องของความเสถียรและประสิทธิภาพได้ แต่หากเลือกความเสถียรและประสิทธิภาพเป็นหลัก อาจจะต้องใช้เวลานานในการส่งมอบให้กับลูกค้าได้เช่นกัน
ยกตัวอย่างเช่น ทีม Development อาจต้องการเพียงแค่เพิ่มฟีเจอร์ให้กับแอปพลิเคชัน โดยอาจมองข้ามเรื่องความเสถียรและประสิทธิภาพของแอปพลิเคชันไป ในทางกลับกันทีม Operation มีความต้องการให้ระบบให้มีความเสถียรมีประสิทธิภาพมากที่สุด จึงทำให้งานออกมาล่าช้า หรือใช้เวลานาน
ดังนั้น เพื่ออุดรอยรั่วและแก้ไขปัญหาความขัดแย้งที่เกิดขึ้นระหว่าง ทีม Development และ Operation การทำงานที่ผสมผสานทั้งสองทีมเข้าด้วยกัน การรับผิดชอบร่วมกัน สื่อสารร่วมกัน หรือที่เรียกว่า DevOps จึงเกิดขึ้น
DevOps คืออะไร
DevOps (Development Operations) คือ รูปแบบการทำงาน และแนวทางต่าง ๆ ที่เกิดขึ้นจากการปรับเปลี่ยนและเชื่อมต่อการทำงานระหว่างทีม Development และ IT Operation เพื่อพัฒนาประสิทธิภาพของขั้นตอนการผลิตซอฟต์แวร์ในองค์กรให้ออกสู่ตลาด หรือตอบสนองความต้องการของลูกค้าให้เร็วขึ้น พร้อมมีการทดสอบระบบ แต่ในขณะเดียวกันซอฟต์แวร์ก็ต้องมีคุณภาพ มีความเสถียร และน่าเชื่อถือ
พูดง่าย ๆ ก็คือ การทำงานแบบ DevOps เป็นการเปลี่ยนเป้าหมายการทำงานจากที่ต้องรับผิดชอบงานในส่วนของตัวเองอย่างเดียวเป็นรับผิดชอบแบบทีมในการดูแลทั้งระบบเพื่อให้เห็นภาพรวม โดย Dev กับ Ops ก็ต้องทำความเข้าใจการทำงานของแต่ละทีมให้ชัดเจน เข้าใจปัญหาที่เกิดขึ้นเพื่อที่จะลดปัญหานั้น ๆ ดังนั้น การทำงานจะเริ่มตั้งแต่การวางแผนวิธีการผลิต การเลือกใช้ภาษาในการโค้ด เขียนโปรแกรม การตรวจสอบคุณภาพเพื่อหาจุดบกพร่องและการแก้ไข การนำโปรแกรมไปรันบน Deployment Platform มอนิเตอร์ตรวจสอบหา Bug ฯลฯ
หลังจากที่องค์กรเปลี่ยน mindset ของทีมมาเป็นแบบ DevOps เพื่อลดปัญหาและหาแนวทางในการร่วมงานกัน สิ่งที่ตามมาคือการหาเทคโนโลยีหรือเครื่องมือที่จะมาช่วยสนับสนุนการทำ Software development & deployment ให้ดีขึ้นอย่างต่อเนื่อง ซึ่งการทำ DevOps ด้วยระบบอัตโนมัติ (Automation) เป็น Best Practice ที่ถูกนำมาใช้มากที่สุด โดยการติดตั้งระบบทั้งหมดให้ทำงานแบบอัตโนมัติแทนคน เพื่อลดข้อผิดพลาดต่าง ๆ
DevOps สำคัญยังไง
สาเหตุที่การทำงานแบบ DevOps ทำให้องค์กรสามารถผลิตซอฟต์แวร์ออกมาได้เร็ว แต่ยังคงคุณภาพได้ดีอยู่ เป็นเพราะว่าในการผลิต โดยปกติแล้ว ทีม Dev จะส่งมอบงานไปให้ Ops หนึ่งครั้งหลังจากที่เสร็จงาน แต่ในการทำงานแบบ DevOps จะส่งแบบย่อย ๆ เพื่อให้นำไปติดตั้งและทดสอบเพื่อเก็บฟีดแบ็กหลาย ๆ ครั้งและพัฒนาแก้ไขต่อไป เป็นการปรับปรุงกระบวนการทำงานอย่างต่อเนื่องทำให้สุดท้ายแล้วได้สิ่งที่ตรงกับความต้องการจริง ๆ ดังนั้น องค์กรที่นำโมเดล DevOps มาปรับใช้ สามารถลดปัญหาการทำงานที่ซ้ำซ้อน ลดต้นทุนด้านเวลา และค่าใช้จ่ายที่จะเกิดขึ้นในระบบได้
จะเห็นได้ว่าคอนเซปต์ของ DevOps เป็นแนวคิดที่ดีที่มุ่งเน้นการผลิตซอฟต์แวร์ให้เกิดประโยชน์สูงสุด และเน้นให้เกิดการพัฒนาการติดต่อสื่อสารภายในทีม ถ้าองค์กรสามารถทำให้บุคลากรปรับใช้แนวคิดนี้ได้กับโปรเจกต์ต่าง ๆ จะทำให้ระบบการทำงานมีประสิทธิภาพและเป็นที่ต้องการในธุรกิจมากยิ่งขึ้น
ติดตามอ่านบทความดี ๆ ที่น่าสนใจ ไม่ว่าจะเป็น Machine Learning, Startup, Design, Software Development และ Management ทาง Senna Labs Blog ได้ทุกวัน