อาหารเช้าพร้อมอีเมลนับพันล้าน
เผยแพร่แล้ว: 2020-02-05Black Friday ที่ราบรื่นคือทั้งหมดที่เราขอ
เมื่อถึงเวลาที่ฉันทานอาหารเช้าเวลาประมาณ 8.00 น. เวลามาตรฐานแปซิฟิก (PST) ทุกวันในช่วงสุดสัปดาห์วัน Black Friday Twilio SendGrid ได้ประมวลผลอีเมลมากกว่า 1 พันล้านฉบับแล้วตามที่คำนวณในเวลามาตรฐานตะวันออกของสหรัฐอเมริกา (EST)
เมื่อดูจากสถิติแล้ว เราได้ประมวลผลอีเมลมากกว่า 16.5 พันล้านฉบับตั้งแต่วันขอบคุณพระเจ้าถึงไซเบอร์มันเดย์ และมากกว่า 22.3 พันล้านฉบับสำหรับสัปดาห์ตั้งแต่วันอังคารก่อนวันขอบคุณพระเจ้า นี่เป็นตัวเลขที่ดีสำหรับธุรกิจ จากมุมมองขององค์กรด้านวิศวกรรม การทำเช่นนั้นโดยไม่มีการเตือนใดๆ หรือประสบการณ์ของลูกค้าที่เสื่อมโทรมเป็นที่น่าพอใจอย่างยิ่ง
ฉันแนะนำให้อ่านบทความในบล็อกนี้ เรื่อง Scaling Our Infrastructure for 4+ Billion Emails in a Single Day ซึ่งเขียนโดยเพื่อนร่วมงานของฉัน Sara Saedinia ซึ่งพูดถึงความสำคัญของการดำเนินงานอย่างราบรื่นในระดับนี้สำหรับธุรกิจของเราและสำหรับธุรกิจที่พึ่งพาเรา ในที่นี้ ฉันจะมุ่งเน้นไปที่การเตรียมการของเราที่ทำให้วันหยุดสุดสัปดาห์ที่สำคัญที่สุดของปีสำหรับลูกค้าอีเมลของเราเป็นไปอย่างราบรื่นที่สุด
เราทำให้วันหยุดสุดสัปดาห์ Black Friday นี้ราบรื่นได้อย่างไร การจัดการวันส่งที่ใหญ่ที่สุดของเราจำเป็นต้องมีการวางแผนอย่างขยันขันแข็ง การทดสอบวงสวิงของภูมิภาคจำนวนมาก คะแนนของผู้คนที่วิเคราะห์ข้อมูล และลูปป้อนกลับที่รัดกุมในขณะที่เราตรวจสอบการปรับปรุงระบบของเราตามการสังเกตการวัดและส่งข้อมูลทางไกล เรายังมีระบบอัตโนมัติและการปรับปรุงเพิ่มเติมที่เราจะทำเพื่อให้แน่ใจว่าเรายังคงสร้างความพึงพอใจให้กับลูกค้าของเรา และเราส่งการสื่อสารที่ถูกต้องไปยังผู้รับที่ถูกต้องอย่างรวดเร็ว
เข้าใจธุรกิจของเรา
โมเดลธุรกิจของ SendGrid ต้องการให้เราพร้อมเสมอ—เราไม่มีช่วงเวลาบำรุงรักษาสำหรับการรับและจัดส่งจดหมาย ลูกค้าของเราต้องการบริการที่เชื่อถือได้ซึ่งรับและจัดส่งจดหมายโดยไม่หยุดชะงัก ซึ่งหมายความว่าจำเป็นต้องทำการเปลี่ยนแปลงโครงสร้างพื้นฐาน ฮาร์ดแวร์ และซอฟต์แวร์ทั้งหมดในขณะที่เราดำเนินการประมวลผลและส่งอีเมลต่อไปโดยไม่ชักช้าที่เห็นได้ชัดเจน
จำนวนอีเมลที่เราดำเนินการเพิ่มขึ้นอย่างมากในช่วงไม่กี่ปีที่ผ่านมาดังที่แสดงในกราฟต่อไปนี้
เรามี 1B วันแรกในกลางปี 2016 และเรามี 4B วันแรกใน Black Friday นี้ นั่นคือการเติบโต 400% ในเวลาน้อยกว่า 4 ปี เพื่อรองรับขนาดที่เพิ่มขึ้นเรื่อยๆ เพื่อให้สามารถจัดการต้นทุนได้ และเพื่อให้ลูกค้ามีความน่าเชื่อถือมากขึ้น เราต้องออกแบบใหม่และพัฒนาไปป์ไลน์การประมวลผลอีเมลของเรา
แบล็คฟรายเดย์กำลังจะมา
มีคนถามฉันว่า “ทำไม Black Friday และ Cyber Monday สำคัญกับคุณมาก” Cyber Monday นี้ เราประมวลผลอีเมลมากกว่า 45% ของปีก่อนหน้า Black Friday เป็นหนึ่งในกิจกรรมการค้าปลีกและการใช้จ่ายที่สำคัญที่สุดในสหรัฐอเมริกา ตามเนื้อผ้าเป็นวันที่ผู้ค้าปลีกจะอยู่ในสีดำ (บวกสุทธิ) สำหรับปี การตลาดผ่านอีเมลและการใช้อีเมลธุรกรรมกลายเป็นเรื่องสำคัญสำหรับทุกธุรกิจ
ตั้งแต่ผู้ค้าปลีกไปจนถึงธุรกิจที่ให้บริการการตลาดอัตโนมัติ การประสบปัญหาในการส่งอีเมลในวัน Black Friday อย่างน่าเชื่อถืออาจส่งผลให้สูญเสียรายได้อย่างมาก ด้วยเหตุนี้ สุดสัปดาห์นี้จึงมักจะเป็นวันหยุดสุดสัปดาห์สำหรับธุรกิจของเรา เราพยายามอย่างเต็มที่เพื่อให้วิศวกร ตัวแทนสนับสนุน ผู้จัดการความสำเร็จของลูกค้า ผู้บริหาร และที่สำคัญที่สุดสำหรับลูกค้าของเราเป็นเรื่องง่ายที่สุดเท่าที่จะทำได้
เตรียมความพร้อมสำหรับ Black Friday
แล้วเราจะเตรียมตัวอย่างไรสำหรับ Black Friday? เราซื้อเสื้อยืด! (และทำงานมากมาย) อ่านต่อไปว่าเราเตรียมตัวอย่างไร
สมาชิกของสำนักงาน Twilio SendGrid Irvine
สมาชิกบางคนของสำนักงาน Twilio SendGrid Denver
สถิติ
เริ่มต้นด้วยสถิติบางอย่าง:
- ประมวลผลอีเมล 4.1B+ ใน Black Friday และ 4.2B+ ใน Cyber Monday
- ประมวลผลอีเมล 16.5B+ จากวันขอบคุณพระเจ้าถึง Cyber Monday
- ประมวลผลอีเมลมากกว่า 315 ล้านฉบับในช่วงเวลาเร่งด่วน
- Black Friday และ Cyber Monday แต่ละคนมี 8 ชั่วโมงติดต่อกันในการประมวลผลอีเมล 220 ล้านฉบับขึ้นไป
- ทั้งหมดนี้โดยมีค่ามัธยฐานของเวลาสิ้นสุดของอีเมลที่ส่งได้ที่ 1.9 วินาที
- โดยเฉลี่ยแล้ว เราปล่อยเหตุการณ์ประมาณ 5.5 เหตุการณ์ต่อข้อความ ตามนั้น ระบบของเราได้ปล่อยและประมวลผลกิจกรรม 91B+ จากวันขอบคุณพระเจ้าเป็น Cyber Monday, 23B+ ใน Cyber Monday เพียงอย่างเดียว
ความท้าทาย
มาตราส่วนที่ไม่เคยเห็นมาก่อน : มาตราส่วนที่เรากำหนดเป้าหมายเพื่อทดสอบต้องตรงกับโหลดสูงสุดที่คาดการณ์ไว้ เมื่อเราทำการทดสอบครั้งแรกสำหรับการเตรียมตัวของปีที่แล้วในช่วงต้นเดือนเมษายน ปริมาณวันธรรมดาเฉลี่ยของเราน้อยกว่าครึ่งหนึ่งของการคาดการณ์สูงสุดของเรา ยอดรายชั่วโมงของเราไม่ถึงครึ่งของสิ่งที่เราจะทดสอบ
การจัดการสภาพแวดล้อมของเรา : อีเมลเป็นเวิร์กโฟลว์การเก็บสถานะ: จำเป็นต้องติดตามสถานะของข้อความ เมื่อข้อความเคลื่อนผ่านไปป์ไลน์ เราจะติดตามว่าข้อความนั้นเด้งหรือถูกเลื่อนออกไป และป้องกันการทำซ้ำ ด้วยเหตุนี้ ไปป์ไลน์อีเมลของเราจึงเป็นไฮบริดคลาวด์และสถาปัตยกรรมภายในองค์กร และการปรับขนาดอัตโนมัติไม่ใช่วิธีแก้ไขที่วิเศษ ความท้าทายของเราคือการเพิ่มประสิทธิภาพของบริการศูนย์ข้อมูลของเราให้สูงสุด ในขณะที่เตรียมความจุเพื่อจัดการกับปริมาณมากที่เพิ่มขึ้นอย่างรวดเร็วโดยไม่กระทบต่อต้นทุนของลูกค้า
มาตราส่วนไม่เป็นเชิงเส้น : ไม่ใช่ทุกระบบที่มีขนาดเชิงเส้น เนื่องจากสเกลที่คาดการณ์ไว้ของเรานั้นสูงกว่าเมื่อเราเริ่มการทดสอบครั้งแรกมาก เราจึงไม่สามารถคำนวณความต้องการฮาร์ดแวร์ของเราด้วยแบบจำลองทางคณิตศาสตร์อย่างง่ายได้ สิ่งสำคัญคือต้องจำไว้ด้วยว่าบริการการปรับสเกลสุ่มสี่สุ่มห้าจะทำให้การพึ่งพาอาศัยกันมากเกินไป และการพึ่งพาเช่นฐานข้อมูลจะไม่ปรับขนาดแบบเดียวกับตัวแทนการถ่ายโอนเมลของเรา (MTA)
สร้างสมดุลให้กับการลงทุน : ในขณะที่เราสร้างสรรค์สิ่งใหม่ๆ อย่างต่อเนื่อง โดยมั่นใจว่าเรารองรับความต้องการของลูกค้าที่เกี่ยวข้องกับการส่งอีเมลของพวกเขา เราเข้าใจดีว่าฟีเจอร์ของเราไม่ได้มอบคุณค่าใดๆ ให้กับลูกค้า หากพวกเขาไม่สามารถเข้าถึงได้และดำเนินการตามที่จำเป็นไม่ได้ เราต้องหาจุดสมดุลและลงทุนอย่างเหมาะสมในการทดสอบ การเรียนรู้ การอัพเกรด และปรับปรุงระบบของเราให้มีความน่าเชื่อถือและยืดหยุ่นในระดับของเรา การทำเช่นนี้อย่างมีประสิทธิภาพทำให้เราลงทุนในนวัตกรรมต่อไปได้
เราทำมันได้อย่างไร?
เราทำร่วมกันเป็นทีมเดียว อ้อมแขนอย่างที่เราพูด การเตรียมการของเราในปีนี้ ตั้งแต่เดือนเมษายนถึงพฤศจิกายน เกี่ยวข้องกับการมีส่วนร่วมของสมาชิกมากกว่า 100 คนในหลายทีม การสร้างแบบจำลองการคาดการณ์สูงสุด การกำหนดเกณฑ์ความสามารถในการสังเกต การเรียนรู้จากการสังเกตของเรา วิศวกรรมการเปลี่ยนแปลงที่จำเป็น การวางแผน และการจัดการต้องใช้ทักษะที่หลากหลายจากคนจำนวนมาก
เราไว้วางใจซึ่งกันและกันในขณะที่รักษาความซื่อสัตย์ซึ่งกันและกัน มีสมาธิจดจ่อ และบรรลุเป้าหมาย
กระบวนการที่มีประสิทธิภาพและปรับปรุงอย่างต่อเนื่องคือเพื่อนของเรา
การวางแผน
เรามีศูนย์ข้อมูลสามแห่งเพื่อประมวลผลอีเมลของลูกค้า ในการวางแผนสำหรับมาตราส่วนที่ไม่สามารถเข้าถึงได้ เราตรวจสอบว่าเราสามารถจัดการปริมาณการใช้งานที่คาดการณ์ไว้สูงสุดได้โดยใช้ศูนย์ข้อมูลเพียงสองแห่งเท่านั้น เพื่อให้เป็นไปตาม SLA ที่มีความพร้อมใช้งานสูง โครงสร้างพื้นฐานของเราจึงมีการเฟลโอเวอร์ภายในภูมิภาค ซึ่งหมายความว่าเรามีความสามารถในการรับส่งข้อมูลเฟลโอเวอร์ระหว่างภูมิภาค
เราใช้ประโยชน์จากความสามารถนี้ด้วยจังหวะที่บ่อยครั้งตลอดทั้งปีเป็นขั้นตอนการปฏิบัติงานมาตรฐานและเร่งความเร็วซึ่งเป็นส่วนหนึ่งของความพยายามของเราในการแสดงให้เห็นว่าเราสามารถให้บริการปริมาณสูงสุดในวัน Black Friday/Cyber Monday ในขณะที่ยังคงคุณภาพการบริการ หากการวัดและส่งข้อมูลทางไกลของระบบเข้าใกล้ขีดจำกัดของเป้าหมายระดับบริการ (SLO) ของเรา เราจะสามารถใช้ประโยชน์จากภูมิภาคต่างๆ ได้อย่างรวดเร็วเพื่อกลับสู่สถานะปกติ จากนั้นเราจะใช้ประโยชน์จากการวัดและส่งข้อมูลทางไกลที่รวบรวมมาเพื่อกำหนดว่าเราต้องแก้ไขที่ใด
ด้วยความพยายามแบบคู่ขนาน เราได้เริ่มตรวจสอบและเสริมสร้างวัตถุประสงค์ระดับการบริการ (SLO) ของเรา ซึ่งทำให้เรามีเป้าหมายเชิงตัวเลขที่แม่นยำสำหรับความพร้อมใช้งานของระบบและตัวบ่งชี้ระดับบริการ (SLI) ซึ่งให้ความถี่ของการตรวจสอบที่ประสบความสำเร็จในระบบของเรา
การสังเกต การเรียนรู้ และการสื่อสาร
การทดสอบแต่ละครั้งให้ข้อมูลจำนวนมาก ความท้าทายอย่างหนึ่งที่เราเผชิญคือการบันทึกและสื่อสารการสังเกตของทีมทดสอบแบบหมุนเวียนอย่างมีประสิทธิภาพ จากนั้นจึงวิเคราะห์ข้อมูลในหลายระบบ แม้ว่าเราจะมีแดชบอร์ดของทีมแบบมาตรฐาน แต่สมาชิกแต่ละคนอาจมีบางอย่างเฉพาะเจาะจงที่พวกเขาสังเกตเห็น
เราเริ่มทำย้อนหลังกับทีมทดสอบเพื่อวิเคราะห์ข้อมูลทางเทคนิคทั้งหมดที่ทิ้งสำหรับบริการต่างๆ ที่จัดการโดยหลายทีม การหวนกลับเหล่านี้ยาว และสำหรับช่วงเวลาส่วนใหญ่ มีประโยชน์สำหรับหนึ่งหรือสองทีมต่อการทดสอบเท่านั้น ในที่สุด เราก็เปลี่ยนไปใช้ Slack Thread สำหรับบันทึกย้อนยุค ซึ่งช่วยประหยัดเวลาการประชุมของมนุษย์ได้ 10 ชั่วโมงต่อการทดสอบ
ทีมจัดการการทดสอบของเรามีผู้จัดการฝ่ายวิศวกรรมสองคน สถาปนิกหนึ่งคน และวิศวกรอาวุโสหนึ่งคน ผู้จัดการมีส่วนสำคัญในการวางแผนและการจัดการการพึ่งพา ขณะที่ผู้ที่มีเทคนิคมากขึ้นช่วยประมวลผลและวิเคราะห์ข้อมูลในระดับระบบจากต้นทางถึงปลายทาง
จากการวิเคราะห์ข้อมูลที่มีอยู่ เราได้ตรวจสอบซ้ำแล้วซ้ำอีกว่า SLI ของเราสอดคล้องกับ SLO ของเราอย่างเคร่งครัด เราปรับแต่งการแจ้งเตือนของเราและทำให้การแจ้งเตือนที่สำคัญบางรายการมีความละเอียดอ่อนมากขึ้นเพื่อระบุการเสื่อมของระบบที่อาจเกิดขึ้นได้ล่วงหน้า
การจัดลำดับความสำคัญและการนำไปใช้
เราออกตั๋วการเปลี่ยนแปลงที่เสนอและทีมงานจัดลำดับความสำคัญของตั๋วเหล่านี้ ความท้าทายแรกในที่นี้คือการจัดการตั๋วเหล่านี้ในกระดานหลายทีม ความท้าทายอีกประการหนึ่งคือการจัดลำดับความสำคัญของงาน Black Friday อย่างไร้ความปราณีกับลำดับความสำคัญอื่น ๆ
เราจำเป็นต้องให้วิศวกรของเรามีอิสระในการสร้างสรรค์ในการแก้ปัญหาที่ยากลำบาก ในขณะเดียวกัน เราต้องตรวจสอบให้แน่ใจว่าโซลูชันเหล่านี้สอดคล้องกับแผนระยะยาวของเรา เป็นเรื่องสำคัญมากที่เราจะต้องตระหนักถึงผลประโยชน์ทับซ้อนอยู่เสมอ ซึ่งหมายถึงการหลีกเลี่ยงวิธีแก้ปัญหาในระยะสั้นที่อาจกลับมากัดเราได้
การตรวจสอบความถูกต้องของการเปลี่ยนแปลงที่นำมาใช้จะกลายเป็นเป้าหมายของเราสำหรับการทดสอบที่จะเกิดขึ้น
การรักษาและเพิ่มจังหวะเมื่อเราเข้าใกล้ Black Friday มากขึ้นเป็นความท้าทายหลักในการวางแผนและการดำเนินการ
ความเร่ง
เมื่อเข้าสู่เดือนกันยายน เราเริ่มทำการทดสอบความเครียดหลายครั้งในแต่ละสัปดาห์ ซึ่งทำให้เราต้องระบุ แก้ไข และตรวจสอบปัญหาได้เร็วขึ้น นอกจากนี้ยังช่วยให้เกิดวงจรการเรียนรู้และการปรับตัวที่เร็วขึ้นอีกด้วย
นอกจากการทดสอบการแกว่งเต็มรูปแบบของไปป์ไลน์อีเมลตามที่อธิบายไว้ก่อนหน้านี้แล้ว เรายังเริ่มทดสอบความเค้นในการทดสอบบริการสนับสนุนของเราในช่วงเวลาเดียวกัน ในช่วงเวลาเดียวกัน เราเริ่มทำการทดสอบโหลดกับลูกค้ารายใหญ่ที่สุดรายหนึ่งของเรา เพื่อให้แน่ใจว่า geopods ที่เข้ามาของเราจะจัดการกับการส่งระเบิดที่คาดการณ์ไว้ในช่วงเทศกาลวันหยุดโดยไม่ต้องกังวลใดๆ
เนื่องจากต้องใช้เวลานานและความท้าทายในการจัดการงาน ทีมงานของเราจึงหมดไฟ เราได้ระบุการแจ้งเตือนที่สำคัญที่สุดที่จำเป็นในการหยุดการทดสอบของเราหากจำเป็น และทำให้พวกเขามีความละเอียดอ่อนมากขึ้น สิ่งนี้ทำให้เราสามารถเริ่มทำการทดสอบโดยไม่ต้องคอยตรวจสอบระบบของเราตั้งแต่เช้าตรู่
ความเร็วด้วยความระมัดระวัง
เมื่อเราเข้าใกล้ปลายเดือนกันยายน มีความกังวลว่าเราอาจเคลื่อนที่ไปในทิศทางที่ถูกต้องได้ไม่เร็วพอ เราสร้างทีมเสือ ทีมผู้เชี่ยวชาญที่สามารถทำงานกับตั๋วใดก็ได้ในหลายทีม และทีมที่ทำงานด้วยกระบวนการที่น้อยลงมากในระดับรายวัน
เราได้ทำการปรับปรุงที่สำคัญในโครงสร้างพื้นฐานด้านการปฏิบัติงานของเรา เช่นเดียวกับซอฟต์แวร์ประมวลผลอีเมลของเราในการจัดเตรียม Black Friday การเปลี่ยนแปลงเหล่านี้ได้รับการจัดลำดับความสำคัญอย่างชัดเจน และทีมต้องทำงานร่วมกันเป็นอย่างดี มันเป็นประสบการณ์ที่ยอดเยี่ยมสำหรับผู้ที่วาง SendGrid เป็นอันดับแรก เรากำลังเปลี่ยนแปลงแอปพลิเคชัน โครงสร้างพื้นฐาน และเพิ่มความจุของฮาร์ดแวร์ของเราในขณะที่ใช้งานเอ็นจิ้นหลักของหน่วยธุรกิจของบริษัทมหาชนในจังหวะเริ่มต้น เหนือสิ่งอื่นใด เราทำทั้งหมดโดยไม่มีประสบการณ์การบริการที่ด้อยคุณภาพสำหรับลูกค้าของเรา
แผนการในอนาคต
เราใช้เวลาหลายชั่วโมงของมนุษย์ในการเตรียมตัวสำหรับ Black Friday 2019 การเรียนรู้ของเราในปีนี้จะช่วยให้เราเตรียมการสำหรับ Black Friday และ Cyber Monday ได้โดยอัตโนมัติในปี 2020 เราหวังว่าจะเป็นปีที่ประสบความสำเร็จอีกปีหนึ่งที่ปราศจากความเครียด - ส่งวันหยุดให้กับลูกค้าและพนักงานของเราเป็นจำนวนมาก