Front End Web Application แบบ Monolithic กับแบบ Microservice

Monolithic Front End

Terdsak Sukumsirichart
2 min readJun 8, 2019

เป็น Single UI ที่จะทำการ Integrate ทุกสิ่งทุกอย่างไว้ที่ UI เดียวนี้ทั้งหมด

ข้อดี

  • สวยงาม
  • แต่ล่ะหน้าจอภายใต้ Single UI นี้ จะมีความสอดคล้องกัน (เพราะ dev โดยทีมเดียวกัน หรือ dev โดยใช้ module ร่วมกัน)
  • ง่ายต่อการ Setup and Deployment
  • การทำงานภายในทีมง่าย เพราะทำสิ่งเดียวกันแบบเดียวกัน สามารถให้เขียน Code เหมือนกันได้

ข้อเสีย

  • เมื่อพัฒนาต่อๆไปความซับซ้อนจะเพิ่มขึ้นเรื่อยๆ
  • การเพิ่ม Function หรือ Feature จะใช้เวลานานขึ้น เพราะว่าต้อง Test นานขึ้น หลาย Test Case ขึ้นเรื่อยๆ
  • เริ่มงง ว่า Code ใครเป็น Code ใคร หากว่าใช้ Developer หลายๆคนหรือมีการเปลี่ยน Developer ไปจากเดิมในส่วนของ Code นั้นๆ
  • ถ้าระบบ Front End ล่ม User ก็จะใช้งานไม่ได้เลย

จะเห็นได้ว่า ข้อเสียนั้น มีและน่ากลัว ยิ่งโดยเฉพาะข้อสุดท้าย ซึ่งส่งผลเสียต่างๆอย่างมากมายต่อการใช้งาน

อ่าวแล้วถ้ามันมีข้อเสียแบบนี้แล้ว เราจะ Desing and Architech Front End ยังไงดีล่ะ

คำตอบ: ปัจจุบันนี้ Trend Microservice Architecture กำลังมา… แต่คำว่า Microservice Architecture ไม่ได้หยุดอยู่ที่ Back End เท่านั้น เราสามารถนำเอามาใช้ที่ Front End ได้ด้วย

Microservice Front End

ในส่วนของ Microservice Front End ก็คือการมองว่า Front End เป็นส่วนประกอบที่อยู่ในแต่ล่ะ Microservice นั่นเอง

ข้อดี

  • แยกงานกันชัดเจน, Focus บน Domain ของตนเอง
  • เมื่อ Microservice ไหน Down แล้ว ก็จะไม่กระทบกับตัวอื่นๆ
  • แยกการทำ Deployment and Expansion ได้อย่างชัดเจน
  • ความ Complex ของระบบมีน้อย

ข้อเสีย

  • ต่างคนต่างทำ ต่างออกแบบ ทำให้อาจจะมีการใช้ CSS หรือรูปแบบหน้าจอไม่เหมือนกัน ถ้าเกี่ยวกับต้องเอามารวมเป็นระบบเดียวกัน

แล้วเวลา User จะใช้งานล่ะ ต้องเข้าหลายๆระบบ หรือเปล่า

คำตอบคือเปล่า… เราสามารถเขียน Front End อีกตัวนึงขึ้นมา และครอบส่วนต่างๆไว้ แล้วเรียกกันด้วย iframe แต่จะต้องมีการแลกเปลี่ยน token กันหน่อย เพื่อการมี Security

Composite Microservice Front End

แนวทางในการแลกเปลี่ยน token มีหลายวิธี ซึ่งสามารถหาข้อมูลได้ทั่วๆไป

--

--