25 ต.ค. 2021 เวลา 10:53 • ไอที & แก็ดเจ็ต
ไขข้อข้องใจ ทำไม LINE ล็อกอินพร้อมกันหลายเครื่องไม่ได้ ย้ายเครื่องข้อมูลหาย
ประเด็นสำคัญที่ผู้ใช้ LINE คาใจกันมานานคือ "ทำไมไม่สามารถล็อกอินพร้อมกันในสมาร์ทโฟน 2 เครื่องได้" และ "ทำไมไม่เซฟรูปหรือแชททั้งหมดไว้ให้"
คุณ Shunsuke Nakamura และคุณ Masakuni Oishi วิศวกรของ LINE สำนักงานใหญ่ที่ญี่ปุ่นเคยให้คำตอบที่งาน LINE Developer Day เมื่อปี 2019 เอาไว้ครับ
คุณ Shunsuke Nakamura เท้าความว่า LINE เริ่มพัฒนาขึ้นในปี 2011 ในยุคที่ผู้ใช้ยังน้อย (เพียง 1 ล้านคน) ทุกอย่างยังเพิ่งเริ่มต้น สถาปัตยกรรมของ LINE จึงออกแบบมาสำหรับผู้ใช้ 1 คน 1 อุปกรณ์ (1 user 1 device 1 session) และงานฝั่งเซิร์ฟเวอร์รันอยู่บนคลัสเตอร์ของ LINE เองที่มีประมาณ 10 ตัวเท่านั้น
1
นอกหลายปีที่ผ่านมา LINE มีผู้ใช้เติบโตขึ้นสูงมาก (ประมาณ 200 ล้านคน) มีบริการจำนวนมากที่พัฒนาขึ้นบนสถาปัตยกรรมเดิมของ LINE เช่น เกม เพลง วิดีโอ ฯลฯ ในขณะเดียวกัน ก็มีอุปกรณ์ชนิดใหม่ๆ เกิดขึ้นมากมาย เช่น แท็บเล็ตหรือนาฬิกาอัจฉริยะ
คุณ Shunsuke Nakamura (ซ้าย) และคุณ Masakuni Oishi (ขวา)
การที่จำนวนผู้ใช้เติบโตอย่างรวดเร็ว โฟกัสของทีมงาน LINE จึงต้องสนใจเรื่องเสถียรภาพ (reliability) เป็นหลัก เพราะเคยเจอปัญหาเรื่องเสถียรภาพช่วงราวปี 2013 ทำให้เกิดภาวะส่งข้อความไม่ไป/ไปไม่ถึงผู้รับ เมื่อโฟกัสหลักของทีมวิศวกรอยู่ที่เสถียรภาพ จึงไม่เคยมีโอกาสได้มาปรับปรุงตัวสถาปัตยกรรมที่ออกแบบไว้ตั้งแต่ราวปี 2011 เลย
LINE จึงเกิดภาวะ technical debt หรือการเป็น "หนี้" เชิงเทคนิค ที่สถาปัตยกรรมในอดีตมีปัญหาบางจุด แต่ตอนนั้นไม่ได้แก้ และตามหลอกหลอนมายังปัจจุบัน
โครงสร้างระบบหลังบ้านของ LINE
ถ้าจะทำให้รองรับการล็อกอินหลายเครื่องได้ได้ (เช่น กรณีของ iPhone + iPad หรือกรณีของมือถือ+พีซี) ต้องใช้ท่าแฮ็กเป็นกรณีพิเศษ ต้องทำการ migrate ข้อมูลระหว่างฐานข้อมูลไปมา ซึ่งเปลืองทรัพยากรมาก ตรงนี้ LINE จึงเปิดให้ใช้หลายเครื่องเป็นกรณีๆ ไป และจำกัดเฉพาะอุปกรณ์เป็นชนิดๆ เท่านั้น นี่จึงอธิบายได้ว่าทำไมเราไม่สามารถล็อกอินใน LINE บนสมาร์ทโฟนหลายเครื่องได้พร้อมกัน
ทีมวิศวกรของ LINE บอกด้วยว่ารับทราบปัญหาเหล่านี้เป็นอย่างดี แต่ตลอดหลายปีที่ผ่านมาไม่เคยมีความพยายามตั้งใจแก้ปัญหานี้กันอย่างจริงจัง ทำเมื่อปี 2019 ที่ผ่านมา LINE จึงตั้งทีม LINT (Line Improvement for Next Ten years) มาทำหน้าที่นี้ โดยในแผนการของ LINT มีความพยายามจะแก้ปัญหานี้ด้วย
1
แผนการ LINT ของ LINE
ส่วนคุณ Oishi บอกว่าทีมงานตั้งใจรองรับการใช้งานหลายอุปกรณ์ให้ดีกว่านี้ เพราะคิดว่าโลกในปัจจุบัน พฤติกรรมของผู้ใช้เปลี่ยนไป ผู้ใช้มีหลายเครื่องหลายบัญชีกว่าเดิม และส่งข้อมูลเป็นปริมาณต่อคนเยอะขึ้น ทำให้ระบบเซิร์ฟเวอร์หลังบ้านของ LINE เองก็ต้องก้าวตามให้ทันด้วย
ส่วนประเด็นเรื่องสตอเรจว่าทำไมไม่เก็บข้อมูลแชทหรือรูปภาพให้ตลอดไป คำตอบก็ตรงไปตรงมาว่าเป็นเรื่องของต้นทุนฝั่งเซิร์ฟเวอร์นั่นเอง (LINE ใช้ระบบคลาวด์ภายในของตัวเองชื่อ Verda ที่พัฒนาบน OpenStack แต่ก็มีส่วนที่เขียนเองอยู่เยอะ) ด้วยต้นทุนการเก็บข้อมูลที่สูงมาก ทำให้ LINE ไม่สามารถรองรับข้อมูลทั้งหมดได้ และต้องปล่อยให้ข้อมูลแชทที่เก่าเกินไปนั้นหมดอายุและถูกลบทิ้งไป
กล่าวโดยสรุปคือ ปัญหาเหล่านี้เป็นเรื่องที่ LINE รับทราบดี แต่ต้องใช้เวลาอีกสักระยะในการแก้ไขผ่านโครงการ LINT และยังไม่สามารถระบุได้ว่าจะเห็นผลกันเมื่อไร
อ่านรายละเอียดเชิงเทคนิคเพิ่มเติมได้ที่ลิงก์ด้านล่างครับ
โฆษณา