Datadog ใช้ Codex สำหรับการตรวจสอบโค้ดระดับระบบ
Codex ช่วยให้ Datadog นำบริบทระดับระบบทั้งหมดมาใช้ในการตรวจสอบโค้ดทุกครั้งเพื่อป้องกันเหตุการณ์ไม่พึงประสงค์และรักษาความไว้วางใจของลูกค้า
Datadog(เปิดในหน้าต่างใหม่) ให้บริการแพลตฟอร์มด้านการสังเกตการณ์ระบบ ที่ได้รับความนิยมมากที่สุดแห่งหนึ่งของโลก ช่วยให้องค์กรต่างๆ ตรวจสอบ ติดตาม แก้ไขปัญหา และรักษาความปลอดภัยของระบบแบบกระจายที่มีความซับซ้อน เมื่อระบบเกิดข้อขัดข้อง ลูกค้าคาดหวังให้ Datadog ช่วยระบุปัญหาได้อย่างรวดเร็ว ดังนั้นความเสถียรและความน่าเชื่อถือจึงต้องได้รับการออกแบบไว้ตั้งแต่ก่อนโค้ดจะเข้าสู่ระบบสำหรับใช้งานจริง
สำหรับทีมวิศวกรรมของ Datadog นั่นทำให้การตรวจสอบโค้ดเป็นช่วงเวลาที่มีความสำคัญสูง มันไม่ใช่แค่เรื่องของการจับข้อผิดพลาดเท่านั้น แต่เป็นเรื่องของการทำความเข้าใจว่าการเปลี่ยนแปลงส่งผลกระทบเป็นลูกโซ่ผ่านระบบที่เชื่อมโยงถึงกันอย่างไร ซึ่งเป็นด้านที่การวิเคราะห์แบบคงที่และเครื่องมือที่อิงกฎแบบดั้งเดิมมักจะไม่สามารถทำได้ดี
เพื่อรับมือกับความท้าทายนี้ ทีม AI Development Experience (AI DevX) ของ Datadog จึงหันไปใช้ Codex ซึ่งเป็นเอเจนต์การเขียนโค้ดจาก OpenAI ที่นำการให้เหตุผลระดับระบบมาใช้ในการตรวจทานโค้ด และช่วยชี้ให้เห็นความเสี่ยงที่มนุษย์มองไม่เห็นได้ง่ายในระดับขนาดใหญ่
“การประหยัดเวลาเป็นเรื่องจริงและสำคัญ” Brad Carter หัวหน้าทีม AI DevX ของ Datadog กล่าว “แต่การป้องกันเหตุการณ์นั้นมีความสำคัญมากกว่ามากในระดับของเรา”
การรีวิวโค้ดอย่างมีประสิทธิภาพที่ Datadog มักจะพึ่งพาวิศวกรอาวุโส ซึ่งเป็นผู้ที่เข้าใจโค้ดเบส ประวัติ และข้อแลกเปลี่ยนด้านสถาปัตยกรรมได้ดีพอที่จะมองเห็นความเสี่ยงเชิงระบบ
แต่บริบทเชิงลึกแบบนั้นขยายให้รองรับในวงกว้างได้ยาก และเครื่องมือตรวจสอบโค้ดด้วย AI ในยุคแรก ๆ ไม่ได้แก้ปัญหานี้ หลายตัวทำงานเหมือนลินเตอร์ขั้นสูง คอยชี้ปัญหาในระดับผิวเผินแต่พลาดความละเอียดอ่อนของระบบในภาพรวม วิศวกรของ Datadog มักพบว่าคำแนะนำนั้นตื้นเกินไปหรือมีเสียงรบกวนมากเกินไป จึงเพิกเฉยต่อคำแนะนำนั้น
Datadog เริ่มทดสอบ Codex ซึ่งเป็นเอเจนต์การเขียนโค้ดจาก OpenAI โดยผสานรวมเข้ากับเวิร์กโฟลว์การพัฒนาแบบสด ใน repository ที่ใหญ่และมีการใช้งานมากที่สุดแห่งหนึ่งของบริษัท pull request ทุกอันได้รับการตรวจสอบโดย Codex โดยอัตโนมัติ วิศวกรตอบสนองต่อความคิดเห็นจาก Codex ด้วยการกดสัญลักษณ์ถูกใจหรือไม่ถูกใจ และแบ่งปันข้อเสนอแนะอย่างไม่เป็นทางการระหว่างทีม หลายคนสังเกตว่าข้อเสนอแนะของ Codex น่าอ่าน ต่างจากเครื่องมือก่อนหน้านี้ที่ให้คำแนะนำที่รกหรือผิวเผิน
เพื่อทดสอบว่าการตรวจสอบที่มี AI ช่วยสามารถทำได้มากกว่าการระบุปัญหาด้านสไตล์หรือไม่ Datadog ได้สร้างเครื่องมือสำหรับการเล่นซ้ำเหตุการณ์
แทนที่จะใช้สถานการณ์สมมุติ ทีมได้กลับไปศึกษาจากเหตุการณ์ในอดีต พวกเขาได้สร้าง pull request ที่มีส่วนทำให้เกิดเหตุการณ์ขึ้นมาใหม่ รัน Codex กับแต่ละรายการราวกับว่าเป็นส่วนหนึ่งของการตรวจสอบต้นฉบับ จากนั้นถามวิศวกรที่รับผิดชอบเหตุการณ์เหล่านั้นว่า ข้อเสนอแนะจาก Codex จะสร้างความแตกต่างได้หรือไม่
ผลลัพธ์: Codex พบมากกว่า 10 กรณี หรือประมาณ 22% ของเหตุการณ์ที่ Datadog ตรวจสอบ ซึ่งวิศวกรยืนยันว่าข้อเสนอแนะที่ Codex ให้มาจะสร้างความแตกต่างได้ มากกว่าเครื่องมืออื่นใดที่ได้รับการประเมิน
เนื่องจาก pull request เหล่านี้ผ่านการรีวิวโค้ดไปแล้ว การทดสอบ replay แสดงให้เห็นว่า Codex เปิดเผยความเสี่ยงที่ผู้รีวิวไม่ทันเห็นในขณะนั้น โดยเป็นการเสริมการตัดสินใจของมนุษย์มากกว่าการแทนที่
การวิเคราะห์ของ Datadog แสดงให้เห็นว่า Codex สามารถระบุปัญหาได้อย่างสม่ำเสมอซึ่งไม่ชัดเจนจาก diff ที่เห็นทันทีเพียงอย่างเดียว และไม่สามารถตรวจจับได้ด้วยกฎที่กำหนดไว้ล่วงหน้า
วิศวกรกล่าวว่าความคิดเห็นของ Codex นั้นมีความหมายมากกว่าแค่ “เสียงรบกวนจากบอท”:
- Codex ชี้ให้เห็นการโต้ตอบกับโมดูลที่ไม่ได้ถูกแก้ไขใน diff
- ระบบระบุว่ามีการขาดหายของความครอบคลุมการทดสอบในส่วนของการเชื่อมโยงระหว่างบริการ
- เน้นให้เห็นการเปลี่ยนแปลงของสัญญา API ที่มีความเสี่ยงต่อการส่งผลกระทบต่อระบบปลายน้ำ
“สำหรับผม ความคิดเห็นจาก Codex ให้ความรู้สึกเหมือนวิศวกรที่ฉลาดที่สุดที่ผมเคยร่วมงานด้วย และมีเวลาไม่จำกัดในการหาข้อบกพร่อง เห็นความเชื่อมโยงที่สมองของฉันไม่สามารถรับรู้ได้ทั้งหมดในคราวเดียว”
ความสามารถในการเชื่อมโยงข้อเสนอแนะจากการรีวิวเข้ากับผลลัพธ์ด้านความน่าเชื่อถือที่เกิดขึ้นจริงนั้นคือสิ่งที่ทำให้ Codex โดดเด่นในการประเมินของ Datadog แตกต่างจากเครื่องมือวิเคราะห์แบบคงที่ Codex จะเปรียบเทียบเจตนาของ pull request กับการเปลี่ยนแปลงโค้ดที่ส่งมา โดยใช้การให้เหตุผลกับฐานโค้ดและการพึ่งพาทั้งหมดเพื่อรันโค้ดและทดสอบเพื่อยืนยันพฤติกรรม
“เป็นครั้งแรกที่ดูเหมือนจะพิจารณา diff ในบริบทที่กว้างขึ้นของโปรแกรม” Carter กล่าว “เป็นสิ่งใหม่และเปิดหูเปิดตา”
สำหรับวิศวกรจำนวนมาก การเปลี่ยนแปลงนั้นได้เปลี่ยนวิธีที่พวกเขามีส่วนร่วมกับการตรวจสอบ AI ไปโดยสิ้นเชิง “ผมเริ่มปฏิบัติต่อความคิดเห็นของ Codex เหมือนกับข้อเสนอแนะในการตรวจสอบโค้ดจริงๆ” Ted Wexler วิศวกรซอฟต์แวร์อาวุโสที่ Datadog กล่าว “ไม่ใช่สิ่งที่คุณจะอ่านผ่านๆ หรือเมินเฉย แต่เป็นสิ่งที่คุ้มค่าแก่การใส่ใจ”
หลังจากการประเมิน Datadog ได้นำ Codex ไปปรับใช้ในวงกว้างมากขึ้นทั่วทั้งทีมวิศวกรรมของบริษัท วันนี้วิศวกรมากกว่า 1,000 คนใช้งานเป็นประจำ
ข้อเสนอแนะส่วนใหญ่ปรากฏขึ้นเองตามธรรมชาติ มากกว่าผ่านตัวชี้วัดอย่างเป็นทางการในเครื่องมือ วิศวกรโพสต์ลงใน Slack เกี่ยวกับข้อมูลเชิงลึกที่เป็นประโยชน์ ความคิดเห็นเชิงสร้างสรรค์ และช่วงเวลาที่ Codex ช่วยให้พวกเขาคิดเกี่ยวกับปัญหาในมุมมองที่แตกต่างออกไป
แม้ว่าการประหยัดเวลาจะมีความสำคัญ แต่ทีมต่างๆ มักจะชี้ให้เห็นถึงการเปลี่ยนแปลงที่มีความหมายมากกว่าในวิธีการทำงาน
“Codex เปลี่ยนความคิดของฉันเกี่ยวกับสิ่งที่การรีวิวโค้ดควรจะเป็น ไม่ใช่เรื่องของการเลียนแบบผู้ตรวจสอบมนุษย์ที่ดีที่สุดของเรา เป้าหมายคือการค้นหาข้อบกพร่องที่สำคัญและกรณีพิเศษที่มนุษย์มักมองข้ามไปเมื่อตรวจสอบการเปลี่ยนแปลงโดยแยกส่วน”
ผลกระทบที่กว้างขึ้นสำหรับ Datadog คือการเปลี่ยนแปลงในวิธีการนิยามการตรวจสอบโค้ด แทนที่จะมองว่าการตรวจทานเป็นจุดตรวจเพื่อจับข้อผิดพลาดหรือเพิ่มประสิทธิภาพเวลาในรอบการทำงาน ตอนนี้ทีมมองว่า Codex เป็นระบบความน่าเชื่อถือหลักที่ทำหน้าที่เป็นพันธมิตร
- การเปิดเผยความเสี่ยงที่เกินกว่าที่ผู้ตรวจสอบแต่ละคนจะสามารถเข้าใจในบริบทได้
- การเน้นย้ำการโต้ตอบระหว่างโมดูลและบริการ
- เพิ่มความมั่นใจในการจัดส่งในปริมาณมาก
- ช่วยให้ผู้ตรวจสอบมนุษย์สามารถมุ่งเน้นที่สถาปัตยกรรมและการออกแบบ
การเปลี่ยนแปลงนี้สอดคล้องกับวิธีที่ผู้นำของ Datadog กำหนดลำดับความสำคัญด้านวิศวกรรม โดยที่ความน่าเชื่อถือและความไว้วางใจมีความสำคัญเท่ากับ หรือมากกว่าความเร็ว
“เราเป็นแพลตฟอร์มที่บริษัทต่างๆ ไว้วางใจเมื่อทุกสิ่งอื่นกำลังล่มสลาย” Carter กล่าว “การป้องกันเหตุการณ์ช่วยเสริมสร้างความไว้วางใจที่ลูกค้ามีต่อเรา”


