โครงสร้างพื้นฐานของเราขยายไปพร้อมกับลูกค้าของเราอย่างไร

เผยแพร่แล้ว: 2022-06-03

เราจริงจังกับการนำเสนอประสบการณ์ลูกค้าที่ดีที่สุดด้วย Engagement OS ของเรา เรามีความทะเยอทะยานระดับโลกอย่างแท้จริงที่จะนำภารกิจของเราในการทำให้ธุรกิจอินเทอร์เน็ตส่วนบุคคลแก่ลูกค้าองค์กรรายใหญ่ที่สุดทั่วโลก

ความทะเยอทะยานนี้สะท้อนให้เห็นในวิธีที่เราออกแบบและสร้างโครงสร้างพื้นฐานที่รองรับแพลตฟอร์มอินเตอร์คอม เรากำลังสร้างในระยะยาว ซึ่งหมายถึงการรับรองความน่าเชื่อถือโดยค่าเริ่มต้น และความสามารถในการรองรับขนาดใหญ่ในขณะที่เราเติบโต

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

นี่เป็นโพสต์ที่สามในซีรีส์ที่สำรวจวิธีที่ Intercom ได้ปรับขนาดฟังก์ชันหลักเพื่อรองรับความต้องการของลูกค้าองค์กร

เรากำลังเติบโตไปพร้อมกับลูกค้าของเรา

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

ใช่ทั้งหมดข้างต้น

วันนี้ ระบบของเราปรับขนาดแบบไดนามิกเพื่อให้บริการคำขอเว็บประมาณ 50,000 รายการต่อวินาทีที่ความเร็วสูงสุด 26,000 งานในเบื้องหลังต่อวินาที และคำขอ API สาธารณะ 11,000 รายการต่อวินาที ซึ่งแสดงให้เห็นถึงความสามารถของเราในการขยายขนาดอย่างต่อเนื่องเพื่อให้เป็นไปตามข้อกำหนดขององค์กรสมัยใหม่

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

ที่อินเตอร์คอม เราตั้งเป้าที่จะรันซอฟต์แวร์ให้น้อยลง

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

เครื่องมือของเราช่วยให้มีความพร้อมใช้งานสูง

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

แอปเพื่อนร่วมทีมของเราคือ ส่วนหน้า Ember.js ที่ ได้รับการสนับสนุนโดย เสาหิน Ruby on Rails แอปพลิเคชัน Rails เป็นแกนหลักของ Intercom และสิ่งที่เราปรับใช้กับเว็บ, API และผู้ปฏิบัติงานแบบอะซิงโครนัสนับพันบนคลัสเตอร์ต่อฟังก์ชันเฉพาะ

“ทุกวัน Black Friday เนื่องจากลูกค้าของเราจำนวนมากเข้าสู่ช่วงที่ยุ่งที่สุด โครงสร้างพื้นฐานของเราจะปรับขนาดเพื่อให้เข้าคู่กันได้โดยไม่มีการแทรกแซงของมนุษย์”

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

เครื่องมือการสังเกตของเราช่วยให้เราติดตามอย่างใกล้ชิดว่าเราให้บริการการจราจรอย่างไร

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

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

ไปป์ไลน์การสังเกตของเราอ้างอิงจาก โรงกลั่น Honeycomb และสุ่มตัวอย่างคำขอที่มีค่าแบบไดนามิกเพื่อรักษาร่องรอยที่น่าสนใจ (เช่น ข้อผิดพลาดในการเผชิญหน้ากับลูกค้า) โดยค่าเริ่มต้น นอกจากนี้เรายังมีความสามารถในการกำหนดค่ากฎที่กำหนดเองสำหรับการควบคุมการสุ่มตัวอย่างเต็มรูปแบบ

“เราสนับสนุนการเก็บรักษา 100% เพื่อให้ข้อมูลทั้งหมดที่พวกเขาต้องการแก่วิศวกรในขณะที่เราสร้างคุณสมบัติใหม่หรือแก้ปัญหาการผลิต”

สำหรับธุรกรรมที่มีค่าที่สุด เราสนับสนุนการเก็บรักษา 100% เพื่อให้วิศวกรมีข้อมูลทั้งหมดที่พวกเขาต้องการในขณะที่เราสร้างคุณสมบัติใหม่หรือแก้ปัญหาการผลิต นอกจากนี้ ขณะที่เราติดแท็กการติดตามทั้งหมดด้วยรหัสลูกค้าของผู้สร้างคำขอ เราสามารถเจาะลึกว่าลูกค้าของเรากำลังประสบกับอินเตอร์คอมได้อย่างไร

ที่เก็บข้อมูลต่าง ๆ ช่วยให้สามารถปรับให้เหมาะสมในกรณีการใช้งานต่างๆ

