การทดสอบนกขมิ้น: มันคืออะไร และคุณจะได้รับประโยชน์จากมันอย่างไร?
เผยแพร่แล้ว: 2022-08-20เป็นไปได้ว่า ถ้าคุณไม่ใช่โปรแกรมเมอร์ คุณไม่เคยได้ยินเกี่ยวกับการทดสอบนกขมิ้นมาก่อน ไม่เป็นไร แต่คุณอาจสงสัยว่ามันคืออะไร และทำไมจึงเรียกว่าการทดสอบ Canary
คำนี้มาจากวลี "นกขมิ้นในเหมืองถ่านหิน" คุณเห็นไหมว่าคนงานเหมืองถ่านหินเคยนำนกคีรีบูนขังในเหมืองถ่านหินด้วย เนื่องจากนกคีรีบูนมีความทนทานต่อก๊าซพิษน้อยกว่า
ดังนั้นคนงานรู้ว่าถ้านกคีรีบูนตายก็ควรออกจากเหมือง ในแง่ของการพัฒนาซอฟต์แวร์ เมื่อสร้างซอฟต์แวร์ใหม่ เป้าหมายคือการตรวจจับและแก้ไขปัญหาให้เร็วที่สุด ก่อนที่ปัญหาจะกลายเป็นปัญหาสำหรับผู้ใช้
การทดสอบ Canary คืออะไร?
การทดสอบ Canary เป็นวิธีการทดลองใช้ฟังก์ชันและคุณลักษณะใหม่ๆ โดยหวังว่าจะมีผลกระทบด้านลบต่อผู้ใช้น้อยที่สุด การทดสอบประเภทนี้มักใช้กับผู้ใช้กลุ่มเล็กๆ ซึ่งแอปพลิเคชันจะมีการเปลี่ยนแปลงเล็กน้อย ด้วยวิธีนี้ ผู้ใช้ส่วนใหญ่จะยังคงใช้ซอฟต์แวร์เวอร์ชันปัจจุบัน ในขณะที่ผู้ใช้กลุ่มเล็กที่เลือกไว้จะใช้เวอร์ชันที่อัปเกรดเล็กน้อย
จุดประสงค์ของแบบฝึกหัดนี้คือเพื่อให้คนส่วนใหญ่ที่ใช้ซอฟต์แวร์ทำงานต่อโดยไม่มีปัญหาใดๆ ในขณะที่ผลักดันการเปลี่ยนแปลงให้กับผู้ใช้เพียงไม่กี่เปอร์เซ็นต์
ทั้งหมดนี้ทำได้โดยที่ยังคงให้แอปพลิเคชันทั้งเวอร์ชันที่มีอยู่และเวอร์ชันใหม่ทำงานพร้อมกัน จากนั้น หากการทดสอบ Canary ไม่แสดงข้อผิดพลาดใดๆ คุณสามารถขยายไปยังผู้ใช้ในเปอร์เซ็นต์ที่มากขึ้นได้
ผู้อ่านยังเพลิดเพลิน : การพัฒนาแอปพลิเคชันอย่างรวดเร็วคืออะไร? 4 ขั้นตอนของระเบียบวิธี RAD – DevriX
จะทำการทดสอบ Canary ได้อย่างไร?
ขั้นตอนแรกในการทดสอบ Canary คือการเปิดใช้ชุดเซิร์ฟเวอร์ส่วนหลังหรือคอนเทนเนอร์เพื่อเรียกใช้โค้ดใหม่ เมื่อมีผู้ใช้ใหม่ โหลดบาลานเซอร์ของคุณจะส่งเปอร์เซ็นต์ของผู้ใช้เหล่านั้นไปยัง “คลัสเตอร์ Canary”
จากนั้น ผู้เชี่ยวชาญ DevOps จะตรวจสอบเซิร์ฟเวอร์เพื่อระบุปัญหาที่อาจเกิดขึ้น เช่น ภาระการประมวลผลหรืออัตรา I/O ที่สูงขึ้น และพึงระลึกไว้เสมอว่า แม้ว่าจะเกิดปัญหาร้ายแรงขึ้น แต่ก็สามารถย้อนกลับสิ่งต่างๆ กลับเป็นเหมือนเดิมได้ง่ายๆ เนื่องจากกระบวนการนี้ไม่ส่งผลกระทบต่อทุกคนที่ใช้ซอฟต์แวร์
มิเช่นนั้น คุณสามารถใช้และทำการทดสอบ Canary โดยอัตโนมัติได้อย่างง่ายดายโดยใช้เครื่องมืออย่าง Spinnaker เพื่อกำหนดจำนวนผู้ใช้โดยใช้โค้ดใหม่
เปอร์เซ็นต์ดังกล่าวโดยทั่วไปจะอยู่ที่ประมาณ 5% และเมื่อทีม DevOps ที่ได้รับมอบหมายไม่มีปัญหาใดๆ พวกเขาก็จะสามารถเพิ่มเปอร์เซ็นต์นั้นได้เรื่อยๆ จนกว่าทุกคนจะใช้โค้ดเวอร์ชันใหม่ของแอปพลิเคชัน
ยิ่งไปกว่านั้น การทดสอบ Canary ยังมีประโยชน์ในสถานการณ์ที่สภาพแวดล้อมการพัฒนาหรือการแสดงละครไม่ตรงกับสภาพแวดล้อมการผลิตอย่างสมบูรณ์ การใช้กลุ่มทดสอบเล็กๆ ของผู้ใช้สามารถเปิดเผยปัญหาใดๆ ที่ไม่ถูกตรวจพบระหว่างสภาวะแวดล้อมการจัดเตรียมหรือการพัฒนา
ผู้อ่านยังเพลิดเพลิน : การทดสอบ A/B ด้วย WordPress: คู่มือฉบับสมบูรณ์ – DevriX
ประโยชน์และข้อเสียของการทดสอบ Canary
มากำหนดข้อดีและข้อเสียในการทดสอบโดยใช้วิธี Canary
ประโยชน์ของการทดสอบนกขมิ้น
- การทดสอบในโลกแห่งความเป็นจริง การทดสอบในสภาพแวดล้อมภายในแบบปิดนั้นยอดเยี่ยม อย่างไรก็ตาม ความสามารถในการทดสอบซอฟต์แวร์กับผู้ใช้จริงคือสิ่งที่จะนำคุณไปอีกขั้นหนึ่ง ด้วยการปรับใช้ Canary คุณสามารถทำอย่างนั้นได้ - ทดสอบแอปพลิเคชันของคุณกับผู้ชมกลุ่มเล็ก โดยไม่ต้องเสี่ยงกับการเปิดตัวแอปพลิเคชันใหม่ทั้งหมด
- การจัดการความเสี่ยงที่ดีขึ้น ค่อยๆ ออกฟีเจอร์ใหม่และทำให้แน่ใจว่าทำงานได้อย่างถูกต้อง ช่วยลดข้อผิดพลาดที่สำคัญและค่าใช้จ่ายทั้งหมดของความล้มเหลวได้อย่างมาก
โดยใช้วิธีการทดสอบแบบ Canary คุณไม่จำเป็นต้องย้อนกลับการอัปเดตที่สำคัญหรือเขียนโค้ดใหม่จำนวนมาก - เชิงธุรกิจ มากขึ้น ต้องการนำเสนอข้อมูลธุรกิจต่อผู้จัดการและการตลาด/พนักงานขายหรือไม่? ด้วย Canary คุณสามารถดูผลลัพธ์ได้อย่างรวดเร็ว ตัวอย่างเช่น หากคุณต้องการทดสอบคุณลักษณะซอฟต์แวร์ใหม่ – คุณสามารถปรับใช้คุณลักษณะใหม่สำหรับผู้ใช้กลุ่มเล็กๆ แล้วรอดูว่าคุณลักษณะนี้ลงไปได้ดีหรือไม่ คุณสามารถใช้ข้อมูลนี้เพื่อเพิ่มการมีส่วนร่วมสำหรับ สินค้าของคุณ
ข้อเสียของการทดสอบ Canary
- ปัญหาซอฟต์แวร์ ยังมีโค้ดที่ยังไม่ได้ทดสอบ ดังนั้น ย่อมมีความเสี่ยงที่เกี่ยวข้อง ในกรณีที่ผู้ใช้บางรายประสบปัญหาสำคัญกับคุณลักษณะเฉพาะ ทางที่ดีควรข้ามการทดสอบ Canary ไปเพื่อการทดสอบภายในที่เข้มงวดมากขึ้น
- ค่าใช้จ่าย ที่มากขึ้น หากคุณต้องการใช้ตัวโหลดบาลานซ์เพื่อแบ่งพาร์ติชันผู้ใช้ คุณจะต้องมีโครงสร้างพื้นฐานเพิ่มเติมและการดูแลระบบเพิ่มเติม ซึ่งหมายความว่าคุณจะต้องสร้างสองสภาพแวดล้อมการใช้งานจริงและแบ็กเอนด์เพื่อดำเนินการทดสอบ ดังนั้น สองเซิร์ฟเวอร์แอป สองบรรทัดโค้ด สองเว็บเซิร์ฟเวอร์ และโครงสร้างพื้นฐานเครือข่ายที่ต้องบำรุงรักษา
- ประสบการณ์ผู้ใช้ที่ไม่ดี ผู้ใช้บางคนอาจไม่ค่อยกระตือรือร้นกับแนวคิดที่จะใช้เป็นแบบทดสอบ หากคุณต้องการเปิดเผยเกี่ยวกับสิ่งที่เกิดขึ้น คุณสามารถแจ้งให้ผู้ใช้ทราบว่าพวกเขากำลังถูกใช้เป็น "นกคีรีบูน" ผ่านโปรแกรม "การรับเลี้ยงบุตรบุญธรรมก่อนกำหนด" หรือสิ่งที่คล้ายกัน
เมื่อใดที่จะไม่ใช้การทดสอบ Canary
การทดสอบ Canary มีประโยชน์ในหลายกรณี อย่างไรก็ตาม ไม่ใช่คำตอบที่แน่นอนสำหรับทุกสิ่ง (นั่นคือ 42)
ต่อไปนี้คือเวลาที่คุณ ไม่ ควรใช้วิธีนกขมิ้นอย่างแน่นอน:
- ในสภาพแวดล้อมที่ไม่เหมาะสำหรับการปรับใช้อย่างต่อเนื่อง
- เมื่อต้องรับมือกับซอฟต์แวร์ที่สำคัญ เช่น ระบบช่วยชีวิตหรือเครื่องปฏิกรณ์นิวเคลียร์
- ระบบการเงินที่ความล้มเหลวอาจส่งผลกระทบทางเศรษฐกิจอย่างมาก
เมื่อคุณไม่สามารถอัปเดตซอฟต์แวร์จากระยะไกลได้
วิธีการปรับใช้ Canary?
ตอนนี้ มาดูขั้นตอนที่จำเป็นที่คุณต้องดำเนินการ เพื่อดำเนินการปรับใช้นกขมิ้น
- เตรียมพร้อมสำหรับการปรับใช้บนเซิร์ฟเวอร์การจัดเตรียม
- ยกเว้นโหนดคานารีผ่านการปรับสมดุลโหลด
- ปรับใช้เวอร์ชันใหม่กับโหนดคานารี
- ทดสอบเวอร์ชันใหม่ด้วยสคริปต์ทดสอบอัตโนมัติ
- เชื่อมต่อ Canary Node กับการรับส่งข้อมูลด้วยการทำโหลดบาลานซ์
- เผยแพร่การอัปเดตไปยังโหนดที่ใช้งานจริงที่เหลืออยู่
ในทางปฏิบัติ การปรับใช้เริ่มต้นด้วยการเตรียมเซิร์ฟเวอร์การจัดเตรียม ตรวจสอบไฟล์คอนฟิกูเรชัน สคริปต์ทดสอบ บิลด์อาร์ติแฟกต์ และอื่นๆ หลังจากนั้น คุณสามารถเรียกใช้การทดสอบแบบอัตโนมัติหรือแบบแมนนวล หรือปล่อยให้เซิร์ฟเวอร์ทำงานและดูว่าทุกอย่างทำงานได้ดีหรือไม่ หรือเกิดปัญหาขึ้น
เมื่อใดควรผลักดันนกขมิ้นสู่การผลิต
เมื่อคุณได้ทดสอบการอัปเดต Canary ของคุณกับผู้ใช้ 5 หรือ 10% แล้ว และทุกอย่างทำงานได้อย่างถูกต้อง คุณสามารถดำเนินการเพิ่มเปอร์เซ็นต์ของผู้ใช้ทดสอบได้เป็นสองเท่าหรือสามเท่า
จากนั้น ทดสอบอีกครั้ง รวบรวมข้อเสนอแนะจากตัวชี้วัด และเมื่อคุณประเมินว่าทุกอย่างทำงานได้ดี อีกครั้ง คุณสามารถอัปเดต 70% ของสภาพแวดล้อมการผลิตได้
สุดท้าย ทำซ้ำขั้นตอนการทดสอบ และหากทุกอย่างพร้อมแล้ว ให้เปิดตัวซอฟต์แวร์เวอร์ชันใหม่แก่ผู้ใช้ 100% และแน่นอน ดำเนินการตรวจสอบต่อไป
บริษัทที่นำ Canary Deployment มาใช้งาน
เพื่อแสดงให้คุณเห็นว่าการปรับใช้ Canary เป็นวิธีการใช้งานที่ได้รับความนิยม เราจะพิจารณาบริษัทบางแห่งที่ใช้ Canary Deployment
Netflix
ยักษ์บริการสตรีมมิ่งใช้การวิเคราะห์ Canary อัตโนมัติกับ Kayenta มาตั้งแต่ปี 2018 ซึ่งช่วยให้อัปเดตสภาพแวดล้อมการผลิตของ Netflix ได้อย่างรวดเร็วมาก บริษัทระบุว่าวิธีการปรับใช้นี้ได้เพิ่มประสิทธิภาพการทำงานของนักพัฒนาในขณะที่ลดความเสี่ยงในการเปลี่ยนแปลงสภาพแวดล้อมการผลิต
อินสตาแกรม
แพลตฟอร์มโซเชียลมีเดียนี้เป็นแฟนตัวยงของการปรับใช้นกขมิ้นมาเป็นเวลานาน ผู้ร่วมก่อตั้งและซีทีโอของพวกเขา Mike Krieger แบ่งปันว่าการปล่อยนกขมิ้นช่วยให้แน่ใจว่าแมลงจะไม่สร้างความเสียหายมากเกินไปและส่งผลกระทบต่อคนกลุ่มเล็ก ๆ เท่านั้น
คุณรู้หรือไม่ว่า Google Chrome มีเวอร์ชันพิเศษสำหรับนักพัฒนา ถูกต้องแล้ว Google Chrome Canary ให้คุณทดสอบ API แพลตฟอร์มเว็บใหม่และดูว่าอนาคตของเบราว์เซอร์จะเป็นอย่างไรก่อนใคร
Microsoft
Microsoft ใช้พนักงานของตนเองเพื่อทดสอบการอัปเดตผลิตภัณฑ์ทั้งหมด กระบวนการนี้มีขึ้นตั้งแต่ Windows Vista และ Microsoft Azure การอัปเกรด Windows 10 ทำได้โดยใช้การอัปเดตระบบ Canary ของระบบปฏิบัติการของพนักงาน
สรุป
การทดสอบ Canary เป็นวิธีที่ยอดเยี่ยมในการแนะนำแอปพลิเคชันเวอร์ชันใหม่อย่างรวดเร็วในสภาพแวดล้อมการทดสอบในโลกแห่งความเป็นจริง ไม่เพียงเท่านั้น แต่ยังช่วยให้มีการจัดการความเสี่ยงที่ดีขึ้นและข้อมูลที่สามารถติดตามได้มากขึ้น
แม้ว่าการทดสอบ Canary จะมีประโยชน์มากมาย แต่ก็ไม่ใช่วิธีแก้ปัญหาสำหรับทุกสถานการณ์เสมอไป ตรวจสอบให้แน่ใจว่าได้ทำการวิจัยของคุณก่อนที่คุณจะเริ่มปรับใช้นกขมิ้น ไม่เช่นนั้น มันอาจจะส่งผลย้อนกลับมาที่คุณ