Blockdit Logo
Blockdit Logo (Mobile)
สำรวจ
ลงทุน
คำถาม
เข้าสู่ระบบ
มีบัญชีอยู่แล้ว?
เข้าสู่ระบบ
หรือ
ลงทะเบียน
Skooldio
•
ติดตาม
22 มิ.ย. 2022 เวลา 12:03 • วิทยาศาสตร์ & เทคโนโลยี
🚀 หมัดต่อหมัด Microservices vs. Monolithic บริษัทเราเหมาะกับอะไรมากกว่า?
Microservices คืออะไร? ว่าง่าย ๆ คือการแบ่งระบบออกเป็นส่วนย่อย ๆ แทนที่จะรวมเป็นระบบเดียวอย่าง Monolithic การวางระบบแบบ Microservices
แปลว่า แต่ละ Service จะสามารถ Deploy และ Scale ได้เองอย่างไม่จำเป็นต้องเชื่อมโยงกันทั้งหมด ถึงขนาดที่ว่า Microservices แต่ละตัว สามารถเขียนโดยคนละภาษาได้ และสามารถให้ทีมที่ต่างกันดูแลแต่ละส่วนแบบแยกกันได้
ในโลกที่เทคโนโลยีเข้ามามีบทบาทสำคัญในธุรกิจ การพัฒนาซอฟต์แวร์ย่อมเป็นสิ่งที่สำคัญมากสำหรับองค์กรต่าง ๆ วันนี้ทาง Skooldio จึงได้นำ 2 วิธียอดฮิตในการพัฒนาซอฟต์แวร์ ซึ่งก็คือ Monolithic และ Microservices มาเทียบกันหมัดต่อหมัดว่าข้อดีข้อเสียของทั้ง 2 ระบบนั้นเป็นอย่างไร แล้วองค์กรของคุณเหมาะกับการพัฒนาแบบไหนกัน
Structure ของระบบ Monolithic และ Microservices (เครดิตรูปภาพจาก divante)
🚀 Monolithic คืออะไร?
Monolithic structure คือการติดตั้งระบบแบบเป็นกลุ่มเดียว ด้วยข้อดีนี้ของ Monolithic เอง ทำให้ระบบนี้เป็นที่นิยมใช้กันในบริษัทที่เพิ่งเริ่มต้น
ข้อดี ของการวางระบบแบบ Monolithic
■
ง่ายต่อการพัฒนา
■
ง่ายต่อการใช้ทดสอบ
■
ง่ายต่อการ Deployง่ายต่อการใช้ทดสอบ
■
Scale ในแนวกว้างได้ง่าย เพราะสามารถทำซ้ำ ๆ ได้ผ่าน Load Balancer
แต่ในความง่ายของการวางระบบแบบ Monolithic นี่แหละ ที่เป็นข้อเสียของมันเองด้วยเช่นกัน
ข้อเสีย ของการวางระบบแบบ Monolithic
■
ไม่สามารถวางระบบที่มีความซับซ้อนมาขึ้นได้
■
Application จะใหญ่มาก ๆ และไม่สามารถปรับเปลี่ยนอะไรได้อย่างรวดเร็ว
■
เมื่อ Application ใหญ่มา จะทำให้เวลาในการโหลดนานขึ้น
■
จะ Update แต่ละครั้ง ต้อง Deploy Application ทั้งหมดใหม่ ทำให้ยากต่อการ Deploy ใหม่อยู่เรื่อย ๆ
■
หากเกิด Bug ขึ้นมา อาจทำให้ระบบเสียทั้งหมดได้
■
ยากต่อการปรับเปลี่ยนมาใช้เทคโนโลยีใหม่ ๆ เพราะการเปลี่ยน Framework หรือใช้ภาษาใหม่เลย จะต้องรื้อใหม่ทั้งหมด จึงจะทำให้เสียเวลา และเสียเงินเป็นจำนวนมาก
เมื่อการใช้งานเปลี่ยนไป การเปลี่ยนอะไรเล็ก ๆ น้อย ๆ หรือการ Scale Up ระบบกลับต้องสร้าง และ Deploy ระบบทั้งหมดใหม่ Developer จำนวนมาก จึงสนใจหันมาวางระบบแบบ Microservices มากขึ้น
🚀 Microservices คืออะไร?
ว่าง่าย ๆ คือการแบ่งระบบออกเป็นส่วนย่อย ๆ แทนที่จะรวมเป็นระบบเดียวอย่าง Monolithic
การวางระบบแบบ Microservices แปลว่า แต่ละ Service จะสามารถ Deploy และ Scale ได้เองอย่างไม่จำเป็นต้องเชื่อมโยงกันทั้งหมด ถึงขนาดที่ว่า Microservices แต่ละตัว สามารถเขียนโดยคนละภาษาได้ และสามารถให้ทีมที่ต่างกันดูแลแต่ละส่วนแบบแยกกันได้
ข้อดีของการวางระบบแบบ Microservices
■
แต่ละ Service แยกออกจากกัน ทำให้แต่ละทีมสามารถโฟกัสกับ Service ที่รับผิดชอบได้โดยตรง
■
สามารถปรับเปลี่ยน และใช้เทคโนโลยีใหม่ ๆ ได้ง่ายขึ้น Developer สามารถเลือกภาษา หรือ Framework ต่าง ๆ ที่เหมาะสมกับ Service ส่วนนั้นได้ โดยไม่ต้องยึดติดกับภาษาที่เลือกมาแต่แรก
■
สามารถ Deploy อย่างต่อเนื่องได้ เพราะแต่ละ Service สามารถ Deploy เองได้ ไม่ต้องทำไปพร้อม ๆ กันทั้งหมด
■
แต่ละ Service สามารถ Scale เองได้
แต่ในความปรับเปลี่ยนง่าย และอิสระในการพัฒนาแต่ละ Service นั้น การใช้ Microservices ก็มีข้อเสียอยู่บ้าง
ข้อเสียของการวางระบบแบบ Microservices
■
การที่ Service แต่ละอันอยู่แยกกัน การส่งต่อข้อมูลระหว่างกัน อาจทำได้ช้ากว่าแบบ Monlithic
■
อาจต้องใช้ Infrastructure Automation เพราะการทำ Microservices แปลว่าเราต้องจัดการกับ Infrastructure ไว้อย่างดี เพราะการ Deploy Service จำนวนมากนั้น จะทำแบบ Manual ยากมาก จึงอาจต้องทำ Automation เกือบทั้งหมด
🚀 เทียบกันให้เห็นจะ ๆ ระหว่าง Monolithic และ Microservices
Architecture แบบไหนที่เหมาะสมกับธุรกิจของเรา มาดูกัน
🚀 แล้วแบบไหนถึงจะเหมาะกับบริษัทของเรา?
อย่างที่ทุกคนได้เห็นไป ทั้งสองวิธีก็มีทั้งข้อดี และข้อเสีย ที่ต่างกัน แต่หากให้จิ้มแล้วว่าแบบไหนถึงจะเหมาะกับเรา ก็ขอยกตัวอย่างให้เห็นกันง่ายขึ้น Monolithic Architecture ส่วนใหญ่แล้วจะใช้กับธุรกิจที่เป็น eCommerce แบบง่าย ๆ หรือ Blog ที่ไม่ต้องทำการเปลี่ยนแปลงโครงสร้างหลักบ่อย
ในขณะที่ Microservices จะใช้สำหรับธุรกิจที่มีความซับซ้อนกว่า และเหมาะสมกว่ากับบริษัทที่ต้องมีการ ปรับปรุง เปลี่ยนแปลง อยู่บ่อย ๆ อย่างต่อเนื่อง หรือแม้แต่องค์กรที่กำลังจะขยับขยายระบบของตนก็ตาม
ในการเปลี่ยนระบบจาก Monolithic ไป Microservices นั้น จะต้องคำนึงถึงสิ่งต่าง ๆ มากมาย เช่น การเตรียม Environment, ขั้นตอนการ Deploy ฯลฯ (อ่านเพิ่มเติม: สิ่งที่ควรทำก่อนจะเริ่ม Microservices) ซึ่งการที่จะเปลี่ยนเป็น Microservices นั้นไม่ใช่เรื่องง่ายเลย ทีมที่จะเปลี่ยนจะต้องมีความรู้ความเข้าใจ Microservices เป็นอย่างดี
ซึ่งวิธีที่จะเริ่มเปลี่ยนระบบนั้นก็มีมากมาย ไม่ว่าจะเป็นการว่าจ้างผู้ที่มีความรู้อยู่แล้ว การปรึกษาผู้ที่ทำ Microservices มาก่อน หรือศึกษาจากประสบการณ์ของผู้ที่ทำ Microservices มาอย่างเชี่ยวชาญก็ตาม
2 บันทึก
1
1
2
1
1
โฆษณา
ดาวน์โหลดแอปพลิเคชัน
© 2025 Blockdit
เกี่ยวกับ
ช่วยเหลือ
คำถามที่พบบ่อย
นโยบายการโฆษณาและบูสต์โพสต์
นโยบายความเป็นส่วนตัว
แนวทางการใช้แบรนด์ Blockdit
Blockdit เพื่อธุรกิจ
ไทย