Lingkungan menyediakan konteks atau "sandbox" yang terisolasi untuk menjalankan proxy API. Dalam satu organisasi, Anda dapat membuat beberapa lingkungan.
Kode berikut menunjukkan contoh konfigurasi penggantian dengan beberapa lingkungan didefinisikan.
namespace: my-namespace org: my-organization ... envs: - name: test serviceAccountPaths: synchronizer: "your_keypath/synchronizer-manager-service-account.json udca: "your_keypath/analytic-agent-service-account.json - name: prod serviceAccountPaths: synchronizer: "your_keypath/synchronizer-manager-service-account.json udca: "your_keypath/analytic-agent-service-account.json ...
Misalkan proxy dengan jalur dasar /foo1
di-deploy ke lingkungan
test. Anda dapat memanggil proxy seperti ini:
curl -k https://api.example.com/foo1
Saat panggilan ini mencapai ingress, traffic masuk akan tahu untuk mengirimnya ke pemroses pesan
yang terkait dengan lingkungan test
, yang menangani permintaan.
Demikian pula, jika foo1
juga di-deploy ke lingkungan prod
,
Anda bisa membuat {i>proxy<i}
permintaan seperti ini, ke alias host apiprod.mydomain.net
:
curl -k https://apiprod.example.com/foo1
Dan panggilan dirutekan oleh masuknya ke MP yang terkait dengan host tersebut.
Antipattern: Deploy semua proxy Anda ke satu lingkungan hybrid.
Praktik terbaik: Buat beberapa lingkungan dan deploy proxy dalam jumlah terbatas ke tiap variabel tersebut.
Batasi jumlah deployment proxy
Untuk hybrid, fakta bahwa banyak lingkungan dapat berbagi {i>host<i} virtual yang sama seperti yang didefinisikan dalam kelompok lingkungan berarti Anda harus memikirkan secara cermat cara mengelola penyebaran {i>proxy<i} Anda ke setiap alamat lingkungan fleksibel App Engine. Dalam sistem hybrid, praktik terbaik adalah membuat beberapa lingkungan dan men-deploy jumlah {i>proxy<i} yang terbatas di masing-masing {i>proxy<i}.
Berapa banyak proxy yang harus Anda deploy ke suatu lingkungan? Tidak ada jawaban yang pasti atas pertanyaan ini; Namun, tabel berikut memberikan panduan umum tentang mengapa ide yang baik untuk membatasi jumlah {i>proxy<i} yang dikerahkan ke setiap lingkungan dan apa yang Anda pertimbangkan saat mengelola deployment proxy:
Masalah yang perlu dipertimbangkan | Deskripsi |
---|---|
Waktu booting pemroses pesan | Ada korelasi langsung antara durasi waktu pemroses pesan (MP) yang dibutuhkan untuk {i>booting<i} dan jumlah {i> proxy<i} yang di-deploy ke MP tersebut. Dalam penskalaan otomatis lingkungan Kubernetes, peningkatan waktu booting mungkin menjadi masalah. Semakin banyak {i>proxy<i} yang di-deploy ke MP, semakin lama waktu yang dibutuhkan perlu diskalakan atau dibuat ulang. |
Menskalakan performa | Jika Anda memiliki beberapa {i>proxy<i} yang di-deploy ke suatu lingkungan, dan salah satu {i>proxy<i} itu banyak lalu lintas sehingga sering kali melakukan skala otomatis, semua {i>proxy<i} yang akan menyesuaikan dengan skala data. Efek performa dari penskalaan beberapa {i>proxy<i} dengan satu {i>proxy<i} dengan lalu lintas tinggi mungkin menjadi masalah. |
Tetangga berisik | Jika Anda memiliki beberapa proxy yang di-deploy ke lingkungan yang sama, dan satu proxy error, maka semua {i>proxy<i} di lingkungannya akan dihapus sementara Anggota parlemen dimulai ulang. Dengan membatasi jumlah {i>proxy<i} yang di-deploy ke suatu lingkungan, Anda meminimalkan dampak kerusakan {i> proxy<i} tunggal. |
Grup lingkungan dan virtualhost
Grup lingkungan memungkinkan Anda untuk mengelompokkan lingkungan bersama. Lingkungan dalam setiap bagian yang dibagikan grup nama {i>host<i} yang sama. Anda dapat mengelompokkan lingkungan menurut fungsi, alamat nama host, dan wilayah jika Anda menerapkan penginstalan hybrid multi-region, atau dengan metrik lain yang pilih.
Karena perutean dikelola oleh kombinasi nama {i>host<i} grup lingkungan, jalur dasar proxy API, dan lingkungan, setiap {i>host<i} virtual hanya perlu mencantumkan nama grup lingkungan dan sertifikat yang sesuai.
Kode berikut menunjukkan contoh konfigurasi penggantian saat beberapa virtualhost didefinisikan. Perhatikan bahwa nama virtualhost harus berupa nama grup lingkungan.
gcp: region: us-central1 projectID: hybrid-example k8sCluster: name: apigee-hybrid region: us-central1 org: hybrid-example contractProvider: https://us-apigee.googleapis.com # if using data residency instanceID: "my_hybrid_example" virtualhosts: - name: group-1 # the name of an environment group sslCertPath: ./certs/keystore.pem sslKeyPath: ./certs/keystore.key virtualhosts: - name: group-2 sslCertPath: ./certs/keystore.pem sslKeyPath: ./certs/keystore.key ...
Referensi lainnya
- Tentang lingkungan dan grup lingkungan
- Mengelola lingkungan
- Mengelola grup lingkungan
- Referensi properti konfigurasi
- Mengonfigurasi host virtual