NodeJS Process Managers
Node.js process manager adalah tool yang menyediakan kemampuan untuk mengontrol application life cycle, memantau service yang berjalan, dan memfasilitasi system admin task umum untuk menjaga operabilitas project Anda.
Dewacloud menyediakan tiga process manager pre-configured, yang dapat dipilih dengan cara berikut:
- Dengan mengedit variable PROCESS_MANAGER dalam container yang sudah dibuat dengan value forever, npm, atau pm2 (restart diperlukan untuk menerapkan opsi baru)
Mari kita lihat masing-masing manager yang tersedia untuk membantu Anda memilih salah satu:
Process Manager (npm)
Bersama dengan package manager, NPM menyediakan kemampuan untuk start aplikasi. “npm start” (yang merupakan alias “npm run start”) dijalankan jika NPM dipilih sebagai value pada variable PROCESS_MANAGER pada container NodeJS. Hasilnya, script yang didefinisikan dalam “start” dari package.json dapat dilaunch.
Lihat dokumentasi resminya untuk informasi tambahan.
PM2
PM2 menyediakan beragam fitur manajemen aplikasi, termasuk pemantauan proses NodeJS yang dilaunch. Anda bisa mengenali list command untuk pm2, yang dapat dieksekusi langsung melalui SSH.
Misalnya, setelah pembuatan server Node.js, Anda dapat menampilkan list process yang berjalan dengan command berikut:
pm2 list
Seperti yang bisa dilihat, ini menunjukkan aplikasi draw-game default sedang berjalan.
Selanjutnya, Anda dapat menghapus aplikasi ini dengan command pm2 delete.
PM2 juga memberi pengguna kemampuan untuk membuat file konfigurasi di mana semua opsi run ditampilkan dalam sebuah list, yang berguna untuk deployment aplikasi berbasis microservice, karena beberapa aplikasi dapat dideskripsikan dalam satu file. Referensi file konfigurasi yang sesuai dapat ditemukan dengan mengikuti link yang disediakan (misalnya, file ecosystem.config.js default digunakan untuk launching file aplikasi server.js sebagai aplikasi “draw game”).
Forever
Process manager forever adalah tool CLI sederhana, yang dapat membuat proses NodeJS Anda berjalan terus menerus. Ini secara permanen menjaga child process (seperti project Anda pada server web Node.js) dan secara otomatis melakukan restart saat terjadi kegagalan.
Jalankan command berikut untuk mendapatkan informasi utama tentang penggunaan manager forever, action, usage, dll.:
forever --help
Dengan menggunakan forever Anda juga dapat menentukan opsi aplikasi dalam file JSON. Misalnya, untuk game Draw default (secara default tersedia setelah penginstalan server Node.js), file /home/jelastic/ROOT/forever.json akan seperti ini:
{
"uid": "app1",
"append": true,
"watch": true,
"script": "server.js",
"sourceDir": "/home/jelastic/ROOT"
}
di mana:
- uid - menetapkan nama yang unik untuk aplikasi Anda
- append - memilih apakah log harus ditambahkan (true) atau di-overwrite (false)
- watch - memungkinkan mengaktifkan atau menonaktifkan restart otomatis dari child process saat terjadi perubahan kode aplikasi yang sesuai; setel ke “false”, jika Anda ingin menghindari restart tak terduga setelah deployment dari VCS (termasuk auto-deploy)
- script - menentukan nama file .js yang dapat dieksekusi
- sourceDir - menyediakan absolute path ke script yang ditentukan