- หน้าแรก
- เส้นทางมหาเศรษฐี เริ่มต้นจากยุค เอไอ
- บทที่ 19 ผมคือผู้หยั่งรู้
บทที่ 19 ผมคือผู้หยั่งรู้
บทที่ 19 ผมคือผู้หยั่งรู้
บทที่ 19 ผมคือผู้หยั่งรู้
ระบบแนะนำของติ่งเซิ่งดิจิทัลปล่อยอัปเดต Full Rollout แล้ว
ตอนที่หานลู่อีไถเวยป๋อเจอแฮชแท็กติดเทรนด์ เป็นเวลาบ่ายสามโมง แฮชแท็ก #ติ่งเซิ่งระบบแนะนำรวน# ติดอันดับที่สิบเจ็ด
พอกดเข้าไปดู บรรยากาศเป็นไปในทิศทางเดียวกันหมด
"แนะนำรถเข็นเด็กมาให้ฉันเนี่ยนะ ฉันอายุยี่สิบสาม โสด เลี้ยงหมาตัวนึง"
"บัญชีสายฟิตเนสของฉัน ไถเจอแต่อาหารเสริมบำรุงสุขภาพกับเครื่องช่วยฟัง"
"ฉันนั่งดูคลิปทำอาหารมาทั้งเช้า หน้าโฮมเพจดันแนะนำโปรโมชันบริการจัดงานศพมาให้ สงสัยติ่งเซิ่งจะคิดว่าฉันกินเยอะไป เลยเตรียมจัดงานศพให้ล่วงหน้ามั้ง"
ช่องคอมเมนต์เต็มไปด้วยความเฮฮา
มีคนสรุปไว้ว่า "ฟีเจอร์ เดาว่าคุณชอบ ของติ่งเซิ่งน่าจะเปลี่ยนชื่อเป็น เดาว่าคุณเป็นใคร มากกว่านะ ยังไม่ทันรู้เลยว่าฉันเป็นใครก็เริ่มเดาซะแล้ว"
หานลู่อีไม่ได้หัวเราะ
ตัว Static Rule Engine ไม่น่าจะทำงานผิดพลาดหลุดโลกขนาดนี้ การแนะนำไม่ตรงเป้านั้นเป็นเรื่องปกติ แต่การแนะนำแบบจับต้นชนปลายไม่ถูกขนาดนี้ แสดงว่า Data Pipeline มีปัญหา โมดูล Feature Extraction ที่เขาเขียนขึ้นมาทีละบรรทัดถูกตัดทิ้งไป พอรูปแบบ User Profile อันเก่ากับเอนจินตัวใหม่ไม่มีคนทำตัวเชื่อมประสาน ข้อมูลที่ป้อนเข้าไปก็เลยรวนไปหมด ขยะเข้า ขยะก็ออก
แนะนำรถเข็นเด็กน่ะยังไม่เท่าไหร่ รอให้บัฟเฟอร์ของ Data Pipeline เต็มเมื่อไหร่ เรื่องหลังจากนั้นก็ขำไม่ออกแล้ว
เช้าวันต่อมา เสียงบ่นในเวยป๋อเริ่มเปลี่ยนทิศทาง แฮชแท็กก็พุ่งขึ้นมาอยู่อันดับสาม
คอมเมนต์ยอดไลก์สูงสุด "เปิดแอปซื้อของสดติ่งเซิ่ง ดันแนะนำของเล่นผู้ใหญ่มาเต็มหน้าจอ แม่ฉันยืนอยู่ข้างๆ พอดี ตอนนี้ฉันจะอธิบายให้แม่ฟังยังไงเนี่ย?"
มีคนโพสต์ต่อ "ฉันอยู่เซินเจิ้น ฟีเจอร์ เดาว่าคุณชอบ แนะนำร้านหม้อไฟโลคอลในฮาร์บินมาให้เต็มหน้าจอเลย ลองถามเพื่อนที่อยู่ฮาร์บินดู ฝั่งนั้นดันมีแต่ร้านชานมในเซินเจิ้น เราสองคนสลับบัญชีกันหรือเปล่าวะ?"
มีคนผสมโรง "ไม่ใช่แค่พวกคุณนะ หน้าแนะนำของฉันกับเพื่อนร่วมงานเหมือนกันเป๊ะ แม้กระทั่งลำดับก็เหมือนกัน"
ทางฝั่งเว็บบอร์ดเทคโนโลยีก็ระเบิดลงเหมือนกัน
ไอดี หมาแก่สถาปัตยกรรม ซึ่งเป็นเดฟระดับซีเนียร์ โพสต์ข้อความยาวเหยียด:
"พูดกันตามตรงนะ แนวทางการปรับโครงสร้างระบบแนะนำครั้งนี้ดูคุ้นตามาก โมดูล Feature Extraction ที่ถอยหลังจาก Dynamic Weight กลับไปเป็น Static Rule ส่วนโมดูล Multimodal Fusion ก็ถูกหั่นซะเหลือแค่มิติของข้อความ บล็อกเรื่อง 7 หลุมพรางคลาสสิก ที่ NullPointer เขียนไว้เมื่อเดือนก่อน หลุมพรางข้อสาม ข้อห้า และข้อเจ็ด ติ่งเซิ่งเหยียบเข้าเต็มๆ ขอเสนอให้เขียนภาคต่อเลย: คู่มือปฏิบัติจริง 7 หลุมพราง นำแสดงโดยบริษัทยักษ์ใหญ่แห่งหนึ่ง"
สองชั่วโมง ยอดไลก์ร้อยสามสิบกว่าไลก์
หานลู่อีเปิดดูยอดวิวบล็อกของตัวเอง หนึ่งหมื่นแปดพันครั้ง
ท้องฟ้าข้างนอกหน้าต่างเป็นสีเทาหม่นเหมือนหน้าจอที่ยังไม่ได้ปรับสี ฝนยังไม่ตก อากาศอบอ้าวเหนอะหนะ
ยังไม่มีใครรู้ตัวว่าปัญหาที่แท้จริงมันร้ายแรงแค่ไหน
จนกระทั่งเวลาห้าทุ่มครึ่ง
ก่อนนอน หานลู่อีไถเวยป๋อดูอีกรอบ
แฮชแท็ก #ติ่งเซิ่งระบบแนะนำพัง# ที่แขวนมาสองวัน ความนิยมเริ่มลดลงแล้ว
แฮชแท็กใหม่ #ติ่งเซิ่งล่ม# พุ่งทะยานขึ้นอันดับหนึ่ง
เขากดเข้าไปดู เมื่อยี่สิบนาทีก่อน แอปพลิเคชันหลักทั้งสามตัวของเครือติ่งเซิ่งพร้อมใจกันเด้งออก ผู้ใช้เปิดเข้ามาเจอแต่หน้าจอขาวโพลน
การพังของระบบแนะนำไม่ได้ทริกเกอร์ให้ระบบตัดการทำงานทำงาน โมดูลที่พังลุกลามเหมือนโรคติดต่อ คืบคลานขึ้นไปตาม Call Chain ดึงระบบอื่นๆ ที่พึ่งพามันอย่างระบบ Content Distribution, ระบบ Search และการโหลดหน้าโฮมเพจให้พังตามไปด้วย ท้ายที่สุดห่วงโซ่ทั้งหมดก็ล่มสลาย
เวลาห้าทุ่มสิบห้านาที ติ่งเซิ่งออกประกาศด่วน ห้าทุ่มสี่สิบนาที แอปพลิเคชันเริ่มกลับมาออนไลน์ พวกเขาใช้วิธีปิดระบบแนะนำทิ้งทั้งยวงด้วยระบบแมนนวล
ในเวยป๋อมีคนโพสต์ภาพหน้าจอหลังจากกู้คืนระบบ หน้าโฮมเพจโล่งเตียน ไม่มีฟีเจอร์ เดาว่าคุณชอบ ไม่มีการแนะนำแบบ Personalized ไม่มีการปรับแต่งเนื้อหาให้เข้ากับผู้ใช้แต่ละคน มีแค่ชั้นวางสินค้าโล่งๆ
"นี่มันแอปพลิเคชันปี 2015 หรือเปล่าเนี่ย?"
"ระบบแนะนำของติ่งเซิ่งล่ะ? หายไปไหนแล้ว?"
"โดนตัดไปแล้ว ถ้าไม่ตัดแอปมันก็ใช้ไม่ได้เลย คุณจะเลือกแบบไหนล่ะ?"
หานลู่อีเปิดใช้งานเนตรโค้ดแห่งความเป็นจริง
[ลักษณะเหตุการณ์: ระบบขัดข้องระดับโครงสร้าง (ไม่มี Circuit Breaker -> ล่มทั้งระบบ)]
[สาเหตุหลัก: รูปแบบโปรไฟล์ไม่เข้ากัน -> เกิด Error สะสมในการประมวลผล -> Memory Leak จนเกิด OOM -> ท่อ Data Pipeline ขาด -> โปรไฟล์ผู้ใช้ 23% รวน -> โมดูลแนะนำพังโดยไม่มีระบบ Circuit Breaker -> ลุกลามล่มทั้งระบบ (Cascading Failure)]
[ขอบเขตผลกระทบ: ผู้ใช้ทั้งหมดในช่วงที่ระบบล่ม (ยอดออนไลน์สูงสุดประมาณ 12 ล้านคน) ปัจจุบันกำลังทำงานในโหมด Downgrade (ลดประสิทธิภาพ)]
[สถานะปัจจุบัน: ตัดการทำงานของโมดูลแนะนำแบบแมนนวล แอปพลิเคชันทำงานในโหมด Downgrade]
[คาดการณ์รอบการกู้คืน: ถอยกลับไปใช้สถาปัตยกรรมเดิม (Rollback) ประมาณ 14 วัน]
ตรงตามที่เขาคาดไว้เป๊ะ
ผลการประเมินระดับแย่มากที่เขาเห็นตอนสแกนโค้ดโปรเจกต์เอาต์ซอร์สนั่นเมื่อกลางเดือนมีนาคม ช่องโหว่หนึ่งร้อยสี่สิบจุด ชี้ไปยังจุดจบนี้
นับตั้งแต่ปล่อยอัปเดตแบบ Full Rollout ในเช้าวันจันทร์ จนถึงตอนที่ล่มสลายทั้งระบบในคืนวันอังคาร ใช้เวลาไม่ถึงสี่สิบแปดชั่วโมง
เร็วกว่าที่คาดไว้หนึ่งวันเสียอีก
...
เรื่องราวหลังจากฟ้าสาง ล้มเป็นโดมิโน่
มีคนขุดบล็อก 《7 หลุมพรางคลาสสิกในการปรับโครงสร้างระบบแนะนำ》 ที่หานลู่อีเขียนไว้เมื่อเดือนก่อนขึ้นมา แล้วโพสต์ข้อความว่า...
"พี่น้องครับ! NullPointer คือผู้หยั่งรู้! เขาทำนายเส้นทางการล่มสลายของติ่งเซิ่งในวันนี้ไว้ล่วงหน้าหนึ่งเดือนเต็มๆ เหยียบหลุมพรางทั้งเจ็ดหลุมเป๊ะ!"
"ผู้หยั่งรู้อะไร นี่มันคนกลับชาติมาเกิดชัดๆ!"
"ไม่ได้เหยียบหมดหรอก ผมนับดูแล้ว อย่างน้อยก็ห้าข้อ"
"คุณนับผิดแล้ว ข้อสองกับข้อหกก็โดนเหมือนกัน แค่อาการยังไม่ออกมาให้เห็นชัดๆ แค่นั้นเอง"
"สรุปคือเหยียบครบเจ็ดข้อเลย?"
"เก็บเรียบ 7 คิล"
กระทู้ถูกแอดมินปักหมุด ยอดวิวของบล็อกพุ่งกระฉูด ตอนเที่ยงสองหมื่นเก้า ตอนบ่ายสี่หมื่นสอง ตอนค่ำทะลุหกหมื่น สื่อเทคโนโลยีเอาไปอ้างอิง แคปเจอร์ไปส่งต่อในกรุ๊ปบริษัทยักษ์ใหญ่ แม้แต่เพจเทคโนโลยีระดับท็อปก็ยังแชร์
ในกลุ่มแชทหอพัก 404 ก็คุยเรื่องนี้กันอยู่
หม่าเสี่ยวเฟยโยนลิงก์มาให้ "พวกแกดู NullPointer คนนี้ยัง? บทความเขียนไว้เมื่อเดือนที่แล้ว ติ่งเซิ่งดันเหยียบหลุมพรางทั้งเจ็ดข้อเลย คนนี้แม่งโคตรเทพ"
จางฮ่าวหราน "พวกแวดวงเทคแชร์กันเต็มไปหมด"
หม่าเสี่ยวเฟย "พวกแกว่าคนนี้จะเป็นคนในติ่งเซิ่งเปล่าวะ? ไม่งั้นจะเขียนได้แม่นขนาดนี้เหรอ?"
ไม่มีใครตอบ
ผ่านไปหลายวินาที หานลู่อีก็พิมพ์กลับไปประโยคหนึ่ง "ฉันเป็นคนเขียนเองแหละ"
หม่าเสี่ยวเฟย "???"
จางฮ่าวหราน "NullPointer คือแกเหรอ?"
"อืม อย่าไปบอกใครนะ"
หม่าเสี่ยวเฟยส่งข้อความเสียงมา หานลู่อีไม่ต้องกดฟังก็รู้ว่ามันกำลังแหกปากว่าอะไร
จางฮ่าวหราน "เข้าใจแล้ว"
ช่วงบ่าย ประเด็นถกเถียงยกระดับจาก ระบบของติ่งเซิ่งล่ม ไปเป็น ใครต้องรับผิดชอบ มีอินฟลูเอนเซอร์เอาไทม์ไลน์มาเรียบเรียง: ติ่งเซิ่งเลย์ออฟพนักงานช่วงต้นปี เปลี่ยนทีมงานหลักฝั่งอัลกอริทึม ทีมใหม่รื้อโครงสร้างระบบใหม่ทั้งหมด สองเดือนต่อมาปล่อย Full Rollout สองวันต่อมาระบบล่ม พร้อมแนบแคปชันว่า "หายนะด้านการบริหารระดับ Textbook"
มีคนมาคอมเมนต์ถามว่า "อดีตเดฟตัวหลักที่ถูกเลย์ออฟคนนั้นชื่ออะไรนะ?"
ไม่มีใครตอบ ยอดวิวกระทู้ยังคงพุ่งสูงขึ้นเรื่อยๆ
ซูเนี่ยนเนี่ยนส่งลิงก์นี้มาให้เขาทางวีแชท "ก่อนหน้านี้โปรเจกต์ที่นายทำก็คือระบบแนะนำใช่ไหม? นี่ใช่ทีมเก่าของนายหรือเปล่า?"
หานลู่อีตอบกลับไปสั้นๆ "อืม"
เขาปิดหน้าเว็บบอร์ด สลับกลับมาที่ IDE ฟีดแบ็กจากกลุ่มทดสอบภายในกองเป็นภูเขา ปัญหาที่คนบ่นเยอะที่สุดคือ False Positive ของ v0.2 ลดลงมาเหลือ 7.8% แต่เป้าหมายที่ซูเนี่ยนเนี่ยนตั้งไว้คือต่ำกว่า 5% ในบรรดาผู้ทดสอบยี่สิบสามคน มีสี่คนที่คอมเมนต์เหมือนกัน: แจ้งเตือนผิดพลาดเยอะเกินไป กระทบโฟลว์การทำงาน
ต้องทำในสิ่งที่ควรทำต่อไป
อาหารเย็นคือเกี๊ยวแช่แข็งในตู้เย็น ต้มสิบตัว กินไปแปดตัว เหลือสองตัวเละๆ ก็เททิ้งไป
ล้างจานเสร็จกลับมานั่งหน้าคอมพิวเตอร์ สามทุ่มครึ่ง
ข้อความวีแชทเด้งขึ้นมา เป็นเจ้าฉี่หมิง
"พี่หาน นอนหรือยังครับ?"
หานลู่อีตอบกลับ "ยังเลย มีอะไรเหรอเสี่ยวหมิง"
"วันนี้เพิ่งเลิกโอทีกลับมาถึงบ้าน มีเรื่องจะบอกพี่"
"ตอนบ่ายมีการประชุม Post-mortem เฉินป๋อเหวินโยนขี้ให้พี่ล้วนๆ เลย"
"มันบอกว่า Root Cause ที่ระบบล่มเป็นเพราะ ข้อบกพร่องของสถาปัตยกรรมเดิมที่นักพัฒนาหลักคนก่อนทิ้งไว้"
"บนสไลด์ PPT มีชื่อพี่โผล่มาตั้งสี่ครั้ง อะไรนะ 「การออกแบบระบบน้ำหนักไดนามิกที่ Tightly Coupled (ผูกติดกันเกินไป) ทำให้ระบบเปราะบาง」 「ขาดเอกสารส่งมอบงาน」 สไลด์ PPT ยี่สิบสามหน้า พูดถึงพี่ไปซะสี่หน้า"
"ตอแหลชัดๆ ระบบน้ำหนักไดนามิกนั่นพี่เป็นคนเขียน รันมาตั้งสามปีกว่าไม่เคยมีปัญหา พอมันเข้ามาก็แก้จนล่มหมด"
"เอกสารผมก็เขียนไว้ให้แล้ว มันไม่ได้เปิดดูด้วยซ้ำ"
หานลู่อีมองข้อความเหล่านั้น นิ่งงันไม่ขยับ
ผ่านไปไม่กี่วินาที เจ้าฉี่หมิงก็ส่งข้อความมาอีก
"ตอนประชุมผมแทบจะลุกขึ้นด่ามันกลางวงแล้ว แต่ก็ต้องอดทนไว้ เรซูเม่ยังไม่ได้ส่งไปที่ไหนเลย"
"สภาพเศรษฐกิจแบบนี้ ถือซะว่ารับเงินเป็นรายวันก็แล้วกัน จัดการเรื่องของตัวเองให้เรียบร้อยก่อนเถอะ"
"ผมรู้ครับ แค่มันน่ารังเกียจชะมัด เลยอยากมาบอกพี่ไว้"
"อืม รู้แล้ว ขอบใจมาก [ไอคอนไหว้]"
เจ้าฉี่หมิงส่งสติกเกอร์ถอนหายใจมา
"โอเคครับพี่หาน พี่รีบพักผ่อนเถอะ ผมก็ไม่ไหวแล้วเหมือนกัน"
หานลู่อีวางโทรศัพท์ลง หน้าจอดับไปไม่กี่วินาทีก็สว่างขึ้นมาอีกครั้ง เป็นกู้ซือเยว่
"เรื่องของติ่งเซิ่งคุณคงเห็นแล้วนะ ระวังอย่าให้โดนหางเลขล่ะ มีสถานการณ์อะไรติดต่อฉันได้ตลอดเลยนะ"