เมนู

เราแก้ปัญหาข้อผิดพลาด 429 ด้วย Kubernetes และประหยัดค่าใช้จ่ายเซิร์ฟเวอร์ 30%

เมื่อเดือนที่แล้วทีมของเราเกือบจะล่มสลาย:13% ของการร้องขอการแก้ไขที่อยู่ของผู้ใช้รายงานโดยตรง 429 ถูกปฏิเสธหลังจากตรวจสอบเบื้องหลังครึ่งวันพบว่ากฎการ จํากัด ปัจจุบันที่จัดสรรแยกต่างหากให้กับแต่ละไมโครเซอร์วิสตายเกินไปปริมาณการจราจรของโมดูลสอบถามโลจิสติกส์เพิ่มขึ้น 3 เท่าทรัพยากรที่ว่างเปล่าอื่น ๆ ไม่สามารถใช้งานได้เลย

ก่อนหน้านี้เรามักจะคิดว่า Kubernetes เป็นส่วนประกอบที่ซับซ้อนที่ใช้โดย บริษัท ขนาดใหญ่เท่านั้น จนกระทั่งก้าวบนหลุมนี้เราถูกบังคับให้ออนไลน์ ใช้เวลาไม่ถึงหนึ่งสัปดาห์และผลลัพธ์ที่ดีกว่าที่เราคาดไว้

เกตเวย์ Kubernetes คืออะไร

พูดง่ายๆคือทางเข้าการจราจรแบบครบวงจรสําหรับคลัสเตอร์ Kubernetes ทั้งหมดของคุณ คําขอภายนอกทั้งหมดจะมาถึงที่นี่ก่อนที่จะส่งต่อไปยังบริการหลังการทํางานที่สอดคล้องกัน อินสแตนซ์เดียวของเวอร์ชันโอเพนซอร์สที่เราใช้สามารถรับการร้องขอ 12,000 ต่อวินาทีทีมงานขนาดเล็กไม่จําเป็นต้องยุ่งเหยิงกับคอขวดประสิทธิภาพ

ประโยชน์ 3 ประการที่เราได้รับจริงๆ

A yellow traffic light showing red against a clear blue sky background.

ประการแรกที่ใช้งานง่ายที่สุด: กฎการ จํากัด ปัจจุบันในที่สุดก็ไม่ได้ใช้บริการแต่ละรายการแยกต่างหากก่อนหน้านี้เราได้รับการกระตุ้นให้เปลี่ยนเกณฑ์การ จํากัด ปัจจุบันของเจ็ดหรือแปดไมโครเซอร์วิสและมีปัญหาเกี่ยวกับการเปลี่ยนหนึ่ง ตอนนี้เราทําการ จํากัด ปัจจุบันแบบไดนามิกโดยตรงในระดับเกตเวย์ทรัพยากรเซิร์ฟเวอร์ที่ว่างเปล่าสามารถเอียงไปยังโมดูลที่มีปริมาณการจราจรสูงโดยอัตโนมัติ คริสต์มาสนี้ส่งเสริมข้อผิดพลาด 429 ของเราลดลงโดยตรงเป็น 0

ประการที่สองคือการประหยัดต้นทุนก่อนหน้านี้เพื่อรับมูลค่าสูงสุดเราได้จัดเตรียมเซิร์ฟเวอร์ซ้ําซ้อนอีก 2 เครื่องให้กับบริการหลักทั้ง 3 เครื่องโดยมีอัตราการใช้ทรัพยากรเพียง 20% ในเวลาส่วนใหญ่ ตอนนี้เกตเวย์สามารถปรับสมดุลโหลดโดยอัตโนมัติเราได้ปรับขนาดเซิร์ฟเวอร์ 6 เครื่องโดยตรงและลดค่าใช้จ่ายของระบบคลาวด์รายเดือนลง 30%

ประการที่สามคือการไม่ให้แบ็คเอนด์เปลี่ยนตรรกะทั่วไปเหล่านี้ซ้ํา ๆ ในโดเมนและการรับรองก่อนที่จะเปิดตัวบริการใหม่ ๆ ทุกครั้ง ต้องเขียนโค้ดสําหรับการตรวจสอบ JWT แต่ตอนนี้มันจะทําได้โดยตรงกับกฎในระดับเกตเวย์ 3 คนของเราสามารถใช้เวลาเพิ่มเติมอย่างน้อยครึ่งวันต่อสัปดาห์ในการเขียนโค้ดธุรกิจ

อย่าเพิ่งฟังผลประโยชน์ เราเหยียบสองหลุมนี้อย่างมั่นคง

