Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the wordpress-seo domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /home/ainsidec/domains/myjavaserver.com/public_html/wp-includes/functions.php on line 6114
Monolithic กับ Microservices Architecture ต่างกันอย่างไร ? - My Java Server - Blog ด้าน Technology หลากหลายในไทย
Menu Close

Monolithic กับ Microservices Architecture ต่างกันอย่างไร ?

วันนี้มีความต้องการความรู้ topic ใหม่ในเรื่องของความแตกต่าง ระหว่าง Monolithic และ Microservices ว่าแตกต่างกันอย่างไร จึงได้เผยแพร่บทความนี้ให้ผู้ที่กำลังศึกษาได้ทำความรู้จักกับความแตกต่างของเฟรมเวิร์กของสองชนิดนี้ โดยการเริ่มต้นถาม ChatGPT เพื่อหาคำตอบในการสืบค้นข้อมูลเชิงลึก

ลองถาม ChatGPT ดูว่า

 

“If you a senior software engineer can you explain to me how difference between micro service and monolit”

ก็ได้คำตอบมาประมาณว่า

ChatGPT ได้แยกประเด็นการเปรียบเทียบมา 6 หัวข้อ เช่น Codebase, Coupled, การดีพลอย, การสเกล, การพัฒนาและการทำการทดสอบ และ เทคโนโลยี Stack
เดี๋ยวเรามาดูกันว่า ChatGPT ได้ให้ข้อมูลมาอย่างไรบ้าง

สำหรับ Monolithic Architecture

monolithic framework

การใช้ Monolithic Architecture เป็นรูปแบบการพัฒนาซอฟแวร์แบบ traditional ซึ่งเหมาะแก่การสร้างแอพพลิเคชั่นขนาดเล็ก

 

การเปรียบเทียบ จาก Monolithic มีอะไรบ้าง ?

Single Codebase:

ในการใช้สถาปัตยกรรมแบบ Monolithic Architecture หรือในวงการนิยมเรียกสั้นๆว่า “Flutter” , โดยทั้งแอพพลิเคชั่นของเรานั้นจะใช้ จะถูกสร้างแบบ Single หรือ แบบยึดเหนียวแน่น (cohesive unit)  โดยที่การใช้งานต่างๆ นั้นประสานกัน และมีอยู่ใน single codebase

Tightly Coupled:

ส่วนต่างๆของระบบได้ถูกเชื่อมโยงกันแบบแน่นๆ (tightly coupled), หมายความว่า เปลี่ยนอะไรบางอย่างในระบบก็สามารถกระทบในส่วนอื่นๆของแอพพลิเคชั่นของเราได้

Deployment:

คือการที่แอพพลิเคชั่นทั้งหมดของเราถูกดีพลอยในรูปแบบยูนิตเดี่ยว ในทุกๆการเปลี่ยนแปลงแม้แต่การเปลี่ยนแปลงเล็กๆ จำเป็นต้องถูกดีพลอยใหม่ทั้งระบบ

Scaling:

Scaling หรือการขยายโครงสร้างพื้นฐาน ในที่นี้หมายถึง Network ให้ใหญ่ขึ้น มันสามรถทำให้ได้โดยการ คัดลอกของข้อมูล (replicating) ทั้งหมดในแอพพลิเคชั่น ข้ามไปในเซิร์ฟเวอร์ต่างๆ สิ่งนี้อาจทำให้เกิดความไม่มีประสิทธิภาพหากมีส่วนใดส่วนหนึ่งเฉพาะที่มีประสบการณ์โหลดในระดับสูง

Development and Testing:

เมื่อทั้งหมดของระบบอยู่ในที่เดียวกัน การพัฒนาและการทำการทดสอบจะมีความเรียบง่ายในช่วงต้น แต่อย่างไรก็ตาม เมื่อระบบได้โตขึ้นการจัดการ codebase และการทำความเข้าใจการพึ่งพากันของระบบนั้นจะประสบกับความท้าทายเป็นอย่างสูง

Technology Stack:

โดยส่วนใหญ่จะใช้รูปแบบ single technology stack ในระบบ ซึ่งจะทำให้ยากขึ้นเมื่อมีการเริ่มใช้เทคโนโลยีใหม่ๆสำหรับส่วนที่เฉพาะเจาะจงในระบบ

 

การเปรียบเทียบ จาก Microservices มีอะไรบ้าง ?

Multiple Codebases:

ในรูปแบบสถาปัตยกรรม microservices นั้น แอพพลิเคชั่นได้ถูกย่อยขนาดให้เล็กลง มีการแบ่ง service เป้นอิสระต่อกันโดยแต่ละ service จะมี codebase เป็นของตนเอง

Loosely Coupled:

Services จะถูกเชื่อมโยงกันแบบหลวมๆ และมีการติดต่อสื่อสารกันผ่าน API ที่ถูกระบุอย่างชัดเจน การเปลี่ยนแปลงใน service ใดๆอันหนึ่งจะไม่ค่อยส่งผลกระทบต่ออันอื่น

Deployment:

ในแต่ละ microservice สามารถ deployed ได้อย่างอิสระ นั่นหมายความว่า เราสามารถทำการอัปเดท ดีพลอย และ สเกล ในแต่ละส่วนของแอปพลิเคชั่นโดยไม่ส่งผลกระทบต่อระบบทั้งหมด

Scaling:

ในแต่ละ services สามารถทำการสเกลได้อย่างอิสระไม่ขึ้นต่อกัน บนพื้นฐานของความต้องการต่างๆ ซึ่งมันทำให้เกิดประสิทธิภาพในการใช้ทรัพยากรณ์ based on demand. This allows more efficient use of resources.

Development and Testing:

การพัฒนาสามารถทำได้อย่างซับซ้อนตั้งแต่แรกเริ่ม จากที่มีการคาบเกี่ยวของการจัดการหลายๆ service พร้อมกันและในแต่ละการปฏิสัมพันธ์ อย่างไรก็ตาม ในแต่ละ Service นั้นสามารถพัฒนา ทดสอบ และ ดีพลอยได้อย่างอิสระ นั่นเป็นการเพิ่มความรวดเร็วสำหรับการพัฒนาในระยะยาว

Technology Stack:

ในแต่ละ microservice สามารถใช้เทคโนโลยีที่แตกต่างกันได้ โดยใช้สแตกที่ดีที่สุดสำคัญความต้องการเหล่านั้นอย่างเฉพาะเจาะจง ในความยืดหยุ่นนี้สามารถทำให้ใช้งานเครื่องมือที่เหมาะสม หรือภาษาที่แตกต่างกันในแต่ละ service.

 

NEXT READ : เมื่อไหร่ ที่เราควรให้ Monolithic Architecture ?

 

 

ซึ่งงานพัฒนาแพลตฟอร์มของ  daywork logo Daywork ระบบจัดหางานออนไลน์ ที่มีประสิทธิภาพสูงของไทย ก็ได้ใช้เทคนิคแบบ Monolithic Architecture ซึ่งทำให้ Scale งานได้ไว แต่ข้อเสียคือหากระบบล่มมันจะทำให้ล่มทั้งระบบ ทางบริษัทจึงได้ให้ความสำคัญกับ Server ที่เสถียรมีประสิทธิภาพสูง และ รองรับการใช้งานหนักๆได้

Leave a Reply

Your email address will not be published. Required fields are marked *