การสร้างระบบที่ยืดหยุ่น: การเดินทางสู่การสังเกตที่ Intercom
เผยแพร่แล้ว: 2022-07-14ที่อินเตอร์คอม เรามุ่งเน้นที่ประสบการณ์ของลูกค้าเหนือสิ่งอื่นใด – ความพร้อมใช้งานและประสิทธิภาพของบริการคือสิ่งที่เราให้ความสำคัญสูงสุด ที่ต้องมีวัฒนธรรมที่แข็งแกร่งของการสังเกตได้ทั่วทั้งทีมและระบบของเรา
เป็นผลให้เราลงทุนอย่างมากในความน่าเชื่อถือของแอปพลิเคชันของเรา แต่ความล้มเหลวที่คาดเดาไม่ได้เป็นสิ่งที่หลีกเลี่ยงไม่ได้ และเมื่อมันเกิดขึ้น มนุษย์ต่างหากที่แก้ไขมัน
เราดำเนินการระบบทางสังคมและเทคนิค และความสามารถในการฟื้นตัวเมื่อเผชิญกับความทุกข์ยากนั้นเรียกว่าความยืดหยุ่น องค์ประกอบที่สำคัญประการหนึ่งของความยืดหยุ่นคือการสังเกตได้ ซึ่งเป็นขั้นตอนที่เราดำเนินการเพื่อให้มนุษย์สามารถ "มอง" ภายในระบบที่พวกมันทำงาน
โพสต์นี้จะสำรวจเส้นทางสู่การสร้างวัฒนธรรมการสังเกตที่เข้มแข็งยิ่งขึ้น และบทเรียนที่เราได้เรียนรู้ไปพร้อมกัน
การสังเกตที่อินเตอร์คอมหมายความว่าอย่างไร
ที่อินเตอร์คอมเราจัดส่งให้เรียนรู้ สภาพแวดล้อมการผลิตของเราคือที่ที่โค้ด โครงสร้างพื้นฐาน การพึ่งพาบุคคลที่สาม และลูกค้าของเรามารวมกันเพื่อสร้างความเป็นจริงตามวัตถุประสงค์ ซึ่งเป็นที่เดียวในการเรียนรู้และตรวจสอบผลกระทบของงานของเรา เรานิยามความสามารถในการสังเกตได้ว่าเป็นกระบวนการต่อเนื่องของมนุษย์ที่ถามคำถามเกี่ยวกับการผลิต และรับคำตอบ*
มาทำลายมันลงอีกหน่อย:
- กระบวนการต่อเนื่อง: การ สังเกตได้สำเร็จหมายความว่าผู้คนสังเกตบ่อยที่สุด
- คำถามเกี่ยวกับการผลิต: เราต้องการให้คำจำกัดความของเรากว้าง ทั่วไป และเป็นตัวแทนของขอบเขตกว้างของเวิร์กโฟลว์ที่เราให้บริการ
- คำตอบ*: สังเกตเครื่องหมายดอกจัน ไม่มีเครื่องมือใดที่จะให้คำตอบคุณได้ มีเพียงโอกาสในการขายที่คุณสามารถติดตามเพื่อค้นหาคำตอบที่แท้จริงได้ คุณต้องใช้แบบจำลองทางจิตและความเข้าใจเกี่ยวกับระบบที่คุณใช้งาน
ขั้นที่ 1: ปัญหาและแนวทางแก้ไข
ด้วยคำจำกัดความความสามารถในการสังเกตของเราเอง เราได้ประเมินแนวทางปฏิบัติที่มีอยู่และกำหนดคำชี้แจงปัญหา จนกระทั่งเมื่อไม่นานนี้ เครื่องมือวัดความสามารถในการสังเกตของเราอิงตามเมตริกเป็นหลัก เวิร์กโฟลว์ทั่วไปเกี่ยวข้องกับการดูแดชบอร์ดที่เต็มไปด้วยแผนภูมิพร้อมเมตริกที่แบ่งและแบ่งตามแอตทริบิวต์ต่างๆ ผู้คนจะมองหาความสัมพันธ์ แต่มักจะจากไปโดยไม่ได้ปฏิบัติตามความเข้าใจอย่างถ่องแท้
“ตัวชี้วัดนั้นง่ายต่อการเพิ่มและทำความเข้าใจ แต่ไม่มีแอตทริบิวต์คาร์ดินัลลิตี้สูง (เช่น ID ลูกค้า) ทำให้ยากต่อการตรวจสอบ”
ตัวชี้วัดนั้นง่ายต่อการเพิ่มและทำความเข้าใจ แต่ไม่มีแอตทริบิวต์คาร์ดินัลลิตี้สูง (เช่น ID ลูกค้า) ทำให้ยากต่อการตรวจสอบ ก่อนหน้านี้ แชมป์เปี้ยนความสามารถในการสังเกตจำนวนหนึ่งจะดำเนินการต่อเวิร์กโฟลว์โดยใช้เครื่องมือรอง (เช่น บันทึก ข้อยกเว้น ฯลฯ) พยายามเข้าถึงข้อมูลที่มีลำดับความสำคัญสูงและสร้างภาพรวมที่สมบูรณ์ขึ้น ทักษะนั้นจำเป็นต้องมีการฝึกฝนอย่างต่อเนื่อง ซึ่งเป็นความต้องการที่ไม่สมจริงสำหรับวิศวกรผลิตภัณฑ์ส่วนใหญ่ที่กำลังยุ่งอยู่กับการส่งมอบผลิตภัณฑ์
เราระบุว่าการขาดประสบการณ์การสังเกตแบบรวมนี้เป็นปัญหาที่ต้องแก้ไข เราต้องการให้ทุกคนถามคำถามตามอำเภอใจเกี่ยวกับการผลิตและรับข้อมูลเชิงลึกโดยไม่ต้องเชี่ยวชาญชุดเครื่องมือที่ไม่ได้เชื่อมต่อ การตั้งค่าต่ำเกินไป และราคาแพง เพื่อลดปัญหา เราจึงตัดสินใจเพิ่มการติดตามระยะไกลเป็นสองเท่า
แดชบอร์ดการปฏิบัติงานทั่วไปที่เราใช้ก่อนที่จะเพิ่มการติดตามเป็นสองเท่า
ทำไมต้องตามรอย?
เครื่องมือการสังเกตใดๆ เป็นเพียงเครื่องมือที่มีมนุษย์อยู่เบื้องหลัง และมนุษย์ต้องการการสร้างภาพข้อมูลที่ดี ไม่สำคัญว่าข้อมูลประเภทใดจะส่งผลต่อการสร้างภาพข้อมูล เพียงแค่เครื่องมือนี้จะช่วยให้คุณสลับไปมาระหว่างการแสดงภาพแบบต่างๆ ได้อย่างราบรื่น และรับมุมมองทางเลือกของปัญหา
การติดตามมีข้อได้เปรียบอย่างมากจากข้อมูลทางไกลอื่น ๆ โดยจะเข้ารหัสข้อมูลที่เพียงพอเกี่ยวกับธุรกรรมเพื่อขับเคลื่อนการแสดงภาพแทบทุกรูปแบบ การสร้างเวิร์กโฟลว์การสังเกตบนการติดตามช่วยให้มั่นใจได้ถึงประสบการณ์ที่รวมไว้อย่างราบรื่นโดยไม่จำเป็นต้องสลับข้อมูลพื้นฐานหรือเครื่องมือ
การสร้างภาพข้อมูลบางประเภทที่สามารถขับเคลื่อนโดยการติดตาม
ขั้นที่ 2: การดำเนินการตามรอย
ที่ Intercom เราเริ่มต้นเพียงเล็กน้อย ตัดสินใจว่าความสำเร็จจะเป็นอย่างไร และติดตามความคืบหน้าไปพร้อมกัน วัตถุประสงค์หลักของเราคือเพื่อยืนยันว่าการติดตามจะทำให้เวิร์กโฟลว์การสังเกตมีประสิทธิภาพมากขึ้น เพื่อสิ่งนี้ เราจำเป็นต้องให้วิศวกรตรวจสอบโดยเร็วที่สุด
“แทนที่จะใช้แอปพลิเคชันของเราด้วยการติดตามตั้งแต่เริ่มต้น เราใช้ไลบรารีการติดตามที่มีอยู่ซึ่งอยู่ในการพึ่งพาอยู่แล้ว”
เพื่อประหยัดเวลา เราใช้ Honeycomb ซึ่งเป็นผู้จำหน่ายที่มีอยู่ของเราในการพิสูจน์แนวคิด เราได้สร้างความสัมพันธ์ที่ดีกับพวกเขาแล้วในขณะที่ใช้เครื่องมือสำหรับกิจกรรมที่มีโครงสร้างในอดีต
แทนที่จะรวมแอปพลิเคชันของเราด้วยการติดตามตั้งแต่เริ่มต้น เราใช้ไลบรารีการติดตามที่มีอยู่ซึ่งอยู่ในการอ้างอิงแล้ว และทำการปรับเปลี่ยนเล็กน้อยเพื่อแปลงข้อมูลการติดตามเป็นรูปแบบ Honeycomb–native เราเริ่มต้นด้วยการสุ่มตัวอย่างแบบกำหนดอย่างง่าย โดยคงไว้ประมาณ 1% ของธุรกรรมทั้งหมดที่เราดำเนินการ
ให้เพื่อนร่วมทีมใช้ร่องรอย
การเปลี่ยนองค์กรไปสู่การติดตามไม่ใช่เรื่องเล็ก การติดตามมีความซับซ้อนมากกว่าเมตริกหรือบันทึกและมีช่วงการเรียนรู้ที่สูงชัน เครื่องมือวัด ไปป์ไลน์ข้อมูล และเครื่องมือล้วนมีความสำคัญ แต่ความท้าทายที่ใหญ่ที่สุดคือการช่วยให้เพื่อนร่วมทีมของคุณใช้การติดตามให้เกิดประโยชน์สูงสุด ด้วยการพิสูจน์แนวคิดในการผลิต เราจึงเริ่มมุ่งเน้นไปที่การสร้างวัฒนธรรมของการสังเกตในทันที
“เราไม่ได้มุ่งเน้นที่วิศวกรเท่านั้น – เราได้พูดคุยกับกรรมการ ผู้จัดการโปรแกรมด้านเทคนิค สมาชิกทีมรักษาความปลอดภัย และตัวแทนฝ่ายสนับสนุนลูกค้าเพื่อเน้นว่าการติดตามสามารถช่วยแก้ปัญหาเฉพาะของพวกเขาได้อย่างไร”
การหาพันธมิตรเป็นกุญแจสู่ความสำเร็จ เรารวบรวมกลุ่มแชมป์เปี้ยนที่มีความชำนาญในการสังเกตอยู่แล้ว พวกเขาช่วยยืนยันสมมติฐานของเราและเผยแพร่เกี่ยวกับการติดตามภายในทีมของพวกเขา แต่เราไม่ได้มุ่งเน้นที่วิศวกรเท่านั้น เราได้พูดคุยกับกรรมการ ผู้จัดการโปรแกรมด้านเทคนิค สมาชิกทีมรักษาความปลอดภัย และตัวแทนฝ่ายสนับสนุนลูกค้าเพื่อเน้นว่าการติดตามสามารถช่วยแก้ปัญหาเฉพาะของพวกเขาได้อย่างไร
การปรับแต่งข้อความของเราช่วยล็อคการสนับสนุน การแนะนำเครื่องมือใหม่นั้นมีความเสี่ยงเสมอ โดยการแสดงศักยภาพและทำให้ผู้คนตื่นเต้น เราจึงเพิ่มโอกาสในการประสบความสำเร็จ
ขั้นตอนที่ 3: การตัดสินใจเลือกผู้ขายที่เหมาะสม
เมื่อโปรแกรมการเปิดใช้งานเริ่มต้นขึ้น เราเริ่มมองหาผู้จำหน่ายที่เน้นการติดตามที่ทันสมัยและกำหนดชุดเกณฑ์เพื่อประเมินผู้มีโอกาสเป็นผู้สมัคร
เวิร์กโฟลว์ : เราระบุเวิร์กโฟลว์การสำรวจว่าสำคัญที่สุด ซึ่งจะช่วยให้วิศวกรสามารถแบ่งและแบ่งข้อมูลการผลิตตามอำเภอใจ และรับข้อมูลเชิงลึกผ่านการแสดงภาพและคุณลักษณะที่มีหัวใจสำคัญสูง ส่วนใหญ่ของการวินิจฉัยปัญหาคือการสามารถระบุได้ และนั่นหมายถึงการเข้าใจว่า "ปกติ" เป็นอย่างไร เราต้องการทำให้วิศวกรสำรวจการผลิตได้ง่ายโดยถามคำถามบ่อยเท่าที่เป็นไปได้ ไม่ใช่แค่เมื่อเกิดปัญหาเท่านั้น