หลุมแรกเป็นค่าเริ่มต้นสําหรับการตั้งค่าการหมดเวลาสําหรับหลุมเกินไปในวันแรกของการเปิดตัวเราพบว่า 5% ของคําขอการวิเคราะห์ที่อยู่หมดเวลา หลังจากตรวจสอบครึ่งวันพบว่าเวลาหมดเวลาเริ่มต้นของเกตเวย์คือ 30 วินาที แต่บริการการวิเคราะห์ที่อยู่ของเราเองจะทํางานได้นานที่สุด 40 วินาที หลังจากเปลี่ยนกฎแล้วมันจะกลับมาทันที ต้องตรวจสอบเกณฑ์เวลาหมดเวลาทีละครั้งกับอินเทอร์เฟซธุรกิจของตัวเองก่อนที่จะเปิดตัว

หลุมที่สองคืออย่ากองคุณสมบัติทั้งหมดในตอนแรกตอนแรกเราต้องการเปิดฟังก์ชั่น ทั้ง , , WAF , และ ในครั้งเดียว ผลที่ได้คือการเขียนผิด ทําให้ ทางเข้าทั้งคลาสเตอร์ถูกตัดเป็นเวลา 20 นาที ต่อมาเราเปิดแค่ และ เท่านั้นก่อน วิ่ง 3 วันเสถียรแล้วค่อยๆเพิ่มฟังก์ชั่นอื่นๆ ก็ไม่มีปัญหาอีกแล้ว

ใช้มันหรือไม่? ( ?)เกณฑ์ที่เราให้การตัดสินนั้นง่ายมาก

สถานการณ์ที่เหมาะสม:

Red traffic light set against a bright, cloudy sky. Perfect for themes of travel, technology, and safety.

  • จํานวนไมโครเซอร์วิสของคุณมีมากกว่าห้าและคุณต้องเปลี่ยนหลายสถานที่ทุกครั้งที่คุณเปลี่ยนการกําหนดค่าทั่วไป
  • มักจะพบกับจุดสูงสุดของการจราจรและไม่สามารถจัดตารางทรัพยากรได้อย่างยืดหยุ่นระหว่างบริการที่แตกต่างกัน
  • ทีมงานแบ็คเอนด์มีน้อยกว่า 5 คนและไม่ต้องการเสียเวลาในการเขียนตรรกะทั่วไปซ้ํา ๆ

สถานการณ์ที่ไม่น่ากลัว:

  • คุณมี 2 ไมโครเซอร์วิสการจราจรที่มั่นคงตลอดทั้งปีตอนนี้ใช้ NGINX ส่งต่อไม่มีปัญหาเล็กน้อย
  • ไม่มีใครในทีมงานเข้าใจพื้นฐานของ Kubernetes อย่าพยายามติดตามเทคโนโลยีใหม่ ๆ

2 คําแนะนําที่แท้จริงสําหรับทีมงานเล็ก ๆ ที่เริ่มต้นเป็นครั้งแรก

ไม่จําเป็นต้องพัวพันในการเลือกแบบทีมงานขนาดเล็กโดยตรงกับ API IX หรือ Kong เอกสารสนับสนุนทั้งหมดพบปัญหาในการค้นหาโดยทั่วไปมีวิธีแก้ปัญหาไม่ต้องซื้อรุ่นเชิงพาณิชย์ฟังก์ชั่นของรุ่นฟรีเพียงพอ

ตัด 10% ของการจราจรก่อนที่จะออนไลน์และทํางาน 24 ชั่วโมงเน้นไปที่ว่ามีเวลาเกินคําขอถูกสกัดกั้นโดยไม่ตั้งใจไม่มีปัญหาที่จะตัดเต็มรูปแบบอีกครั้งอย่านําการจราจรทั้งหมดผ่านทันทีที่ขึ้น

สุดท้ายด้วยคําถามที่ทุกคนมักจะถาม: ไม่มีใครศึกษาเกตเวย์เป็นพิเศษก่อน 3 ของเราใช้เวลา 2 วันในการติดตั้งเอกสารอย่างเป็นทางการจริงๆ ไม่ซับซ้อนอย่างที่คุณคิด

มีประโยชน์หรือไม่?

ฝ่ายสนับสนุนด้านเทคนิคบริการลูกค้าออนไลน์
侧栏
กลับไปด้านบน
简体中文ZH-CNDefault繁體中文ZH-TWEnglishEN日本語JA한국어KOภาษาไทยTHTiếng ViệtVIBahasa IndonesiaIDEspañolESFrançaisFRDeutschDEРусскийRUPortuguêsPTItalianoITالعربيةAR