เราเรียกใช้ datastore หลายประเภทเพื่อรองรับข้อกำหนดในการอ่านและเขียนข้อมูลต่างๆ ของเราในแอปพลิเคชันต่างๆ:

  • AWS Aurora MySQL : แหล่งข้อมูลความจริงของเราส่วนใหญ่สร้างขึ้นบน AWS Aurora MySQL ในส่วนหนึ่งของการปรับขนาดเริ่มต้น เราแบ่งฐานข้อมูลตามฟังก์ชัน เมื่อคลัสเตอร์ฐานข้อมูลเดี่ยวขยายเป็นอินสแตนซ์ที่ใหญ่ที่สุดที่ AWS Aurora จัดให้ เราเริ่มโปรแกรมเพื่อสร้างฐานข้อมูลของลูกค้าแต่ละรายที่อยู่ในคลัสเตอร์ฐานข้อมูลขนาดเล็กหลายคลัสเตอร์ ซึ่งตอนนี้เราสามารถปรับขนาดได้ทั้งแนวนอนและแนวตั้ง งาน นี้แล้วเสร็จในต้นปี 2020 และสถาปัตยกรรมช่วยให้เราปรับขนาดตารางที่ใหญ่ที่สุดของเราได้อย่างไม่มีกำหนด
  • Elasticache : ที่ด้านหน้าฐานข้อมูลของเรา เรามี ชั้น แคช เมมแคชที่สร้างขึ้นบน Elasticache
  • DynamoDB : เราใช้ DynamoDB เพียงเล็กน้อย สำหรับกรณีการใช้งานการอ่านและเขียนที่สูง มาก

การค้นหาเป็นส่วนสำคัญของอินเตอร์คอม

การค้นหาสนับสนุนโฮสต์ของคุณสมบัติหลักทั้งหมดของอินเตอร์คอม – มุมมองกล่องขาเข้า , API , บทความ , รายชื่อผู้ใช้ , ขาออก , การ รายงาน , Resolution Bot และระบบการบันทึกภายในของเรา

การค้นหาส่วนใหญ่ขับเคลื่อนโดย คลัสเตอร์ Elasticsearch ต่อฟังก์ชันจำนวนมาก เราได้สร้าง เครื่องมือมากมาย ที่ทำให้งานที่ยากลำบากที่สุดของ Elasticsearch เป็นไปโดยอัตโนมัติ รวมถึงการแพตช์ความปลอดภัย การอัพเกรด และการเปลี่ยนฮาร์ดแวร์ที่ด้อยคุณภาพ นอกจากนี้เรายังได้สร้างเครื่องมือที่ช่วยให้เราสามารถเรียกใช้การโยกย้าย (ในลักษณะเดียวกันกับ MySQL) กับดัชนี

“โครงสร้างพื้นฐานระดับโลกของเราออกแบบมาเพื่อให้บริการแก่บริษัทหลายแสนราย ทั้งรายใหญ่และรายเล็ก”

นอกจากการปรับปรุงความสามารถของวิศวกรของเราในการวนซ้ำบนสคีมาของดัชนีแล้ว ยังช่วยให้เราสามารถแยกย่อยดัชนีขนาดใหญ่ออกเป็นดัชนีขนาดเล็กลงซึ่งง่ายต่อการจัดการและให้ประสิทธิภาพและความเสถียรที่สูงขึ้น นอกจากนี้ยังทำให้เรามีมิติเพิ่มเติมในการปรับขนาดคลัสเตอร์ Elasticsearch ของเรา เช่นเดียวกับแนวทางการแบ่งส่วนข้อมูล MySQL ของเรา สิ่งนี้ทำให้เรามีรันเวย์การปรับขนาดเป็นเวลาหลายปี

โครงสร้างพื้นฐานระดับโลกของอินเตอร์คอมสร้างขึ้นสำหรับขนาดอินเทอร์เน็ต

โครงสร้างพื้นฐานระดับโลกของเราได้รับการออกแบบมาเพื่อรองรับบริษัทหลายแสนแห่ง ทั้งขนาดใหญ่และขนาดเล็ก และ เรานำไปใช้กับการจัดการการดำเนินงานด้านโครงสร้างพื้นฐานของเราอย่างเข้มงวด เพื่อให้แน่ใจว่าสิ่งต่างๆ จะดำเนินไปอย่างราบรื่น

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

เราทำงานอย่างหนักและชาญฉลาดเพื่อให้เป็นเช่นนั้น และนั่นเป็นสาเหตุที่ลูกค้าไว้วางใจเรา ตั้งแต่สตาร์ทอัพที่เล็กที่สุดไปจนถึงองค์กรที่ใหญ่ที่สุดในโลก

ค้นพบโพสต์อื่นๆ ใน Intercom for Enterprise series