Langsung ke konten

Memindahkan Proyek ​

Pindahkan proyek yang sudah di-deploy, beserta datanya, ke server lain di tim yang sama: ke server yang lebih besar, ke region lain, atau untuk mempensiunkan mesin lama. Proyek mempertahankan ID, pengaturan, domain, dan riwayatnya.

Tidak ada yang dihapus dari server lama sampai Anda memastikan proyek berjalan di server baru.

Sebelum mulai ​

  • Anda memerlukan peran admin atau owner di tim, dan mengetik nama proyek untuk mengonfirmasi.
  • Proyek harus sudah di-deploy. Proyek yang belum di-deploy tidak punya data untuk disalin; kloning saja ke server lain.
  • Server baru harus siap, dan server lama harus bisa dijangkau, karena data disalin dari sana.
  • Proyek tidak tersedia selama dipindahkan: layanannya dihentikan agar salinannya konsisten. Rencanakan pemindahan di waktu yang sepi. Lamanya kurang lebih sama dengan mem-backup dan memulihkan seluruh datanya.

Mulai pemindahan ​

  1. Buka Settings proyek → General → Move to another server.
  2. Pilih server baru. Zenavo memeriksanya dan menampilkan:
    • apakah server siap, apakah tim masih dalam batas paketnya, dan apakah server punya cukup memori kosong (dari batas memori setiap layanan, atau pemakaian terbarunya);
    • bentrokan domain dan port TCP/UDP yang dipublikasikan dengan proyek lain di server itu;
    • data yang akan disalin;
    • domain otomatis yang beralih sendiri, dan record DNS yang harus Anda ubah untuk domain sendiri.
  3. Ketik nama proyek dan klik Move.

Pemindahan berjalan sebagai job. Halamannya menampilkan setiap langkah dan log-nya.

Yang terjadi ​

LangkahYang dilakukan Zenavo
Periksa server baruMemastikan server siap dan punya ruang. Belum ada yang berubah.
Hentikan penulisanMenghentikan layanan aplikasi di server lama.
BackupMen-dump database PostgreSQL dan MySQL yang tidak punya volume, lalu menghentikannya, kemudian menyalin setiap volume sebagai arsip .tar. SHA-256 setiap file dicatat.
DeployMen-deploy image dan konfigurasi yang sama di server baru dengan semua layanan dihentikan. Perintah inisialisasi tidak dijalankan: datanya berasal dari server lama. Sertifikat TLS juga disalin, sehingga HTTPS langsung bekerja begitu trafik datang.
RestoreMemulihkan setiap volume ke volume barunya yang kosong, lalu menjalankan database yang memerlukan dump dan memulihkannya.
MulaiMenjalankan layanan sesuai urutan dependensi, dengan jumlah instance yang sama seperti sebelumnya, dan menunggu health check-nya.
AlihkanMengarahkan setiap domain otomatis ke alamat server baru dan menjadikannya server proyek.

Layanan yang ditangguhkan atau dihentikan sebelum pemindahan tetap berhenti di server baru.

Jika ada yang gagal ​

Jika ada langkah sebelum pengalihan yang gagal, Zenavo membatalkan pemindahan: layanan dijalankan lagi di server lama persis seperti sebelumnya, salinan di server baru dihapus, dan job gagal dengan alasannya. Data Anda di server lama tidak pernah diubah oleh pemindahan.

Jika pembatalan juga gagal (misalnya server lama tidak lagi bisa dijangkau), pemindahan tetap terbuka dan menampilkan alasannya. Klik Roll back untuk mencoba lagi setelah masalahnya diperbaiki. Salinan di server baru baru dihapus setelah server lama berjalan lagi.

Setelah pengalihan ​

Proyek kini berjalan di server baru. Salinannya yang dihentikan, beserta seluruh datanya, tetap di server lama. Selama pemindahan menunggu Anda:

  • Domain sendiri: ubah record DNS-nya ke alamat server baru. Halaman pemindahan menampilkan record yang tepat (tipe A atau AAAA dan alamatnya) untuk setiap domain. Sampai Anda mengubahnya, domain itu masih menuju server lama, yang sudah dihentikan.
  • Periksa aplikasi di server baru: login, worker latar belakang, email, webhook, dan apa pun yang dibutuhkannya.
  • Deploy dan operasi proyek lainnya dijeda, agar pemindahan masih bisa dibatalkan secara tepat.

Lalu pilih salah satu:

  • Finish move menghapus salinan yang dihentikan beserta volumenya dari server lama, serta file transfer pemindahan dari Zenavo. Setelah itu proyek tidak bisa di-rollback ke server lama.
  • Roll back menghentikan salinan di server baru, mengarahkan kembali domain otomatis, menjalankan layanan di server lama dengan data yang dimiliki saat pemindahan dimulai, dan menghapus salinan baru. Perubahan yang dibuat di server baru sejak pengalihan tidak disalin kembali. Arahkan kembali juga domain sendiri jika Anda sudah mengubahnya.

Perlu diketahui ​

  • Record domain otomatis dialihkan dengan menambahkan record baru terlebih dahulu lalu menghapus yang lama, sehingga nama selalu ter-resolve. Resolver bisa menyimpan alamat lama hingga lima menit.
  • Data yang disimpan layanan di luar volume (di kontainernya) tidak disalin: data itu toh hilang di setiap restart. Tambahkan volume untuk data yang Anda perlukan.
  • File transfer sejenis dengan backup dan muncul di daftar backup proyek sampai pemindahan diselesaikan atau di-rollback.
  • Memindahkan ke server milik tim lain tidak didukung. Kloning proyek ke tim lain, lalu pulihkan backup di sana.
  • Setiap pemindahan, penyelesaian, dan rollback dicatat di log audit tim.

API ​

MetodePath
GET/api/projects/{pid}/movePemindahan terbaru: status, server, data, domain, can_finish, dan can_roll_back
GET/api/projects/{pid}/move/preflight?server_id=Memeriksa pemindahan tanpa mengubah apa pun (admin)
POST/api/projects/{pid}/moveMulai: {server_id, confirmation: "<project name>"} (mengembalikan job)
POST/api/projects/{pid}/move/finishMenghapus salinan yang dihentikan dari server lama (mengembalikan job)
POST/api/projects/{pid}/move/rollbackKembali ke server lama (mengembalikan job)

Tidak berafiliasi dengan Zeabur.