Antipattern: Biarkan Proxy NodeJS API yang tidak digunakan di-deploy

Anda melihat dokumentasi Apigee Edge.
Buka dokumentasi Apigee X.
info

Salah satu fitur Apigee Edge yang unik dan berguna adalah kemampuan untuk menggabungkan aplikasi NodeJS dalam Proxy API. Hal ini memungkinkan developer membuat aplikasi sisi server berbasis peristiwa menggunakan Edge.

Antipola

Deployment Proxy API adalah proses penyediaannya untuk melayani permintaan API. Setiap Proxy API yang di-deploy dimuat ke dalam memori runtime Message Processor agar dapat melayani permintaan API untuk Proxy API tertentu. Oleh karena itu, penggunaan memori runtime meningkat seiring dengan peningkatan jumlah Proxy API yang di-deploy. Membiarkan Proxy API yang tidak digunakan di-deploy dapat menyebabkan penggunaan memori runtime yang tidak perlu.

Dalam kasus Proxy API NodeJS, ada implikasi lebih lanjut.

Platform ini meluncurkan “Aplikasi Node” untuk setiap Proxy API NodeJS yang di-deploy. Aplikasi Node mirip dengan instance server node mandiri pada proses JVM Message Processor.

Pada dasarnya, untuk setiap Proxy API NodeJS yang di-deploy, Edge meluncurkan server node masing-masing, untuk memproses permintaan proxy yang sesuai. Jika Proxy API NodeJS yang sama di-deploy di beberapa lingkungan, aplikasi node yang sesuai akan diluncurkan untuk setiap lingkungan. Dalam situasi di mana ada banyak Proxy API NodeJS yang di-deploy tetapi tidak digunakan, beberapa aplikasi Node akan diluncurkan. Proxy NodeJS yang tidak digunakan akan diterjemahkan ke aplikasi Node yang tidak aktif yang menggunakan memori dan memengaruhi waktu startup proses aplikasi.

Proxy yang Digunakan Proxy yang Tidak Digunakan
# Proxy # Lingkungan yang Di-deploy # nodeapps Diluncurkan # Proxy # Lingkungan yang Di-deploy # Aplikasi Node Diluncurkan
10 dev, test, prod (3) 10x3=30 12 dev, test, prod (3) 12x3=36

Dalam ilustrasi di atas, 36 nodeapps yang tidak digunakan diluncurkan, yang menggunakan memori sistem dan berdampak buruk pada waktu startup proses.

Dampak

  • Penggunaan memori yang tinggi dan efek berjenjang pada kemampuan aplikasi untuk memproses permintaan lebih lanjut
  • Kemungkinan dampak performa pada Proxy API yang sebenarnya melayani traffic

Praktik terbaik

  • Batalkan deployment Proxy API yang tidak digunakan
  • Gunakan dasbor Performa Proxy Analytics untuk menentukan proxy mana yang tidak melayani traffic; batalkan deployment proxy yang tidak Anda perlukan

Bacaan lebih lanjut