วิธีทนต่อภาระที่เพิ่มขึ้นในระบบ: เราพูดถึงการเตรียมการจำนวนมากสำหรับ Black Friday

เฮ้ ฮับ!

ในปี 2017 ในช่วง Black Friday โหลดเพิ่มขึ้นเกือบหนึ่งเท่าครึ่ง และเซิร์ฟเวอร์ของเราถึงขีดจำกัดแล้ว ตลอดทั้งปี จำนวนลูกค้าเพิ่มขึ้นอย่างมาก และเห็นได้ชัดว่าหากไม่มีการเตรียมการเบื้องต้นอย่างรอบคอบ แพลตฟอร์มก็อาจไม่สามารถรองรับปริมาณงานในปี 2018 ได้

เราตั้งเป้าหมายที่ทะเยอทะยานที่สุดเท่าที่จะเป็นไปได้: เราต้องการเตรียมพร้อมอย่างเต็มที่สำหรับกิจกรรมใดๆ ก็ตาม แม้แต่กิจกรรมที่ทรงพลังที่สุด และเริ่มเปิดตัวความสามารถใหม่ล่วงหน้าตลอดทั้งปี

Andrey Chizh CTO ของเรา (chizh_andrey) บอกว่าเราเตรียมพร้อมสำหรับ Black Friday 2018 อย่างไร เราใช้มาตรการใดเพื่อหลีกเลี่ยงการหกล้ม และแน่นอนว่าผลลัพธ์ของการเตรียมการอย่างระมัดระวังดังกล่าว

วิธีทนต่อภาระที่เพิ่มขึ้นในระบบ: เราพูดถึงการเตรียมการจำนวนมากสำหรับ Black Friday

วันนี้ผมจะมาพูดถึงการเตรียมการสำหรับ Black Friday 2018 ทำไมตอนนี้ ในเมื่อยอดขายหลักๆ ส่วนใหญ่ตามหลังเรา? เราเริ่มเตรียมการประมาณหนึ่งปีก่อนงานกิจกรรมขนาดใหญ่ และผ่านการลองผิดลองถูก เราพบวิธีแก้ปัญหาที่ดีที่สุด เราขอแนะนำให้คุณดูแลช่วงฤดูร้อนล่วงหน้าและป้องกันการหลอกลวงที่อาจเกิดขึ้นในช่วงเวลาที่ไม่เหมาะสมที่สุด
เนื้อหาจะเป็นประโยชน์กับทุกคนที่ต้องการบีบกำไรสูงสุดจากหุ้นดังกล่าวเพราะว่า ด้านเทคนิคของปัญหาไม่ได้ด้อยกว่าด้านการตลาดที่นี่

คุณสมบัติของการเข้าชมที่มียอดขายสูง

ตรงกันข้ามกับความเชื่อที่นิยม Black Friday ไม่ใช่แค่วันเดียวต่อปี แต่เกือบทั้งสัปดาห์ ข้อเสนอส่วนลดแรกจะมาถึง 7-8 วันก่อนการขาย การเข้าชมเว็บไซต์เริ่มเติบโตได้อย่างราบรื่นตลอดทั้งสัปดาห์ โดยถึงจุดสูงสุดในวันศุกร์ และลดลงอย่างรวดเร็วในวันเสาร์สู่ระดับปกติของร้านค้า

วิธีทนต่อภาระที่เพิ่มขึ้นในระบบ: เราพูดถึงการเตรียมการจำนวนมากสำหรับ Black Friday

นี่เป็นสิ่งสำคัญที่ต้องพิจารณา: ร้านค้าออนไลน์มีความอ่อนไหวเป็นพิเศษต่อ "การชะลอตัว" ในระบบ นอกจากนี้ จดหมายข่าวทางอีเมลของเรายังมีจำนวนการส่งเพิ่มขึ้นอย่างมากอีกด้วย

