Cara membuat dan men-deploy aplikasi Node.js

Membangun aplikasi Node.js hanyalah bagian pertama dari siklus proses pengembangan software; membuatnya dapat diakses, berperforma tinggi, dan tangguh di lingkungan live adalah hal yang penting dalam pengiriman aplikasi. Men-deploy aplikasi web modern melibatkan pemilihan arsitektur yang sesuai dengan profil traffic, tahap siklus proses, dan anggaran resource Anda.

Baik Anda meluncurkan prototipe lengkap yang didukung AI atau men-deploy layanan backend tingkat produksi, lingkungan cloud modern menawarkan jalur otomatis dan dalam container. Panduan ini membahas konsep inti arsitektur web Node.js, mengeksplorasi pertimbangan deployment utama, dan memandu langkah demi langkah cara membuat dan men-deploy aplikasi Node.js di infrastruktur terkelola menggunakan kuota paket gratis.

Apa itu runtime Node.js?

Node.js adalah lingkungan runtime JavaScript lintas platform open source yang dibangun di mesin JavaScript Chrome V8. Node.js memungkinkan JavaScript berjalan di sisi server di luar browser web, sehingga engineer dapat menulis codebase lengkap dan terpadu menggunakan satu bahasa pemrograman.

Tidak seperti server web multithread tradisional yang menghasilkan thread sistem operasi terisolasi untuk setiap koneksi serentak, Node.js beroperasi pada model I/O non-pemblokiran, single-thread, dan berbasis peristiwa. Arsitektur ini membuat Node.js sederhana dan efisien untuk menangani ribuan koneksi serentak—seperti RESTful API, pesan real-time, layanan streaming, dan orkestrator agen AI.

Deployment Node.js tradisional versus platform container serverless

Saat bersiap men-deploy backend Node.js, memilih lingkungan komputasi yang tepat akan berdampak langsung pada beban pemeliharaan, kecepatan penskalaan, dan efisiensi biaya.

Fitur

Virtual machine (IaaS/VPS)

Hosting PaaS/buildpack

Container serverless modern

Pengelolaan infrastruktur

Patching OS manual, pengelolaan firewall, dan update runtime

Lapisan platform yang terkelola sepenuhnya dengan kunci runtime vendor

Infrastruktur yang terkelola sepenuhnya; tanpa pengelolaan OS

Mekanisme penskalaan

Penskalaan otomatis VM berbasis metrik (memerlukan waktu beberapa menit untuk menjalankan instance)

Penskalaan otomatis berdasarkan jumlah instance atau batas worker

Penskalaan otomatis instan berbasis permintaan, termasuk penskalaan hingga nol

Format kemasan

File sumber mentah, layanan systemd, atau pengelola proses PM2

Integrasi repositori Git push dengan buildpack otomatis.

Image container OCI/Docker standar

Profil biaya tidak ada aktivitas

Ditagih 24/7 terlepas dari traffic HTTP yang masuk

Sering kali memerlukan harga instance dasar minimum.

Ditagih secara ketat per detik selama pemrosesan permintaan aktif

Portabilitas

Portabilitas tinggi, tetapi risiko penyimpangan lingkungan tinggi

Portabilitas rendah; terkunci pada konvensi platform

Portabilitas tinggi; menjalankan container yang identik di lingkungan apa pun

Fitur

Virtual machine (IaaS/VPS)

Hosting PaaS/buildpack

Container serverless modern

Pengelolaan infrastruktur

Patching OS manual, pengelolaan firewall, dan update runtime

Lapisan platform yang terkelola sepenuhnya dengan kunci runtime vendor

Infrastruktur yang terkelola sepenuhnya; tanpa pengelolaan OS

Mekanisme penskalaan

Penskalaan otomatis VM berbasis metrik (memerlukan waktu beberapa menit untuk menjalankan instance)

Penskalaan otomatis berdasarkan jumlah instance atau batas worker

Penskalaan otomatis instan berbasis permintaan, termasuk penskalaan hingga nol

Format kemasan

File sumber mentah, layanan systemd, atau pengelola proses PM2

Integrasi repositori Git push dengan buildpack otomatis.

Image container OCI/Docker standar

Profil biaya tidak ada aktivitas

Ditagih 24/7 terlepas dari traffic HTTP yang masuk

Sering kali memerlukan harga instance dasar minimum.

Ditagih secara ketat per detik selama pemrosesan permintaan aktif

Portabilitas

Portabilitas tinggi, tetapi risiko penyimpangan lingkungan tinggi

Portabilitas rendah; terkunci pada konvensi platform

Portabilitas tinggi; menjalankan container yang identik di lingkungan apa pun

Pertimbangan utama saat membuat aplikasi Node.js