“เราต้องการควบคุมวิธีการสุ่มตัวอย่างและเก็บรักษาข้อมูลอย่างเต็มที่”
การควบคุมการสุ่มตัวอย่างและการเก็บรักษา : เราต้องการการควบคุมอย่างสมบูรณ์เกี่ยวกับวิธีการสุ่มตัวอย่างและเก็บรักษาข้อมูล การสุ่มตัวอย่างแบบกำหนดได้ช่วยให้เราเริ่มต้นและดำเนินการได้อย่างรวดเร็ว แต่เราต้องการเลือกมากขึ้นและเก็บการติดตามที่ "น่าสนใจ" ไว้มากขึ้น (เช่น ข้อผิดพลาด คำขอที่ช้า) โดยใช้การสุ่มตัวอย่างแบบไดนามิกที่ชาญฉลาดในขณะที่อยู่ต่ำกว่าขีดจำกัดของสัญญา
การแสดงภาพข้อมูลที่แม่นยำ : เราต้องการให้แน่ใจว่า ไม่ว่าเทคนิคการสุ่มตัวอย่างใดก็ตามที่เราใช้ เครื่องมือความสามารถในการสังเกตจะจัดการมันอย่างโปร่งใสโดยการเปิดเผยตัวเลขโดยประมาณ "จริง" ในการแสดงภาพ ผู้จำหน่ายแต่ละรายแก้ไขปัญหานี้แตกต่างกัน – บางรายจำเป็นต้องส่งข้อมูลทั้งหมดไปยังผู้รวบรวมทั่วโลกเพื่อสรุปตัวชี้วัดสำหรับตัวบ่งชี้ที่สำคัญ เช่น อัตราข้อผิดพลาด ปริมาณ ฯลฯ นี่ไม่ใช่ตัวเลือกสำหรับเราเนื่องจากมีข้อมูลปริมาณมหาศาลที่สร้างโดยเครื่องมือวัดที่หลากหลายของเรา
การ กำหนดราคา : เราต้องการรูปแบบการกำหนดราคาที่เรียบง่ายและคาดการณ์ได้ ซึ่งสัมพันธ์กับมูลค่าที่เราได้รับจากเครื่องมือ การเรียกเก็บเงินตามปริมาณข้อมูลที่เก็บไว้และเปิดเผยนั้นดูยุติธรรม
เมตริกการมีส่วนร่วม : เราต้องการให้ผู้ขายเป็นพันธมิตรที่ดีและช่วยเราติดตามการนำเครื่องมือไปใช้และประสิทธิภาพของเครื่องมือโดยเปิดเผยเมตริกการใช้งานหลักและระดับการมีส่วนร่วม
ไม่มีผู้ขายที่สมบูรณ์แบบ ดังนั้นจงเตรียมพร้อมที่จะประนีประนอม ในท้ายที่สุด เราสรุปได้ว่า Honeycomb ไม่เพียงแต่ทำงานได้ดีขึ้นสำหรับเวิร์กโฟลว์หลักที่เราระบุเท่านั้น แต่ยังทำเครื่องหมายในช่องในการสุ่มตัวอย่าง ราคา และเมตริกการใช้งานด้วย ดังนั้นเราจึงหลีกเลี่ยงการโยกย้ายผู้ขายที่มีค่าใช้จ่ายสูง
หลังจากปีแห่งการทำงานที่ท้าทาย เราได้เสร็จสิ้นส่วนทางเทคนิคของโปรแกรมการสังเกตได้ นี่คือสิ่งที่เราได้รับ:
- แอปพลิเคชันเสาหินหลักของเราได้รับการติดตั้งโดยอัตโนมัติพร้อมร่องรอยที่อุดมด้วยแอตทริบิวต์คุณภาพสูง
- วิศวกรมีวิธีที่สะดวกเพียงเล็กน้อยในการเพิ่มเครื่องมือที่กำหนดเองลงในโค้ด
- เราได้ปรับใช้โรงกลั่น Honeycomb เพื่อสุ่มตัวอย่างข้อมูลแบบไดนามิกและเก็บร่องรอยที่ "น่าสนใจ" ไว้มากขึ้น เราสนับสนุนให้วิศวกรกำหนดค่ากฎการเก็บรักษาที่กำหนดเองเพื่อการควบคุมที่ละเอียดยิ่งขึ้น สำหรับธุรกรรมที่มีค่าที่สุด และเมื่อเป็นไปได้ในเชิงเศรษฐกิจ เราเสนอการเก็บรักษา 100% เพื่อให้ข้อมูลที่จำเป็นแก่ผู้คน
ขั้นตอนที่ 4: การรับเลี้ยงบุตรบุญธรรมที่เพิ่มขึ้น
หลังจากให้คำมั่นกับ Honeycomb และทำงานบนไปป์ไลน์ข้อมูลเสร็จแล้ว เราก็เปลี่ยนโฟกัสกลับไปที่การเปิดใช้งาน ในการสร้างวัฒนธรรมของการสังเกต คุณต้องทำให้ผู้คนสามารถขึ้นเรือได้ง่าย ต่อไปนี้คือวิธีที่เราช่วยให้ทีมนำเครื่องมือการสังเกตใหม่มาใช้:
การติดตามในสภาพแวดล้อมการพัฒนา
เพื่อทำให้วิศวกรคุ้นเคยกับเครื่องมือติดตามและสนับสนุนให้เพิ่มลงในโค้ด เราเสนอการติดตามที่เป็นทางเลือกจากสภาพแวดล้อมการพัฒนาในพื้นที่พร้อมร่องรอยที่เปิดเผยใน Honeycomb สิ่งนี้ช่วยให้ผู้คนเห็นภาพเครื่องมือที่กำหนดเองแบบใหม่ในลักษณะเดียวกับที่พวกเขาจะได้เห็นเมื่อโค้ดมาถึงการผลิต
บันทึกอาจอ่านและตีความได้ยาก ในขณะที่มุมมองการติดตามมีโครงสร้างและจัดระเบียบมากกว่ามาก
ทางลัดแบบสอบถาม Slackbot
เมื่อการผลิตมีปัญหา สิ่งสุดท้ายที่คุณต้องการคือการแย่งชิงการค้นหาที่ถูกต้อง เราได้เพิ่มปฏิกิริยาของบอทที่กำหนดเองในข้อความ "แสดงประสิทธิภาพของเว็บ" การติดตามลิงก์ Slackbot จะเป็นการเปิดประสิทธิภาพของปลายทางเว็บที่แยกตามบริการ
เราปรับปรุงเวิร์กโฟลว์การสังเกตของเราด้วย Slackbot ที่ให้ทางลัดไปยังข้อความค้นหายอดนิยมภายในเครื่องมือการสังเกตของเรา
ขั้นตอนที่ 5: ภาพสะท้อนและขั้นตอนต่อไป
การวัดการยอมรับ
การวัดผลตอบแทนจากการลงทุน (ROI) จากเครื่องมือที่สามารถสังเกตได้เป็นสิ่งที่ท้าทาย การติดตามจำนวนผู้ใช้ที่ใช้งานอยู่เป็นตัวบ่งชี้ที่ดีว่าวิศวกรมีส่วนร่วมกับเครื่องมือบ่อยเพียงใด และเราได้รับประโยชน์มากมายจากเมตริกการใช้งานของ Honeycomb
แผนภูมินี้แสดงการเพิ่มขึ้นของจำนวนผู้ใช้ Honeycomb ที่ใช้งานอยู่ตั้งแต่เริ่มเปิดใช้งานการสังเกตได้
เราไปต่อและวัดประโยชน์ของการนัดหมายเหล่านั้น เราตั้งสมมติฐานว่าหากข้อมูลเชิงลึกที่ได้จากเครื่องมือวัดความสามารถในการสังเกตมีค่า ผู้คนก็จะแบ่งปันกับเพื่อนๆ ของพวกเขา เวิร์กโฟลว์ด้านวิศวกรรมของเราขึ้นอยู่กับปัญหาของ Github เป็นหลัก ดังนั้นเราจึงตัดสินใจนับจำนวนปัญหาหรือดึงคำขอที่มีการกล่าวถึงหรือเชื่อมโยงกับ Honeycomb (การติดตาม ผลการค้นหา ฯลฯ) เป็นพร็อกซีสำหรับเมตริกการนำไปใช้ ในขณะที่เราเพิ่มการเปิดใช้งานเป็นสองเท่าในช่วงปลายปี 2021 เราสังเกตเห็นการระเบิดในจำนวนของปัญหาที่กล่าวถึง Honeycomb ซึ่งพิสูจน์ว่าเรามาถูกทางแล้ว
แผนภูมิแท่งแสดงจำนวนปัญหา GitHub ที่มีการกล่าวถึง Honeycomb ในชื่อหรือคำอธิบาย
เวิร์กโฟลว์ที่ไม่คาดคิด
การสร้างพื้นฐานการสังเกตที่มั่นคงช่วยให้เวิร์กโฟลว์ที่เราคาดไม่ถึงมาก่อนได้ นี่คือรายการโปรดบางส่วนของเรา:
การแจ้งโปรแกรมต้นทุน : เนื่องจากเราติดตามการรับส่งข้อมูลทั้งหมดและมีช่วงระยะเวลาสำหรับการสืบค้น SQL, คำขอ Elasticsearch ฯลฯ เราจึงสามารถตรวจสอบการเพิ่มขึ้นอย่างรวดเร็วในการใช้งานส่วนที่ใช้ร่วมกันที่แยกจากกันของโครงสร้างพื้นฐานของเรา (เช่น คลัสเตอร์ฐานข้อมูล) และระบุแอตทริบิวต์ไปยังลูกค้ารายเดียว การจับคู่ข้อมูลนี้กับต้นทุนของส่วนประกอบโครงสร้างพื้นฐานแต่ละรายการ เราสามารถใส่ป้ายราคาโดยประมาณในทุกธุรกรรมที่เราให้บริการ ความสามารถในการสังเกตกลายเป็นส่วนประกอบสำคัญของโปรแกรมต้นทุนโครงสร้างพื้นฐานของเราโดยไม่คาดคิด
การปรับปรุงการตรวจสอบความปลอดภัย : ความสามารถในการรักษาธุรกรรมที่เลือกไว้ได้ 100% ทำให้เราสามารถรักษาการโต้ตอบทั้งหมดกับคอนโซลข้อมูลการผลิตของเรา ช่วยให้ความปลอดภัยสร้างการมองเห็นที่ดีขึ้นในการเข้าถึงข้อมูลลูกค้าของเรา
อะไรต่อไป?
การสร้างวัฒนธรรมการสังเกตได้จะยังคงเป็นส่วนหนึ่งของโปรแกรมทางเทคนิคของเรา: เราจะมุ่งเน้นที่การปรับปรุงวัสดุการเริ่มต้นใช้งาน การทอผ้าเพิ่มเติมในการสังเกตผ่านการติดตามในการดำเนินงาน R&D ของเรา และการสำรวจเครื่องมือส่วนหน้า
สนใจร่วมทีมกับเราไหม? ตรวจสอบบทบาทวิศวกรรมแบบเปิดของเราที่นี่