ปัจจุบันมีกลยุทธ์การปรับใช้มากมายให้เลือก และเมื่อเวลาผ่านไป ก็จะมีกลยุทธ์เพิ่มเติมเท่านั้น อย่างไรก็ตาม กลยุทธ์การปรับใช้ทั่วไปสองประการที่บริษัทที่ใหญ่ที่สุดบางแห่งใช้อยู่ในปัจจุบัน ได้แก่ กลยุทธ์การปรับใช้ Canary และ Blue-green
เมื่อเปรียบเทียบการใช้งาน Blue-Green กับ Canary ไม่ใช่แค่ความเร็วหรือความเรียบง่ายเท่านั้น ปัจจัยที่สำคัญที่สุดประการหนึ่งที่ต้องพิจารณาเมื่อเลือกหนึ่งในกลยุทธ์เหล่านี้คือการหยุดทำงานของการปรับใช้
เพื่อลดเวลาหยุดทำงานของการปรับใช้และให้การเปลี่ยนแปลงที่ราบรื่นเมื่อปรับใช้การอัปเดตหรือการแก้ไขของคุณ การเลือกตัวเลือกที่เหมาะสมกว่าจากการปรับใช้ Canary เทียบกับสีน้ำเงิน-เขียวเป็นสิ่งสำคัญที่สุด
มาดูสิ่งที่แต่ละกลยุทธ์นำเสนอ รวมถึงการเปรียบเทียบแบบตัวต่อตัวของการปรับใช้ Blue-Green กับ Canary และประสบการณ์ของเราเองในการปรับใช้ Canary กับการปรับใช้ Blue-Green
Blue-Green Deployment คืออะไร และมีประโยชน์อะไรบ้าง?
ในกลยุทธ์การปรับใช้สีน้ำเงิน-เขียว แอปพลิเคชันเวอร์ชันใหม่จะสามารถใช้งานได้ทันทีเมื่อได้รับการทดสอบและตรวจสอบแล้ว ต้องขอบคุณสภาพแวดล้อมสองสภาพแวดล้อมที่เหมือนกัน: สภาพแวดล้อมสีน้ำเงินและสีเขียว จึงเป็นที่มาของชื่อการปรับใช้สีน้ำเงิน-เขียว
วิธีนี้ได้ผลเนื่องจากสภาพแวดล้อมหนึ่งเหล่านี้ทำงานอยู่ และอีกสภาพแวดล้อมหนึ่งไม่ได้ใช้งานอยู่ ซึ่งหมายความว่าแอปพลิเคชันเวอร์ชันใหม่สามารถปรับใช้กับสภาพแวดล้อมที่ไม่ได้ใช้งาน (สมมติว่าเป็นสีเขียว) เนื่องจากสภาพแวดล้อมทั้งสองนี้เหมือนกันโดยสิ้นเชิงในแง่ของทรัพยากร โครงสร้างพื้นฐาน และการกำหนดค่า ข้อผิดพลาดใดๆ ในการอัปเดตจึงสามารถแก้ไขได้ก่อนที่จะปรับใช้อย่างสมบูรณ์
เมื่อการอัปเดตได้รับการทดสอบและนักพัฒนาพอใจกับการทำงานแล้ว การรับส่งข้อมูลสดจะเปลี่ยนไปใช้สภาพแวดล้อมที่ไม่ได้ใช้งาน ซึ่งจะทำให้สภาพแวดล้อมที่ไม่ได้ใช้งาน (สีเขียว) กลายเป็นสภาพแวดล้อมที่ใช้งานอยู่ และสภาพแวดล้อมที่ใช้งานก่อนหน้านี้ (สีน้ำเงิน) ไม่ทำงาน
ตอนนี้ สภาพแวดล้อมสีน้ำเงินที่ไม่ใช้งานจะกลายเป็นสแตนด์บาย และสามารถใช้เพื่อทดสอบการอัปเดตที่ใหม่กว่าได้ในขณะที่สภาพแวดล้อมสีเขียวทำงานอยู่ โดยเรียกใช้การอัปเดตที่ปรับใช้ใหม่ ด้วยวิธีนี้ แทบไม่มีการหยุดทำงานเนื่องจากการรับส่งข้อมูลจะเปลี่ยนเป็นสภาพแวดล้อมที่ไม่ได้ใช้งานทันที
นอกจากนี้ หากการอัปเดตมีปัญหาใดๆ คุณลักษณะการย้อนกลับช่วยให้คุณสามารถเปลี่ยนกลับไปใช้แอปพลิเคชันเวอร์ชันเก่าได้ ดังที่กล่าวไว้ หากปัญหาเกิดขึ้นเมื่อผู้พัฒนาเริ่มทำงานกับการอัปเดตใหม่ในสภาพแวดล้อมที่ไม่ได้ใช้งาน การย้อนกลับไปยังสภาพแวดล้อมนี้จะไม่สามารถใช้งานได้อีกต่อไป เนื่องจากเวอร์ชันเก่าก็ไม่สามารถใช้งานได้ในสภาพแวดล้อมนี้อีกต่อไป
แม้ว่าบริษัทและองค์กรหลายแห่งใช้กลยุทธ์นี้ คุณสามารถดูตัวอย่างหนึ่งของกลยุทธ์นี้ที่นำไปใช้จริงได้ที่ Spotify เนื่องจากบริการของ Spotify จำเป็นต้องพร้อมให้บริการทุกวันตลอด 24 ชั่วโมง จึงจะมีการสำรองข้อมูลและสภาพแวดล้อมที่ไม่ได้ใช้งานอยู่เสมอเมื่อมีการอัปเดตใหม่
Canary Deployment คืออะไร และมีประโยชน์อะไรบ้าง?
ข้อแตกต่างที่สำคัญระหว่างการปรับใช้ Canary กับ Blue-Green ก็คือ แทนที่จะมีสองสภาพแวดล้อมที่มีการปรับใช้การอัปเดตทั้งหมดพร้อมกันกับผู้ใช้ทั้งหมดในกลยุทธ์การปรับใช้ Canary การอัปเดตจะถูกเผยแพร่ไปยังผู้ใช้กลุ่มเล็กๆ ก่อน
หากการอัปเดตมีปัญหาใดๆ จะมีผู้ใช้เพียงส่วนเล็กๆ เท่านั้นที่พบปัญหาดังกล่าวและแสดงความคิดเห็น เมื่อปัญหาได้รับการแก้ไขแล้ว การอัปเดตจะถูกเผยแพร่ไปยังผู้ใช้ส่วนใหญ่ โดยพวกเขาจะแสดงความคิดเห็นให้กับนักพัฒนาหากพวกเขาประสบปัญหาใดๆ
รอบนี้เกิดขึ้นซ้ำโดยมีผู้ใช้จำนวนมากขึ้นเรื่อยๆ และปัญหาทั้งหมดเกี่ยวกับการอัปเดตจะได้รับการแก้ไขจนกว่าการอัปเดตจะเผยแพร่ให้กับผู้ใช้ 100% ตัวอย่างเช่น ในตอนแรก การอัปเดตจะเผยแพร่ให้กับผู้ใช้เพียง 2% จากนั้น 25% จากนั้น 75% และสุดท้ายคือ 100% ของผู้ใช้
การเปิดตัวแบบค่อยเป็นค่อยไปในการปรับใช้ Canary เทียบกับ Blue-Green นำเสนอการควบคุมและการเปิดตัวที่ยืดหยุ่นมากขึ้น ช่วยให้นักพัฒนาสามารถทดสอบคุณสมบัติและการอัปเดตในสภาพแวดล้อมที่มีการควบคุม ซึ่งมีเพียงส่วนเล็กๆ เท่านั้นที่ประสบปัญหาที่อาจเกิดขึ้น
สุดท้ายนี้ Canary ยังมีฟีเจอร์การย้อนกลับที่คล้ายกัน อย่างไรก็ตาม เนื่องจากการปรับใช้จะดำเนินการแบบค่อยเป็นค่อยไปและผ่านขั้นตอนต่างๆ การย้อนกลับที่ทำใน Canary จะทำแบบค่อยเป็นค่อยไปและผ่านขั้นตอนต่างๆ จนกว่าจะถึงเวอร์ชันที่เสถียร
ตัวอย่างที่รู้จักกันดีของกลยุทธ์การปรับใช้นี้คือการใช้ Canary ของ Netflix ควบคู่ไปกับเครื่องมือที่เรียกว่า Chaos Monkey ซึ่งจงใจทำให้เกิดความล้มเหลวในระบบ หากความล้มเหลวส่งผลกระทบต่อสภาพแวดล้อมแบบคานารี ทีมงาน Netflix จะสามารถวิเคราะห์ว่าระบบตอบสนองอย่างไรและปรับเปลี่ยนตามนั้น ด้วยวิธีนี้ Netflix สามารถตรวจสอบได้ว่าการอัปเดตยังคงมีเสถียรภาพและยืดหยุ่นได้แม้ภายใต้สภาวะที่ไม่เอื้ออำนวย
การปรับใช้สีน้ำเงิน-เขียวกับ คานารี่
กลยุทธ์การปรับใช้ทั้งสองนี้มีข้อดีเฉพาะตัวในตัวเอง แต่ก็มีข้อจำกัดเช่นกัน นั่นเป็นสาเหตุว่าทำไมการชั่งน้ำหนักข้อดีข้อเสียของการพัฒนา Blue-Green เทียบกับ Canary จึงเป็นสิ่งสำคัญก่อนตัดสินใจ
หากคุณยังคงไม่แน่ใจว่าควรพิจารณาสิ่งใดหลังจากส่วนนี้ ฉันได้รวมประสบการณ์ของเรากับกลยุทธ์ทั้งสองนี้และสิ่งที่เราเรียนรู้ในตอนท้ายของบทความนี้ด้วย
ลดการหยุดทำงาน
ข้อกังวลหลักประการหนึ่งและจุดเน้นของบทความนี้คือการลดเวลาหยุดทำงานของการปรับใช้สีน้ำเงิน-เขียวเทียบกับ Canary ข้อดีอย่างหนึ่งของการปรับใช้ Blue-Green คือความเร็ว เนื่องจากคุณสามารถปรับใช้การอัปเดตแอปพลิเคชันหรือฟีเจอร์ของคุณได้ทันทีผ่านการใช้ทั้งสองสภาพแวดล้อม
ในทางกลับกัน วิธีการปรับใช้แบบค่อยเป็นค่อยไปของ Canary ช่วยให้มีเวลาหยุดทำงานน้อยที่สุด เนื่องจากไม่เพียงแต่ผู้ใช้กลุ่มเล็กๆ เท่านั้นที่ประสบปัญหา แต่เนื่องจากมีการให้ข้อเสนอแนะในแต่ละขั้นตอน การแก้ไขปัญหาจึงทำได้เร็วยิ่งขึ้นและไม่มีการหยุดทำงานใดๆ
นอกจากนี้ แม้ว่าทั้งสองบริการจะนำเสนอฟีเจอร์การย้อนกลับ แต่ฟีเจอร์การย้อนกลับของการปรับใช้ Blue-Green นั้นจะเกิดขึ้นทันที ทำให้นักพัฒนามีการสำรองข้อมูลที่เชื่อถือได้ในกรณีที่เกิดปัญหาสำคัญใดๆ ตามที่กล่าวไว้ข้างต้น เวอร์ชันสำรองจะไม่สามารถใช้งานได้หากทำงานในเวอร์ชันที่ใหม่กว่านั้นกำลังดำเนินการในสภาพแวดล้อมที่ไม่ได้ใช้งาน
คุณสมบัติการย้อนกลับของ Canary สามารถใช้ได้แบบค่อยเป็นค่อยไปเท่านั้น เช่นเดียวกับกระบวนการปรับใช้ อย่างไรก็ตาม จะพร้อมใช้งานเสมอเนื่องจากเวอร์ชันเก่าและเสถียรไม่ได้ขึ้นอยู่กับสภาพแวดล้อมที่มีการทดสอบและดำเนินการอัปเดตที่ใหม่กว่า
ในแง่ของการลดเวลาหยุดทำงานของการปรับใช้ เมื่อเปรียบเทียบการใช้งาน Canary กับ Blue-Green นั้น Canary นั้นเหนือกว่าในแง่ของการควบคุมความเสี่ยงและการควบคุมแบบละเอียด อย่างไรก็ตาม หากเรากำลังพิจารณาที่จะลดเวลาหยุดทำงานเพียงอย่างเดียว สีน้ำเงิน-เขียวก็จะดีกว่าในทั้งสองรุ่นเนื่องจากการสลับระบบเกิดขึ้นทันที
อย่างไรก็ตาม เมื่อต้องถกเถียงถึงการปรับใช้งาน Blue-Green เทียบกับการปรับใช้ Canary การพิจารณาปัจจัยอื่นๆ นอกเหนือจากการลดเวลาหยุดทำงานก็เป็นสิ่งสำคัญเช่นกัน
ประเภทการสมัคร
โดยทั่วไป เราสามารถแบ่งแอปพลิเคชันออกเป็นแอปพลิเคชันที่เน้นธุรกรรมหนักหรือที่ขับเคลื่อนด้วยเนื้อหาได้ ในแอปพลิเคชันที่มีการทำธุรกรรมจำนวนมาก การปรับใช้ Blue-Green เป็นตัวเลือกที่ดีกว่ามาก เนื่องจากความพร้อมในการให้บริการที่สูงและการหยุดทำงานที่น้อยที่สุดเป็นสิ่งสำคัญ ซึ่งเป็นเหตุผลว่าทำไมคุณสมบัติสวิตช์ทันทีและการย้อนกลับทันทีของ Blue-Green จึงนำหน้า Canary
ในทางกลับกัน แอปพลิเคชันที่ขับเคลื่อนด้วยเนื้อหาไม่ได้ขึ้นอยู่กับธุรกรรมแบบเรียลไทม์ เนื่องจากโดยทั่วไปแล้วแอปพลิเคชันเหล่านี้ใช้สำหรับแพลตฟอร์มโซเชียลมีเดียและบริการการมีส่วนร่วมของผู้ใช้ Canary จึงเป็นกลยุทธ์ที่ดีกว่ามากเนื่องจากคุณสามารถค่อยๆ เปิดตัวการอัปเดตและรับข้อเสนอแนะอย่างต่อเนื่องในแต่ละขั้นตอน
ต้นทุนโครงสร้างพื้นฐาน
ข้อกังวลหลักอีกประการหนึ่งเมื่อเลือกระหว่างการปรับใช้สีน้ำเงิน-เขียวกับการปรับใช้ Canary คือต้นทุน โดยปกติแล้วในการปรับใช้ Blue-Green ต้นทุนจะสูงขึ้นเนื่องจากต้องมีการรักษาสภาพแวดล้อมสองรายการไว้
นั่นเป็นเหตุผลว่าทำไมสภาพแวดล้อมการผลิตแบบเดี่ยวของ Canary จึงเป็นตัวเลือกที่คุ้มค่ากว่ามาก ทำให้เป็นตัวเลือกที่เหมาะสมกว่าสำหรับทีมขนาดเล็กหรือแอปพลิเคชันที่ใช้ทรัพยากรน้อย
ความสามารถในการปรับขนาดและการบำรุงรักษาระยะยาว
สุดท้ายนี้ แม้ว่าการปรับใช้สีน้ำเงินเขียวสามารถปรับขนาดได้ แต่การรักษาสภาพแวดล้อมที่สมบูรณ์สองแบบสำหรับแอปพลิเคชันขนาดใหญ่นั้นอาจต้องใช้ทรัพยากรสูงและซับซ้อน เมื่อเวลาผ่านไป การจัดการและการบำรุงรักษาสภาพแวดล้อมที่ซ้ำกันสามารถเพิ่มค่าใช้จ่ายจำนวนมากได้ โดยเฉพาะอย่างยิ่งสำหรับแอปพลิเคชันที่มีความต้องการโครงสร้างพื้นฐานที่ซับซ้อน
สิ่งนี้ทำให้การปรับใช้ Canary เทียบกับ Blue-Green ในแง่ของความสามารถในการปรับขนาดและการบำรุงรักษาค่อนข้างง่ายในการตัดสินใจ ด้วยการปรับใช้ Canary ความสามารถในการปรับขนาดมักจะง่ายกว่าและคุ้มค่ากว่า เนื่องจากไม่ต้องการสภาพแวดล้อมที่ซ้ำกัน
แต่จะมุ่งเน้นไปที่การปรับขนาดภายในสภาพแวดล้อมหลักโดยค่อยๆ ขยายฐานผู้ใช้ที่เผชิญกับการเปลี่ยนแปลงใหม่ๆ การตั้งค่านี้สามารถจัดการได้ง่ายกว่ามากในระยะยาว เนื่องจากช่วยลดความซับซ้อนของโครงสร้างพื้นฐานและทำให้การบำรุงรักษาง่ายขึ้น
ประสบการณ์ของ Cloudzy กับการปรับใช้สีน้ำเงิน-เขียว เทียบกับ การปรับใช้ Canary
เมื่อให้บริการ DevOps แก่ลูกค้า เราเข้าใจดีว่าความพึงพอใจของลูกค้า ความพร้อมใช้งานสูง และการหยุดทำงานที่น้อยที่สุดมีความสำคัญต่อความสำเร็จทางธุรกิจของพวกเขา ในกรณีพิเศษอย่างหนึ่ง ลูกค้าติดต่อเราเพื่อช่วยในการอัปเกรดโครงสร้างพื้นฐานที่สำคัญ ทีมงานได้รับมอบหมายให้ตัดสินใจระหว่างการใช้งาน Blue-Green และ Canary สำหรับระบบของพวกเขา
หลังจากพิจารณามาอย่างดีแล้ว ก่อนอื่นเราจึงตัดสินใจทดลองใช้การใช้งาน Blue-Green เนื่องจากแทบไม่ต้องหยุดทำงานเลย เราสร้างสภาพแวดล้อมสีเขียวที่เหมือนกันและเตรียมที่จะเปิดตัวการอัปเกรด มีความกดดันมากมายเนื่องจากเมื่อกดปุ่มเพียงปุ่มเดียว การรับส่งข้อมูลทั้งหมดจะเปลี่ยนไปใช้สภาพแวดล้อมสีเขียว และดังที่นักพัฒนาทราบ ไม่ว่าคุณจะทดสอบสิ่งเหล่านี้มากแค่ไหน แต่ก็ยังต้องลุ้นเล็กน้อยว่าผลจะออกมาเป็นอย่างไร
โชคดีที่ทุกอย่างออกมาดี การเปลี่ยนแปลงเป็นไปอย่างราบรื่น และเราแทบไม่มีปัญหาใดๆ เลย เมื่อเวลาผ่านไป เมื่อบริการและผู้ใช้ของลูกค้าของเราเติบโตขึ้น เราจำเป็นต้องเปิดตัวคุณสมบัติใหม่ และการถกเถียงเรื่อง Blue-Green กับ Canary ก็จุดประกายขึ้นมาอีกครั้ง
อย่างไรก็ตาม คราวนี้มันไม่ใช่การถกเถียงกันมากนัก คุณสมบัติเหล่านี้เป็นคุณสมบัติที่ค่อนข้างเล็กและไม่ได้มีขนาดเท่ากับการอัปเดตโครงสร้างพื้นฐานนั้นอย่างแน่นอน แน่นอนว่าเราเลือกใช้ Canary เนื่องจากเราสามารถเปิดตัวฟีเจอร์ไปยังฐานผู้ใช้ส่วนเล็กๆ ของลูกค้าของเรา และแก้ไขปัญหาใดๆ ที่พวกเขามีผ่านคำติชมของผู้ใช้
นั่นเป็นการตัดสินใจที่ถูกต้องอย่างแน่นอน เนื่องจากแม้ว่าเราจะไม่มีปัญหาสำคัญใดๆ แต่ปัญหาเล็กๆ น้อยๆ บางอย่างก็เริ่มปรากฏขึ้น ซึ่งได้รับรายงานโดย 5% ของฐานผู้ใช้ลูกค้าของเราที่มีการเปิดตัวฟีเจอร์นี้
ที่ Cloudzy เราเชื่อในพลังของโซลูชันที่ออกแบบโดยเฉพาะ ไม่ว่าธุรกิจของคุณต้องการความน่าเชื่อถือของการปรับใช้ Blue-Green หรือความยืดหยุ่นในการปรับใช้ Canary ทีม DevOps ของเรามีประสบการณ์และความรู้ในการปรับใช้กลยุทธ์ที่ดีที่สุดสำหรับโครงสร้างพื้นฐานของคุณ ติดต่อเรา ที่นี่ วันนี้เพื่อเรียนรู้ว่าเราจะเพิ่มประสิทธิภาพกระบวนการปรับใช้ของคุณได้อย่างไร และช่วยให้การดำเนินงานของคุณดำเนินไปอย่างราบรื่นได้อย่างไร
เมื่อพูดถึง VPS เราขอเสนออัตราที่ต่ำที่สุดในอุตสาหกรรม VPS พร้อมฟีเจอร์ต่างๆ รวมถึงสถานที่มากกว่า 12 แห่งทั่วโลก การเชื่อมต่ออินเทอร์เน็ตเฉพาะที่สูงถึง 10 Gbps พื้นที่เก็บข้อมูล NVMe SSD ระดับองค์กร โปรเซสเซอร์ AMD EPYC ความเร็วเทอร์โบ 3.23 GHz อันทรงพลัง และเวลาทำงาน 99.95% ตรวจสอบของเรา ราคา VPS สำหรับรายละเอียดเพิ่มเติม
ความคิดสุดท้าย
ท้ายที่สุดแล้ว คุณไม่สามารถพูดได้ว่าอันหนึ่งดีกว่าอีกอันในทางหลักใดๆ เมื่อพูดถึงการปรับใช้ Canary กับการปรับใช้สีน้ำเงิน-เขียว มันเป็นเพียงเรื่องของการใช้งานและที่เหมาะกับความต้องการเฉพาะของคุณมากที่สุด
คำถามที่พบบ่อย
อะไรคือความแตกต่างที่สำคัญระหว่างการปรับใช้สีน้ำเงินเขียวและคานารี?
ข้อแตกต่างที่สำคัญระหว่างกลยุทธ์การปรับใช้ Blue-Green และ Canary คือวิธีการเผยแพร่การอัปเดต การใช้งานสีน้ำเงิน-เขียวใช้สองสภาพแวดล้อมที่เหมือนกัน โดยมีการอัปเดตใช้กับสภาพแวดล้อมที่ไม่ใช้งาน ทำให้สามารถสลับได้ทันทีโดยแทบไม่ต้องหยุดทำงาน ในทางตรงกันข้าม การปรับใช้ Canary จะค่อยๆ เผยแพร่การอัปเดตไปยังผู้ใช้กลุ่มเล็กๆ ก่อน โดยจะตรวจสอบปัญหาก่อนที่จะเผยแพร่ไปยังฐานผู้ใช้ทั้งหมดแบบค่อยเป็นค่อยไป
การใช้งาน Blue-Green หรือการปรับใช้ Canary ดีกว่าในการลดเวลาหยุดทำงานหรือไม่
โดยทั่วไปการปรับใช้สีน้ำเงิน-เขียวจะดีกว่าในการลดเวลาหยุดทำงาน เนื่องจากช่วยให้สามารถสลับระหว่างสภาพแวดล้อมได้ทันที ซึ่งจะช่วยลดการหยุดชะงักที่อาจเกิดขึ้น แม้ว่าการใช้งาน Canary ยังมีจุดมุ่งหมายเพื่อลดเวลาหยุดทำงานให้เหลือน้อยที่สุด แต่ก็ทำได้ผ่านการเปิดตัวแบบค่อยเป็นค่อยไปซึ่งอาจเกี่ยวข้องกับปัญหาเล็กๆ น้อยๆ ในท้องถิ่นซึ่งส่งผลต่อผู้ใช้กลุ่มย่อยเพียงเล็กน้อย
ข้อควรพิจารณาด้านต้นทุนสำหรับการปรับใช้สีน้ำเงิน-เขียวกับแบบ Canary คืออะไร
โดยทั่วไปการปรับใช้สีน้ำเงิน-เขียวจะมีราคาแพงกว่าเนื่องจากต้องมีการรักษาสภาพแวดล้อมที่สมบูรณ์สองรายการ ในทางกลับกัน การปรับใช้ Canary นั้นคุ้มค่ากว่าเนื่องจากไม่ต้องการโครงสร้างพื้นฐานที่ซ้ำกัน การอัปเดตจะเปิดตัวภายในสภาพแวดล้อมหลัก ซึ่งทำให้เป็นตัวเลือกที่ดีกว่าสำหรับทีมขนาดเล็กหรือแอปพลิเคชันที่ใช้ทรัพยากรน้อย