Mengembangkan aplikasi Node.js yang siap produksi memerlukan penanganan pola arsitektur yang mencegah bottleneck dan memastikan waktu operasional:

  • Status aplikasi stateless: Platform serverless modern meningkatkan dan menurunkan instance container secara dinamis sebagai respons terhadap traffic yang masuk. Hindari menyimpan status sesi pengguna, file media yang diupload, atau antrean latar belakang di memori container lokal atau jalur disk lokal, karena file yang ditulis ke disk container sementara akan hilang saat di-deploy ulang atau diperkecil skalanya. Gunakan layanan terkelola khusus seperti Cloud Firestore, Cloud SQL untuk PostgreSQL, atau Cloud Storage untuk status persisten.
  • Isolasi secret dan variabel lingkungan: Melakukan hardcode kunci API, kredensial database, atau kunci secret ke dalam kontrol sumber akan menciptakan kerentanan keamanan yang kritis. Selalu isolasi konfigurasi runtime ke dalam variabel lingkungan (process.env) dan masukkan dengan aman di tingkat runtime container.
  • Binding port dan pemeriksaan kondisi: Lingkungan container serverless merutekan traffic HTTP dengan menginjeksikan port target default seperti variabel lingkungan PORT (biasanya port 8080). Server Node.js Anda harus memproses process.env.PORT || 8080 secara dinamis untuk lulus health check dan pemeriksaan kesiapan.
  • Penghentian normal & penangkapan sinyal: Aplikasi Node.js harus menangkap sinyal sistem operasi SIGTERM dan SIGINT. Saat autoscaler infrastruktur memulai penurunan skala, penanganan sinyal ini memastikan permintaan HTTP yang ada selesai diproses sebelum koneksi database ditutup dan container dihentikan.

Cara membuat dan men-deploy aplikasi Node.js

Anda dapat membuat dan men-deploy aplikasi Node.js menggunakan dua alur kerja utama: Pembuatan Prototipe Cepat dengan Bantuan AI (tidak memerlukan penyiapan lokal) atau Deployment Berbasis Container Standar (untuk codebase yang ada).

Jalur A: Pembuatan prototipe cepat seperti mode build AI Studio dan tingkat pemula (penyediaan gratis)

Untuk pembuatan prototipe cepat dan aplikasi AI, mode build Google AI Studio memungkinkan developer mendeskripsikan arsitektur Node.js lengkap dalam bahasa alami dan men-deploy-nya ke Cloud Run tanpa alat command line lokal atau konfigurasi penagihan wajib.

Langkah 1: Melakukan inisialisasi aplikasi dalam mode build

  1. Buka Google AI Studio dan beralih ke mode build.
  2. Masukkan perintah aplikasi yang menjelaskan logika bisnis dan antarmuka frontend yang Anda perlukan (misalnya, "Buat dasbor pelacakan inventaris dengan backend Node.js dan pengelolaan tugas persisten").
  3. Agen terintegrasi akan membuat file aplikasi, mengonfigurasi rute server, menginstal dependensi npm yang relevan, dan meluncurkan pratinjau interaktif.

Langkah 2: Mengonfigurasi data dan autentikasi bawaan

  • Untuk penyimpanan persisten: Jika perintah Anda memerlukan penyimpanan data, aktifkan Cloud Firestore atau Cloud SQL untuk PostgreSQL (Edisi Developer). AI Studio otomatis membuat draf skema, model, dan file koneksi klien Anda.
  • Untuk Identitas Pengguna: Aktifkan Firebase Authentication untuk mengaktifkan alur Login dengan Google yang telah dikonfigurasi sebelumnya tanpa perlu menyiapkan handler pengalihan OAuth secara manual.

Langkah 3: Memublikasikan ke Cloud Run terkelola

  1. Klik Publish > Get Started > Publish App di bagian atas antarmuka.
  2. Pilih region deployment yang Anda inginkan.
  3. Berikan URL Kustom <user-defined>.ai.studio untuk aplikasi Anda dan publikasikan.
  4. Platform ini mengemas container Anda, menyediakan komputasi yang mendasarinya, dan menghasilkan URL produksi HTTPS <user-defined>.ai.studio aktif dalam hitungan detik.

Jalur B: Men-deploy aplikasi Node.js kustom seperti Docker dan Cloud Run

Untuk codebase yang sudah ada dan microservice kustom, kemas aplikasi Node.js Anda ke dalam container yang mematuhi OCI dan deploy langsung ke Cloud Run.

Langkah 1: Buat struktur kode server Node.js

Buat server HTTP minimal menggunakan Express, Fastify, atau library Node.js standar (index.js):

  • JavaScript
Memuat...

 Catatan: Cloud Run memasukkan variabel lingkungan PORT secara otomatis saat runtime. Pengganti || 8080 dalam kode di atas terutama disertakan untuk memfasilitasi pengujian lokal yang mudah di komputer Anda sebelum deployment.

Langkah 2: Membuat Dockerfile multi-level yang aman

