Memigrasikan Aplikasi .Net ke Layanan Azure: Panduan Praktis

Diterbitkan: 2023-01-13

Microsoft Azure adalah platform cloud yang menyediakan banyak layanan yang dapat digunakan dalam pengembangan dan hosting aplikasi perangkat lunak. Layanan aplikasi Azure memungkinkan pengembang membangun dan menghosting aplikasi web, back-end seluler, dan API tanpa perlu mengelola infrastruktur. Azure SQL menyediakan rangkaian produk mesin database SQL Server di cloud. Azure juga menawarkan banyak layanan populer lainnya, seperti fungsi Azure (kode tanpa server), hosting Mesin Virtual, layanan kognitif, dan banyak lagi.

Ada banyak keuntungan signifikan yang dapat Anda peroleh dengan memigrasikan aplikasi yang sudah ada untuk memanfaatkan layanan Azure, namun ada potensi kendala yang signifikan. Artikel ini mengulas manfaat dan kendala utama dari migrasi aplikasi .Net ke Azure dan memberikan pendekatan yang direkomendasikan untuk merencanakan dan melaksanakan migrasi.

Manfaat Memanfaatkan Layanan Cloud Azure

Dengan menggunakan layanan Azure, ada pemeliharaan yang jauh lebih sedikit, peningkatan ketersediaan, peningkatan keamanan, dan mekanisme yang tersedia untuk menambah atau menghapus sumber daya dengan mudah untuk mengatasi masalah kinerja dan kebutuhan skalabilitas. Beberapa keuntungan khusus meliputi:

  • Kemampuan untuk mengaktifkan penerapan dari GitHub, Azure DevOps, atau Git Repo apa pun
  • Izin lingkungan khusus (tidak terpengaruh oleh aplikasi lain di lingkungan bersama)
  • Uptime & Ketersediaan Tinggi karena tidak ada ketergantungan infrastruktur
  • Tidak Perlu Menambal; Layanan Aplikasi secara otomatis membuat kerangka kerja OS dan bahasa tetap mutakhir, tanpa harus menambalnya secara manual
  • Skalabilitas dinamis yang cepat dan mudah
  • Kemampuan untuk memanfaatkan redundansi beragam geografis
  • Fitur Load Balancing sederhana
  • Kemampuan untuk menangani banyak kepatuhan/persyaratan keamanan yang ketat
  • Kemampuan untuk menggunakan penyimpanan file besar (menggunakan Azure Blob Storage)

Kendala Kompatibilitas untuk Dipertimbangkan

Untuk mendapatkan manfaat maksimal dari memigrasikan aplikasi perangkat lunak .Net Anda dari lingkungan fisik atau virtual ke Azure, sebaiknya migrasikan ke Azure menggunakan Aplikasi, SQL, dan layanan terkait lainnya. Banyak aplikasi memiliki komponen yang tidak kompatibel dengan layanan ini. Beberapa kendala khusus tercantum di bawah ini.

Layanan Aplikasi Azure

  • Perangkat Lunak Pihak Ketiga tidak dapat diinstal (contoh: Quickbooks SDK)
  • Perlu memperbarui aplikasi untuk menggunakan Layanan Email Pihak Ketiga (contoh: Sendgrid)
  • Perlu memperbarui untuk menggunakan Penyimpanan File persisten (Azure Blob)
  • Tidak mendukung pekerjaan Windows
  • Tidak mendukung Layanan Windows
  • Tidak mendukung Majelis di GAC (Global Assembly Cache)
  • Perlu memperbarui referensi
  • Perlu memperbarui untuk mengelola status sesi
  • Tidak mendukung .NET Framework sebelum 4.7.2

Kendala/Batasan Layanan Azure SQL

  • Tidak mendukung email/surat SQL
  • Tidak mendukung kueri basis data / lintas basis data tertaut
  • Tidak mendukung Paket SSIS / DTS
  • Tidak mendukung SSRS (Layanan Pelaporan SQL)
  • Tidak mendukung pekerjaan SQL

Meskipun hampir semua aplikasi perangkat lunak menggunakan beberapa komponen yang tidak didukung yang tercantum di atas, banyak yang dapat dengan mudah dimigrasikan dan hanya memerlukan sedikit penyesuaian. Ada juga opsi untuk memigrasikan aplikasi yang sangat bergantung pada komponen ini.

Merencanakan Migrasi

Sebelum migrasi, penting untuk meninjau kode dan membuat rencana untuk setiap masalah kompatibilitas yang diketahui. Kami merekomendasikan pendekatan berikut.

Mengidentifikasi kendala arsitektur

Kenali potensi perubahan arsitektural yang akan diperlukan sebelum melakukan pemutakhiran. Di bawah ini adalah perubahan arsitektur umum dan rekomendasi untuk mengatasinya.

Apakah aplikasi .Net Framework <4.7.1?

Jika demikian, tingkatkan ke 4.8.

Apakah aplikasi menggunakan SQL Email?

Jika ya, konversikan ke fungsi Azure atau Pekerjaan Web.

Apakah aplikasi menggunakan kueri basis data tertaut/lintas basis data?

Jika demikian, pertimbangkan pendekatan hibrid menggunakan Azure App Services dan host SQL instance.

Apakah aplikasi menggunakan kueri basis data tertaut/lintas basis data?

Jika ya, tentukan apakah Anda dapat dengan mudah mengonversi ke Fungsi Azure atau Pekerjaan Web. Jika sangat bergantung, kami merekomendasikan pendekatan hibrid menggunakan Layanan Aplikasi Azure dan instance SQL yang dihosting.

