Mulai cepat: Sebarkan aplikasi layanan andal .NET ke Service Fabric

Azure Service Fabric adalah platform sistem terdistribusi untuk menyebarkan dan mengelola layanan mikro dan kontainer yang dapat diskalakan dan dapat diandalkan.

Mulai cepat ini menunjukkan cara menyebarkan aplikasi .NET pertama Anda ke Service Fabric. Setelah selesai, Anda memiliki aplikasi pemungutan suara dengan front end web ASP.NET Core yang menyimpan hasil pemungutan suara dalam layanan ujung depan yang memiliki status di kluster.

Cuplikan Layar Aplikasi

Dengan menggunakan aplikasi ini, Anda mempelajari cara:

  • Membuat aplikasi menggunakan .NET dan Service Fabric
  • Menggunakan ASP.NET core sebagai web ujung depan
  • Menyimpan data aplikasi dalam layanan dengan status
  • Melakukan debug aplikasi secara lokal
  • Memperluas skala aplikasi di beberapa node
  • Melakukan peningkatan aplikasi bergulir

Prasyarat

Untuk menyelesaikan mulai cepat ini:

  1. Instal Visual Studio 2019 dengan beban kerja pengembangan Azure dan pengembangan ASP.NET dan web.

  2. Instal Git

  3. Instal kit pengembangan perangkat lunak (SDK) Microsoft Azure Service Fabric

  4. Jalankan perintah berikut untuk mengaktifkan Visual Studio guna menyebarkan ke kluster Service Fabric lokal:

    Set-ExecutionPolicy -ExecutionPolicy Unrestricted -Force -Scope CurrentUser
    

Bangun kluster

Setelah Anda menginstal runtime bahasa umum, SDK, alat Visual Studio, Docker, dan membuat Docker berjalan, buatlah kluster pengembangan lokal lima simpul.

Catatan

Alasan untuk menjalankan Docker saat Anda membuat kluster adalah agar kluster dibuat dengan fitur kontainer yang diaktifkan. Jika Docker tidak dijalankan, Anda harus membuat ulang kluster untuk mengaktifkan fitur kontainer. Meski tidak diperlukan untuk mulai cepat ini, instruksi untuk menjalankan Docker ketika Anda membuat kluster termasuk dalam praktik terbaik. Uji bahwa Docker sudah berjalan dengan membuka jendela terminal dan menjalankan docker ps untuk melihat apakah terjadi kesalahan. Jika responsnya tidak menunjukkan kesalahan, Docker sudah berjalan dan Anda siap untuk membuat kluster.

Menyiapkan Windows 10 atau Windows Server untuk kontainer

  1. Buka jendela baru yang muncul sebagai administrator.

  2. Jalankan perintah berikut untuk membuat kluster pengembangan:

    . "C:\Program Files\Microsoft SDKs\Service Fabric\ClusterSetup\DevClusterSetup.ps1"
    
  3. Jalankan perintah berikut untuk memulai alat pengelola kluster lokal:

    . "C:\Program Files\Microsoft SDKs\Service Fabric\Tools\ServiceFabricLocalClusterManager\ServiceFabricLocalClusterManager.exe"
    

Catatan

Aplikasi contoh dalam mulai cepat ini menggunakan fitur yang tidak tersedia di Windows 7.

Unduh sampel

Di jendela perintah, jalankan perintah berikut untuk mengkloning repositori aplikasi sampel ke komputer lokal Anda.

git clone https://github.com/Azure-Samples/service-fabric-dotnet-quickstart

Jalankan aplikasi secara lokal

Klik kanan ikon Visual Studio di Menu Mulai dan pilih Jalankan sebagai administrator. Untuk melampirkan debugger ke layanan, Anda harus menjalankan Visual Studio sebagai administrator.

Buka solusi Voting.sln Visual Studio dari repositori yang Anda kloning.

Secara default, aplikasi Pemungutan Suara mendengarkan di port 8080. Port aplikasi diatur dalam file /VotingWeb/PackageRoot/ServiceManifest.xml. Anda dapat mengubah port aplikasi dengan memperbarui atribut Port dari ElemenTitik akhir. Untuk menyebarkan dan menjalankan aplikasi secara lokal, port aplikasi harus terbuka dan tersedia di komputer Anda. Jika Anda mengubah port aplikasi, ganti nilai port aplikasi baru untuk "8080" di seluruh artikel ini.

Untuk menyebarkan aplikasi, tekan F5.

Catatan

Di jendela output Visual Studio, Anda akan melihat pesan "URL aplikasi belum diatur atau bukan berupa URL HTTP/HTTPS sehingga browser tidak akan dibuka ke aplikasi." Pesan ini tidak menunjukkan kesalahan, tetapi menyampaikan bahwa browser tidak akan diluncurkan secara otomatis.

Ketika penyebaran selesai, luncurkan browser dan buka http://localhost:8080 untuk melihat ujung depan web aplikasi.

Ujung depan aplikasi

Sekarang Anda dapat menambahkan serangkaian opsi pemungutan suara dan mulai mengambil suara. Aplikasi menjalankan dan menyimpan semua data di kluster Service Fabric Anda, tanpa perlu database terpisah.

Mempelajari aplikasi contoh pemungutan suara

Aplikasi voting terdiri atas dua layanan:

  • Layanan front-end web (VotingWeb)- Layanan front-end web ASP.NET Core, yang melayani halaman web dan memaparkan API web untuk berkomunikasi dengan layanan backend.
  • Layanan back-end (VotingData)- Layanan web ASP.NET Core, yang memaparkan API untuk menyimpan hasil voting dalam kamus andal yang ada di disk.

Diagram Aplikasi

Saat Anda melakukan pemungutan suara dalam aplikasi, peristiwa berikut terjadi:

  1. JavaScript mengirimkan permintaan suara ke API web di layanan ujung depan web sebagai permintaan HTTP PUT.

  2. Layanan front-end web menggunakan proksi untuk mencari dan meneruskan permintaan HTTP PUT ke layanan back-end.

  3. Layanan back-end mengambil permintaan yang masuk, dan menyimpan hasil yang diperbarui dalam kamus andal, yang akan direplikasi ke beberapa node dalam klaster dan disimpan di disk. Semua data aplikasi disimpan dalam kluster sehingga tidak diperlukan database.

Debug di Visual Studio

Aplikasi mestinya sudah berjalan dengan baik, tetapi Anda dapat menggunakan debugger untuk melihat cara kerja bagian-bagian kunci dari aplikasi. Saat melakukan debug aplikasi di Visual Studio, Anda menggunakan kluster pengembangan Service Fabric lokal. Anda dapat menyesuaikan pengalaman penelusuran kesalahan dengan skenario Anda. Dalam aplikasi ini, data disimpan dalam layanan ujung belakang menggunakan kamus yang dapat diandalkan. Visual Studio menghapus aplikasi secara default saat Anda menghentikan debugger. Menghapus aplikasi menyebabkan data di layanan ujung belakang juga dihapus. Untuk mempertahankan data antara sesi penelusuran kesalahan, buka Properti proyek Pemungutan Suara dan ubah Mode Debug Aplikasi menjadi Peningkatan Otomatis.

Untuk melihat apa yang terjadi dalam kode, selesaikan langkah-langkah berikut:

  1. Buka file /VotingWeb/Controllers/VotesController.cs dan tetapkan titik henti dalam metode Put API web (baris 69) – Anda dapat mencari filenya di Penjelajah Solusi di Visual Studio.

  2. Buka file /VotingData/Controllers/VoteDataController.cs dan tetapkan titik henti dalam metode Put web API ini (baris 54).

  3. Kembali ke browser, lalu klik opsi pemungutan suara atau tambahkan opsi pemungutan suara baru. Anda mencapai titik henti pertama di pengontrol api ujung depan web.

    • Dalam langkah ini, JavaScript di browser mengirim permintaan ke pengontrol API web di layanan ujung depan.

      Menambahkan Layanan Ujung Depan Pemungutan Suara

    • Pertama, buat URL ke ReverseProxy untuk layanan ujung belakang (1) .

    • Kemudian, kirim Permintaan HTTP PUT ke ReverseProxy (2) .

    • Terakhir, kembalikan respons dari layanan ujung belakang ke klien (3) .

  4. Tekan F5 untuk melanjutkan

    • Jika diminta oleh browser, beri grup ServiceFabricAllowedUsers izin membaca dan menjalankan untuk Mode Debug.

    • Anda sekarang berada di titik henti di layanan ujung belakang.

      Menambahkan Layanan Ujung Belakang Pemungutan Suara

    • Di baris pertama dalam metode (1) , StateManager mendapatkan atau menambahkan kamus andal yang disebut counts.

    • Semua interaksi dengan nilai dalam kamus andal memerlukan transaksi; ini menggunakan pernyataan (2) membuat transaksi tersebut.

    • Dalam transaksi, perbarui nilai kunci yang relevan untuk opsi pemungutan suara dan terapkan operasi (3) . Setelah metode penerapan kembali, data diperbarui dalam kamus dan direplikasi ke simpul lain di kluster. Kini, data tersimpan dengan aman di kluster, dan layanan ujung belakang dapat mengalihkan ke simpul lain, dengan masih memiliki data yang tersedia.

  5. Tekan F5 untuk melanjutkan

Untuk menghentikan sesi penelusuran kesalahan, tekan Shift+F5.

Melakukan peningkatan aplikasi bergulir

Saat menyebarkan pembaruan baru ke aplikasi Anda, Service Fabric meluncurkan pembaruan dengan cara yang aman. Peningkatan bergulir tidak menyebabkan waktu henti sambil meningkatkan serta melakukan pemutaran kembali otomatis jika terjadi kesalahan.

Untuk melakukan peningkatan aplikasi, lakukan hal-hal berikut:

  1. Buka file /VotingWeb/Views/Home/Index.cshtml di Visual Studio.

  2. Ubah judul di halaman dengan menambahkan atau memperbarui teks. Misalnya, ubah judul menjadi "Service Fabric Voting Sample v2".

  3. Simpan file.

  4. Klik kanan Voting di Penjelajah Solusi dan pilih Terbitkan. Dialog Terbitkan akan muncul.

  5. Klik tombol Versi Manifes untuk mengubah versi layanan dan aplikasi.

  6. Ubah versi elemen Kode di VotingWebPkg menjadi "2.0.0", misalnya, dan klik Simpan.

    Mengubah Dialog Versi

  7. Dalam dialog Terbitkan Aplikasi Service Fabric, tandai kotak centang Tingkatkan Aplikasi.

  8. Ubah Profil target menjadi PublishProfiles\Local.5Node.xml dan pastikan bahwa Titik Akhir Koneksi diatur ke Kluster Lokal.

  9. Pilih Tingkatkan Aplikasi.

    Terbitkan Pengaturan Peningkatan Dialog

  10. Klik Terbitkan.

    Saat peningkatan berjalan, Anda tetap dapat menggunakan aplikasi. Karena Anda memiliki dua instans layanan yang berjalan di kluster, beberapa permintaan Anda mungkin mendapatkan versi aplikasi yang ditingkatkan, sedangkan yang lain mungkin masih mendapatkan versi lama.

  11. Buka browser Anda dan telusuri ke alamat kluster di port 19080. Contohnya,http://localhost:19080/.

  12. Klik simpul Aplikasi dalam tampilan pohon, lalu Peningkatan yang Sedang Berlangsung di panel kanan. Anda melihat cara peningkatan diluncurkan melalui domain peningkatan di kluster Anda, memastikan setiap domain sehat sebelum melanjutkan ke domain berikutnya. Domain peningkatan di bilah kemajuan akan terlihat berwarna hijau ketika kesehatan domain telah terverifikasi. Tampilan Peningkatan di Service Fabric Explorer

    Service Fabric membuat peningkatan aman dengan menunggu dua menit setelah meningkatkan layanan di setiap simpul di kluster. Keseluruhan pembaruan akan memakan waktu kira-kira delapan menit.

Langkah berikutnya

Dalam mulai cepat ini, Anda mempelajari cara:

  • Membuat aplikasi menggunakan .NET dan Service Fabric
  • Menggunakan ASP.NET core sebagai web ujung depan
  • Menyimpan data aplikasi dalam layanan dengan status
  • Melakukan debug aplikasi secara lokal
  • Memperluas skala aplikasi di beberapa node
  • Melakukan peningkatan aplikasi bergulir

Untuk mempelajari lebih lanjut tentang Service Fabric dan .NET, lihat tutorial ini: