Pola aplikasi web yang andal untuk .NET - Merencanakan implementasi

Azure App Service
Azure Front Door
Azure Cache for Redis
.NET

Artikel ini memperlihatkan kepada Anda cara menerapkan pola Reliable Web App. Pola Reliable Web App adalah serangkaian prinsip dan teknik implementasi yang menentukan bagaimana Anda harus memodifikasi aplikasi web (replatform) saat bermigrasi ke cloud. Ini berfokus pada pembaruan kode minimal yang perlu Anda buat agar berhasil di cloud.

Untuk memfasilitasi aplikasi panduan ini, ada implementasi referensi pola Reliable Web App yang dapat Anda sebarkan.

Diagram memperlihatkan arsitektur implementasi referensi.Arsitektur implementasi referensi. Unduh file Visio arsitektur ini.

Panduan berikut menggunakan implementasi referensi sebagai contoh di seluruh. Untuk merencanakan implementasi pola Reliable Web App, ikuti langkah-langkah berikut:

Menentukan tujuan bisnis

Langkah awal dalam transisi ke komputasi cloud adalah mengartikulasikan tujuan bisnis Anda. Pola Reliable Web App menekankan pentingnya pengaturan tujuan langsung dan masa depan untuk aplikasi web Anda. Tujuan ini memengaruhi pilihan layanan cloud dan arsitektur aplikasi web Anda di cloud.

Contoh: Perusahaan fiksi Relecloud menjual tiket melalui aplikasi web lokalnya. Relecloud memiliki prakiraan penjualan yang positif dan mengantisipasi peningkatan permintaan pada aplikasi web tiket mereka. Untuk memenuhi permintaan ini, mereka mendefinisikan tujuan untuk aplikasi web:

  • Menerapkan perubahan kode bernilai rendah dan bernilai tinggi
  • Mencapai tujuan tingkat layanan (SLO) sebesar 99,9%
  • Mengadopsi praktik DevOps
  • Membuat lingkungan yang dioptimalkan biaya
  • Meningkatkan keandalan dan keamanan

Infrastruktur lokal Relecloud bukanlah solusi hemat biaya untuk mencapai tujuan ini. Jadi, mereka memutuskan bahwa memigrasikan aplikasi web mereka ke Azure adalah cara paling hemat biaya untuk mencapai tujuan langsung dan masa depan mereka.

Pilih layanan terkelola yang tepat

Saat memindahkan aplikasi web ke cloud, Anda harus memilih layanan Azure yang memenuhi persyaratan bisnis Anda dan selaras dengan fitur aplikasi web lokal saat ini. Penyelarasan membantu meminimalkan upaya replatforming. Misalnya, gunakan layanan yang memungkinkan Anda menyimpan mesin database yang sama dan mendukung middleware dan kerangka kerja yang ada. Bagian berikut ini menyediakan panduan untuk memilih layanan Azure yang tepat untuk aplikasi web Anda.

Contoh: Sebelum pindah ke cloud, aplikasi web tiket Relecloud adalah aplikasi lokal, monolitik, ASP.NET. Ini berjalan pada dua komputer virtual dan memiliki database Microsoft SQL Server. Aplikasi web menderita tantangan umum dalam skalabilitas dan penyebaran fitur. Titik awal ini, tujuan bisnis mereka, dan SLO mendorong pilihan layanan mereka.

Platform aplikasi

Pilih platform hosting aplikasi terbaik untuk aplikasi web Anda. Azure memiliki banyak opsi komputasi yang berbeda untuk memenuhi berbagai persyaratan aplikasi web. Untuk bantuan tentang opsi penyempitan, lihat pohon keputusan komputasi Azure.

Contoh: Relecloud memilih Azure App Service sebagai platform aplikasi karena alasan berikut:

  • Perjanjian tingkat layanan tinggi (SLA): Ini memiliki SLA tinggi yang memenuhi SLO lingkungan produksi sebesar 99,9%.

  • Mengurangi overhead manajemen: Ini adalah solusi terkelola penuh yang menangani penskalaan, pemeriksaan kesehatan, dan penyeimbangan beban.

  • Dukungan .NET: Ini mendukung versi .NET tempat aplikasi ditulis.

  • Kemampuan kontainerisasi: Aplikasi web dapat bertemu di cloud tanpa kontainerisasi, tetapi platform aplikasi juga mendukung kontainerisasi tanpa mengubah layanan Azure

  • Autoscaling: Aplikasi web dapat secara otomatis meningkatkan, menurunkan, masuk, dan keluar berdasarkan lalu lintas dan pengaturan pengguna.

