Pola Penerapan API Gateway
December 16, 2022
API mengubah cara kita membangun aplikasi dan cara kita mengekspos data, baik di dalam maupun di luar organisasi kita. Selain itu, kesuksesan API kita bergantung pada integritas, ketersediaan, dan kinerjanya. Dengan API Gateway seperti Apache APISIX, kita dapat mencapai indikator kesuksesan tersebut.
Ketika berbicara tentang penerapan API Gateway, ada 4 pola yang terkenal: Centralized edge gateway, Two-tier gateway, Microgateway, dan Sidecar. Dalam posting ini, kita akan membahas pola-pola ini dan memberikan gambaran untuk memilih pola penerapan API gateway yang tepat untuk bisnis Anda.
Apa itu API gateway?
API gateway adalah alat manajemen yang berada di tepi sistem antara konsumen dan kumpulan layanan backend, dan bertindak sebagai titik masuk tunggal untuk sekelompok API yang telah ditentukan. Konsumen dapat berupa aplikasi atau perangkat pengguna akhir, seperti aplikasi web satu halaman atau aplikasi seluler, sistem internal lainnya, atau aplikasi atau sistem pihak ketiga.
Komponen penerapan API gateway
API gateway diimplementasikan dengan dua komponen dasar tingkat tinggi: control plane dan data plane. Komponen-komponen ini biasanya dapat dikemas bersama atau diterapkan secara terpisah. Control plane adalah tempat operator berinteraksi dengan gateway dan mendefinisikan rute, kebijakan, dan telemetri yang diperlukan. Data plane adalah lokasi di mana semua pekerjaan yang ditentukan dalam control plane terjadi, paket jaringan diarahkan, kebijakan diberlakukan, dan telemetri dikeluarkan. Sebagai contoh, APISIX memiliki tiga mode penerapan yang berbeda (tradisional, terpisah, dan mandiri) untuk berbagai kasus penggunaan produksi.
Centralized edge gateway
API gateway biasanya diterapkan di tepi sistem, tetapi definisi "sistem" dalam hal ini bisa sangat fleksibel. Untuk startup dan banyak bisnis kecil-menengah, API gateway sering kali diterapkan di tepi pusat data atau cloud. Dalam situasi ini, mungkin hanya ada satu API gateway (diterapkan dan dijalankan melalui beberapa instance untuk ketersediaan tinggi) yang bertindak sebagai pintu depan untuk seluruh estate backend, dan API gateway akan menyediakan semua fungsionalitas tepi.

API gateway menyediakan persyaratan lintas-sektor seperti autentikasi pengguna, otorisasi, pembatasan laju permintaan, caching, timeout/retry, transformasi permintaan/respons, dapat menyediakan metrik, log, dan data jejak untuk mendukung implementasi observabilitas dalam sistem.
Selain itu, banyak API gateway menyediakan fitur tambahan yang memungkinkan pengembang untuk mengelola siklus hidup API, membantu dalam onboarding dan manajemen pengembang yang menggunakan API (seperti menyediakan portal pengembang dan administrasi akun terkait serta kontrol akses), dan menyediakan tata kelola perusahaan.
Two-tier gateway
Untuk organisasi besar dan perusahaan, API gateway biasanya akan diterapkan di beberapa lokasi, sering kali sebagai bagian dari stack tepi awal di perimeter pusat data, dan gateway tambahan dapat diterapkan sebagai bagian dari setiap produk, lini bisnis, atau departemen organisasi. Dalam konteks ini, gateway ini biasanya akan menjadi implementasi terpisah dan mungkin menawarkan fungsionalitas yang berbeda tergantung pada lokasi geografis (tata kelola yang diperlukan) atau kemampuan infrastruktur (berjalan pada sumber daya komputasi tepi berdaya rendah).
Seperti yang ditunjukkan diagram di bawah ini, Apache APISIX API gateway sering berada di antara internet publik dan zona demiliterisasi (DMZ) dari jaringan privat.

Microgateway
Microgateway dirancang sepenuhnya untuk komunikasi internal antara layanan mikro. Setiap microgateway individu mungkin memiliki seperangkat kebijakan, aturan keamanan, dan memerlukan agregasi pemantauan dan metrik dari beberapa layanan.

Konsepnya adalah menyediakan kemampuan (gateway khusus) kepada tim individu yang mengelola layanan mikro untuk mengontrol bagaimana mereka akan mengekspos layanan secara aman. Tim pengembang yang sama akan mengelola dan memelihara layanan mikro dan microgateway mereka, sehingga mereka dapat memperbaiki bug, menyediakan pembaruan, melakukan perbaikan secara independen, dan dengan cepat mendorong perubahan ke produksi dengan sedikit interaksi dengan dependensi lain dan tanpa memengaruhi aplikasi lain dalam penerapan.
Sidecar API gateway
Sidecar mengimplementasikan API gateway sebagai kontainer yang terpasang ke layanan dalam runtime independen, seperti Kubernetes. Sidecar adalah pola yang sesuai dengan sidecar yang terpasang pada sepeda motor, secara serupa, ia terpasang pada aplikasi induk (komponen perangkat lunak yang disebut service mesh) dan menyediakan fitur pendukung untuk aplikasi tersebut. Sidecar juga berbagi siklus hidup yang sama dengan aplikasi induk, dibuat dan dihentikan bersama dengan induknya, dan memperkenalkan fitur tambahan seperti pemantauan, pencatatan log, konfigurasi, dan layanan jaringan.
Manfaat dari mengadopsi pola ini adalah bahwa setiap runtime layanan dapat mengkonfigurasi API gateway-nya sendiri dengan cara terbaik. Karena persyaratan untuk mengaktifkan fungsionalitas dan pengaturan API gateway dapat bervariasi dari layanan ke layanan. Pada saat yang sama, ini memisahkan masalah jika terjadi masalah dalam infrastruktur API gateway bersama maka semua layanan tidak terpengaruh. Sebagai contoh, Amesh adalah solusi service mesh lain yang berbasis Apache APISIX.

Diagram sebelumnya menggambarkan ingress yang bertindak sebagai penyeimbang beban API dan router sumber daya ke setiap endpoint layanan. Titik masuk untuk layanan bukanlah endpoint layanan itu sendiri melainkan sidecar API gateway. Sidecar kemudian dapat melakukan kemampuan apa pun yang ditawarkan oleh API gateway selain mengarahkan lalu lintas ke endpoint layanan.
Kesimpulan
Seperti yang kita pahami, tidak ada satu pola penerapan yang cocok untuk semua kondisi. Terkadang Anda dapat menggunakan satu atau beberapa gateway dalam sistem Anda. Pilihan penerapan tergantung pada kompleksitas dan kebutuhan bisnis Anda. Jika Anda memerlukan bantuan untuk memutuskan pola penerapan mana yang terbaik untuk Anda, Anda dapat bergabung dengan saluran Slack komunitas kami dan para ahli akan membantu Anda membuat keputusan.
Sumber daya terkait
➔ Model penerapan Apache APISIX.
➔ Apa Itu API Gateway, dan Mengapa Itu Penting di Era Cloud-Native?.
Konten yang direkomendasikan
➔ Baca posting blog: