อ่านประมาณ 6 นาที
ระดับเริ่มต้น
หมวด: DevOps
อ้างอิง: GitHub Blog — Automate Dependabot pull request triage
ทีมส่วนใหญ่มี pull request อัปเดต dependency ค้างอยู่เป็นสิบ เพราะการไล่ดูทีละรายการกินเวลาแต่ไม่ต้องใช้ความเชี่ยวชาญ บทความนี้สรุปวิธีให้ระบบอัตโนมัติคัดกรองให้ก่อน แล้วส่งเฉพาะเรื่องที่ต้องใช้วิจารณญาณมาให้คนดู
ปัญหาที่ทุกทีมเจอเหมือนกัน
เครื่องมืออัปเดต dependency อัตโนมัติทำงานได้ดีในแง่การแจ้งเตือน แต่สร้างคอขวดใหม่ขึ้นมาแทน คือ pull request จำนวนมากที่มีความเร่งด่วนต่างกัน บางรายการเป็นการขยับเลขเวอร์ชันย่อยที่แทบไม่มีผลอะไร บางรายการเป็นการอัปเกรดเวอร์ชันหลักที่อาจทำให้ระบบพัง คนที่ต้องมานั่งไล่ดูจึงเสียเวลาไปกับงานซ้ำ ๆ ที่ไม่ได้ต้องใช้ความเชี่ยวชาญเฉพาะทาง
ผลลัพธ์ที่เห็นได้ทั่วไปคือ pull request กองสะสมจนไม่มีใครกล้าแตะ แล้วเมื่อถึงวันที่ต้องอัปเดตจริงเพราะมีช่องโหว่ ทีมต้องอัปเกรดข้ามหลายเวอร์ชันพร้อมกัน ซึ่งเสี่ยงกว่าการทยอยทำมาก
ให้ระบบทำอะไร และไม่ทำอะไร
งานที่มอบให้ระบบทำได้อย่างสบายใจคือการทบทวน pull request ที่เปิดค้างอยู่ทั้งหมด จัดกลุ่มตามระดับความเสี่ยง ระบุว่ารายการใดเป็นการอัปเดตระดับย่อยที่ปลอดภัย ตรวจว่าผ่านการทดสอบอัตโนมัติแล้วหรือยัง แล้วสรุปออกมาเป็นรายการเดียวที่จัดลำดับความสำคัญไว้แล้ว แทนที่จะให้คนไปไล่เปิดทีละอัน
ส่วนงานที่ระบบต้องส่งต่อให้คนตัดสินคือการอัปเกรดเวอร์ชันหลัก และ dependency ที่ต้องตรวจสอบเพิ่มเติม รายการเหล่านี้ถูกทำเครื่องหมายไว้ให้คนดู ไม่ถูกรวมเข้าอัตโนมัติ ซึ่งเป็นเส้นแบ่งที่ถูกต้อง เพราะการอัปเกรดเวอร์ชันหลักมักมาพร้อมการเปลี่ยนพฤติกรรมที่ต้องอ่านบันทึกการเปลี่ยนแปลงประกอบ
ภาพประกอบบทความหมวดDevOps
ตั้งค่าอย่างไร
ขั้นตอนที่บทความอธิบายมีห้าขั้น เริ่มจากสร้างงานอัตโนมัติใหม่ ตั้งชื่อให้สื่อความ แล้วเลือกจังหวะที่จะให้ทำงาน ตัวอย่างในบทความตั้งให้รันทุกวันก่อนเวลาเข้างาน ขั้นที่สองคืออธิบายงานเป็นภาษาปกติว่าต้องการให้ทบทวน pull request จัดกลุ่มตามความเสี่ยง และระบุรายการที่ปลอดภัย ขั้นที่สามคือเลือกรีโปที่ต้องการ ขั้นที่สี่คือสั่งสร้างแล้วรันทดสอบทันทีโดยไม่ต้องรอรอบตามกำหนดการ และขั้นที่ห้าคือดูผลสรุปแล้วทำงานต่อจากตรงนั้น
รายละเอียดด้านความโปร่งใสที่ควรสังเกตคือระบบเก็บประวัติการทำงานไว้ทุกครั้ง ทั้งเวลาที่รัน สิ่งที่ทำ และผลที่ได้ ซึ่งเป็นสิ่งที่ทำให้ระบบอัตโนมัติไม่กลายเป็นกล่องดำที่ไม่มีใครกล้าเชื่อ
ภาพประกอบบทความหมวดDevOps
ข้อแนะนำสำหรับทีมไทย
หลักการเลือกงานมาทำอัตโนมัติที่บทความแนะนำคือเริ่มจากงานที่คุณทำเป็นประจำอยู่แล้วและรู้ดีว่าผลลัพธ์ที่ถูกต้องหน้าตาเป็นอย่างไร เพราะจะตรวจสอบได้ทันทีว่าระบบทำถูกหรือไม่ ต่างจากการเริ่มด้วยงานที่ตัวเองยังไม่แน่ใจ ซึ่งจะแยกไม่ออกระหว่างผลลัพธ์ที่ดีกับผลลัพธ์ที่ดูดี
ข้อเสริมจากทีมของเราสำหรับบริบทงานรับจ้างพัฒนาในไทยคือ ถ้าดูแลหลายโปรเจกต์ให้ลูกค้าหลายราย ควรกำหนดนโยบายให้ชัดว่าโปรเจกต์ใดอนุญาตให้รวมการอัปเดตระดับย่อยอัตโนมัติได้ และโปรเจกต์ใดต้องผ่านการอนุมัติทุกครั้ง โดยเฉพาะระบบที่เกี่ยวกับการเงินหรือข้อมูลส่วนบุคคล ควรตั้งไว้ที่ต้องอนุมัติเสมอ และไม่ว่ากรณีใดต้องมีชุดทดสอบอัตโนมัติที่เชื่อถือได้ก่อน เพราะการรวมโค้ดอัตโนมัติโดยไม่มีตาข่ายรองรับคือการย้ายความเสี่ยงไปไว้ที่ระบบจริงเฉย ๆ
สรุปสาระสำคัญ
- ปัญหาที่ทุกทีมเจอเหมือนกัน
- ให้ระบบทำอะไร และไม่ทำอะไร
- ตั้งค่าอย่างไร
แหล่งอ้างอิงเรียบเรียงจาก GitHub Blog — Automate Dependabot pull request triage —
อ่านบทความต้นฉบับภาพปก: GitHub Blog · ลิขสิทธิ์ภาพเป็นของเจ้าของต้นฉบับ ใช้ประกอบการรายงานพร้อมอ้างอิงแหล่งที่มา
มีคำถามเพิ่มเติมเกี่ยวกับบทความนี้? เขียนหาเราได้ที่
info@smart-cyber-tech.com
บริการที่เกี่ยวข้องจากทีมงาน Smart Cyber Tech
แบ่งปันบทความนี้:
LINE
Facebook
X
ปรึกษาทีมของเรา