Migrasi aplikasi adalah proses memindahkan aplikasi perangkat lunak dari satu lingkungan komputasi ke lingkungan komputasi lainnya. Anda dapat, misalnya, memigrasikan aplikasi dari satu pusat data ke pusat data lainnya, dari server lokal ke lingkungan penyedia cloud atau dari cloud publik ke lingkungan cloud pribadi.
Karena aplikasi sering dibangun untuk berjalan pada sistem operasi atau arsitektur jaringan tertentu, atau dikembangkan untuk platform cloud tunggal, memindahkan aplikasi ke lingkungan baru dapat menghadirkan sejumlah tantangan. Umumnya, memigrasikan aplikasi dari arsitektur berbasis virtualisasi atau layanan lebih mudah dibandingkan dengan memigrasikan aplikasi yang berjalan langsung pada perangkat keras fisik bare metal.
Menentukan strategi migrasi aplikasi secara keseluruhan melibatkan pertimbangan terhadap ketergantungan dan persyaratan teknis tiap aplikasi, serta faktor-faktor lain seperti keamanan, kepatuhan, dan biaya yang berlaku di perusahaan Anda.
Aplikasi yang berbeda bisa mengikuti jalur migrasi yang berbeda ke cloud, meskipun berada dalam lingkungan teknologi yang serupa. Sejak awal komputasi cloud, pengembang telah merujuk pada pola migrasi aplikasi ini dengan nama yang dimulai dengan “R."
Rehost atau menghosting ulang: Juga dikenal sebagai lift-and-shift, rehosting adalah strategi umum yang melibatkan pemindahan aplikasi dari server lokal ke virtual machines di cloud tanpa melakukan perubahan signifikan pada aplikasi tersebut. Rehosting aplikasi biasanya lebih cepat daripada strategi migrasi lainnya dan secara signifikan dapat mengurangi biaya migrasi. Namun, tanpa modifikasi, aplikasi tidak akan dapat memanfaatkan kemampuan komputasi cloud native , yang dapat menyebabkan biaya operasional jangka panjang di cloud menjadi lebih tinggi.
Refactor (pemfaktoran ulang) atau rearchitect (mendesain ulang): Refactoring mengacu kepada membuat perubahan yang cukup signifikan pada aplikasi sehingga dapat menskalakan atau berkinerja lebih baik di lingkungan cloud. Ini mungkin melibatkan pengodean ulang bagian-bagian utama aplikasi sehingga dapat mengambil keuntungan lebih baik dari fungsi cloud native—seperti merestrukturisasi aplikasi monolitik menjadi satu set layanan mikro atau memodernisasi penyimpanan data dari SQL ke NoSQL.
Replatform: Semacam jalan tengah antara lift-and-shift dan rearchitecting, replatforming sebuah aplikasi melibatkan perubahan kecil pada aplikasi tersebut agar dapat lebih memanfaatkan arsitektur cloud. Contohnya mungkin termasuk meningkatkan aplikasi untuk bekerja dengan basis data cloud native, mengubah sistem operasi atau middleware yang digunakan, atau mengkontainerisasi aplikasi.
Pensiunkan/ganti: Terkadang, memang paling masuk akal untuk menonaktifkan aplikasi. Hal ini bisa terjadi jika nilai aplikasi terbatas, fungsionalitasnya sudah tersedia di sistem lain dalam lingkungan Anda, atau lebih ekonomis untuk menggantinya dengan solusi baru—seringkali berupa platform Software-as-a-Service (SaaS)—daripada memigrasikan aplikasi tersebut.
Untuk merancang strategi migrasi aplikasi yang optimal bagi lingkungan TI dan kebutuhan bisnis perusahaan Anda, diperlukan pemahaman mendalam tentang portofolio aplikasi yang dimiliki, persyaratan keamanan dan kepatuhan yang berlaku, sumber daya cloud yang sedang digunakan, serta kondisi infrastruktur penyimpanan, komputasi, dan jaringan di lokasi Anda.
Agar migrasi cloud berhasil, Anda harus memiliki pemahaman yang jelas tentang faktor-faktor utama yang mendorong bisnis untuk bermigrasi dan memastikan strategi Anda selaras dengan faktor-faktor tersebut. Anda perlu memahami alasan utama migrasi ke cloud serta tujuan yang ingin dicapai melalui proses tersebut.
Para pemangku kepentingan mungkin khawatir bahwa migrasi aplikasi dapat mengganggu kelancaran operasi bisnis atau menimbulkan biaya tak terduga. Beberapa risiko yang paling umum meliputi hal-hal berikut:
Melakukan penilaian yang mendalam dan rinci terhadap risiko serta manfaat dari rehosting, arsitektur ulang (replatform), atau penghentian setiap aplikasi dalam portofolio Anda dapat membantu meminimalkan risiko keseluruhan yang terkait dengan migrasi aplikasi. Penting untuk membandingkan biaya tingkat departemen dengan total biaya yang dikeluarkan perusahaan, serta mengevaluasi total biaya kepemilikan (TCO) perangkat keras yang diperlukan untuk mempertahankan aplikasi di lokasi.
Beberapa tahun yang lalu, perusahaan sering berusaha memindahkan aplikasi ke cloud untuk mendapatkan fleksibilitas, skalabilitas, dan struktur biaya bayar sesuai pemakaian yang dapat diprediksi, yang ditawarkan oleh penyedia layanan cloud.
Namun, hari ini, perusahaan juga mencari lingkungan yang memungkinkan inovasi. Teknologi cloud memungkinkan opsi berikut:
Dalam banyak kasus, teknologi yang ramah cloud, seperti kontainerisasi memungkinkan penyediaan pengalaman yang lebih baik kepada pengguna dibandingkan dengan virtual machines yang mungkin digantikan.
Secara umum, proses perencanaan migrasi aplikasi terdiri dari tiga tahap utama. Dalam setiap situasi, sangat penting untuk mempertimbangkan biaya dari semua opsi yang tersedia, termasuk pilihan untuk mempertahankan beberapa beban kerja on premises.
Identifikasi dan penilaian aplikasi: Pada fase penemuan awal ini, mulailah dengan memastikan bahwa Anda memiliki katalog yang komprehensif dari semua aplikasi dalam portofolio Anda. Selanjutnya, kategorikan aplikasi berdasarkan pentingnya bagi bisnis, apakah mereka memiliki nilai strategis atau tidak, serta tujuan yang ingin dicapai dari migrasi masing-masing aplikasi ke cloud. Anda perlu memahami nilai setiap aplikasi berdasarkan karakteristik berikut:
Selanjutnya, Anda perlu melakukan penilaian afinitas cloud untuk setiap aplikasi yang akan dipertimbangkan untuk migrasi. Selama proses ini, identifikasi aplikasi mana yang sudah siap untuk dijalankan di cloud dan mana yang memerlukan perubahan signifikan agar dapat dioptimalkan untuk cloud.
Anda juga dapat memanfaatkan alat penemuan ketergantungan aplikasi untuk membantu menilai kelayakan migrasi beban kerja tertentu ke luar lingkungan saat ini.
Penilaian total biaya kepemilikan (TCO): Menentukan total biaya untuk proyek migrasi cloud bisa menjadi tugas yang kompleks. Bandingkan skenario “bagaimana jika” untuk mempertahankan aplikasi dan infrastruktur on premises dengan skenario yang melibatkan pemindahan aplikasi tersebut ke cloud. Hitung biaya pembelian, pengoperasian, dan pemeliharaan perangkat keras yang akan Anda kelola di lokasi untuk kedua skenario, serta biaya lisensi perangkat lunak yang terkait.
Bandingkan tagihan bulanan yang akan diterima dari penyedia cloud dalam kedua skenario, serta biaya migrasi itu sendiri, yang mencakup pengujian infrastruktur baru dan pelatihan karyawan untuk menggunakan perangkat lunak yang diperbarui. Jangan lupa untuk mempertimbangkan biaya pemeliharaan aplikasi lama yang tetap ada secara lokal.
Penilaian risiko keseluruhan dan durasi proyek: Pada tahap akhir perencanaan migrasi, tentukan jadwal proyek dan identifikasi risiko atau hambatan yang mungkin terjadi selama proses migrasi.
Secara umum, semakin tua sebuah aplikasi, semakin sulit (dan bisa jadi semakin tidak menguntungkan) untuk memigrasikannya ke cloud. Perangkat lunak yang sudah usang memiliki banyak masalah: biaya pemeliharaannya tinggi, berisiko terhadap masalah keamanan jika tidak lagi diperbarui, dan sering kali memiliki kinerja yang buruk di lingkungan komputasi yang lebih modern. Hati-hatilah dalam menilai aplikasi lama sebelum Anda memutuskan untuk memigrasikannya.
Saat organisasi mengevaluasi kelayakan dan prioritas aplikasi untuk migrasi, mereka mempertimbangkan faktor-faktor berikut.
Kompleksitas: Di mana aplikasi ini dikembangkan? Jika in-house, apakah pengembang masih bekerja di perusahaan Anda? Apakah dokumentasi aplikasi sudah tersedia? Berapa umur aplikasinya? Sudah berapa lama digunakan? Berapa banyak aplikasi atau alur kerja lain dalam organisasi Anda yang bergantung pada yang satu ini dalam beberapa cara?
Kekritisan: Seberapa banyak pengguna yang bergantung pada aplikasi ini setiap harinya? Setiap minggu? Seberapa lama waktu henti yang dapat ditoleransi sebelum operasi bisnis terganggu? Apakah aplikasi digunakan dalam produksi, pengembangan, pengujian atau ketiganya? Apakah aplikasi ini dikelola oleh tim IT internal perusahaan atau oleh vendor eksternal? Apakah ada aplikasi lain yang memiliki persyaratan waktu aktif atau waktu henti yang perlu disinkronkan dengan aplikasi ini?
Kepatuhan: Dengan persyaratan peraturan mana yang harus dipatuhi oleh aplikasi?
Ketersediaan: Apa standar waktu aktif yang harus dipenuhi oleh aplikasi ini? Misalnya, apakah aplikasi ini terikat oleh perjanjian tingkat layanan (SLA) yang mengharuskan waktu aktif mencapai 99,99%?
Pengujian
Untuk memastikan bahwa tidak ada data atau kemampuan yang hilang selama proses migrasi aplikasi, lakukan pengujian selama migrasi untuk Verify bahwa semua data ada, bahwa integritas data telah dipertahankan, dan bahwa data sekarang berada di lokasi penyimpanan yang benar.
Penting juga untuk melakukan pengujian lanjutan setelah migrasi selesai, guna mengukur kinerja aplikasi dan memastikan bahwa semua kontrol keamanan tetap diterapkan dengan baik.
Virtualisasi adalah komponen fundamental dalam banyak strategi migrasi cloud, karena virtual machines dapat dengan mudah dijalankan di lingkungan perangkat keras fisik yang baru. Bahkan dimungkinkan untuk pindah aplikasi langsung—berjalan pada Virtual Machines—antara mesin host fisik tanpa mengganggu pengalaman pengguna. Fleksibilitas dan keserbagunaan lingkungan komputasi tervirtualisasi secara dramatis menyederhanakan proses migrasi aplikasi.
Beberapa solusi replikasi dan migrasi yang tersedia saat ini memungkinkan pelanggan mereka untuk memigrasikan virtual machines di antara bare metal server, server virtual di cloud, dan bahkan hypervisor.
Banyak layanan tersedia untuk membantu perusahaan Anda menyusun strategi, merencanakan, dan menjalankan migrasi cloud yang sukses.
Cetak biru migrasi: Dalam penawaran layanan cetak biru yang komprehensif, vendor Anda membantu Anda mengklarifikasi strategi dan tujuan migrasi Anda, mengumpulkan informasi tentang aplikasi dan lingkungan Anda, mengidentifikasi kebutuhan pengguna dan persyaratan bisnis Anda, serta membuat rencana tindakan yang mendetail untuk migrasi Anda.
Penerapan migrasi: Jika Anda memilih opsi penerapan terkelola, vendor Anda tidak hanya akan membantu Anda dalam menyusun strategi dan merencanakan migrasi, tetapi juga akan mengelola migrasi itu sendiri serta pengujian dan pemecahan masalah terkait. Ini biasanya merupakan layanan lengkap yang menyediakan dukungan secara menyeluruh dan komprehensif.
Layanan yang dikelola cloud: Penawaran layanan cloud yang dikelola biasanya mencakup pemantauan dan pemeliharaan lingkungan TI berbasis cloud Anda. Penyedia layanan cloud terkelola Anda bertanggung jawab atas berbagai fungsi, mulai dari mengelola keamanan cloud hingga pengadaan penawaran as-a-service dari vendor atas nama Anda. Migrasi aplikasi dapat disertakan dalam paket layanan yang ditawarkan atau dapat dipilih sebagai layanan terpisah (a la carte).
Modernisasi aplikasi: Layanan modernisasi aplikasi mencakup pengembangan khusus untuk mempersiapkan aplikasi lama agar dapat digunakan di cloud dengan modifikasi aplikasi agar dapat berjalan dalam kontainer atau lingkungan virtualisasi.
Otomatiskan penyediaan dan orkestrasi jaringan di cloud untuk menyederhanakan migrasi, meningkatkan ketangkasan, dan memastikan operasi yang lancar.
IBM Instana Observability mengotomatiskan application discovery, pemantauan, pelacakan, dan analisis akar masalah untuk lingkungan layanan mikro.
IBM Turbonomic adalah perangkat lunak manajemen sumber daya aplikasi yang menggunakan AI untuk mengoptimalkan kinerja, biaya, dan kepatuhan lingkungan multicloud. Perangkat ini tersedia sebagai SaaS atau untuk hosting mandiri.