Migrasi aplikasi.NET - AWS Bimbingan Preskriptif

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Migrasi aplikasi.NET

Migrasi aplikasi.NET Anda untuk AWS memungkinkan Anda membuat beban kerja yang sangat tersedia dengan kemampuan penskalaan elastis, mengurangi overhead operasi, dan meningkatkan kelincahan bisnis Anda dengan berfokus pada nilai pembeda Anda.

Bagian ini berfokus pada berbagai opsi untuk menghosting aplikasi.NET Anda AWS. Anda dapat memilih antara menggunakan VM, solusi terkelola seperti, mengkontainerisasi kode Anda AWS Elastic Beanstalk, atau memfaktorkan ulang kode Anda ke arsitektur berbasis layanan mikro atau tanpa server.

Menilai

Memilih jalur migrasi untuk beban kerja.NET Anda bergantung pada faktor kunci berikut:

  • Temukan versi.NET yang digunakan — Ada dua implementasi.NET berbeda yang didukung oleh Microsoft: .NET Framework (1.0-4.8) dan.NET (.NET Core 1.0-3.1 dan .NET 5 dan yang lebih baru). Keduanya berbagi banyak komponen yang sama dan dapat menjalankan kode aplikasi yang ditulis menggunakan bahasa pemrograman.NET yang berbeda (seperti C #, F #, dan VB.NET). Memilih strategi migrasi dan layanan hosting tergantung pada runtime yang digunakan sejak .NET Framework berjalan di Windows sedangkan .NET yang lebih baru adalah multi-platform. Untuk .NET Framework, Anda dapat meng-host pada OS Windows atau refactor kode Anda untuk menggunakan .NET yang lebih baru. .NET yang lebih baru juga dapat di-host pada layanan berbasis OS Linux. Saat memodernisasi beban kerja berbasis.NET Framework, Anda dapat menggunakan Porting Assistant untuk.NET atau AWS Toolkit for .NET Refactoring untuk memindai kode Anda dan menghasilkan laporan penilaian kompatibilitas. Dengan menemukan apakah ada .NET Framework yang tidak kompatibel yang APIs direferensikan oleh proyek Anda, Anda dapat merencanakan kompleksitas proyek migrasi dan memutuskan apakah dan kapan akan memfaktorkan ulang kode Anda untuk menggunakan runtime yang lebih baru.

  • Tinjau penerapan Anda saat ini — Periksa apakah beban kerja yang saat ini dimigrasi memiliki CI/CD pipeline yang sudah ada yang dapat diperbarui untuk menerapkan beban kerja yang sama ke cloud. Menggunakan pipeline build dan deploy yang ada dapat mengurangi waktu yang diperlukan untuk menerapkan aplikasi Anda ke cloud dengan mengotomatiskan langkah-langkah yang diperlukan untuk membangun, mengonfigurasi, dan menerapkan beban kerja Anda.

  • Tinjau peta jalan Anda — Tergantung pada keadaan proyek saat ini, Anda mungkin sudah berencana untuk merancang ulang atau mendesain ulang aplikasi Anda. Setiap modernisasi yang dilakukan harus mempertimbangkan peta jalan produk. Misalnya, memutuskan untuk memasukkan kode yang ada atau memfaktorkan ulang arsitektur monolitik ke dalam layanan mikro idealnya merupakan bagian dari peta jalan produk dan selaras dengan upaya pengembangan lainnya.

Memobilisasi

Ada tiga jalur migrasi berbeda yang perlu dipertimbangkan saat memigrasikan beban kerja.NET Anda ke. AWS Anda dapat memilih di antara berbagai opsi tergantung pada kompleksitas basis kode yang ada, waktu yang dialokasikan untuk migrasi, dan ukuran tim yang dialokasikan untuk mendukung upaya migrasi. Saat mempertimbangkan modernisasi sebagai bagian dari migrasi Anda, itu adalah praktik terbaik untuk diselaraskan dengan peta jalan produk.

  • Rehost (lift & shift) — Anda dapat memilih pendekatan ini jika prioritas Anda adalah migrasi yang lebih cepat AWS dengan sedikit atau tanpa perubahan. Anda dapat meng-host ulang situs web berbasis ASP.NET ke Internet Information Services (IIS) yang berjalan di instans Amazon. EC2 Anda dapat meng-host ulang aplikasi berbasis desktop Anda (seperti Windows Presentation Foundation, Formulir Web, dan .NET MAUI) ke salah satu platform komputasi pengguna akhir seperti Amazon 2.0 atau Amazon. AppStream WorkSpaces

  • Replatform — Replatforming paling cocok untuk saat Anda ingin meng-host aplikasi Anda menggunakan layanan terkelola tanpa membuat perubahan kode tetapi ingin mengurangi overhead operasional Anda dengan membongkar beban berat yang tidak berdiferensiasi seperti instalasi, patching, upgrade, dan manajemen instans. Strategi ini juga cocok untuk tim yang ingin pindah ke beban kerja berbasis kontainer. Anda dapat memplatform ulang aplikasi yang ada ke Elastic Beanstalk, atau menggunakan kontainer Docker yang dihosting di Amazon ECS, Amazon EKS, atau. AWS App Runner

  • Refactor — Pilih pendekatan ini jika Anda dapat menginvestasikan waktu dan upaya untuk membuat perubahan kode dan arsitektur yang mengurangi overhead operasional dan mencapai penskalaan yang lebih baik, ketersediaan tinggi, dan pemulihan bencana dengan menggunakan AWS layanan cloud-native. Refactoring melibatkan modernisasi basis kode Anda dengan mem-porting aplikasi.NET framework yang ada ke .NET (sebelumnya .NET Core) atau memodernisasi basis kode yang ada agar berjalan lebih baik di cloud. Anda dapat menggunakan AWS SDK untuk .NETuntuk memanggil banyak layanan AWS cloud dari dalam kode .NET Anda. Alat seperti Porting Assistant untuk.NET dan AWS Microservice Extractor for .NETdapat digunakan untuk mem-port basis kode Anda dari .NET Framework ke.NET dan memecah aplikasi monolitik Anda menjadi layanan mikro. Dengan memfaktorkan ulang beban kerja.NET yang ada untuk dijalankan AWS Lambda, Anda dapat menggunakan komputasi tanpa server untuk menghindari penyediaan dan pengelolaan infrastruktur.

Migrasi

Langkah-langkah migrasi beban kerja.NET Anda bergantung pada jalur migrasi yang Anda pilih selama tahap penilaian dan jenis aplikasi Anda.

Rehost aplikasi.NET

Pilih jalur migrasi ini jika Anda ingin memigrasikan aplikasi Anda tanpa membuat perubahan kode apa pun tetapi ingin mendapatkan manfaat dari penskalaan otomatis, penyeimbangan beban, dan elastisitas di cloud. Untuk situs web berbasis Windows, rehosting biasanya berarti menjalankannya di Internet Information Services (IIS). AWS Untuk aplikasi berbasis desktop, Anda harus menginstal aplikasi dan memungkinkan pengguna untuk terhubung ke aplikasi dari luar.

Layanan Informasi Internet di AWS

Internet Information Services (IIS) adalah server web Microsoft yang berjalan pada sistem operasi Windows dan digunakan untuk meng-host situs web dan layanan web. IIS dapat diinstal pada EC2 instans Amazon apa pun yang menjalankan Windows Server. Setelah IIS diaktifkan dan dikonfigurasi, Anda dapat menerapkan situs web dan layanan ASP.NET Anda dengan menggunakan mekanisme penerapan yang sama yang Anda gunakan untuk lingkungan lokal.

Jika Anda meng-host IIS pada instance EC2 Windows, penting untuk mengikuti AWS Well-Architected Framework dengan menggunakan load balancing, grup Auto Scaling, dan penerapan Multi-AZ tergantung pada beban kerja dan kebutuhan HADR Anda. Sebaiknya gunakan AWS Launch Wizardkarena ini memandu Anda melalui ukuran, konfigurasi, dan penyebaran beban kerja Windows Server yang menjalankan sumber daya IIS. AWS Launch Wizard menerapkan arsitektur yang sangat tersedia yang mencakup dua Availability Zone dengan komponen komputasi, jaringan, dan penyimpanan yang diperlukan untuk VPC yang baru dibuat atau yang sudah ada.

Hosting aplikasi desktop di AWS

Banyak klien memiliki kebutuhan untuk mengakses aplikasi klien tebal berbasis Windows. Anda memiliki pilihan di antara tiga platform yang berbeda:

  • Amazon EC2 — Pilih opsi ini jika Anda ingin pengguna Anda terhubung ke lingkungan berbasis Windows Server dengan menggunakan Microsoft Remote Desktop. Dengan opsi ini Anda bertanggung jawab untuk menambal dan memelihara sistem operasi Anda. Anda juga harus membeli lisensi akses klien (RDS CALs) Layanan Desktop Jarak Jauh tambahan untuk pengguna Anda dan Jaminan Perangkat Lunak (SA) aktif Anda. Untuk informasi selengkapnya, lihat Lisensi Microsoft AWS di AWS dokumentasi.

  • Amazon WorkSpaces — Pilih opsi ini jika Anda memerlukan infrastruktur desktop virtual (VDI) yang dikelola sepenuhnya untuk pengguna Anda. Anda dapat menggunakan WorkSpaces untuk memberikan pengalaman Windows Desktop persisten kepada pengguna Anda. Anda juga dapat menyesuaikan WorkSpaces lingkungan Anda dan menginstal aplikasi.NET dengan menggunakan gambar khusus, atau gunakan AWS Systems Manageruntuk mengirimkan aplikasi.NET Anda ke WorkSpaces lingkungan Anda. Pengguna dapat terhubung baik dengan menggunakan browser mereka atau WorkSpacesklien Amazon.

  • Amazon AppStream 2.0 — Pilih opsi ini untuk menyediakan akses yang aman, andal, dan terukur ke aplikasi dan desktop non-persisten dari lokasi mana pun. Anda dapat menggunakan AppStream 2.0 untuk memungkinkan pengguna mengakses aplikasi.NET Anda dari web. Jika Anda sudah memiliki RDS CALs dan SA aktif, maka Anda dapat menggunakan lisensi tersebut dengan AppStream 2.0 dengan menggunakan Mobilitas Lisensi.

Platform Ulang

Replatforming melibatkan perubahan lingkungan hosting Anda dengan sedikit atau tanpa perubahan kode. Pilih strategi ini untuk mengurangi biaya operasional Anda dan manfaatkan kemampuan dan layanan cloud.

AWS Elastic Beanstalk

Anda dapat menggunakan AWS Elastic Beanstalkuntuk memplatform ulang beban kerja.NET Framework Anda. Jika Anda mengemas aplikasi berbasis ASP.NET atau ASP.NET Core-based, maka Anda dapat dengan cepat menyebarkan dan mengelola aplikasi AWS tanpa harus mempelajari infrastruktur yang menjalankan aplikasi tersebut. Ini mengurangi kompleksitas tanpa membatasi pilihan atau kontrol. Anda cukup mengunggah aplikasi Anda dan Elastic Beanstalk secara otomatis menangani detail penyediaan kapasitas, penyeimbangan beban, penskalaan, dan pemantauan kesehatan aplikasi.

Untuk mempelajari lebih lanjut, lihat sumber daya berikut:

Kontainerisasi aplikasi yang ada

Anda dapat menggunakan Amazon ECS atau Amazon EKS untuk meng-host aplikasi kontainer berbasis Docker Anda. AWS mengelola kedua layanan tersebut. Pilihan antara keduanya tergantung pada pengetahuan dan preferensi yang ada. Kedua opsi dapat menjalankan kontainer berbasis Linux atau wadah berbasis Windows.

Untuk mempelajari lebih lanjut, lihat sumber daya berikut:

Containerizing aplikasi berbasis .NET tergantung pada runtime .NET yang digunakan. Pertimbangkan hal berikut:

  • .NET Framework berbasis aplikasi berjalan pada wadah Windows - Menambahkan dukungan Docker ke aplikasi yang ada dilakukan dengan membuat file Docker yang menguraikan bagaimana aplikasi perlu dikontainerisasi. Anda dapat menggunakan AWS App2Containeruntuk dengan mudah melakukan container dan memigrasi aplikasi berbasis .NET Framework yang ada ke. AWS App2Container memindai server IIS Anda untuk menentukan file yang diperlukan dan mengekstrak aplikasi target untuk membuat gambar Docker. Anda juga dapat menggunakan App2Container untuk membuat artefak penerapan yang diperlukan untuk meng-host aplikasi Anda di file. AWS Cloud

  • .NET atau .NET Core - Selain menjalankan aplikasi web berbasis.NET yang lebih baru di Amazon ECS atau Amazon EKS, Anda juga dapat menggunakannya. AWS App Runner App Runner adalah solusi tanpa server yang dikelola sepenuhnya yang menjalankan kode atau gambar kontainer Anda dan mengelola penyeimbangan beban, penskalaan otomatis, pencatatan, sertifikat, dan jaringan.

Refactor/Arsitek ulang kode yang ada

Pilih opsi ini jika Anda memiliki kebutuhan bisnis yang kuat untuk menambahkan fitur, skala, atau kinerja yang sulit dicapai di lingkungan aplikasi saat ini. Bergantung pada peta jalan aplikasi Anda, Anda dapat memilih untuk mengubah kode Anda untuk menggunakan kerangka kerja terbaru, layanan cloud-native, atau merancang ulang agar lebih baik dijalankan di cloud.

Opsi refactoring pertama yang tersedia adalah memigrasikan aplikasi.NET Framework Anda yang ada ke .NET. Pindah ke .NET memberi Anda manfaat berjalan di Linux, bukan Windows. Ini mengurangi total biaya lisensi Anda, memberi Anda kerangka kerja terbaru, dan menawarkan versi terbaru dari bahasa pemrograman.NET.

AWS SDK untuk .NET

AWS SDK untuk .NETmenyederhanakan penggunaan Layanan AWS dengan menyediakan satu set perpustakaan yang konsisten dan akrab bagi pengembang.NET. AWS SDK menawarkan dukungan lintas platform dan didistribusikan menggunakan. NuGet Pengembang dapat menggunakan AWS SDK untuk dengan mudah memanggil layanan cloud dari kode .NET mereka, memenuhi persyaratan penyimpanan, antrian, otentikasi, dan konfigurasi aplikasi mereka.

Modernisasi aplikasi.NET Framework

Anda dapat bermigrasi dari.NET Framework dengan menggunakan Porting Assistant untuk.NET, yang memindai file kode Anda dan membuat laporan yang membantu merencanakan peta jalan migrasi portofolio aplikasi Anda. Porting Assistant untuk.NET juga dapat mengurangi overhead porting Anda dengan mengidentifikasi .NET Core APIs dan paket yang tidak kompatibel dan menemukan pengganti yang diketahui. AWS Toolkit untuk .NET refactoring adalah ekstensi Visual Studio yang mengurangi waktu dan upaya yang diperlukan bagi pengembang untuk memfaktorkan ulang aplikasi.NET lama menjadi alternatif berbasis cloud. AWS Ini menilai kode sumber aplikasi untuk merekomendasikan jalur modernisasi yang mungkin seperti porting ke .NET Core, mengidentifikasi konfigurasi ketergantungan IIS dan Active Directory khusus Windows, melakukan modifikasi kode jika memungkinkan untuk mengaktifkan kompatibilitas Linux, dan membantu memvalidasi aplikasi refactored pada. Layanan AWS Migrasi aplikasi.NET Framework ke .NET memungkinkan menjalankannya pada prosesor Graviton ARM64 berbasis untuk rasio harga terhadap kinerja yang lebih baik. Untuk informasi lebih lanjut, lihat .NET tentang Graviton on dan Graviton2 GitHub dan kontainer dari Mengoptimalkan biaya dengan layanan berbasis AWS Graviton dalam dokumentasi Workshop Studio. AWS

Monolith ke microservices

Banyak tim pengembangan ingin merancang ulang aplikasi monolitik mereka yang ada menjadi layanan mikro. Dengan beralih ke arsitektur berbasis layanan mikro, tim pengembangan Anda dapat meningkatkan kelincahan pengembangan, mengurangi biaya komputasi, menskalakan layanan secara individual, dan mengurangi waktu penerapannya. AWS Microservice Extractor for .NETmenyederhanakan proses refactoring aplikasi monolitik yang lebih tua menjadi arsitektur berbasis layanan mikro. Dengan mengidentifikasi komponen dan fungsionalitas pengelompokan, tim pengembangan dapat secara bertahap mengekstrak fungsionalitas dari aplikasi monolitik .NET Framework ke dalam layanan .NET.

Refactor ke aplikasi tanpa server

AWS Lambdaadalah layanan komputasi tanpa server yang digerakkan oleh peristiwa yang memungkinkan Anda menjalankan kode untuk hampir semua jenis aplikasi atau layanan backend tanpa menyediakan atau mengelola server. Anda dapat mengekstrak logika dari aplikasi yang ada untuk membuat alur kerja tanpa server berbasis peristiwa yang menskalakan secara otomatis saat diperlukan dengan menggunakan.NET dan Lambda. Kasus penggunaan umum untuk Lambda termasuk beban kerja berbasis peristiwa yang berjalan selama beberapa detik atau menit dengan berbagai kebutuhan penskalaan, seperti pemrosesan file, analitik, situs web, dan aplikasi seluler. Untuk informasi selengkapnya, lihat Membangun fungsi Lambda dengan C# dalam dokumentasi Lambda.

Sumber daya tambahan