Some Thoughts About Microservice Adoption

  sonic0002        2025-01-01 19:32:16       2,544        0          English  简体中文  繁体中文  ภาษาไทย  Tiếng Việt 

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

ประโยชน์ของการนำไมโครเซอร์วิสมาใช้เป็นที่ประจักษ์

  • การบำรุงรักษา การแยกฟังก์ชันต่างๆ ทำให้สามารถบำรุงรักษาแต่ละฟังก์ชันได้แยกกัน ซึ่งช่วยลดความเสี่ยงของปัญหาที่เกิดจากข้อผิดพลาดในโค้ดอื่นๆ ที่ไม่เกี่ยวข้องกับฟังก์ชันนี้เลย สามารถบำรุงรักษาได้ง่ายโดยทีมแอปพลิเคชันที่มีขอบเขตที่กำหนดไว้
  • การปรับใช้ที่ง่าย หากโครงการมีขนาดใหญ่และมีนักพัฒนาจำนวนมากที่ร่วมกันเขียนโค้ดลงในบริการเดียวกัน การปรับใช้และการย้อนกลับของบริการจะเป็นปัญหา เนื่องจากโอกาสที่จะมีข้อผิดพลาดสูงขึ้น และบางครั้งการเปลี่ยนแปลงของนักพัฒนาบางคนอาจจำเป็นต้องมี แต่พวกเขาต้องย้อนกลับเนื่องจากข้อผิดพลาดในโค้ดของนักพัฒนาคนอื่นๆ โมเดลไมโครเซอร์วิสจะช่วยลดปัญหาเหล่านี้ได้ในระดับหนึ่ง
  • ความยืดหยุ่นในการเลือกเทคโนโลยี เนื่องจากแต่ละไมโครเซอร์วิสเป็นฟังก์ชันอิสระและโฮสต์แยกกัน เทคโนโลยีที่ใช้จึงอาจแตกต่างกันไปสำหรับแต่ละบริการ ซึ่งหมายความว่าแต่ละทีมบริการสามารถเลือกเทคโนโลยีที่เหมาะสมที่สุดสำหรับบริการและทีมนั้นๆ ได้ อาจเป็น GoLang, Java หรือ Python เป็นต้น
  • การปรับขนาดที่ง่าย หากปริมาณการใช้งานบริการเพิ่มขึ้นอย่างกะทันหัน สามารถเปิดตัวอินสแตนซ์บริการได้อย่างรวดเร็ว เนื่องจากจะไม่หนักเกินไปและไม่จำเป็นต้องเริ่มต้นกระบวนการจำนวนมาก
  • การโยกย้ายที่ง่าย ในกรณีที่ฟังก์ชันบางอย่างสามารถแทนที่ด้วยบริการอื่นได้ หมายความว่าเฉพาะระบบต้นน้ำหรือปลายน้ำเท่านั้นที่ต้องเชื่อมต่อกับบริการใหม่และลบบริการเก่าออกหลังจากการโยกย้ายเสร็จสมบูรณ์

อย่างไรก็ตาม ทุกสิ่งทุกอย่างมีสองด้าน ด้วยประโยชน์เหล่านี้ ไมโครเซอร์วิสยังก่อให้เกิดปัญหาแก่บริษัทต่างๆ หากไม่ได้รับการจัดการอย่างเหมาะสมในโครงการจริง

ด้านล่างนี้คือปัญหาบางส่วนที่จะเกิดขึ้นหากไมโครเซอร์วิสไม่ได้รับการนำมาใช้ในลักษณะที่เหมาะสม

  • การบำรุงรักษา เมื่อมีการนำไมโครเซอร์วิสใหม่เข้ามา จะมีโครงสร้างพื้นฐานชุดใหม่ (อินสแตนซ์เซิร์ฟเวอร์ การเชื่อมต่อเครือข่าย กลุ่มความปลอดภัย ฯลฯ) ที่ต้องตั้งค่าและบำรุงรักษา การกำหนดค่าเหล่านี้จำเป็นต้องได้รับการบำรุงรักษาอย่างดี โดยเฉพาะอย่างยิ่งในสภาพแวดล้อมคลาวด์ ซึ่งจะเพิ่มความท้าทายให้กับ SREs
  • การปรับขนาด เมื่อมีการอัปเกรดหรือแพตช์ใดๆ ที่ต้องทำ จะมีงานเพิ่มเติมสำหรับ SRE ในการทำงานกับอินสแตนซ์ทั้งหมดของแต่ละบริการ เมื่อมีขนาดใหญ่ขึ้น นี่จะเป็นการทำงานที่มากเกินไป
  • ความพร้อมใช้งาน แต่ละบริการสื่อสารกันผ่าน HTTP หรือ RPC ดังนั้นจึงมีความต้องการสูงในการเชื่อมต่อเครือข่ายและจะทำให้เกิดปัญหาหากการเชื่อมต่อเครือข่ายไม่เสถียรและทำให้ความหน่วงเพิ่มขึ้น
  • การพึ่งพา หากออกแบบไม่ถูกต้อง จะทำให้เกิดปัญหาการพึ่งพาซึ่งบริการหนึ่งต้องปรับใช้หลังจากการปรับใช้บริการอื่น เนื่องจากจะมีสิ่งใหม่ที่เพิ่มเข้ามาและแชร์ระหว่างสองบริการ
  • ความสอดคล้อง ในสภาพแวดล้อมแบบกระจาย แต่ละบริการจะจัดการกับความรับผิดชอบของตนเอง จะต้องมีผู้ประสานงานหากฟังก์ชันบางอย่างจำเป็นต้องเสร็จสมบูรณ์ทั้งหมด ในกรณีเช่นนี้ ความยากลำบากในการรักษาความสอดคล้องของสถานะจะเพิ่มขึ้น และหากบริการใดบริการหนึ่งไม่สามารถตอบสนองคำขอได้ บริการอื่นๆ ทั้งหมดจะต้องได้รับการแจ้งเตือนและย้อนกลับตามลำดับ
  • ความซับซ้อนของเทคโนโลยี ดังที่กล่าวไว้ในส่วนประโยชน์ แต่ละบริการสามารถมีเทคโนโลยีของตนเองได้ ข้อเสียของเรื่องนี้คือไม่ดีสำหรับผู้คนที่จะย้ายไปมาระหว่างบริการ บางคนอาจไม่รู้เกี่ยวกับภาษาที่ใช้โดยบริการอื่น และเมื่อเขาเปลี่ยนไปยังทีมอื่นหรือรับช่วงต่อบริการอื่น จะทำให้เส้นโค้งการเรียนรู้เพิ่มขึ้นและทำให้การเปลี่ยนแปลงช้าลง

ควรระมัดระวังเกี่ยวกับการที่คุณต้องการไมโครเซอร์วิสใหม่ทุกครั้งที่มีการแนะนำฟังก์ชันใหม่ คำแนะนำทั่วไปมีการบันทึกไว้ด้านล่าง

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

ADVANTAGE  DISADVANTAGE  MICRO SERVICE 

       

  RELATED


  0 COMMENT


No comment for this article.



  RANDOM FUN

Added more bugs