Bagikan melalui


Peningkatan aplikasi Service Fabric menggunakan PowerShell


Pendekatan peningkatan yang paling sering digunakan dan direkomendasikan adalah peningkatan rolling yang dipantau. Azure Service Fabric memantau kesehatan aplikasi yang ditingkatkan berdasarkan serangkaian kebijakan kesehatan. Setelah domain pembaruan (UD) ditingkatkan, Service Fabric mengevaluasi kesehatan aplikasi dan melanjutkan ke domain pembaruan berikutnya atau gagal meningkatkan, bergantung pada kebijakan kesehatan.

Peningkatan aplikasi yang dipantau dapat dilakukan menggunakan API terkelola atau asli, PowerShell, Azure CLI, Java, atau REST. Untuk petunjuk tentang cara meningkatakan menggunakan Visual Studio, lihat Meningkatkan aplikasi menggunakan Visual Studio.

Dengan peningkatan rolling yang dipantau Service Fabric, administrator aplikasi dapat mengonfigurasi kebijakan evaluasi kesehatan yang digunakan Service Fabric untuk menentukan apakah aplikasi tersebut sehat. Selain itu, administrator dapat mengonfigurasi tindakan yang akan diambil ketika evaluasi kesehatan gagal (misalnya, melakukan pembatalan otomatis.) Bagian ini berjalan melalui peningkatan yang dipantau untuk salah satu sampel SDK yang menggunakan PowerShell.

Periksa halaman ini untuk video pelatihan yang juga memandu Anda melalui peningkatan versi aplikasi:

Catatan

ApplicationParameters tidak dipertahankan di seluruh peningkatan aplikasi. Untuk mempertahankan parameter aplikasi saat ini, pengguna harus mendapatkan parameter terlebih dahulu dan meneruskannya ke panggilan API peningkatan seperti di bawah ini:

$myApplication = Get-ServiceFabricApplication -ApplicationName fabric:/myApplication
$appParamCollection = $myApplication.ApplicationParameters

$applicationParameterMap = @{}
foreach ($pair in $appParamCollection)
{
    $applicationParameterMap.Add($pair.Name, $pair.Value);
}

Start-ServiceFabricApplicationUpgrade -ApplicationName fabric:/myApplication -ApplicationTypeVersion 2.0.0 -ApplicationParameter $applicationParameterMap -Monitored -FailureAction Rollback

Langkah 1: Susun dan sebarkan sampel Objek Visual

Buat dan publikasikan aplikasi dengan mengeklik kanan pada proyek aplikasi, VisualObjectsApplication, dan pilih perintah Terbitkan. Untuk informasi selengkapnya, lihat tutorial peningkatan aplikasi Service Fabric. Atau, Anda dapat menggunakan PowerShell untuk menyebarkan aplikasi Anda.

Catatan

Sebelum perintah Service Fabric dapat digunakan di PowerShell, Anda harus tersambung terlebih dahulu ke kluster menggunakan cmdlet Connect-ServiceFabricCluster. Demikian pula, diasumsikan bahwa Kluster telah diatur pada komputer lokal Anda. Lihat artikel tentang menyiapkan lingkungan pengembangan Service Fabric Anda.

Setelah membangun proyek di Visual Studio, Anda dapat menggunakan perintah PowerShell Copy-ServiceFabricApplicationPackage untuk menyalin paket aplikasi ke ImageStore. Jika Anda ingin memverifikasi paket aplikasi secara lokal, gunakan cmdlet Test-ServiceFabricApplicationPackage. Langkah selanjutnya adalah mendaftarkan aplikasi ke runtime Service Fabric menggunakan cmdlet Register-ServiceFabricApplicationType. Langkah berikut adalah memulai instans aplikasi menggunakan cmdlet New-ServiceFabricApplication. Ketiga langkah tersebut dianalogikan dengan menggunakan item menu Sebarkan di Visual Studio. Setelah penyediaan selesai, Anda harus membersihkan paket aplikasi yang disalin dari penyimpanan gambar untuk mengurangi sumber daya yang dikonsumsi. Jika jenis aplikasi tidak lagi diperlukan, aplikasi harus dibatalkan pendaftarannya karena alasan yang sama. Lihat Menyebarkan dan menghapus aplikasi menggunakan PowerShell untuk informasi selengkapnya.

Sekarang, Anda dapat menggunakan Service Fabric Explorer untuk melihat kluster dan aplikasi. Aplikasi ini memiliki layanan web yang dapat dinavigasi di Internet Explorer dengan mengetik http://localhost:8081/visualobjects di bilah alamat. Anda akan melihat beberapa objek visual mengambang bergerak di layar. Selain itu, Anda dapat menggunakan Get-ServiceFabricApplication untuk memeriksa status aplikasi.