Pengelolaan identitas

Pilih solusi manajemen identitas terbaik untuk aplikasi web Anda. Untuk informasi selengkapnya, lihat membandingkan solusi manajemen identitas dan metode autentikasi.

Contoh: Relecloud memilih ID Microsoft Entra karena alasan berikut:

  • Autentikasi dan otorisasi: Aplikasi perlu mengautentikasi dan mengotorisasi karyawan pusat panggilan.

  • Dapat diskalakan: Ini menskalakan untuk mendukung skenario yang lebih besar.

  • Kontrol identitas pengguna: Karyawan pusat panggilan dapat menggunakan identitas perusahaan yang ada.

  • Dukungan protokol otorisasi: Ini mendukung OAuth 2.0 untuk identitas terkelola.

Database

Pilih database terbaik untuk aplikasi web Anda. Untuk bantuan dalam mempersempit opsi, lihat pohon keputusan penyimpanan data Azure.

Contoh: Aplikasi web yang menggunakan SQL Server lokal, dan Relecloud ingin menggunakan skema database, prosedur tersimpan, dan fungsi yang ada. Beberapa produk SQL tersedia di Azure, tetapi Relecloud memilih Azure SQL Database karena alasan berikut:

  • Keandalan: Tingkat tujuan umum memberikan redundansi SLA dan multi-wilayah yang tinggi. Ini dapat mendukung beban pengguna yang tinggi.

  • Mengurangi overhead manajemen: Ini menyediakan instans database SQL terkelola.

  • Dukungan migrasi: Ini mendukung migrasi database dari SQL Server lokal.

  • Konsistensi dengan konfigurasi lokal: Ini mendukung prosedur, fungsi, dan tampilan tersimpan yang ada.

  • Ketahanan: Ini mendukung pencadangan dan pemulihan titik waktu.

  • Keahlian dan pengerjaan ulang minimal: SQL Database memanfaatkan keahlian internal dan membutuhkan pekerjaan minimal untuk diadopsi.

Pemantauan performa aplikasi

Pilih pemantauan performa aplikasi untuk aplikasi web Anda. Application Insights adalah solusi manajemen performa aplikasi (APM) asli Azure. Ini adalah fitur solusi pemantauan Azure, Azure Monitor.

Contoh: Relecloud memilih untuk menggunakan Application Insights karena alasan berikut:

  • Integrasi dengan Azure Monitor: Ini menyediakan integrasi terbaik dengan Azure Monitor.

  • Deteksi anomali: Ini secara otomatis mendeteksi anomali performa.

  • Pemecahan masalah: Ini membantu Anda mendiagnosis masalah di aplikasi yang sedang berjalan.

  • Pemantauan: Ini mengumpulkan informasi tentang bagaimana pengguna menggunakan aplikasi dan memungkinkan Anda untuk dengan mudah melacak peristiwa kustom.

  • Kesenjangan visibilitas: Solusi lokal tidak memiliki solusi pemantauan performa aplikasi. Application Insights menyediakan integrasi yang mudah dengan platform dan kode aplikasi.

Cache

Pilih apakah akan menambahkan cache ke arsitektur aplikasi web Anda. Azure Cache for Redis adalah solusi cache utama Azure. Ini adalah penyimpanan data dalam memori terkelola berdasarkan perangkat lunak Redis.

Contoh: Beban aplikasi web Relecloud sangat miring terhadap melihat konser dan detail tempat. Ini menambahkan Azure Cache for Redis karena alasan berikut:

  • Mengurangi overhead manajemen: Ini adalah layanan yang dikelola sepenuhnya.

  • Kecepatan dan volume: Ini memiliki throughput data tinggi dan baca latensi rendah untuk data yang umum diakses dan berubah lambat.

  • Dukungan yang beragam: Ini adalah lokasi cache terpadu untuk semua instans aplikasi web untuk digunakan.

  • Penyimpanan data eksternal: Server aplikasi lokal melakukan penembolokan lokal VM. Penyiapan ini tidak membongkar data yang sangat sering, dan tidak dapat membatalkan data.

  • Sesi nonsticky: Status sesi eksternalisasi mendukung sesi nonsticky.

Load Balancer

Pilih load balancer terbaik untuk aplikasi web Anda. Azure memiliki beberapa load balancer. Untuk bantuan dalam mempersempit opsi, lihat memilih load balancer terbaik untuk aplikasi Anda.

Contoh: Relecloud memerlukan load balancer lapisan-7 yang dapat merutekan lalu lintas di beberapa wilayah. Relecloud memerlukan aplikasi web multi-wilayah untuk memenuhi SLO 99,9%. Relecloud memilih Azure Front Door karena alasan berikut:

  • Penyeimbangan beban global: Ini adalah load balancer lapisan-7 yang dapat merutekan lalu lintas di beberapa wilayah.

  • Firewall aplikasi web: Ini terintegrasi secara asli dengan Azure Web Application Firewall.

  • Fleksibilitas perutean: Ini memungkinkan tim aplikasi untuk mengonfigurasi ingress perlu mendukung perubahan di masa mendatang dalam aplikasi.

  • Akselerasi lalu lintas: Ini menggunakan anycast untuk mencapai titik kehadiran Azure terdekat dan menemukan rute tercepat ke aplikasi web.

  • Domain kustom: Ini mendukung nama domain kustom dengan validasi domain fleksibel.

  • Pemeriksaan kesehatan: Aplikasi ini membutuhkan pemantauan pemeriksaan kesehatan cerdas. Azure Front Door menggunakan respons dari pemeriksaan untuk menentukan asal terbaik untuk merutekan permintaan klien.

  • Dukungan pemantauan: Ini mendukung laporan bawaan dengan dasbor all-in-one untuk Front Door dan pola keamanan. Anda dapat mengonfigurasi pemberitahuan yang terintegrasi dengan Azure Monitor. Ini memungkinkan aplikasi mencatat setiap permintaan dan pemeriksaan kesehatan yang gagal.

  • Perlindungan DDoS: Ini memiliki perlindungan DDoS lapisan bawaan 3-4.

  • Jaringan pengiriman konten: Memposisikan Relecloud untuk menggunakan jaringan pengiriman konten. Jaringan pengiriman konten menyediakan akselerasi situs.

Firewall aplikasi web

Pilih firewall aplikasi web untuk melindungi aplikasi web Anda dari serangan web. Azure Web Application Firewall (WAF) adalah firewall aplikasi web Azure dan memberikan perlindungan terpusat dari eksploitasi dan kerentanan web umum.

Contoh: Relecloud diperlukan untuk melindungi aplikasi web dari serangan web. Mereka menggunakan Azure Web Application Firewall karena alasan berikut:

  • Perlindungan global: Ini memberikan perlindungan aplikasi web global yang ditingkatkan tanpa mengorbankan performa.

  • Perlindungan botnet: Tim dapat memantau dan mengonfigurasi untuk mengatasi masalah keamanan dari botnet.

  • Paritas dengan lokal: Solusi lokal berjalan di belakang firewall aplikasi web yang dikelola oleh IT.

  • Kemudahan penggunaan: Web Application Firewall terintegrasi dengan Azure Front Door.

Penyimpanan konfigurasi

Pilih apakah akan menambahkan penyimpanan konfigurasi aplikasi ke aplikasi web Anda. Azure App Configuration adalah layanan untuk mengelola pengaturan aplikasi dan bendera fitur secara terpusat. Tinjau praktik terbaik App Configuration untuk memutuskan apakah layanan ini cocok untuk aplikasi Anda.

