Mengintegrasikan Service Discovery dan Registration dengan API7 Enterprise
June 13, 2024
Dengan adopsi luas arsitektur microservices, hubungan antar layanan menjadi semakin kompleks. Dalam konteks ini, penemuan layanan (service discovery) menjadi sangat penting, karena memungkinkan layanan untuk secara dinamis menemukan dan berinteraksi satu sama lain.
API7 Enterprise, sebagai platform manajemen API yang kaya fitur, dapat terintegrasi dengan mulus dengan registri penemuan layanan untuk mencapai penemuan otomatis dan perutean cerdas dari layanan upstream.
Apa Itu Penemuan Layanan?
Penemuan layanan adalah mekanisme untuk secara otomatis mendeteksi instance layanan dan alamatnya dalam jaringan sehingga layanan atau klien lain dapat menemukan dan berkomunikasi dengan mereka. Dalam sistem terdistribusi modern dan arsitektur microservices, penemuan layanan adalah komponen penting, karena memungkinkan pelokalan dan koneksi dinamis ke layanan tanpa perlu meng-hardcode alamat layanan atau memperbarui konfigurasi secara manual.
Fungsi Penemuan Layanan
-
Pelokalan Layanan Dinamis: Dalam arsitektur microservices, instance layanan dapat secara dinamis dimulai, dihentikan, bermigrasi, atau diskalakan. Penemuan layanan dapat secara otomatis melacak perubahan ini, memastikan bahwa klien selalu dapat menemukan instance layanan yang tersedia.
-
Toleransi Kesalahan dan Failover: Ketika sebuah instance layanan gagal, penemuan layanan dapat mendeteksi ketidaktersediaannya dan mengarahkan klien untuk terhubung ke instance lain yang sehat, memungkinkan failover dan ketersediaan tinggi.
-
Penyederhanaan Konfigurasi dan Manajemen: Melalui penemuan layanan, pengembang tidak perlu secara manual mengkonfigurasi dan mengelola alamat jaringan setiap layanan. Ini mengurangi kemungkinan kesalahan konfigurasi dan menyederhanakan penyebaran dan manajemen layanan.
Penemuan Layanan di API7 Enterprise
Penemuan layanan sering digunakan bersama dengan load balancer atau API gateway untuk memastikan bahwa permintaan didistribusikan secara merata ke beberapa instance layanan, sehingga meningkatkan throughput sistem dan waktu respons. Dalam sistem terdistribusi, instance layanan mungkin menjadi tidak tersedia karena berbagai alasan, dan mekanisme penemuan layanan dapat dengan cepat mengidentifikasi masalah ini dan mengarahkan permintaan ke instance layanan lain yang sehat melalui load balancer, memastikan ketersediaan tinggi layanan.
Di API7 Enterprise, konsep "upstream" lebih memperluas fleksibilitas ini. Dengan mengkonfigurasi upstream sebagai registri layanan, API gateway dapat secara dinamis mengambil daftar instance layanan backend dan menyesuaikan strategi distribusi permintaan sesuai kebutuhan. Ini berarti bahwa bahkan ketika jumlah atau status instance layanan berubah, API gateway dapat dengan cepat beradaptasi, tanpa perlu pembaruan konfigurasi manual atau restart layanan.
Kolaborasi antara penemuan layanan dan API gateway memberikan kemampuan manajemen layanan dinamis dan kontrol lalu lintas yang kuat untuk arsitektur microservices. API7 Enterprise lebih meningkatkan dan memperluas fitur ini, memungkinkan sistem menjadi lebih fleksibel dan efisien dalam menangani berbagai skenario dan kebutuhan kompleks. Selain itu, dengan adopsi luas teknologi cloud-native dan containerisasi, penyebaran dan penskalaan instance layanan menjadi lebih mudah dan cepat.
Bagaimana Mengkonfigurasi Penemuan Layanan di API7 Enterprise?
Menambahkan Registri Layanan
Di grup gateway, buka halaman registri layanan, klik tombol "Tambah Koneksi Registri Layanan", dan Anda akan melihat formulir koneksi.
Dalam formulir, kita perlu mengisi informasi dasar dan konfigurasi koneksi yang relevan untuk registri layanan. Saat ini, API7 Enterprise mendukung integrasi registri layanan Kubernetes dan Nacos. Di sini, kita akan menggunakan Nacos sebagai contoh. Pilih "Nacos" sebagai jenis penemuan, lalu tentukan bagaimana API7 Enterprise akan mendapatkan token untuk autentikasi, yang dapat dilakukan melalui akun/kata sandi, access key dan secret key, atau dengan langsung memasukkan nilai token.
Selain konfigurasi autentikasi dasar, API7 Enterprise juga menyediakan opsi konfigurasi yang lebih rinci, seperti timeout koneksi dan timeout baca/tulis. Konfigurasi ini dapat disesuaikan secara fleksibel berdasarkan kebutuhan aktual, secara efektif menghindari permintaan yang tertunda lama karena koneksi jaringan yang tidak stabil, dan mengurangi penggunaan sumber daya sistem yang tidak efisien.
Setelah membuat registri layanan, item koneksi baru akan segera muncul dalam daftar, tetapi status koneksi dapat ditandai sebagai sehat setelah pemeriksaan sistem. Melalui item koneksi ini, pengguna dapat dengan mudah memeriksa status penemuan layanan dan konfigurasi terkait dari registri layanan.