เป็นสิ่งสำคัญสำหรับเราที่จะผ่าน Black Friday โดยไม่มีข้อขัดข้อง เพราะ... ฟังก์ชันการทำงานที่สำคัญที่สุดของเว็บไซต์และจดหมายข่าวของร้านค้าขึ้นอยู่กับการทำงานของแพลตฟอร์ม กล่าวคือ:

  • ติดตามและออกคำแนะนำผลิตภัณฑ์
  • การออกเอกสารที่เกี่ยวข้อง (เช่น รูปภาพการออกแบบบล็อกคำแนะนำ เช่น ลูกศร โลโก้ ไอคอน และองค์ประกอบภาพอื่น ๆ)
  • จัดเตรียมรูปภาพผลิตภัณฑ์ที่มีขนาดที่ต้องการ (เพื่อจุดประสงค์เหล่านี้ เรามี "ImageResizer" - ระบบย่อยที่ดาวน์โหลดรูปภาพจากเซิร์ฟเวอร์ร้านค้า บีบอัดให้ได้ขนาดที่ต้องการ และผ่านเซิร์ฟเวอร์แคช จะสร้างรูปภาพที่มีขนาดที่ต้องการสำหรับแต่ละผลิตภัณฑ์ใน แต่ละบล็อกคำแนะนำ)

ในความเป็นจริงในช่วง Black Friday 2019 ภาระในบริการเพิ่มขึ้น 40% นั่นคือ จำนวนเหตุการณ์ที่ระบบ Retail Rocket ติดตามและดำเนินการบนเว็บไซต์ร้านค้าออนไลน์เพิ่มขึ้นจาก 5 เป็น 8 คำขอต่อวินาที เนื่องจากเรากำลังเตรียมตัวรับมือกับภาระหนักที่หนักกว่า เราจึงรอดพ้นจากกระแสดังกล่าวได้อย่างง่ายดาย

วิธีทนต่อภาระที่เพิ่มขึ้นในระบบ: เราพูดถึงการเตรียมการจำนวนมากสำหรับ Black Friday

การเตรียมการทั่วไป

Black Friday เป็นช่วงเวลาที่วุ่นวายสำหรับการค้าปลีกและอีคอมเมิร์ซโดยเฉพาะ จำนวนผู้ใช้และกิจกรรมของพวกเขาในเวลานี้เพิ่มขึ้นอย่างมาก ดังนั้นเราจึงเตรียมพร้อมสำหรับช่วงเวลาที่ยุ่งวุ่นวายนี้เช่นเคย เรามาเพิ่มข้อเท็จจริงที่ว่าเรามีร้านค้าออนไลน์มากมายที่เชื่อมต่อกันไม่เพียงแต่ในรัสเซียเท่านั้น แต่ยังรวมถึงในยุโรปด้วย ซึ่งความตื่นเต้นนั้นสูงกว่ามาก และเรามีความหลงใหลที่แย่กว่าซีรีส์ของบราซิลในระดับหนึ่ง จะต้องทำอะไรเพื่อเตรียมพร้อมรับภาระที่เพิ่มขึ้นอย่างเต็มที่?

การทำงานกับเซิร์ฟเวอร์

ขั้นแรก จำเป็นต้องค้นหาว่าเราต้องการอะไรเพื่อเพิ่มพลังเซิร์ฟเวอร์ ในเดือนสิงหาคม เราได้เริ่มสั่งซื้อเซิร์ฟเวอร์ใหม่โดยเฉพาะสำหรับ Black Friday - รวมแล้วเราได้เพิ่มเครื่องเพิ่มเติมอีก 10 เครื่อง ภายในเดือนพฤศจิกายน พวกเขาก็ต่อสู้อย่างเต็มที่