Contoh: Relecloud ingin mengganti konfigurasi berbasis file dengan penyimpanan konfigurasi pusat yang terintegrasi dengan platform dan kode aplikasi. Mereka menambahkan App Configuration ke arsitektur karena alasan berikut:

  • Fleksibilitas: Ini mendukung bendera fitur. Bendera fitur memungkinkan pengguna untuk memilih ikut serta dan keluar dari fitur pratinjau awal di lingkungan produksi tanpa menyebarkan ulang aplikasi.

  • Mendukung alur Git: Sumber kebenaran untuk data konfigurasi yang diperlukan untuk menjadi repositori Git. Alur diperlukan untuk memperbarui data di penyimpanan konfigurasi pusat.

  • Mendukung identitas terkelola: Ini mendukung identitas terkelola untuk menyederhanakan dan membantu mengamankan koneksi ke penyimpanan konfigurasi.

Manajer rahasia

Gunakan Azure Key Vault jika Anda memiliki rahasia untuk dikelola di Azure. Anda dapat menggabungkan Key Vault di aplikasi .NET dengan menggunakan objek ConfigurationBuilder.

Contoh: Aplikasi web lokal Relecloud menyimpan rahasia dalam file konfigurasi kode, tetapi ini adalah praktik keamanan yang lebih baik untuk eksternalisasi rahasia. Meskipun identitas terkelola adalah solusi pilihan untuk menyambungkan ke sumber daya Azure, Relecloud memiliki rahasia aplikasi yang perlu mereka kelola. Relecloud menggunakan Key Vault karena alasan berikut:

  • Enkripsi: Ini mendukung enkripsi saat tidak aktif dan saat transit.

  • Identitas terkelola: Layanan aplikasi dapat menggunakan identitas terkelola untuk mengakses penyimpanan rahasia.

  • Pemantauan dan pengelogan: Ini memfasilitasi akses audit dan menghasilkan pemberitahuan saat rahasia yang disimpan berubah.

  • Integrasi: Ini menyediakan integrasi asli dengan penyimpanan konfigurasi Azure (App Configuration) dan platform hosting web (App Service).

Solusi penyimpanan

Pilih solusi penyimpanan terbaik untuk aplikasi web Anda. Untuk informasi selengkapnya, lihat Meninjau opsi penyimpanan Anda.

Contoh: Lokal, aplikasi web memiliki penyimpanan disk yang dipasang ke setiap server web, tetapi tim ingin menggunakan solusi penyimpanan data eksternal. Relecloud memilih Azure Blob Storage karena alasan berikut:

  • Akses aman: Aplikasi web dapat menghilangkan titik akhir untuk mengakses penyimpanan yang terekspos ke internet publik dengan akses anonim.

  • Enkripsi: Ini mengenkripsi data saat tidak aktif dan saat transit.

  • Ketahanan: Ini mendukung penyimpanan zona redundan (ZRS). Penyimpanan redundansi zona mereplikasi data secara sinkron di tiga zona ketersediaan Azure di wilayah utama. Setiap zona ketersediaan berada di lokasi fisik terpisah yang memiliki daya, pendinginan, dan jaringan independen. Konfigurasi ini harus membuat gambar tiket tahan terhadap kerugian.

Keamanan titik akhir

Pilih untuk mengaktifkan akses privat saja ke layanan Azure. Azure Private Link menyediakan akses ke solusi platform-as-a-service melalui titik akhir privat di jaringan virtual Anda. Lalu lintas antara jaringan virtual Anda dan layanan berjalan di seluruh jaringan backbone Microsoft.

Contoh: Relecloud menggunakan Private Link karena alasan berikut:

  • Komunikasi keamanan yang ditingkatkan: Ini memungkinkan aplikasi mengakses layanan secara privat di platform Azure dan mengurangi jejak jaringan penyimpanan data untuk membantu melindungi dari kebocoran data.

  • Upaya minimal: Titik akhir privat mendukung platform aplikasi web dan platform database yang digunakan aplikasi web. Kedua platform mencerminkan konfigurasi lokal yang ada untuk perubahan minimal.

Keamanan jaringan

Pilih apakah akan menambahkan layanan keamanan jaringan ke jaringan virtual Anda. Azure Firewall bersifat stateful, firewall jaringan yang memeriksa lalu lintas jaringan. Azure Bastion memungkinkan Anda terhubung ke komputer virtual dengan aman tanpa mengekspos port RDP/SSH.