Langkah 2: Perbarui sampel Objek Visual

Anda mungkin mendapati bahwa dengan versi yang disebarkan di Langkah 1, objek visual tidak berputar. Mari kita tingkatkan aplikasi ini ke versi yang membuat objek visual juga berputar.

Pilih proyek VisualObjects.ActorService dalam solusi VisualObjects, dan buka file statefulVisualObjectActor.cs. Dalam file tersebut, buka metode MoveObject, komentari this.State.Move(), dan batalkan komentar this.State.Move(true). Perubahan ini akan memutar objek setelah layanan ditingkatkan.

Kita juga perlu memperbarui file ServiceManifest.xml (di bawah PackageRoot) dari proyek VisualObjects.ActorService. Perbarui CodePackage dan versi layanan ke 2.0, dan baris yang sesuai dalam file ServiceManifest.xml Anda. Anda dapat menggunakan opsi Edit File Manifes di Visual Studio setelah mengeklik kanan solusi untuk membuat perubahan file manifes.

Setelah perubahan dibuat, manifes akan terlihat seperti berikut ini (bagian yang disorot memperlihatkan perubahan):

<ServiceManifestName="VisualObjects.ActorService" Version="2.0" xmlns="http://schemas.microsoft.com/2011/01/fabric" xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance">

<CodePackageName="Code" Version="2.0">

Sekarang file ApplicationManifest.xml (ditemukan di bawah proyek VisualObjects di bawah solusi VisualObjects) diperbarui ke versi 2.0 dari proyek VisualObjects.ActorService. Selain itu, versi Aplikasi diperbarui dari 1.0.0.0 ke 2.0.0.0. Tampilan ApplicationManifest.xml akan seperti cuplikan berikut:

<ApplicationManifestxmlns:xsd="https://www.w3.org/2001/XMLSchema" xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance" ApplicationTypeName="VisualObjects" ApplicationTypeVersion="2.0.0.0" xmlns="http://schemas.microsoft.com/2011/01/fabric">

 <ServiceManifestRefServiceManifestName="VisualObjects.ActorService" ServiceManifestVersion="2.0" />

Sekarang, buat proyek hanya dengan memilih proyek ActorService, lalu klik kanan dan pilih opsi Build di Visual Studio. Jika memilih Buat ulang semua, Anda harus memperbarui versi untuk semua proyek, karena kode akan berubah. Selanjutnya, mari kita kemas aplikasi yang diperbarui dengan mengeklik kanan visualObjectsApplication, memilih Menu Service Fabric, dan memilih Paket. Tindakan ini akan membuat paket aplikasi yang dapat disebarkan. Aplikasi terbaru Anda siap untuk disebarkan.

Langkah 3: Tentukan kebijakan kesehatan dan parameter peningkatan

Pahami parameter peningkatan aplikasi dan proses peningkatan untuk mendapatkan pemahaman yang baik tentang berbagai parameter peningkatan, waktu habis, dan kriteria kesehatan yang disebarkan. Untuk penelusuran ini, kriteria evaluasi kesehatan layanan diatur ke nilai default (dan direkomendasikan), yang berarti bahwa semua layanan dan instans harus sehat setelah peningkatan.

Namun, mari kita tingkatkan HealthCheckStableDuration menjadi 180 detik (sehingga layanan sehat setidaknya selama 120 detik sebelum peningkatan berlanjut ke domain pembaruan berikutnya). Mari kita atur juga UpgradeDomainTimeout menjadi 1200 detik dan UpgradeTimeout menjadi 3000 detik.

Akhirnya, mari kita atur juga UpgradeFailureAction untuk putar kembali. Opsi ini mengharuskan Service Fabric untuk mengembalikan aplikasi ke versi sebelumnya jika mengalami masalah selama peningkatan. Jadi, saat memulai peningkatan (di Langkah 4), parameter berikut ditentukan:

FailureAction = Pembatalan

HealthCheckStableDurationSec = 180

UpgradeDomainTimeoutSec = 1200

UpgradeTimeout = 3000

Langkah 4: Siapkan aplikasi untuk peningkatan

Sekarang aplikasi dibuat dan siap untuk ditingkatkan. Jika Anda membuka jendela PowerShell sebagai administrator dan mengetik Get-ServiceFabricApplication, itu seharusnya memberi tahu Anda bahwa itu adalah jenis aplikasi 1.0.0.0 dari VisualObjects yang telah disebarkan.

