Recent Posts

Archive

Tags

ยังไม่มีแท็ก

Approach to move forward with Microservices แนวทางก้าวไปสู่ Microservices



Microservice ได้รับความนิยมเพิ่มมากขึ้นในช่วงไม่กี่ปีที่ผ่านมา Microservice เป็นสถาปัตยกรรมอีกแบบหนึ่งซึ่งใช้แนวคิดตามปรัชญาของการแยกส่วนและเป็นอิสระต่อกันเป็นหลัก โดยแบ่งโครงการซอฟต์แวร์ขนาดใหญ่ออกเป็นส่วนๆ ที่เล็กลง แต่ละส่วนเป็นอิสระ และเชื่อมต่อกันอย่างหลวม ๆ สถาปัตยกรรมแบบนี้ได้รับความนิยมในหมู่นักพัฒนาเพราะทำให้งานที่พัฒนามีคุณภาพแบบdynamic , มีความคล่องตัวในการจัดการ API และสามารถการดำเนินการจัดการงานที่กำหนดไว้ได้แบบคู่ขนานโดยไม่ต้องรออาศัยความต่อเนื่องของงานชิ้นอื่นๆ Microservice เป็นแนวทางการออกแบบเพื่อเอาชนะข้อเสียของสถาปัตยกรรม monolithic แบบดั้งเดิม

Approach to move forward with Microservices แนวทางก้าวไปสู่ Microservices

เมื่อเริ่มมีแนวคิดจะทำการปรับปรุงแอปพลิเคชันขององค์กร มักจะมีข้อกังวลหลักอยู่สองประการ: คือหนึ่ง-เวลา และสอง-ค่าใช้จ่าย บริษัทขนาดเล็กที่เริ่มต้นด้วยการใช้ monolithic แอปพลิเคชันแบบดั้งเดิม จะปรับปรุงได้ง่ายกว่า, เร็วกว่าและถูกกว่า หรือในกรณีที่แอปพลิเคชันยังไม่ mature ก็สามารถ migrateไปยัง Microserviceได้เมื่อถึงเวลาที่เหมาะสม สำหรับบริษัทขนาดใหญ่ที่มีผู้ใช้หลายล้านคน แอปพลิเคชันที่ใช้นั้นไม่สามารถปรับปรุงได้ในเวลาเพียงหนึ่งหรือสองสัปดาห์ ไม่ว่าวิศวกรซอฟต์แวร์จะมีจำนวนอยู่มากเท่าใดก็ตาม เพราะการปรับปรุงแอปพลิเคชันขนาดใหญ่ที่มีผู้ใช้หลายล้านคนจำเป็นเข้มงวดเรื่องเวลา uptime และเข้มงวดเรื่องความสามารถในการขยายขนาดเมื่อมีการเพิ่มเติมโมดูล องค์กรขนาดใหญ่เหล่านั้นจึงเป็นตัวอย่างที่ชัดเจนของกรณีศึกษาในเรื่อง Microservice ที่ดีที่สุด


การปรับเปลี่ยนไปใช้ Microservice อาจต้องเผชิญกับคำถามมากมาย เช่น

  • เราจะแบ่งแอปพลิเคชันแบบดั้งเดิมของเราออกเป็น Microservices ย่อยๆได้อย่างไร?

  • เราจะใช้วิธีปรับโครงสร้างแอปพลิเคชันแบบดั้งเดิมหรือไม่?

  • เราควรจะเริ่มต้นที่จะพัฒนาใหม่ขึ้นโดยใช้สถาปัตยกรรม Microservices หรือไม่?

  • หรือโครงสร้างพื้นฐานของเราพร้อมสำหรับสถาปัตยกรรม Microservices หรือยัง?


แนวทางในการทำMicroservicesแอปพลิเคชันมี 2 แนวทาง

  • แนวทางจากบนลงล่าง : โดยการแยกฟังก์ชั่นงานตามหน้าที่ของแอปพลิเคชัน โดยเริ่มต้นที่ระดับธุรกิจ ซึ่งแยกตามโดเมนฟังก์ชันการทำงาน (การออกแบบที่เน้น business domain) หรือความสามารถทางธุรกิจ

  • แนวทางจากล่างขึ้นบน : เป็นแนวทางที่ใช้เทคนิคเป็นพื้นฐาน โดยอิงตามความพร้อมของทรัพยากรที่ใช้ในการพัฒนาเป็นตัวกำหนด Microservices ซึ่งอาจแบ่งแอปพลิเคชันขนาดใหญ่ขึ้นตามเทคโนโลยีที่ใช้ เช่น Java และสร้าง Microservices ตามการจัดกลุ่มเหล่านั้น


แต่ละแนวทางต่างก็มีความท้าทายในตัวเอง ตัวอย่างเช่น วิธีการจากบนลงล่างอาจพบกับความยุ่งยากหลายอย่าง เช่นการจัดการ หรือ อาจมีความจำเป็นจำเป็นต้องเพิ่มเซิร์ฟเวอร์หรือทรัพยากรอื่นๆ ซึ่งทำให้ต้นทุนโครงสร้างพื้นฐานสูงขึ้น ในขณะที่ใช้กลยุทธ์จากล่างขึ้นบนเพียงอย่างเดียว อาจไม่สอดคล้องกับแผนงานการเปิดตัวเชิงรุกของธุรกิจและอาจกระทบกับความสะดวกของการทำงานในสายงานต่างๆ เนื่องจาก Microservices เดียวอาจครอบคลุมสายงานธุรกิจที่แตกต่างกันหลายสาย

วิธีการผสมผสาน (Blending approach) อาจเป็นวิธีที่ดีกว่าในการใช้ประโยชน์สูงสุดจากทั้งสองกลยุทธ์ โดยใช้ประสิทธิภาพจากทรัพยากรทางเทคนิคที่มีอยู่ แต่ยังคงสนับสนุนมุมมองของการดำเนินงานธุรกิจ ข้อดีอีกประการของแนวทางการผสมผสานนี้คือ การตัดสินใจและทำงานร่วมกันของผู้ที่เกี่ยวข้องทั้งไอทีและธุรกิจตั้งแต่เริ่มต้นการกำหนดMicroservicesที่สมเหตุสมผลจากมุมมองทางธุรกิจ แต่ยังมีประสิทธิภาพสำหรับไอทีในการบริหารจัดการในอนาคต .


Source:

https://www.logic2020.com/insight/microservices-architecture-choosing-your-approach

https://cloudacademy.com/blog/microservices-architecture-challenge-advantage-drawback/

https://www.teaminternational.com/modernization-legacy-software-microservices-pros-and-cons/