ในเวลาเดียวกัน เครื่องประกอบบางเครื่องได้รับการติดตั้งใหม่เพื่อใช้เป็นเซิร์ฟเวอร์แอปพลิเคชัน เราเตรียมพวกเขาให้ใช้ฟังก์ชันต่างๆ ทันที: ทั้งสำหรับการออกคำแนะนำและบริการ ImageResizer เพื่อให้แต่ละฟังก์ชันสามารถใช้กับหนึ่งในบทบาทเหล่านี้ได้ ขึ้นอยู่กับประเภทของการโหลด ในโหมดปกติ เซิร์ฟเวอร์ Application และ ImageResizer ได้กำหนดฟังก์ชันไว้อย่างชัดเจน: คำแนะนำปัญหาเดิม ส่วนหลังจัดหารูปภาพสำหรับตัวอักษรและบล็อกคำแนะนำบนเว็บไซต์ช้อปปิ้งออนไลน์ ในการเตรียมตัวสำหรับ Black Friday มีการตัดสินใจที่จะสร้างเซิร์ฟเวอร์อเนกประสงค์ทั้งหมดเพื่อสร้างสมดุลการรับส่งข้อมูลระหว่างกัน โดยขึ้นอยู่กับประเภทของการดาวน์โหลด

จากนั้นเราได้เพิ่มเซิร์ฟเวอร์ขนาดใหญ่สองเซิร์ฟเวอร์สำหรับ Kafka (Apache Kafka) และได้รับคลัสเตอร์ของเครื่องอันทรงพลังจำนวน 5 เครื่อง น่าเสียดายที่ทุกอย่างไม่ราบรื่นอย่างที่เราต้องการ ในระหว่างกระบวนการซิงโครไนซ์ข้อมูล เครื่องจักรใหม่สองเครื่องครอบครองความกว้างทั้งหมดของช่องสัญญาณเครือข่าย และเราต้องหาวิธีดำเนินการเพิ่มอย่างรวดเร็วและปลอดภัยสำหรับ โครงสร้างพื้นฐานทั้งหมด เพื่อแก้ไขปัญหานี้ ผู้บริหารของเราต้องสละวันหยุดสุดสัปดาห์อย่างกล้าหาญ

ทำงานกับข้อมูล

นอกจากเซิร์ฟเวอร์แล้ว เรายังตัดสินใจเพิ่มประสิทธิภาพไฟล์เพื่อลดภาระและขั้นตอนสำคัญสำหรับเราคือการแปลไฟล์แบบคงที่ ไฟล์คงที่ทั้งหมดที่เคยโฮสต์บนเซิร์ฟเวอร์ก่อนหน้านี้ถูกย้ายไปยัง S3 + Cloudfront เราต้องการทำสิ่งนี้มาเป็นเวลานาน เนื่องจากโหลดบนเซิร์ฟเวอร์ใกล้กับค่าขีดจำกัด และตอนนี้โอกาสที่ดีก็เกิดขึ้น

หนึ่งสัปดาห์ก่อน Black Friday เราได้เพิ่มเวลาแคชรูปภาพเป็น 3 วัน ดังนั้นหาก ImageResizer ขัดข้อง รูปภาพที่แคชไว้ก่อนหน้านี้จะถูกดึงมาจาก cdn นอกจากนี้ยังลดภาระบนเซิร์ฟเวอร์ของเราด้วย เนื่องจากยิ่งจัดเก็บรูปภาพไว้นานเท่าไร เราก็ยิ่งต้องใช้ทรัพยากรในการปรับขนาดน้อยลงเท่านั้น

และสุดท้ายแต่ไม่ท้ายสุด: 5 วันก่อนวัน Black Friday มีการประกาศเลื่อนการชำระหนี้ชั่วคราวเกี่ยวกับการใช้งานฟังก์ชันใหม่ใด ๆ รวมถึงงานใด ๆ ที่มีโครงสร้างพื้นฐาน - ความสนใจทั้งหมดมุ่งเป้าไปที่การรับมือกับปริมาณงานที่เพิ่มขึ้น

แผนการตอบสนองต่อสถานการณ์ที่ยากลำบาก

ไม่ว่าการเตรียมการจะมีคุณภาพสูงแค่ไหน Fakaps ก็เป็นไปได้เสมอ และเราได้จัดทำแผนเผชิญเหตุ 3 แผนสำหรับสถานการณ์วิกฤติที่อาจเกิดขึ้น:

  • การลดภาระ
  • ปิดการใช้งานบริการบางอย่าง
  • การปิดบริการโดยสมบูรณ์

