Microservice คืออะไร?
Microservice คือการรวมกันระหว่าง 2 คำ คือ Micro และ Service ซึ่ง Micro ก็คือการแบ่งหรือย่อยระบบให้เล็กลงมา ส่วน Service ก็คือระบบหรือซอฟต์แวร์ที่เราพัฒนาเพื่อบริการนั้นเอง
ดังนั้น Microservice ก็คือการออกแบบซอฟต์แวร์ให้แยกย่อยหรือมีขนาดเล็กเพื่อให้สามารถใช้งานได้อย่างมีประสิทธิภาพและคล่องตัวมากขึ้นนั้นเอง ซึ่งจะช่วยแก้ไขปัญหาหรือจุดด้อยของรูปแบบสถาปัตยกรรมแบบเดิมอย่างเช่น Monolithic
Monolithic คืออะไร? และแตกต่างอย่างไรกับ Microservice
- Monolithic คือรูปแบบการออกแบบสถาปัตยกรรมของซอฟต์แวร์ ที่รองรับการใช้งานจากผู้คนจำนวนมาก โดยจะมุ่งเน้นให้ระบบทำงานร่วมกัน เช่น ระบบ A, B และ C ใช้ฐานข้อมูลร่วมกันในการทำงาน ดังภาพ
- Microservice จะแตกต่างจาก Monolithic คือถูกออกแบบให้แต่ละระบบแยกการทำงานออกจากกัน โดยเป็นการย่อย Monolithic ออกมาให้เล็กลงเพื่อความคล่องตัวในการทำงาน เช่น การแยกตามฟังก์ชัน หรือตามบริการของระบบ เป็นต้น ซึ่งจากภาพตัวอย่างด้านล่างจะสังเกตว่าระบบทั้ง 3 ที่เคยทำงานร่วมกันและใช้ฐานข้อมูลเดียวกัน
ข้อดีของ Microservice
- สามารถแยกการจัดการแต่ละ Service ได้อย่างอิสระ
- สามารถปรับ Scale การใช้งานของแต่ละ Service ได้อย่างอิสระ เพื่อให้สอดคล้องต่อการใช้งานที่ไม่เท่ากันของแต่ละ Service
- ลดผลกระทบหรือความเสียหายของระบบจากที่อาจจะกระทบทั้งหมดให้เหลือเพียงเฉพาะบางจุดที่มีปัญหาเท่านั้น
- การอัปเกรดหรือการปรับเปลี่ยนเทคโนโลยีแต่ละ Service จะไม่มีผลกระทบกับ Service อื่นๆ
- แยกการพัฒนาแต่ละ Service ออกมาได้อย่างชัดเจน ทำให้ทีมพัฒนาสามารถทำงานได้อย่างมีประสิทธิภาพมากขึ้นและลดผลกระทบที่อาจเกิดกับภาพรวมของระบบได้
ข้อเสียของ Microservice
- การออกแบบระบบ Microservice จะต้องมีความชัดเจนและละเอียดเพื่อให้ Service ต่างๆสามารถทำงานร่วมกันได้
- จากข้อ 1. หากการออกแบบทำได้ไม่มีก็จะมีผลกระทบต่อการพัฒนาหรือดูแลระบบในอนาคต
- เนื่องจากมีการแบ่ง Service ให้ทำงานเป็นอิสระจากกัน ดังนั้นบางครั้งการเรียกใช้ข้อมูลหรือการส่งข้อมูลระหว่าง Service ก็อาจจะทำให้ระบบช้าหรือหน่วงได้เช่นกัน