Mode Multi-Environment
App SupervisorEnterprise Edition+Pengantar
Multi-app mode shared memory memiliki keuntungan signifikan dalam deployment dan operasi, tetapi seiring meningkatnya jumlah aplikasi dan kompleksitas bisnis, single instance dapat secara bertahap menghadapi masalah seperti resource contention dan penurunan stabilitas. Untuk skenario seperti ini, pengguna dapat mengadopsi solusi deployment campuran multi-environment untuk mendukung kebutuhan bisnis yang lebih kompleks.
Dalam mode ini, sistem men-deploy satu aplikasi entry point sebagai pusat manajemen dan scheduling terpadu, sekaligus men-deploy beberapa instance NocoBase sebagai environment runtime aplikasi independen, bertanggung jawab untuk benar-benar menampung aplikasi bisnis. Setiap environment terisolasi dan berkolaborasi, sehingga secara efektif mendistribusikan beban single instance, secara signifikan meningkatkan stabilitas, skalabilitas, dan kemampuan isolasi failure sistem.
Pada level deployment, environment yang berbeda dapat berjalan di proses independen, atau di-deploy sebagai container Docker yang berbeda, atau dalam bentuk beberapa Kubernetes Deployment, dapat secara fleksibel beradaptasi dengan environment infrastruktur dengan skala dan arsitektur yang berbeda.
Deployment
Dalam mode deployment campuran multi-environment:
- Aplikasi entry point (Supervisor) bertanggung jawab untuk manajemen aplikasi dan informasi environment secara terpadu
- Aplikasi worker (Worker) sebagai environment runtime bisnis aktual
- Konfigurasi aplikasi dan environment di-cache melalui Redis
- Sinkronisasi command dan status antara aplikasi entry point dan aplikasi worker bergantung pada komunikasi Redis
Saat ini fitur pembuatan environment belum disediakan, setiap aplikasi worker perlu di-deploy secara manual dan dikonfigurasi dengan informasi environment yang sesuai sebelum dapat dikenali oleh aplikasi entry point.
Dependensi Arsitektur
Sebelum deployment, harap siapkan service berikut:
-
Redis
- Cache konfigurasi aplikasi dan environment
- Sebagai channel komunikasi command antara aplikasi entry point dan aplikasi worker
-
Database
- Service database yang perlu dihubungkan oleh aplikasi entry point dan aplikasi worker
Aplikasi Entry Point (Supervisor)
Aplikasi entry point sebagai pusat manajemen terpadu, bertanggung jawab untuk pembuatan, startup, stop aplikasi, dan scheduling environment, serta proxy akses aplikasi.
Penjelasan konfigurasi environment variable aplikasi entry point
Aplikasi Worker (Worker)
Aplikasi worker sebagai environment runtime bisnis aktual, bertanggung jawab untuk menampung dan menjalankan instance aplikasi NocoBase secara konkret.
Penjelasan konfigurasi environment variable aplikasi worker
Contoh Docker Compose
Contoh berikut menunjukkan solusi deployment campuran multi-environment dengan container Docker sebagai unit runtime, men-deploy satu aplikasi entry point dan dua aplikasi worker secara bersamaan melalui Docker Compose.
Manual Penggunaan
Operasi manajemen dasar aplikasi tidak berbeda dengan mode shared memory, silakan merujuk ke Mode Shared Memory. Bagian ini terutama memperkenalkan konten terkait konfigurasi multi-environment.
List Environment
Setelah deployment selesai, masuk ke halaman "Application Supervisor" di aplikasi entry point. Anda dapat melihat list environment kerja yang telah terdaftar di tab "Environment". Termasuk informasi seperti identifier environment, versi aplikasi worker, URL akses, dan status. Aplikasi worker melaporkan heartbeat setiap 2 menit untuk memastikan ketersediaan environment.

Pembuatan Aplikasi
Saat membuat aplikasi, Anda dapat memilih satu hingga beberapa environment runtime, untuk menentukan ke aplikasi worker mana aplikasi tersebut akan di-deploy. Biasanya, disarankan memilih satu environment saja. Hanya saat aplikasi worker telah melakukan pemisahan service, perlu men-deploy aplikasi yang sama ke beberapa environment runtime untuk mencapai pembagian beban atau isolasi kemampuan, baru memilih beberapa environment.

List Aplikasi
Halaman list aplikasi akan menampilkan environment runtime saat ini dan informasi status setiap aplikasi. Jika aplikasi di-deploy di beberapa environment, akan menampilkan beberapa status running. Aplikasi yang sama di beberapa environment dalam kondisi normal akan mempertahankan status terpadu, perlu kontrol startup dan stop secara terpadu.

Startup Aplikasi
Karena saat startup aplikasi mungkin akan menulis data inisialisasi ke database, untuk menghindari race condition pada multi-environment, aplikasi yang di-deploy di beberapa environment akan diantrekan saat startup.

Proxy Akses Aplikasi
Aplikasi worker dapat diakses melalui proxy melalui sub-path /apps/:appName/admin aplikasi entry point.

Jika aplikasi di-deploy di beberapa environment, perlu menentukan environment target proxy access.

Secara default, alamat proxy access menggunakan alamat akses aplikasi worker, sesuai dengan environment variable ENVIRONMENT_URL. Pastikan alamat tersebut dapat diakses di environment jaringan tempat aplikasi entry point berada. Jika perlu menggunakan alamat proxy access yang berbeda, dapat di-override melalui environment variable ENVIRONMENT_PROXY_URL.