Contoh: Relecloud mengadopsi topologi jaringan hub dan spoke dan ingin menempatkan layanan keamanan jaringan bersama di hub. Azure Firewall meningkatkan keamanan dengan memeriksa semua lalu lintas keluar dari spoke untuk meningkatkan keamanan jaringan. Relecloud diperlukan Azure Bastion untuk penyebaran aman dari jump host di subnet DevOps.

Pilih arsitektur yang tepat

Setelah menentukan apa yang tersedia untuk aplikasi web Anda dan memilih layanan cloud terbaik, Anda perlu menentukan arsitektur terbaik untuk aplikasi web Anda. Arsitektur Anda perlu mendukung persyaratan bisnis, persyaratan teknis, dan SLO Anda.

Pilih redundansi arsitektur

Tujuan bisnis menentukan tingkat infrastruktur dan redundansi data yang dibutuhkan aplikasi web Anda. SLO aplikasi web menyediakan garis besar yang baik untuk memahami persyaratan redundansi Anda. Hitung SLA komposit semua dependensi pada jalur ketersediaan penting. Dependensi harus mencakup layanan Azure dan solusi non-Microsoft.

Tetapkan perkiraan ketersediaan untuk setiap dependensi. Perjanjian tingkat layanan (SLA) memberikan titik awal yang baik, tetapi SLA tidak memperhitungkan kode, strategi penyebaran, dan keputusan konektivitas arsitektur.

Contoh: Relecloud mengidentifikasi layanan pada jalur ketersediaan penting. Mereka menggunakan Azure SLA untuk perkiraan ketersediaan. Berdasarkan perhitungan SLA komposit, Relecloud membutuhkan arsitektur multi-wilayah untuk memenuhi SLO 99,9%.

Pilih topologi jaringan

Pilih topologi jaringan yang tepat untuk persyaratan web dan jaringan Anda. Topologi jaringan hub dan spoke adalah konfigurasi standar di Azure. Ini memberikan manfaat biaya, manajemen, dan keamanan. Ini juga mendukung opsi konektivitas hibrid ke jaringan lokal.

Contoh: Relecloud memilih topologi jaringan hub dan spoke untuk meningkatkan keamanan penyebaran multi-wilayah mereka dengan biaya yang berkurang dan overhead manajemen.

Pilih redundansi data

Pastikan keandalan data dengan mendistribusikannya di seluruh wilayah dan zona ketersediaan Azure; semakin besar pemisahan geografis mereka, semakin tinggi keandalannya.

  • Atur tujuan titik pemulihan (RPO). RPO menentukan kehilangan data maksimum yang dapat ditoleransi selama pemadaman, memandu seberapa sering data membutuhkan replikasi. Misalnya, RPO satu jam berarti menerima hingga satu jam kehilangan data terbaru.

  • Menerapkan replikasi data. Menyelaraskan replikasi data dengan arsitektur dan RPO Anda. Azure biasanya mendukung replikasi sinkron dalam zona ketersediaan. Gunakan beberapa zona untuk meningkatkan keandalan dengan mudah. Untuk aplikasi web multi-wilayah dalam penyiapan pasif aktif, replikasi data ke wilayah pasif sesuai RPO aplikasi web, memastikan frekuensi replikasi melampaui RPO. Konfigurasi aktif-aktif memerlukan sinkronisasi data mendekati real-time di seluruh wilayah, yang mungkin memerlukan penyesuaian kode.

  • Buat rencana failover. Mengembangkan rencana failover (pemulihan bencana) yang menguraikan strategi respons terhadap pemadaman, ditentukan oleh waktu henti atau kehilangan fungsionalitas. Tentukan tujuan waktu pemulihan (RTO) untuk waktu henti maksimum yang dapat diterima. Pastikan proses failover lebih cepat dari RTO. Tentukan mekanisme failover otomatis atau manual untuk konsistensi dan kontrol, dan rinci proses kembali ke operasi normal. Uji rencana failover untuk memastikan efektivitas.

Langkah selanjutnya

Artikel ini menunjukkan kepada Anda cara merencanakan implementasi pola Reliable Web App. Langkah selanjutnya adalah menerapkan teknik implementasi pola Reliable Web App.