จากหนังสือ Practical Site Reliability Engineering (SRE) มีหลายเรื่องที่น่าสนใจ
ยกตัวอย่างเช่น
- เป้าหมายของ SRE เป็นอย่างไร
- Docker นั้นช่วยเปิดทางให้เข้าสู่โลกของ container ได้อย่างไร
- ว่าด้วยเรื่องของการนำ DevOps และ Microservice มาให้ให้เกิดประโยชน์
- แนวคิดของ Service Mesh ตลอดจนการนำมาใช้งาน
- แนวปฏิบัติที่ดีสำหรับเรื่องของ performance และ reliability ของระบบ
- ว่าด้วยเรื่องของการจัดการ container จำนวนมาก ๆ ด้วย Kubernetes
- เข้าใจขั้นตอนการพัฒนาระบบงานตั้งแต่ต้นจนจบ ด้วยการนำ container มาใช้งาน
API Gateway คืออะไร ?
เรียนได้ว่าเป็น Single Point of Contract ของ service จำนวนมากมายของเรา ยิ่งในโลกของ Microservice จะมี service จำนวนมาก ทำให้การเข้าถึง service เหล่านั้นน่าจะยาก จึงน่าจะมีตัวกลางในการเข้าถึงดีกว่าไหม ? โดยใน API Gateway นั้นจะมีความสามารถต่าง ๆ ดังนี้- ทำการ register และ publish service ต่าง ๆ
- เป็นคนกลางในการจัดการ service ต่าง ๆ
- เป็นตัว route ไปยัง service ต่าง ๆ
- ทำการ verification ของ request ต่าง ๆ
- ทำการกรองข้อมูล ก่อนที่จะส่งต่อไป
- ทำการ authentication และ authorization แต่ละ request
- ทำการ monitoring การทำงานของ service ต่าง ๆ
ประโยชน์ของ API Gateway มีอะไรบ้าง ?
- ซ่อนการเปลี่ยนแปลงของ service จากผู้ใช้งานภายนอก
- จัดการเรื่องของ security ของ service ได้ง่ายขึ้น
- เป็นตัวแปลง protocol การติดต่อสื่อสารระหว่าง service กับผู้ใช้งาน เช่นผู้ใช้งานติดต่อมายัง API Gateway ผ่าน HTTP จากนั้น API Gateway ก็ทำการติดต่อไปยัง service ผ่าน protocol อื่น ๆ ตามแต่ละ service ต่อไปได้
- ลดความซับซ้อนของ Microservice ลง ทำให้แต่ละ service ไปเน้นที่ business เป็นหลัก
เมื่อมันมีข้อดีก็ต้องมีข้อเสีย !!!
- กลายเป็น Single Point of Failure ไปได้
- ใครเป็นคนดูแลระบบนี้ ?
- จำเป็นต้องมี infrastructure ที่ดี
- อาจจะทำให้ business logic ไปอยู่ใน API Gateway มากเกินไป ทำให้เกิด vendor locked-in ได้ง่าย
- เกิดความซับซ้อนขึ้นมาในอีกจุด และอาจจะทำให้เกิดปัญหาคอขวดได้
อีกเรื่องที่น่าสนใจคือ Security ใน API Gateway
ถ้าเราเพิ่งพามาก ๆ จำเป็นต้องมีรูปแบบที่ดี เพื่อทำให้มั่นใจว่า service ของเราปลอดภัยทั้งการทำงานและข้อมูล ยกตัวอย่างดังรูปแสดงเรื่องของ authentication และ authorizationคำถามที่น่าสนใจคือ ทำไมระบบเราต้องมี API Gateway ด้วยละ ?