Microservices
Technology

3 รูปแบบการย้ายระบบไปเป็น Microservices จากเอกสารเรื่อง Blowing Up the Monolith

3 รูปแบบการย้ายระบบไปเป็น Microservices จากเอกสารเรื่อง Blowing Up the Monolith | Skooldio Blog

จากเอกสารเรื่อง Blowing Up the Monolith: Adopting a Microservices-Based Architecture 
ทาง KongHQ ทำการอธิบายเกี่ยวกับการนำแนวคิด Microservices มาปรับใช้สำหรับการปรับปรุงระบบเดิมที่มีลักษณะแบบ Monolith ให้ดีขึ้น ว่าควรพิจารณาในเรื่องใดบ้าง
รวมทั้งควรมี strategy ในเรื่องต่าง ๆ ที่ชัดเจน หนึ่งในนั้นคือ Transition strategy

จากเอกสารอธิบายไว้ว่า 

Transition strategy คือรูปแบบในการนำแนวคิดมาปรับใช้กับองค์กรและระบบงาน
โดยแบ่งออกเป็น 3 รูปแบบคือ

  1. Ice Cream Scoop
  2. Lego
  3. Nuclear Option

มาดูรายละเอียดรวมทั้งข้อดีข้อเสียกันนิดหน่อย

รูปแบบที่ 1 Ice Cream Scoop

เป็นรูปแบบการแยกส่วนการทำงานออกมาจากระบบเดิม โดยค่อย ๆ แยกออกมา เหมือนกับการตัก Ice cream มาทีละ scoop

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

รูปแบบที่ 2 Lego

ในระบบงานแบบ Monolith นั้นมีขนาดใหญ่มาก การจะมาแก้ไขหรือปรับปรุงให้ดีขึ้น เป็นเรื่องที่ยากหรือเป็นไปไม่ได้ เลยมีอีกแนวทางคือ อย่าไปยุ่งกับของเดิม แต่ก็อย่าสร้างเพิ่ม

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

รูปแบบที่ 3 Nuclear option

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

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

จากรูปแบบการย้ายไป Microservices ทั้ง 3 แบบ

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

You may also like

Kotlin จะมาแทนที่ Java หรือไม่ ทำไม Google เลือก Kotlin เป็นภาษาหลักในการพัฒนา Android - Skooldio Blog | รูปหน้าปก
Technology

ทำไมภาษา Kotlin ถึงเป็นภาษาหลักในการพัฒนา Android? และ Kotlin จะมาแทนที่ Java หรือไม่?

ทำไมภาษา Kotlin ถึงเป็นภาษาแห่งอนาคตของนักพัฒนา Android อะไรคือเหตุผลที่ Google ประกาศรับรองให้ Kotlin เป็นภาษาหลักในการพัฒนา Android และ Kotlin จะมาแทนที่ Java หรือไม่.. ...
Business

อยากเป็นสาย Data เก่ง ๆ ต้องฝึก! 6 ทักษะช่วย Data Scientist ทำงานปัง

บทความจาก Harvard Business Review ชวนเราขบคิดถึงปัญหาของ Data Scientist ในองค์กรใหญ่ เมื่อถึงเวลาที่ต้องนำเสนอข้อมูล บ่อยครั้งที่ Data Scientist ต้องกุมขมับ เพราะไม่รู้จะพูดอย่างไรให้ผู้บริหารเข้าใจ บางครั้งเห็นข้อมูลสำคัญมากอยู่ตรงหน้า ...

More in:Technology

Technology

Kotlin ภาษาแห่งอนาคตของนักพัฒนา Android

Kotlin เป็นหนึ่งในภาษา Programming ที่กำลังได้รับความนิยมอย่างมากในวงการ ซึ่งผลสำรวจจาก JetBrains ในเดือนธันวาคม ปี 2019 พบว่ามีนักพัฒนาจำนวน 4 ล้านคนกำลังใช้ Kotlin จากผลสำรวจของ 2020 ...
จาก React Developer สู่การทำ Flutter Developer | Skooldio Blog Technology

จาก React Developer สู่การทำ Flutter Developer

ในช่วง 2 – 3 ปีมานี้นักพัฒนาหรือผู้ที่มีความสนใจในเทคโนโลยีหลายๆ คนคงจะเคยได้ยินหรือได้รู้จักสิ่งที่เรียกว่า Flutter มาบ้างแล้ว ผมเองก็เป็นหนึ่งในนั้นที่ได้รู้จักกับ Flutter มาซักพักแล้วแต่ไม่ได้มีโอกาสศึกษาและทำความเข้าใจมันสักที จนเมื่อไม่นานมานี้ ได้มีโอกาสได้ศึกษาเจ้า Flutter และนำมาใช้ในการพัฒนาแอปพลิเคชันๆ ...
6 Apps using Flutter Technology

6 บริษัทยักษ์ใหญ่ที่เลือกใช้ Flutter พัฒนาแอปฯ

เทคโนโลยีทีก้าวหน้าไปอย่างรวดเร็ว การพัฒนาแอปพลิเคชั่นที่เริ่มจากแบบ native คือพัฒนาไปทีละแพลตฟอร์ม หรือต้องมีหลายทีมในการพัฒนาแอปพลิเคชันเพียงตัวเดียว ก็ถูกพัฒนามาอย่างต่อเนื่อง โดยเฉพาะ framework สำหรับพัฒนาแอปฯ ที่เริ่มก้าวกระโดดมากขึ้น ด้วยการมีสิ่งที่เรียนกว่า Cross-Platform Application Framework มานั่นเอง ...
4 ข้อดีของการพัฒนาแอปพลิเคชันด้วย Flutter | Skooldio Blog Technology

4 ข้อดีของการพัฒนาแอปพลิเคชันด้วย Flutter

ปัจจุบันนี้ Application เป็นส่วนหนึ่งที่มีผลต่อการทำธุรกิจ เนื่องจากการที่เรามี Application นั้นจะช่วยเพิ่มความสะดวกสบายให้กับลูกค้าในการใช้บริการต่างๆ และยังเพิ่มช่องทางในการติดต่อลูกค้าสำหรับแบรนด์ของเราอีกด้วย ซึ่งส่งผลให้ลูกค้านั้นสามารถจดจำเราได้มกายิ่งขึ้น แต่ว่าธุรกิจในยุคนี้จำเป็นที่จะต้องแข่งกับความเร็ว เนื่องจาก Requirement (ความต้องการ) ของ User เปลี่ยนไปในทุกๆวัน  ...

Comments are closed.