Kemas aplikasi Anda menggunakan build multi-level untuk memastikan image produksi yang minimal dan aman.

Praktik terbaik: Buat file .dockerignore di direktori root Anda, lalu tambahkan node_modules dan .env ke dalamnya. Tindakan ini memastikan file pengembangan lokal tidak dikemas secara tidak sengaja ke dalam image container Anda, sehingga tetap bersih dan aman.

Buat file bernama Dockerfile di direktori root Anda:

  • Dockerfile
Memuat...

Langkah 3: Men-deploy ke Cloud Run

Jalankan deployment menggunakan Google Cloud CLI dari folder root lokal Anda. Anda juga dapat membuat URL Kustom dengan format <user-defined>.cloud.run untuk aplikasi Anda:

  • Bash
Memuat...

Untuk memetakan domain kustom setelahnya, gunakan:

  • Bash
Memuat...

Mekanisme harga paket gratis dan tingkat pemula

Memahami cara kerja alokasi gratis memastikan Anda dapat membuat prototipe dan menskalakan aplikasi Node.js dengan cara yang dapat diprediksi:

Jenis paket

Alokasi komputasi & resource

Persyaratan/batas

Tingkat pemula Google Cloud (Pembuatan Prototipe)

• Cloud Run: Maksimal dua aplikasi web aktif

• Cloud Firestore: penyimpanan 1 GiB, 50 ribu operasi baca/hari, 40 ribu operasi tulis/hari

• Cloud SQL: PostgreSQL Developer edition (penskalaan hingga nol)

• Firebase Auth: Login dengan Google disertakan

• Akun Google yang valid

• Tidak perlu kartu kredit atau akun penagihan

• Kunci region deployment tunggal

Paket gratis Google Cloud standar (akun standar)

• Cloud Run: Dua juta permintaan/bulan, 180.000 vCPU-detik/bulan, 360.000 GiB-detik/bulan, 1 GB traffic keluar jaringan Amerika Utara/bulan

• Akses ke kredit Selamat datang senilai $300 untuk 90 hari pertama



• Akun Penagihan Cloud tertaut

• Akses penuh ke API platform di semua region

Jenis paket

Alokasi komputasi & resource

Persyaratan/batas

Tingkat pemula Google Cloud (Pembuatan Prototipe)

• Cloud Run: Maksimal dua aplikasi web aktif

• Cloud Firestore: penyimpanan 1 GiB, 50 ribu operasi baca/hari, 40 ribu operasi tulis/hari

• Cloud SQL: PostgreSQL Developer edition (penskalaan hingga nol)

• Firebase Auth: Login dengan Google disertakan

• Akun Google yang valid

• Tidak perlu kartu kredit atau akun penagihan

• Kunci region deployment tunggal

Paket gratis Google Cloud standar (akun standar)

• Cloud Run: Dua juta permintaan/bulan, 180.000 vCPU-detik/bulan, 360.000 GiB-detik/bulan, 1 GB traffic keluar jaringan Amerika Utara/bulan

• Akses ke kredit Selamat datang senilai $300 untuk 90 hari pertama



• Akun Penagihan Cloud tertaut

• Akses penuh ke API platform di semua region

Mengatasi tantangan bisnis Anda dengan Google Cloud

Pelanggan baru mendapatkan kredit gratis senilai $300 untuk dibelanjakan di Google Cloud.
Hubungi spesialis penjualan Google Cloud untuk membahas tantangan unik Anda secara lebih mendetail.

Praktik terbaik untuk menjalankan Node.js di lingkungan serverless

  1. Mengoptimalkan cold start dengan dependensi yang ramping: Hapus paket pengembangan yang tidak digunakan (npm prune --production) dan gabungkan kode server menggunakan tree-shaker modul modern (seperti esbuild atau tsup) untuk mengurangi ukuran image dan mempercepat inisialisasi container.
  2. Mengonfigurasi jumlah maksimum instance: Saat beralih dari sandbox ke project produksi aktif, tentukan batas konkurensi dan tetapkan --max-instances (misalnya, --max-instances 5) untuk memastikan lonjakan traffic yang tak terduga tidak melebihi anggaran operasi target.
  3. Mempertahankan log secara struktural: Alirkan log ke stdout dan stderr menggunakan format JSON terstruktur. Sistem logging yang terkelola otomatis mengurai objek JSON, sehingga Anda dapat memfilter berdasarkan kode status HTTP, tingkat keparahan, dan latensi eksekusi.
  4. Menggunakan health check native: Terapkan pemeriksaan endpoint HTTP yang jelas (misalnya, /healthz) yang memverifikasi konektivitas database downstream sebelum memberi sinyal kesiapan ke proxy pemilihan rute yang masuk.

Langkah selanjutnya

Mulailah membangun solusi di Google Cloud dengan kredit gratis senilai $300 dan lebih dari dua puluh produk yang selalu gratis.

Google Cloud