แผน ก: ลดภาระ ควรเปิดใช้งานหากเซิร์ฟเวอร์ของเราเกินกำหนดเวลาการตอบกลับที่ยอมรับได้ เนื่องจากการโหลดที่เพิ่มขึ้นอย่างรวดเร็ว ในกรณีนี้ เราได้เตรียมกลไกสำหรับการค่อยๆ ลดภาระโดยการเปลี่ยนการรับส่งข้อมูลบางส่วนไปยังเซิร์ฟเวอร์ Amazon ซึ่งจะตอบสนองต่อคำขอทั้งหมดด้วยค่า "200 ตกลง" และให้การตอบกลับที่ว่างเปล่า เราเข้าใจว่านี่เป็นการลดคุณภาพของบริการ แต่ตัวเลือกระหว่างข้อเท็จจริงที่ว่าบริการใช้งานไม่ได้เลยหรือไม่แสดงคำแนะนำสำหรับการรับส่งข้อมูลประมาณ 10% นั้นชัดเจน

แผน B: ปิดการใช้งานบริการ บ่งบอกถึงความเสื่อมโทรมของบริการบางส่วนโดยนัย เช่น ลดความเร็วในการคำนวณคำแนะนำส่วนตัวเพื่อยกเลิกการโหลดฐานข้อมูลและช่องทางการสื่อสารบางส่วน ในโหมดปกติ คำแนะนำจะถูกคำนวณแบบเรียลไทม์ โดยสร้างร้านค้าออนไลน์เวอร์ชันที่แตกต่างกันสำหรับผู้เข้าชมแต่ละคน แต่ภายใต้เงื่อนไขของการโหลดที่เพิ่มขึ้น การลดความเร็วทำให้บริการหลักอื่นๆ ทำงานต่อไปได้

แผน C: ในกรณี Armageddon หากระบบเกิดความล้มเหลวโดยสิ้นเชิง เราได้เตรียมแผนที่จะทำให้เราสามารถตัดการเชื่อมต่อจากลูกค้าของเราได้อย่างปลอดภัย ผู้ซื้อร้านค้าจะหยุดดูคำแนะนำประสิทธิภาพของร้านค้าออนไลน์จะไม่ได้รับผลกระทบ แต่อย่างใด ในการดำเนินการนี้ เราจะต้องรีเซ็ตไฟล์การรวมของเราเพื่อให้ผู้ใช้ใหม่หยุดโต้ตอบกับบริการ นั่นคือ เราจะปิดใช้งานโค้ดติดตามหลักของเรา บริการจะหยุดรวบรวมข้อมูลและคำนวณคำแนะนำ และผู้ใช้ก็จะเห็นหน้าเว็บที่ไม่มีการบล็อกคำแนะนำ สำหรับผู้ที่เคยได้รับไฟล์การผสานรวมก่อนหน้านี้ เราได้จัดเตรียมตัวเลือกในการสลับบันทึก DNS เป็น Amazon และ Stub 200 OK

ผลของการ

เราจัดการโหลดทั้งหมดได้โดยไม่ต้องใช้เครื่องจักรประกอบเพิ่มเติม และต้องขอบคุณการเตรียมการล่วงหน้า เราจึงไม่จำเป็นต้องมีแผนเผชิญเหตุที่พัฒนาแล้วใดๆ แต่งานทั้งหมดที่ทำนั้นเป็นประสบการณ์อันล้ำค่าที่จะช่วยให้เรารับมือกับการจราจรที่ไหลบ่าเข้ามาอย่างไม่คาดคิดและมหาศาล
เช่นเดียวกับในปี 2017 ปริมาณการใช้งานบริการเพิ่มขึ้น 40% และจำนวนผู้ใช้ในร้านค้าออนไลน์เพิ่มขึ้น 60% ในช่วง Black Friday ความยากลำบากและข้อผิดพลาดทั้งหมดเกิดขึ้นในช่วงเตรียมการ ซึ่งช่วยให้เราและลูกค้าของเรารอดพ้นจากสถานการณ์ที่ไม่คาดฝัน

คุณรับมือกับ Black Friday อย่างไร? คุณเตรียมตัวอย่างไรสำหรับภาระหนักที่สำคัญ?

ที่มา: will.com

เพิ่มความคิดเห็น