Paket aplikasi disimpan di bawah jalur relatif berikut tempat Anda membuka kompresi SDK Service Fabric: Samples\Services\Stateful\VisualObjects\VisualObjects\obj\x64\Debug. Anda harus menemukan folder "Paket" di direktori tersebut, tempat paket aplikasi disimpan. Periksa tanda waktu untuk memastikan bahwa itu adalah versi terbaru (Anda mungkin juga perlu memodifikasi jalur dengan tepat).

Sekarang mari kita salin paket aplikasi yang diperbarui ke Service Fabric ImageStore (tempat paket aplikasi disimpan oleh Service Fabric). Parameter ApplicationPackagePathInImageStore menginformasikan Service Fabric tentang tempat untuk menemukan paket aplikasi. Kami telah menempatkan aplikasi yang diperbarui di "VisualObjects_V2" dengan perintah berikut (Anda mungkin perlu memodifikasi jalur lagi dengan tepat).

Copy-ServiceFabricApplicationPackage -ApplicationPackagePath .\Samples\Services\Stateful\VisualObjects\VisualObjects\obj\x64\Debug\Package -ApplicationPackagePathInImageStore "VisualObjects\_V2"

Langkah selanjutnya adalah mendaftarkan aplikasi ini dengan Service Fabric, yang dapat dilakukan menggunakan perintah Register-ServiceFabricApplicationType:

Register-ServiceFabricApplicationType -ApplicationPathInImageStore "VisualObjects\_V2"

Jika perintah sebelumnya tidak berhasil, kemungkinan Anda perlu membuat ulang semua layanan. Seperti yang disebutkan di Langkah 2, Anda mungkin juga harus memperbarui versi WebService Anda.

Disarankan agar Anda menghapus paket aplikasi setelah aplikasi berhasil didaftarkan. Menghapus paket aplikasi dari penyimpanan citra akan membebaskan sumber daya sistem. Menyimpan paket aplikasi yang tidak digunakan akan menggunakan penyimpanan disk dan menyebabkan masalah performa aplikasi.

Remove-ServiceFabricApplicationPackage -ApplicationPackagePathInImageStore "VisualObjects\_V2" -ImageStoreConnectionString fabric:ImageStore

Langkah 5: Mulai peningkatan aplikasi

Sekarang, kita sudah siap untuk memulai peningkatan aplikasi menggunakan perintah Start-ServiceFabricApplicationUpgrade:

Start-ServiceFabricApplicationUpgrade -ApplicationName fabric:/VisualObjects -ApplicationTypeVersion 2.0.0.0 -HealthCheckStableDurationSec 60 -UpgradeDomainTimeoutSec 1200 -UpgradeTimeout 3000   -FailureAction Rollback -Monitored

Nama aplikasi sama seperti yang dijelaskan dalam file ApplicationManifest.xml. Service Fabric menggunakan nama ini untuk mengidentifikasi aplikasi mana yang sedang ditingkatkan. Jika mengatur waktu habis menjadi terlalu singkat, Anda mungkin mendapati pesan kegagalan yang menyatakan masalah. Lihat bagian pemecahan masalah, atau tambah durasi waktu habis.

Sekarang, saat peningkatan aplikasi berlanjut, Anda dapat memantaunya menggunakan Service Fabric Explorer, atau menggunakan perintah Get-ServiceFabricApplicationUpgrade di PowerShell:

Get-ServiceFabricApplicationUpgrade fabric:/VisualObjects

Dalam beberapa menit, status yang Anda dapatkan menggunakan perintah PowerShell sebelumnya harus menyatakan bahwa semua domain pembaruan telah ditingkatkan (selesai). Selain itu, Anda harus menemukan bahwa objek visual di jendela browser Anda telah mulai berputar!

Anda dapat mencoba meningkatkan dari versi 2 ke versi 3, atau dari versi 2 ke versi 1 sebagai latihan. Beralih dari versi 2 ke versi 1 juga dianggap sebagai peningkatan. Pelajari waktu habis dan kebijakan kesehatan untuk memahami pengaturannya. Saat Anda menyebarkan ke kluster Azure, parameter harus diatur dengan tepat. Ada baiknya Anda mengatur waktu habis secara konservatif.

Langkah berikutnya

Meningkatkan aplikasi menggunakan Visual Studio akan memandu Anda melalui peningkatan aplikasi menggunakan Visual Studio.

Kontrol cara aplikasi ditingkatkan dengan menggunakan parameter peningkatan.

Buat peningkatan aplikasi Anda kompatibel dengan mempelajari cara menggunakan serialisasi data.

Pelajari cara menggunakan fungsionalitas tingkat lanjut selagi meningkatkan aplikasi Anda dengan mengacu pada Topik tingkat lanjut.

Perbaiki masalah umum pada peningkatan aplikasi dengan mengacu pada langkah-langkah dalam Pemecahan masalah peningkatan aplikasi.