Pattern: Strangler Fig Application #1
Posted on:November 30, 2023
จากหนังสือ monolith to microservices มีหัวข้อเกี่ยวกับ migration patterns ซึ่งหนึ่งในนั้นคือ Strangler Fig Application ถูกกล่าวถึงโดย Martin Fowler โดยแนวคิดคือ การทำ bigbang ไม่ใช่คำตอบ คุณต้องค่อยๆ replacement แบบทีละชิ้น ค่อยๆ ถอดมันออกมา ซึ่งจะทำให้เราสามารถพัฒนา new system เพื่อ replace old system ไปพร้อมๆ กัน โดยที่ไม่ต้องแตะหรือทำการเปลี่ยนแปลงใดๆ กับระบบที่มีอยู่ วิธีการนี้ยังรับประกันว่าในแต่ละขั้นตอนสามารถ pause หรือ stop การ migrate ได้อย่างง่ายดาย
How It Works
strangler fig pattern แบ่งออกเป็น 3 steps
- Identify asset to move: ทำไมเราถึงอยากจะย้ายไป microservices ทำความเข้าใจ existing system ที่เรากำลังจะย้ายไปมีกี่ components มีการเชื่อมต่อกับระบบไหนบ้าง คํานึงถึง impact ที่กำลังจะเกิด เราจะจัดการยังไง สื่อสารทำความเข้าใจกับ business จัดลำดับ priority และเราจะวัดผลและ monitor ยังไง
- Move asset: เริ่ม migrate functionality โดยการค่อยๆ ถอด service ออกจาก monolith ทีละชิ้น ทีละชิ้น สิ่งที่สำคัญควรหา principles ที่เหมาะสมกับงานและธุรกิจ
- Redirect call: เมื่อ new implementation ready ขั้นตอนต่อไปคือการ reroute ที่เรียกไปที่ monolith เปลี่ยนให้เรียก new microservice
ใน #2 เราจะมาใช้จินตนาการและลองทำ example ไปด้วยกัน