แพลตฟอร์มเว็บ
ย้ายหน้าเก่ากว่า 100 หน้าไปยัง React และ Next.js
การย้ายระบบโมโนลิธที่ใช้ Velocity ไปยังรีโพสิทอรีฟรอนต์เอนด์สมัยใหม่ทีละขั้น โดยไม่ต้องเขียนใหม่ทั้งหมดซึ่งรบกวนการทำงาน
- บทบาท
- Software Engineer (Web)
- ช่วงเวลา
- 2018–2025
- เทคโนโลยี
- React · Next.js · TypeScript · Migration strategy
ปัญหา
ผลิตภัณฑ์สำหรับพาร์ตเนอร์ที่พักของ Traveloka (TERA) บางส่วนทำงานบนโมโนลิธเก่าที่สร้างด้วย Apache Velocity เป้าหมายคือย้ายไปยังสแตกฟรอนต์เอนด์สมัยใหม่อย่าง React และ Next.js โดยไม่ต้องหยุดงานพัฒนาผลิตภัณฑ์
แนวทาง
- ย้ายทีละขั้น ไม่ใช่ครั้งเดียว รับผิดชอบกลยุทธ์การย้าย หน้าเว็บถูกย้ายไปยังรีโพสิทอรี React และ Next.js ทีละหน้า ขณะที่ผลิตภัณฑ์ยังออกเวอร์ชันใหม่ต่อเนื่อง
- กำหนดแพตเทิร์นก่อน สถาปัตยกรรมการย้าย แพตเทิร์นที่นำกลับมาใช้ได้ และมาตรฐานทางเทคนิค ถูกตกลงก่อนงานส่วนใหญ่ แต่ละหน้าจึงไม่ต้องคิดใหม่เอง
- ประสานงานข้ามทีม การพัฒนาและการปล่อยใช้งานแบ่งกันหลายทีม มีเจ้าของชัดเจนในแต่ละหน้า และมีวิธีตรวจสอบที่สม่ำเสมอว่าหน้าใหม่ทำงานเหมือนหน้าเดิม
ช่วงแรกที่ Traveloka ได้ย้ายไปแล้ว 11 หน้า (ประมาณ 35 man-week) จากโมโนลิธไปยังรีโพสิทอรี Front-End Web ซึ่งเป็นก้าวแรกของงานที่ใหญ่กว่านี้
ผลลัพธ์
หน้าเก่ากว่า 100 หน้าถูกปรับเป็น React และ Next.js โดยไม่ต้องเขียนแพลตฟอร์มใหม่ทั้งหมดและไม่ต้องรับความเสี่ยงที่ตามมา