Apakah aplikasi menggunakan SSRS (Layanan Pelaporan Server SQL)?

Jika ya, kami merekomendasikan pendekatan hibrid menggunakan Azure App Services dan instance SQL yang dihosting.

Apakah aplikasi menggunakan Pekerjaan Windows atau Layanan Windows?

Jika ya, buat keputusan apakah fitur tersebut diperlukan dan dapat diubah menjadi Fungsi Azure atau Pekerjaan Web.

Mengidentifikasi kendala arsitektur lain dan menentukan rencana untuk mengatasinya .

Identifikasi area sistem yang memerlukan pembaruan kode

Tentukan potensi perubahan kode yang akan diperlukan sebelum melakukan pemutakhiran. Di bawah ini adalah perubahan kode umum yang perlu dipertimbangkan.

  • Identifikasi area sistem yang menggunakan fungsi untuk mengirim email
  • Identifikasi area sistem yang menggunakan fungsi untuk menyimpan data
  • Identifikasi nama domain yang perlu disiapkan
  • Konfirmasikan jumlah SSL yang perlu disiapkan
  • Identifikasi area sistem yang memiliki pekerjaan yang diatur
  • Konfirmasi aplikasi dan konfigurasi koneksi

Jalankan Alat Asisten Migrasi Basis Data dan Kode

Setelah mengidentifikasi kendala kompatibilitas arsitektur dan kode yang diketahui, sebaiknya gunakan alat Migrasi Azure untuk mengonfirmasi kompatibilitas kode dan database.

  • Untuk Basis Data, gunakan alat Asisten Migrasi Data Microsoft
  • Untuk Kode, gunakan Asisten Migrasi Layanan Aplikasi
pembaruan kode perangkat lunak

Melaksanakan Rencana

Sekarang setelah Anda mengidentifikasi dan merencanakan perubahan arsitektural dan kode, Anda siap untuk melakukan migrasi. Kami merekomendasikan pendekatan berikut.

  • Ciptakan lingkungan ; buat grup sumber daya, akun penyimpanan, string koneksi Azure, aplikasi web, dan database SQL
  • Migrasikan Database ke Azure SQL
  • Terapkan dan publikasikan Aplikasi ke Layanan Aplikasi
  • Terapkan Pekerjaan Web untuk pekerjaan apa pun yang Anda konversi
  • Buat Fungsi Azure untuk setiap fungsi yang Anda konversi
  • Konfigurasikan layanan email
  • Lakukan QA / UAT pada aplikasi yang dimigrasikan
  • Lakukan pembaruan yang diperlukan dari pengujian
  • Hiduplah
  • Merayakan

Sekarang setelah Anda menuai manfaat dari menghosting aplikasi Anda di lingkungan pemeliharaan yang lebih terukur, aman, dan lebih rendah, Anda dapat memfokuskan upaya Anda untuk memajukan aplikasi untuk memenuhi kebutuhan bisnis Anda.

FAQ

Berapa banyak upaya yang dilakukan oleh biaya Migrasi Azure biasa?

Upaya untuk memigrasikan aplikasi .Net ke layanan Azure bervariasi secara signifikan berdasarkan jumlah kode dan perubahan arsitektur serta keakraban pengembang Anda dengan Azure. Migrasi aplikasi bisnis tipikal yang dilakukan oleh tim pengembangan berpengalaman dapat berkisar antara 4 – 6 minggu dari upaya total.

Apakah Anda akan merekomendasikan outsourcing migrasi jika Anda memiliki pengembang internal? Jika demikian, berapa banyak yang harus saya harapkan untuk diinvestasikan?

Jika tim pengembangan Anda tidak memiliki keahlian di Azure atau merasa yakin dalam menjalankan migrasi Azure, kami menyarankan Anda untuk mempertimbangkan keterlibatan outsourcing kolaboratif dengan mitra berpengalaman. Bergantung pada kerumitan migrasi, biayanya dapat berkisar dari $15.000 hingga $40.000, namun mungkin lebih rendah atau lebih tinggi tergantung pada kebutuhan spesifik.

Bagaimana jika aplikasi saya terlalu bergantung pada komponen yang tidak kompatibel?

Kami merekomendasikan pendekatan bertahap di mana Anda bermigrasi secara bertahap, dimulai dengan risiko terendah. Ini mungkin termasuk (1) memigrasikan aplikasi dari fasilitas hosting lokal atau pihak ketiga ke Server Virtual Azure, diikuti dengan (2) memigrasikan aplikasi saja ke Layanan Aplikasi sambil mempertahankan Server Virtual untuk komponen yang masih memerlukannya, dan, terakhir , (3) mendesain ulang komponen yang tidak kompatibel.

Dapatkah Anda memigrasikan aplikasi yang menggunakan teknologi selain .Net ke Azure?

Sangat; namun, pendekatannya kemungkinan akan berbeda dari yang dijelaskan dalam artikel ini. Sebaiknya hubungi mitra yang akan membantu berkonsultasi dengan Anda tentang pendekatan terbaik untuk situasi Anda.

Apakah Anda merekomendasikan Azure atau AWS untuk hosting aplikasi?

Ada banyak faktor yang membuat satu penyedia cloud hosting lebih baik dari yang lain. Untuk aplikasi .Net, kami biasanya menyarankan untuk melakukan migrasi ke Azure karena jalur migrasi seringkali lebih lancar.