Mengkonfigurasi Penemuan Layanan di Upstream
Registri layanan adalah sumber daya yang dimiliki oleh grup gateway. Di grup gateway di mana registri layanan telah dibuat, layanan apa pun yang dipublikasikan ke grup gateway tersebut dapat menggunakan konfigurasi registri layanan ini. Kita dapat mengkonfigurasi upstream selama proses publikasi layanan atau pada layanan yang telah dipublikasikan.
Pilih template layanan, publikasikan ke grup gateway yang baru saja menambahkan registri layanan, pilih untuk menggunakan penemuan layanan sebagai upstream, lalu pilih registri layanan Nacos yang baru saja kita buat, dan pilih namespace, grup, dan instance tertentu.

Setelah layanan dipublikasikan, Anda dapat melihat registri layanan yang saat ini dikonfigurasi pada halaman upstream dari detail layanan, dan melakukan perubahan pada konfigurasi penemuan layanan kapan saja.

Melihat Layanan Terkait, Memperbarui dan Menghapus Konfigurasi Koneksi
Dalam daftar registri layanan, melalui menu "More" di sebelah kanan, Anda dapat dengan mudah mengelola konfigurasi koneksi, melihat riwayat koneksi, melacak penggunaan layanan, atau menghapus konfigurasi koneksi yang tidak lagi diperlukan.
"Layanan Terkait" dengan jelas menunjukkan layanan mana yang telah mengubah konfigurasi penemuan layanan mereka, memungkinkan kita untuk mengevaluasi dampak potensial sebelum melakukan perubahan konfigurasi, secara efektif menghindari risiko operasional.
Harap dicatat bahwa memperbarui konfigurasi koneksi registri layanan akan memengaruhi semua layanan upstream yang menggunakan registri tersebut. Jika sudah ada layanan upstream yang menggunakannya, Anda tidak dapat mengubah jenis penemuan registri atau langsung menghapus koneksi. Anda perlu secara manual menyesuaikan konfigurasi layanan upstream untuk menggunakan registri atau node lain terlebih dahulu, dan kemudian melakukan operasi penghapusan.
Kesimpulan
Kita telah menjelajahi konsep detail penemuan layanan, perannya, dan aplikasinya di API7 Enterprise. Melalui penemuan layanan, arsitektur microservices dapat secara dinamis mengelola dan memanggil layanan, sangat meningkatkan fleksibilitas dan ketersediaan sistem.
Seiring dengan terus berkembangnya arsitektur microservices, pentingnya penemuan layanan semakin terlihat. Kami berharap bahwa penemuan layanan akan lebih fokus pada kecerdasan, otomatisasi, dan toleransi kesalahan di masa depan.
API7 Enterprise akan mengeksplorasi integrasi dengan lebih banyak jenis registri layanan, dan menggabungkan pemeriksaan kesehatan untuk mencapai ketersediaan tinggi yang lebih kuat, membantu perusahaan membangun arsitektur microservice yang lebih tangguh dan efisien.
