Memindahkan aplikasi yang sudah berjalan ke cloud adalah proyek penuh risiko: salah strategi, downtime dan data hilang. Kalian mempelajari proses migrasi profesional — assessment, strategi 6R, lift-and-shift vs re-platform, dan data migration — lalu menyusun rencana migrasi untuk aplikasi nyata beserta rollback plan-nya.

Sejauh ini kalian membangun aplikasi baru di cloud dari nol — menyenangkan karena tidak ada beban masa lalu. Di dunia kerja, tantangan sesungguhnya berbeda: memindahkan sistem yang sudah berjalan 10 tahun di datacenter sendiri ke cloud, tanpa menghentikan bisnis. Di sinilah reputasi seorang cloud engineer diuji.
Episode 17 membahas migration to cloud: cara menilai aplikasi (assessment), lima strategi besar yang dikenal sebagai 6R, perbedaan lift-and-shift vs re-platform, dan data migration yang aman. Kalian akan menyusun rencana migrasi untuk satu aplikasi nyata — lengkap dengan jadwal, kriteria sukses, dan rollback plan.
Kesalahan terbesar tim migrasi pemula: langsung memindahkan semuanya. Migrasi yang baik dimulai dengan assessment — memetakan aplikasi sebelum menyentuh apa pun. Data yang dikumpulkan per aplikasi:
| Aspek | Pertanyaan kunci |
|---|---|
| Arsitektur | Berapa komponen? Bagaimana komunikasinya? |
| Dependensi | Database apa? External API? File system bersama? |
| Beban | Trafik puncak kapan? Utilisasi normal berapa? |
| Data | Berapa ukurannya? Seberapa sensitif? (episode 15) |
| SLA | Berapa downtime maksimal yang diterima? |
| Kepatuhan | Ada regulasi yang membatasi lokasi data? |
Hasilnya adalah inventarisasi aplikasi + skor kesiapan. Aplikasi yang siap (architecturanya sederhana) masuk batch pertama; yang kompleks ditunda. Aturan penting: jangan memigrasi aplikasi yang masih berubah-ubah — migrasikan versi yang stabil, lalu lanjutkan pengembangan di cloud.
Pilihan strategi migrasi bukan satu, melainkan enam — dan memilih dengan tepat adalah kompetensi inti:
| Strategi | Deskripsi | Kapan dipakai |
|---|---|---|
| Rehost (lift-and-shift) | Pindah apa adanya ke VM cloud | Paling cepat, lisensi/mainframe |
| Replatform | Pindah + optimasi ringan (pakai managed DB) | Ingin manfaat cloud cepat |
| Repurchase | Ganti dengan SaaS (contoh: ERP → Salesforce) | Fitur standar sudah cukup |
| Refactor (re-architect) | Tulis ulang jadi cloud-native | Butuh skala/serveless (episode 11) |
| Retain | Biarkan tetap on-prem | Regulasi, biaya, atau prioritas |
| Retire | Hapus — ternyata tidak dipakai | Hemat paling besar, sering terlupakan |
Urutan hemat vs usaha: Retire dan Retain paling murah (mungkin bahkan tidak perlu migrasi); Refactor paling mahal tapi memberi hasil paling besar untuk aplikasi yang sedang berkembang.
Note
Pemula sering menganggap "migrasi = lift-and-shift". Padahal lift-and-shift justru memindahkan masalah: arsitektur lama yang rapuh hanya berpindah alamat. Gunakan lift-and-shift sebagai langkah cepat awal, lalu ikuti dengan re-platform bertahap — pola "migrasi berlapis" ini paling banyak dipakai di industri.
Dua strategi yang paling sering dibandingkan:
Lift-and-shift (rehost) — VM on-prem menjadi VM cloud dengan konfigurasi serupa. Cepat (minggu), risiko kecil, tapi belum memanfaatkan apa pun dari cloud: tidak ada auto-scaling, tidak ada managed service, biaya bisa lebih tinggi daripada on-prem.
Re-platform — pindah sambil mengganti beberapa komponen:
| Sebelum (on-prem) | Sesudah (re-platform) |
|---|---|
| PostgreSQL sendiri di VM | RDS / Cloud SQL (managed) |
| Nginx + VM untuk statis | Object storage + CDN |
| Cron di server | Function + scheduler |
Re-platform memberi manfaat nyata (managed backup, scaling, patching otomatis) dengan usaha sedang. Untuk aplikasi yang diharapkan bertahan 3-5 tahun, re-platform hampir selalu lebih baik daripada lift-and-shift murni.
Memindahkan data adalah bagian paling berisiko — ukuran besar, downtime, dan risiko kehilangan. Pola yang benar:
# 1. Full baseline ke target (DMS / Data Transfer Service)
# 2. Replikasi perubahan berkelanjutan
# 3. Cutover: hentikan app, flush sisa perubahan
# 4. Verifikasi jumlah record kedua sisi
SELECT count(*) FROM orders; -- on-prem
SELECT count(*) FROM orders; -- cloud (harus sama)Untuk dataset raksasa (petabyte), ada opsi fisik: AWS Snowball / Azure Data Box / GCP Transfer Appliance — kirim hard disk berisi data ke datacenter provider, jauh lebih cepat daripada transfer internet. "Cloud" tidak selalu berarti "lewat internet".
Mari susun rencana migrasi untuk aplikasi lab-ecommerce (yang kita bangun sejak episode 3-5): web server di VM, PostgreSQL di server sendiri, dan cron job harian.
cutover:
persiapan:
- snapshot DB sumber
- pause cron & writer pada app lama
- pastikan sync replication lag = 0
eksekusi:
- switch DNS/web ke target cloud
- resume writer
verifikasi:
- healthcheck: 200 OK
- perbandingan jumlah record DB
- review log error 1 jam pertama
rollback:
- jika gagal: switch DNS kembali ke sumber
- target ditahan (bukan dihapus) sampai stabil 48 jamAturan emas migrasi: rollback plan bukan opsional — jika tidak bisa dikembalikan, jangan mulai. "Tidak perlu rollback" adalah kalimat yang tidak pernah boleh diucapkan di depan cutover.
Inti yang harus dibawa pulang:
Di episode 18 selanjutnya kita akan naik ke lapisan konektivitas antar-datacenter: cloud networking lanjutan — Transit Gateway, VPN & Direct Connect, PrivateLink, dan CDN, lalu membangun konektivitas hybrid antara cloud dan jaringan on-prem. Sampai jumpa di episode 18!