มารู้จักกับ DevOps ผู้ประสานงานแห่งทีมนักพัฒนาที่ทุกบริษัทต้องมี
26 January 2023
ทำความรู้จักกับ DevOps ผู้ประสานงานแห่งทีมนักพัฒนาซอฟต์แวร์
การส่งมอบซอฟต์แวร์แต่ละครั้ง มีกระบวนการตั้งแต่ต้นน้ำไปจนถึงปลายน้ำมากมายหลายขั้นตอน และต้องอาศัยการทำงานร่วมกันจากหลายทีม ทั้งหมดนี้นำพามาซึ่งปัญหาเรื่องระยะเวลาในการผลิตที่ยาวนานและช่องโหว่เรื่องการตรวจสอบคุณภาพจากการผลิต ด้วยเหตุนี้ การมีตัวตนของ DevOps ที่เข้ามาทำหน้าที่ประสานงาน คอยสอดส่องตลอดกระบวนการพัฒนาตลอดไปจนถึงขั้นตอนของการส่งมอบ จึงมีความสำคัญมากสำหรับบริษัทซอฟต์แวร์ในยุคนี้
DevOps ย่อมาจากอะไร
DevOps ย่อมาจาก Development Operations เป็นตำแหน่งที่เกิดจากการรวมกันของทีม Developer ที่ทำหน้าที่เป็นผู้พัฒนา และทีม Operation ผู้ทำหน้าที่ตรวจสอบคุณภาพซอฟต์แวร์ เข้าไว้ด้วยกัน เพื่อให้งานเสร็จสิ้นได้ในระยะเวลาที่รวดเร็วกว่าที่เคย สามารถ Deploy (การติดตั้งระบบ หรือนำโค้ดที่เขียนไว้ไปใช้งานจริง) ได้ไวขึ้น ในขณะที่ตัวระบบเองยังสามารถใช้งานได้อย่างสมบูรณ์แบบตามเป้าประสงค์ที่ตั้งไว้
ทั้งนี้ บางแห่งก็อธิบายว่า DevOps เป็นการอธิบายถึงแนวคิดการมองงานพัฒนาระบบแบบครบลูปเป็นก้อนเดียวกัน เป็นงานของทีมเดียวกันที่มีหน้าที่รับผิดชอบการพัฒนาซอฟต์แวร์ตัวหนึ่งร่วมกัน ไม่ใช่มองเป็นงานส่วนของใครของมันอย่างที่เคยเป็น
ประโยชน์ของการมี DevOps Engineer
-
ส่งมอบงานได้รวดเร็วยิ่งขึ้น
การทำงานร่วมกันระหว่างทีม Dev และทีม Ops ในทุกวันนี้มีช่องโหว่ในการส่งมอบหลายอย่าง หลายครั้งที่การพัฒนามักจะแยกออกจากการตรวจสอบระบบ ทำให้พึ่งมารู้ทีหลังว่าตัวโค้ดมีความบกพร่องตอนที่ทำการติดตั้ง ซึ่งกว่าจะได้ส่งฟีดแบ็กกลับไปให้ Dev แก้ปัญหาและนำไปขึ้น Production อีกครั้ง ก็ต้องใช้เวลามากกว่าที่คิด ดังนั้นการมี Devops เข้ามาเชื่อมการทำงานของ 2 ส่วนนี้ ช่วยวางโครงสร้างของการพัฒนาให้เป็นไปอย่างมีระเบียบ ค่อยๆ แก้ปัญหาในระหว่างที่มีการพัฒนาตัวระบบตั้งแต่แรก จะช่วยลดระยะเวลาในการส่งมอบงานได้มาก
-
ช่วยการันตีคุณภาพของซอฟต์แวร์
ในฐานะคนกลาง DevOps จะทำหน้าที่มอนิเตอร์โค้ดก่อนนำไปติดตั้ง และมีหน้าที่คัดสรรเครื่องมือต่างๆ ไม่ว่าจะเป็น Docker หรือ CI/CD Platforms เพื่อเข้ามาช่วยเหลือในการตรวจสอบบั๊กใดๆ ก็ตามที่อาจเกิดขึ้นในขั้นตอนการพัฒนา ทำให้เกิดการติดตามและแก้ไขข้อบกพร่องได้อย่างละเอียดตั้งแต่ก่อนการส่งไปให้ทีม Ops นำไปติดตั้ง ซึ่งโดยรวมจะลดเวลาในการส่งมอบงานได้มากขึ้น และช่วยการันตีคุณภาพของระบบก่อนการนำไปใช้งานจริงได้อีกต่อหนึ่งด้วย
-
เป็นประโยชน์กับระบบในระยะยาว
การทำงานพัฒนาระบบเป็นงานที่ไม่มีวันเสร็จสิ้นอย่างแท้จริง ต้องเข้าใจว่าบั๊กสามารถเกิดขึ้นได้ เมื่อมี Input ที่มากขึ้นเข้ามาในระบบ หรือตอนที่บริษัทมีแผนจะเพิ่มฟีเจอร์ต่างๆ เข้าไปในระบบเดิม เมื่อถึงเวลานั้น การที่ DevOps เข้ามาช่วยวางระบบให้สามารถทำการตรวจสอบข้อบกพร่องแบบอัตโนมัติเมื่อมีการเพิ่มโค้ดใหม่ได้ตั้งแต่แรก จะช่วยร่นระยะเวลาและแรงงานที่ต้องใช้ในการแก้ไขปัญหาได้ในภายหลัง
ลิสต์เครื่องมือจำเป็นของ DevOps
- Git และ GitHub: เพื่อตรวจสอบเวอร์ชันและการเปลี่ยนแปลงที่เกิดขึ้นกับโค้ด
- Docker: ใช้สำหรับการทดสอบและติดตั้งระบบบนอุปกรณ์ที่ต่างกัน โดย Docker จะบรรจุซอฟต์แวร์ที่เราสร้างลงไปในหน่วยที่เรียกว่า คอนเทนเนอร์ ซึ่งในนั้นจะรวบรวมทุกสิ่งที่ต้องใช้ในการสร้างระบบไว้ด้วยกัน ทำให้สามารถนำไปติดตั้งบนอุปกรณ์ที่ต่างกันได้รวดเร็วยิ่งขึ้น
- CI/CD Platform: ระบบอัตโนมัติสำหรับการมอนิเตอร์ตลอดช่วงเวลาพัฒนาระบบ ตั้งแต่การเขียนโค้ดไปจนถึงการทดสอบการใช้งานเพื่อที่จะติดตั้งลงบน Production ต่อไป
- Ansible: เครื่องมือสำหรับการติดตั้งและการจัดการโครงสร้างพื้นฐานให้เป็นไปโดยอัตโนมัติ
สกิลที่จำเป็นของ DevOps Engineer
-
ทักษะ Cloud Computing
Cloud Computing หมายถึงการผลิตซอฟต์แวร์และให้บริการผ่านระบบคลาวด์ ทำให้ทุกคนที่สามารถเข้าถึงระบบอินเทอร์เน็ตทุกคนสามารถเข้าถึงบริการของเราได้ไม่ว่าจะใช้งานจากอุปกรณ์ไหนหรือที่ใด DevOps จำเป็นต้องเข้าใจในเรื่องนี้เพราะต้องเป็นคนกลางที่รับหน้าที่ตรวจสอบระหว่างการพัฒนาไม่ให้เกิดความบกพร่องเมื่อต้องให้บริการจริง พร้อมกับจะต้องคอยดูแลทดสอบระบบใหม่ทุกครั้งที่มีการเปลี่ยนแปลงโค้ดด้วย
-
ความเข้าใจในการเขียนโค้ด
แม้ว่าหน้าที่หลักของ DevOps Engineer จะไม่ใช้การพัฒนาระบบหรือเขียนโค้ดด้วยตัวเอง แต่เพื่อที่จะได้เข้าใจคำสั่งที่ทาง Dev เขียนขึ้นและดูว่าตรงกับเป้าหมายของการซอฟต์แวร์ไหม DevOps ก็ต้องมีพื้นฐานเรื่องภาษาคอมพิวเตอร์เช่นกัน
-
ทักษะการทำ Automation
หลังจากการส่งมอบและใช้งานซอฟต์แวร์ไม่ว่าจะในรูปแบบแอปพลิเคชันหรือเว็บไซต์ เมื่อระบบต้องรองรับจำนวนผู้ใช้งานที่มากเกินกว่าที่คาดไว้ อาจทำให้ระบบเกิดบั๊กและไม่สามารถใช้งานต่อได้อย่างราบรื่น การทำให้ระบบสามารถตรวจสอบบั๊กและแก้ไขปัญหาพื้นฐานบางอย่างได้แบบอัตโนมัติจึงเป็นหนึ่งในหน้าที่ของ DevOps
-
ความรู้ความเข้าใจในการใช้เครื่องมือ
DevOps ควรรู้วิธีการใช้งานเครื่องมืออย่าง Docker, CI/CD Platform, Kubernetes (K8s) เป็นอย่างน้อย เพื่อให้สามารถมอนิเตอร์และติดตั้งระบบได้อย่างมีประสิทธิภาพ รวมถึงต้องมีทักษะในการใช้เครื่องมือสำหรับการสื่อสารภายระหว่างทีมต่างๆ ด้วย เช่น Jira หรือ Slack เป็นต้น
ก่อนจะจากกันไป ทาง TechUp มีคอร์สสอนเขียนโปรแกรม ทักษะพื้นฐานสำหรับคนที่ต้องการทำงานในสายนักพัฒนาจากทางเรามาแนะนำ โดยหลักสูตรนี้จะเป็นการเตรียมความพร้อมในทักษะที่จำเป็นสำหรับการทำงาน ทั้ง Technical Skills, Soft Skills, English Skills และ Career Skills ภายในระยะเวลาเพียง 4 เดือนเท่านั้น พร้อมกับมีการันตีการช่วยหางานหลังเรียนจบอีกด้วย สนใจอ่านรายละเอียดคอร์สของเราได้เลยที่นี่
บทความที่น่าสนใจ
ดูทั้งหมด