Anantaya Pornwichianwong|23rd November 2022
DevOps กับ MLOps เป็น Buzzword ที่เรามักได้ยินกันบ่อย ๆ ในแวดวงเทคโนโลยีในปัจจุบัน แต่หลายคนอาจจะยังสงสัยว่าคำเหล่านี้คืออะไร และเจ้าตัว Ops ที่ห้อยท้ายคำนั้นหมายถึงอะไรกันแน่?
การพัฒนาเทคโนโลยีในปัจจุบันเป็นสนามที่มีผู้เล่นมากหน้าหลายตา และเดินหน้าไปอย่างรวดเร็ว ความเร็วจึงกลายมาเป็นปัจจัยสำคัญที่ผู้พัฒนาเทคโนโลยีต้องคำนึงถึง แต่ในขณะเดียวกันก็ไม่สามารถละเลยคุณภาพและเสถียรภาพของเทคโนโลยีได้
มาตรฐานที่ต้องการทั้งความเร็วและคุณภาพนี้เอง ทำให้เกิดกระบวนการทำงานแบบใหม่ทั้งในสาขาของการพัฒนาซอฟต์แวร์และการพัฒนาโมเดลแมชชีนเลิร์นนิงขึ้น ซึ่งก็คือ DevOps และ MLOps ที่เราจะมาพูดถึงกันในวันนี้นั่นเอง
เซอร์ทิสขอพาผู้อ่านทุกท่านไปความเข้าใจว่า DevOps และ MLOps คืออะไร และการทำงานในกระบวนการเหล่านี้น่าสนใจแค่ไหน อ่านต่อไปพร้อม ๆ กันเลยครับ
ทำความรู้จัก Dev, ML, และ Ops
กระบวนการทำงานแบบ DevOps และ MLOps คือการนำเอาคำสองคำที่สื่อถึงสองทีมที่แตกต่างกันมาผสมผสานกัน ได้แก่คำว่า ‘Dev’ ที่มาจากคำว่า ‘Developer’ คำว่า ‘ML’ ที่มาจาก ‘Machine Learning’ และ ‘Ops’ ที่มาจาก ‘Operations’ คำทั้งสามคำนี้สื่อถึงหน้าที่ที่แตกต่างกันไป เมื่อมารวมกันแล้วจึงเกิดเป็นกระบวนการทำงานแบบใหม่ที่ผสมรวมระหว่างสองทีมนั่นเอง
Dev คืออะไร?
Dev ย่อมาจากทีม Developer หรือทีมนักพัฒนาซอฟต์แวร์ คอยพัฒนาโปรแกรมต่าง ๆ ให้กับองค์กรหรือธุรกิจต่าง ๆ ตามความต้องการ เพื่ออำนวยความสะดวกและเพิ่มประสิทธิภาพในการทำงานโดยการใช้ซอฟต์แวร์อัตโนมัติเข้ามาช่วย
ML คืออะไร?
ML ย่อมาจาก Machine Learning เป็นทีมที่จะพัฒนาโมเดลแมชชีนเลิร์นนิงขึ้นมาเพื่อใช้ในการวิเคราะห์ข้อมูลมหาศาลแบบอัตโนมัติ เพื่อหาข้อมูลเชิงลึกทางธุรกิจที่นำมาประกอบการตัดสินใจเชิงธุรกิจและปรับปรุงการทำงานให้มีประสิทธิภาพกว่าเดิม
Ops คืออะไร?
Ops ย่อมาจากคำว่า Operations ซึ่งนับเป็นฝ่ายหนึ่งในกระบวนการผลิตซอฟต์แวร์ ที่เน้นโฟกัสไปที่การสร้างซอฟต์แวร์ให้มีความเสถียร ผิดพลาดน้อยลง และนำไปใช้งานจริงได้
DevOps คืออะไร?
DevOps เป็นกระบวนการทำงานที่รวมเอาทีม Developer กับทีม Operations มารวมกันไว้ในกระบวนการเดียวกัน โดยรวมขั้นตอนของการพัฒนาซอฟต์แวร์ ทดสอบ และนำไปใช้ ซึ่งเคยเป็นกระบวนการที่ทำแยกกันให้รวมกันเป็นหนึ่ง และทำวนซ้ำจนกว่าจะได้ซอฟต์แวร์ที่ดีที่สุด
กล่าวคือ โดยปกติแล้วทีม Dev จะเน้นการพัฒนาซอฟต์แวร์ตามที่ลูกค้าต้องการให้เสร็จอย่างรวดเร็ว โดยรับผิดชอบแค่การพัฒนาและทดสอบซอฟต์แวร์ ในขณะที่ทีม Operations จะเน้นการพัฒนาซอฟต์แวร์ต่อให้เสถียรและใช้งานได้จริง ด้วยเป้าหมายที่ต่างกันนี้อาจทำให้เกิดปัญหาในการทำงาน เนื่องจาก Dev จะเน้นความเร็ว ในขณะที่ Ops เน้นความเสถียร จึงใช้เวลาทำงานนานกว่า และส่งมอบงานได้ช้าลง ทำให้เลือกได้แค่อย่างใดอย่างหนึ่งว่าจะเอาความเร็วหรือความเสถียรเป็นหลัก
DevOps จึงเป็นการนำทั้งสองทีมมาทำงานและสื่อสารร่วมกันในกระบวนการเดียวตลอดทั้งกระบวนการ ให้บรรลุทั้งสองเป้าหมายได้พร้อมกัน รวมถึงยังมีตำแหน่งเช่น DevOps Engineer ที่ต้องอาศัยความสามารถทั้งในการพัฒนาซอฟต์แวร์และมีความรู้เรื่องการนำซอฟต์แวร์ไปใช้งานได้จริง หรือในกระบวนการก็อาจเป็นการทำงานร่วมกันระหว่าง Software Developer รับผิดชอบเรื่องพัฒนาซอฟต์แวร์ และ Site Reliability Engineer ในการดูแลเสถียรภาพของซอฟต์แวร์ เป็นต้น
MLOps คืออะไร?
เช่นเดียวกัน MLOps คือการนำเอาทีมพัฒนาโมเดลแมชชีนเลิร์นนิงมาทำงานร่วมกับทีม Operations เพื่อออกแบบและพัฒนาโมเดลที่สามารถวิเคราะห์ข้อมูลได้อัตโนมัติและใช้งานได้จริงพร้อมส่งมอบ โดยในกระบวนการจะเป็นการรวมเอาขั้นตอนตั้งแต่การตีโจทย์ ออกแบบโมเดล การเตรียมข้อมูล พัฒนาและเทรนโมเดล ไปจนถึงการทดสอบว่าโมเดลสามารถนำไปติดตั้งใช้งานได้จริง มีความเสถียร และมีคุณภาพ และทำงานเป็นลูปวนซ้ำจนกว่าจะได้โมเดลที่มีคุณภาพสูงสุด MLOps จะช่วยลดเวลาในการพัฒนาโมเดลที่แต่เดิมต้องพัฒนาก่อนแล้วค่อยมาดูเรื่องความเสถียร ให้ทำสองอย่างควบคู่กันไป ส่งมอบให้ลูกค้าได้อย่างมีคุณภาพในเวลาอันรวดเร็ว
ตำแหน่งที่มีส่วนร่วมในกระบวนการ MLOps มีหลากหลาย เช่น Data Scientist ช่วยจัดการเตรียมข้อมูล และ Machine Learning Engineer รับผิดชอบในการพัฒนาโมเดล เป็นต้น
DevOps และ MLOps ต่างกันอย่างไร?
DevOps และ MLOps จะมีหลักการการทำงานที่เหมือนกันและมีกระบวนการทำงานแบบวนลูปในการสร้าง ทดสอบ และนำไปใช้ เป็นลูปที่ทำวนต่อเนื่องจนกว่าจะได้ซอฟต์แวร์หรือโมเดลที่ดีที่สุด เน้นการพัฒนาและลองใช้ไปพร้อม ๆ กันเพื่อประสิทธิภาพและความรวดเร็วในการทำงาน
แต่ตัวเนื้องานหลัก ๆ นั้นแตกต่างกันโดยสิ้นเชิง กล่าวคือ DevOps จะเน้นการทำงานกับซอฟต์แวร์ สร้างซอฟต์แวร์ เขียนโค้ดต่าง ๆ และนำซอฟต์แวร์ไปติดตั้งเพื่อใช้งานจริง ในขณะที่ MLOps จะทำงานกับข้อมูลและโมเดลแมชชีนเลิร์นนิง ตั้งแต่การเก็บข้อมูล ทำความสะอาด เตรียมข้อมูล สร้างโมเดล เทรนโมเดล และสอนโมเดลให้เรียนรู้เองได้อัตโนมัติ
เป้าหมายของ DevOps คือการสร้างซอฟต์แวร์มาเป็นเครื่องมือในการทำงาน เพื่อทำให้งานมีประสิทธิภาพ ทำงานได้รวดเร็วและสะดวกสบายขึ้น ในขณะที่ MLOps คือการสร้างโมเดลที่จะช่วยวิเคราะห์ข้อมูลเพื่อนำมาประกอบการตัดสินใจทางธุรกิจ เพิ่มกำไร และปรับปรุงการทำงาน
โดยสรุปแล้ว สองกระบวนการนี้มักจะใช้ความเชี่ยวชาญและมีเป้าหมายในการทำงานที่แตกต่างกัน แต่มีหัวใจสำคัญที่คล้ายกันคือเป็นการเชื่อมต่อกระบวนการที่เคยทำแยกกัน ให้มาทำรวมกัน และเน้นการสื่อสารและการทำงานร่วมกันระหว่างทีมเข้ามาย่นระยะเวลาและเพิ่มประสิทธิภาพทั้งในการพัฒนาซอฟต์แวร์และโมเดลให้มากกว่าเดิม
ตัวอย่างงานแบบ DevOps และ MLOps
DevOps และ MLOps ไม่ใช่ตำแหน่ง แต่เป็นกระบวนการในการทำงานที่ประกอบไปด้วยหลากหลายหน้าที่ทำงานร่วมกัน ในการเลือกใช้กระบวนการใด ๆ ในการทำงานนั้นก็ขึ้นอยู่กับว่าเรากำลังทำงานกับอะไร ทำงานกับการวิเคราะห์หาข้อมูลประกอบการตัดสินใจ หรือกำลังอยากสร้างโปรแกรมมาอำนวยความสะดวกในการทำงาน และเราสามารถใช้สองกระบวนการในการทำโปรเจ็กต์เดียวได้
เช่น เราสามารถใช้ MLOps ในการพัฒนาโมเดลแมชชีนเลิร์นนิงที่วิเคราะห์ข้อมูลการทำงานของเครื่องจักรต่าง ๆ ในโรงงาน และใช้ DevOps มาสร้างโปรแกรมที่ให้ลูกค้าสามารถเข้าไปเช็กภาพรวมการทำงานในโรงงานได้ ภายในประกอบด้วยโมเดลดังกล่าวแสดงผลการวิเคราะห์ข้อมูลเป็น Dashboard ที่ใช้งานได้ง่าย เป็นต้น
พอเข้าใจการทำงานของสองกระบวนการนี้กันแล้วใช่ไหมครับ? ถ้าหากใครสนใจร่วมสัมผัสการทำงานแบบ DevOps และ MLOps ที่เป็นฟันเฟืองสำคัญของเทคโนโลยียุคใหม่ พร้อมเพิ่มศักยภาพตัวเองด้วยความท้าทายจากลูกค้าหลากหลายอุตสาหกรรม เซอร์ทิสคือที่ที่คุณกำลังมองหา ดูตำแหน่งที่เปิดรับสมัครได้ที่ https://www.careers.sertiscorp.com/jobs
Anantaya Pornwichianwong