Kata SUHU

20 June 2024 - Kategori: Knowledge - Oleh: SUHU

Memahami API Gateway Pada Microservice Architecture

Memahami API Gateway Pada Microservice Architecture

Dalam arsitektur microservices, aplikasi dibagi menjadi layanan-layanan kecil yang independen. Masing-masing layanan memiliki tanggung jawab spesifik dan dapat dikembangkan, diuji, serta diterapkan secara terpisah. Namun, dengan banyaknya layanan mikro yang terlibat, kompleksitas pun muncul. Di sinilah API Gateway Pattern hadir sebagai solusi.

Apa itu API Gateway Pattern?

API Gateway Pattern adalah pola arsitektur yang menyediakan titik masuk terpusat untuk mengakses kumpulan microservices. Ia bertindak sebagai proksi terbalik, menerima permintaan dari klien, menerjemahkannya, dan mengarahkannya ke microservices yang tepat.

Mengapa Microservices Membutuhkan API Gateway?

Microservices membutuhkan API Gateway karena beberapa alasan:
- Memudahkan external client melakukan komunikasi dengan service di dalamnya.
- Mengurangi round trip.
- Menerapkan otentikasi, otorisasi, dan enkripsi, melindungi microservices dari akses tidak sah.
- Menyediakan mekanisme untuk memantau dan mencatat semua lalu lintas yang melewati sistem, membantu dalam analisis kinerja, debugging, dan audit keamanan.
- Mengubah permintaan dan respons untuk memastikan kompatibilitas antara klien dan layanan microservices, memungkinkan penggabungan data dari berbagai layanan menjadi satu respons tunggal.

Fitur Utama API Gateway untuk Microservices

- Protocol translation.
- Service discovery.
- Basic business logic.
- Authentication and security policy enforcements.
- Stabilization and load balancing.
- Cache management.
- Monitoring, logging and analytics Features Of An API Gateway.
- Security.

Jenis-Jenis API Gateway pada Microservices

Edge Service Pattern

API Gateway bertindak sebagai edge service, menangani semua permintaan dari klien. Semua layanan microservices diakses melalui API Gateway ini.

Backend for Frontend Pattern

Terdapat API Gateway terpisah untuk setiap jenis klien (misalnya, web, mobile, IoT). Setiap API Gateway BFF disesuaikan dengan kebutuhan spesifik klien yang dilayaninya.

Aggregator Pattern

API Gateway menggabungkan respons dari beberapa layanan microservices dan mengembalikan hasil agregat ke klien. Ini berguna untuk mengurangi jumlah panggilan ke microservices yang harus dilakukan klien.

API Gateway with Authentication and Authorization

API Gateway ini menambahkan lapisan keamanan dengan menangani otentikasi dan otorisasi. Hanya klien yang memiliki kredensial yang valid yang dapat mengakses layanan microservices melalui API Gateway.

Tools API Gateway Pattern

Berbagai tools dan platform tersedia untuk mengimplementasikan API Gateway Pattern, seperti:
- Zuul (Java): Gateway open-source populer dengan routing fleksibel dan fitur keamanan.
- Kong (Go): Gateway skalabel dan extensible dengan plugin yang kaya untuk berbagai fungsi.
- Amazon API Gateway (AWS): Solusi cloud untuk mengelola dan mengamankan API di AWS.
- Azure API Management (Microsoft): Gateway terkelola di Azure dengan berbagai fitur seperti penerbitan API, analitik, dan monetisasi.
- Apigee (Multi-language): Platform gateway terkelola dengan berbagai fitur enterprise.

Langkah-Langkah Implementasi API Gateway

Untuk mengimplementasikan API Gateway dalam arsitektur microservices, ada beberapa langkah yang dapat diikuti:

1. Pilih tools yang tepat: Beberapa alat populer untuk API Gateway adalah Kong, NGINX, Apigee, dan AWS API Gateway.
2. Konfigurasi rute: Tentukan rute yang akan diarahkan oleh API Gateway ke layanan-layanan backend.
3. Tambahkan middleware: Implementasikan middleware untuk fungsi-fungsi seperti otentikasi, otorisasi, logging, dan transformasi data.
4. Terapkan Security: Konfigurasikan kebijakan keamanan untuk melindungi layanan backend dari akses yang tidak sah.
5. Uji Coba dan Monitoring: Lakukan pengujian untuk memastikan API Gateway berfungsi dengan baik dan gunakan alat monitoring untuk memantau kinerja dan kesehatan API Gateway.

Contoh Implementasi dengan Kong

Berikut adalah contoh sederhana bagaimana mengimplementasikan API Gateway menggunakan Kong, salah satu API Gateway yang populer.

Instalasi Kong

docker run -d --name kong-database \

  -p 5432:5432 \

  -e "POSTGRES_USER=kong" \

  -e "POSTGRES_DB=kong" \

  -e "POSTGRES_PASSWORD=kong" \

  postgres:9.6

 

docker run -d --name kong \

  --link kong-database:kong-database \

  -e "KONG_DATABASE=postgres" \

  -e "KONG_PG_HOST=kong-database" \

  -e "KONG_CASSANDRA_CONTACT_POINTS=kong-database" \

  -e "KONG_PROXY_ACCESS_LOG=/dev/stdout" \

  -e "KONG_ADMIN_ACCESS_LOG=/dev/stdout" \

  -e "KONG_PROXY_ERROR_LOG=/dev/stderr" \

  -e "KONG_ADMIN_ERROR_LOG=/dev/stderr" \

  -e "KONG_ADMIN_LISTEN=0.0.0.0:8001" \

  -p 8000:8000 \

  -p 8443:8443 \

  -p 8001:8001 \

  -p 8444:8444 \

  kong

Konfigurasi Service dan Route

curl -i -X POST \

  --url http://localhost:8001/services/ \

  --data 'name=example-service' \

  --data 'url=http://example.com'

 

curl -i -X POST \

  --url http://localhost:8001/services/example-service/routes \

  --data 'paths[]=/example'

Tambahkan Plugin Otentikasi

curl -i -X POST \

  --url http://localhost:8001/services/example-service/plugins \

  --data 'name=key-auth'

Buat Kredensial Klien

curl -i -X POST \

  --url http://localhost:8001/consumers/ \

  --data "username=example-user"

 

curl -i -X POST \

  --url http://localhost:8001/consumers/example-user/key-auth/ \

  --data 'key=example-key'

Dengan API Gateway, kita dapat menyederhanakan interaksi antara klien dan layanan microservices, meningkatkan keamanan, performa, dan skalabilitas aplikasi.

Kesimpulan

API Gateway Pattern adalah elemen penting dalam arsitektur microservices. Dengan menerapkan pola ini, Anda dapat menyederhanakan akses ke layanan mikro, meningkatkan keamanan, mengoptimalkan performa, dan mendapatkan fleksibilitas untuk membangun aplikasi yang skalabel dan handal.

Seperti itu penjelasan tentang API Gateway Pada Microservice Architecture. Apabila Anda berminat untuk belajar dan meningkatkan kemampuan serta pemahaman dalam membangun microservices, silakan mengikuti pelatihannya bersama SUHU disini :

Webinar Microservices with Golang: From Concept to Implementation
Pelatihan RESTful API & Microservices
Pelatihan Master Golang Programing 

Silakan konsultasikan kebutuhan Anda bersama kami dengan klik link berikut: https://bit.ly/kontaksuhu

BAGIKAN ARTIKEL INI

Kata SUHU Terkait

Hubungi kami