API Gateway สามารถแก้ปัญหาข้างบนให้ท่านได้ ไม่ว่าจะเป็นการจัดการ Single entry point หมดกังวลกับการจัดการ การเข้าถึงจากภายนอก โดยให้ API Gateway เป็นคนจัดการให้ ทั้งยังเสริมสร้างความ Security ให้กับการเข้าถึง Server ภายในได้มากขึ้นอีกด้วย
API Gateway คืออะไร
API Gateway เป็น singular interface ที่จะคอยจัดการกับ Request ต่าง ๆ ที่หลากหลาย ก่อนจะทำการส่งต่อไปยัง Servers ที่อยู่ภายใน ซึ่ง API Gateway อาจทำหน้าที่แบ่งได้ดังนี้
- Filter ทำหน้าที่กรอง traffic หรือ request ที่เข้ามาจากทั้ง web, mobile, B2B, O2O, C2B, web service และ อื่น ๆ
- Single entry point ทำหน้าที่ เปิดเผย Endpoint ของ APIs ต่าง ๆ โดยเปิดเผยเพียงแค่ endpoint เดียว แล้วให้ request เข้ามา อาจจะแบ่ง endpoint ให้ยิงไปยัง service ต่าง ๆ ผ่าน context path หรือ วิธีอื่น ๆ จากนั้นจึง ทำหน้าที่ Routing ต่อไป
- API Management การจัดการกับ API ต่าง ๆ ที่จะถูกส่งต่อไป
- จัดการกับ API rate limit และ traffic management
- Security mechanism กลไกของเรื่องความปลอดภัย ไม่ว่าจะเป็นการเข้าถึงผ่านการ authentication การ logging หรือ อื่น ๆ
6 สิ่งที่คุณจะได้รับจาก API Gateway
- Separation of Application Layer and Requesting Parties การแบ่งชั้น Layer ของ application จะเป็นประโยชน์อย่างมาก ในการนำ Microservices ออกห่างจากผู้ใช้งาน โดยให้ทำการเข้าถึงผ่านเข้า API Gateway แทน โดยการมีตัวกั้นก่อนเข้าถึง API ก็ทำให้เรามีความปลอดภัยมากขึ้นไปอีกขั้น ในขณะที่การทำงานภายในอื่น ๆ ยังคงทำงานเหมือนเดิม
- Increases Simplicity for the Consumer สร้างความเรียบง่ายให้กับผู้ที่จะเข้ามาใช้งาน
- Improves Development and Increases Server Load การแยกการทำงาน แบบนี้ ทำให้การพัฒนา service ของแต่ละทีมมีความคล่องตัวมากขึ้น นอกจากนี้ยังจะช่วยลดภาระหน้าที่ของ server อีกด้วย
- Buffer Zone Against Attacks มี buffer ในการต่อต้าน การถูกโจมตี Gateway จะทำหน้าที่ เป็นด่านหน้า ในการรับ request ทาง user อาจจะ request มาเพียง 1 request แต่จริง ๆ แล้วภายในอาจแยกการทำงานไปอีกหลาย service โดยที่ user ไม่จำเป็นต้องรู้ว่าภายในของเราทำงานอะไรอีกบ้าง นั่นก็ถือเป็นข้อดีทั้งในมุมของผู้ใช้งาน และ สามารถป้องกันการเข้าถึงได้อีก
- Cater to Specific Customers to Improve UX การตอบสนอง user experience ของ user เนื่องจากภายใต้ API Gateway user จะไม่ต้องเห็นการทำงานภายใน Microservice เลย ไม่ต้องมานั่งอ่านเอกสารเป็นพัน ๆ บรรทัด หลาย ๆ service ของเรา user อ่านแค่ API ของทาง Gateway อย่างเดียวก็พอแล้ว ตัว Gateway จะทำการ filter และ routing ให้ ทำให้เราสามารถ จัดการ services ต่าง ๆ ภายในของเราได้ โดยที่ user ไม่ได้รู้สึกมีผลกระทบ
- Log Metrics to Anticipate Change ตรวจสอบ Metrics การเข้าถึงระบบ รวมถึงสามารถคาดการณ์ การเปลี่ยนแปลงได้ด้วย เราสามารถตรวจสอบข้อมูลของการ request สามารถคาดการณ์ได้ว่า Service ไหนมี request เข้ามามาก หรือ น้อย เพื่อจัดการกับ resource ของเราได้
แหล่งข้อมูล https://medium.com