Praktik Terbaik untuk Degradasi API di API Gateway
April 1, 2024
Dalam sistem terdistribusi modern, degradasi API berfungsi sebagai mekanisme toleransi kesalahan dan stabilitas yang sangat penting. Ketika sistem menghadapi tekanan, kegagalan, atau keterbatasan sumber daya, menurunkan fungsi atau layanan non-inti memastikan stabilitas sistem secara keseluruhan dan kelangsungan operasi bisnis inti. Artikel ini membahas skenario untuk degradasi API dan praktik terbaik untuk menerapkan degradasi pada tingkat gateway API.
Skenario untuk Degradasi API
-
Overload Sistem: Ketika sistem mengalami lonjakan permintaan yang melebihi kapasitas pemrosesan server, degradasi API non-inti diperlukan untuk mencegah crash sistem dan memastikan operasi normal fungsi inti.
-
Kegagalan Layanan: Dalam kasus kegagalan atau penurunan kinerja layanan backend, degradasi API dari layanan tersebut diperlukan untuk mencegah penyebaran kegagalan.
-
Keterbatasan Sumber Daya: Ketika sumber daya sistem seperti CPU, memori, atau bandwidth terbatas, degradasi API yang mengonsumsi banyak sumber daya sangat penting untuk memastikan stabilitas sistem secara keseluruhan.
Praktik Terbaik untuk Degradasi API pada Tingkat Gateway
Pertimbangkan skenario di mana platform e-commerce menghadapi tekanan lalu lintas yang besar selama acara penjualan besar seperti Black Friday. Untuk melindungi fungsi inti dan memastikan pengalaman pengguna, tim memutuskan untuk menerapkan strategi degradasi API pada tingkat gateway.
1. Mengidentifikasi API Kunci
Tim mengidentifikasi API kritis seperti login pengguna, pengambilan detail produk, menambahkan item ke keranjang belanja, pengiriman pesanan, dan proses pembayaran. API ini sangat penting bagi pengguna untuk menyelesaikan proses belanja.
2. Merancang Strategi Degradasi
Untuk API kunci, penanganan degradasi kinerja disiapkan. Misalnya, ketika server upstream mengembalikan kode status 500 sebanyak tiga kali berturut-turut, circuit breaking akan diaktifkan, dengan waktu downtime circuit yang meningkat secara otomatis, hingga maksimum 300 detik, sampai layanan upstream pulih.
Untuk API non-kunci seperti ulasan pengguna, daftar rekomendasi, dan tampilan iklan, strategi degradasi khusus dirancang:
-
API Ulasan Pengguna: Mengembalikan daftar ulasan default atau data kosong untuk menghindari panggilan real-time ke sistem ulasan.
-
API Daftar Rekomendasi: Memanfaatkan data rekomendasi yang di-cache atau mengembalikan daftar rekomendasi tetap untuk mengurangi ketergantungan pada mesin rekomendasi.
-
API Tampilan Iklan: Mengembalikan iklan default atau slot iklan kosong untuk memastikan tata letak halaman tetap tidak terpengaruh.

3. Konfigurasi Apache APISIX / API7 Enterprise
-
Untuk API kunci, plugin "api-breaker" diaktifkan pada rute yang sesuai, dengan kondisi pemicu diatur menjadi tiga kali berturut-turut kode status
500, dan waktu downtime circuit maksimum 300 detik. -
Untuk API evaluasi pengguna, aktifkan plugin mocking pada rute yang sesuai dan atur
response_exampleke data kosong. -
Untuk API daftar rekomendasi, aktifkan plugin proxy-cache pada rute yang sesuai, dan pilih untuk memanfaatkan caching respons dalam memori.
-
Untuk API tampilan iklan, aktifkan plugin mocking pada rute yang sesuai dan atur
response_exampleke iklan default, memastikan tampilan halaman normal sambil mempertahankan iklan yang dapat diklik.
4. Manajemen Konfigurasi Dinamis
Untuk menyesuaikan dengan kondisi lalu lintas yang berubah, tim memilih gateway yang dapat dimuat ulang secara dinamis: Apache APISIX / API7 Enterprise. Mereka dapat menyesuaikan ambang batas circuit-breaking, strategi degradasi, dan mengaktifkan saklar degradasi berdasarkan data pemantauan real-time, secara selektif menurunkan API non-kunci saat puncak lalu lintas terjadi.
5. Pemantauan dan Peringatan
Tim menyiapkan kebijakan peringatan dengan mudah dalam gateway API7 atau mengintegrasikan dengan sistem pemantauan dan peringatan internal mereka menggunakan APISIX. Pemantauan real-time terhadap waktu respons API, tingkat kesalahan, dan volume panggilan memungkinkan eksekusi degradasi otomatis saat mencapai ambang batas degradasi atau kondisi pemicu. Personel operasi diberitahu melalui SMS, email, atau cara lain untuk segera menangani potensi masalah, memastikan stabilitas sistem.
6. Evaluasi dan Penyesuaian
Setelah implementasi strategi degradasi, tim memantau kinerja sistem dan pengalaman pengguna dengan cermat. Mereka mengevaluasi efektivitas strategi degradasi melalui umpan balik pengguna, analisis data bisnis, dan metrik pemantauan. Berdasarkan hasil evaluasi, tim melakukan penyesuaian strategi degradasi secara tepat waktu untuk menyeimbangkan beban sistem dan kepuasan pengguna dengan lebih baik.
Kesimpulan
Degradasi API, sebagai mekanisme toleransi kesalahan yang kritis dalam sistem terdistribusi modern, secara signifikan meningkatkan stabilitas sistem dan pengalaman pengguna ketika diterapkan pada tingkat gateway API. Dengan mengidentifikasi API kunci, merancang strategi degradasi, mengonfigurasi plugin gateway, mengelola konfigurasi secara dinamis, memantau dan memberi peringatan, serta mengevaluasi efektivitas, tim dapat secara fleksibel menghadapi berbagai tantangan, memastikan stabilitas sistem bahkan di bawah tekanan.