หน้าแรก Applications 4 เคล็ดลับในการสร้างสถาปัตยกรรมแบบ Microservices อย่างมีประสิทธิภาพ

4 เคล็ดลับในการสร้างสถาปัตยกรรมแบบ Microservices อย่างมีประสิทธิภาพ

แบ่งปัน

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

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

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

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

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

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

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

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

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

3. ใช้การสื่อสารแบบ Asynchronous
เพื่อให้สื่อสารได้อย่างมีประสิทธิภาพนั้น โดยเฉพาะคำร้องขอมากมายที่ส่งไปยังแต่ละเซอร์วิสเวลาทำกิจกรรมแต่ละอย่าง ที่ถ้ายังต้องสื่อสารแบบซิงค์ร่วมกันแล้วก็ย่อมเกิดความล่าช้าจนกระทบกับประสบการณ์ใช้งานได้

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

ที่มา : Networkcomputings