Parameter peningkatan aplikasi
Artikel ini menjelaskan berbagai parameter yang berlaku selama peningkatan aplikasi Azure Service Fabric. Parameter peningkatan aplikasi mengontrol waktu habis dan pemeriksaan kesehatan yang diterapkan selama peningkatan, dan mereka menentukan kebijakan yang harus diterapkan ketika peningkatan gagal. Parameter aplikasi berlaku untuk peningkatan menggunakan:
- PowerShell
- Visual Studio
- SFCTL
- REST
Peningkatan aplikasi dimulai melalui salah satu dari tiga mode peningkatan yang dapat dipilih pengguna. Setiap mode memiliki sekumpulan parameter aplikasinya sendiri:
- Monitored
- Unmonitored Auto
- Unmonitored Manual
Parameter yang diperlukan dan opsional yang berlaku dijelaskan di setiap bagian sebagai berikut.
Parameter Visual Studio dan PowerShell
Peningkatan aplikasi Service Fabric menggunakan PowerShell menggunakan perintah Start-ServiceFabricApplicationUpgrade. Mode peningkatan dipilih dengan melewati parameter Monitored, UnmonitoredAuto, atau UnmonitoredManual ke Start-ServiceFabricApplicationUpgrade.
Parameter peningkatan aplikasi Visual Studio Service Fabric diatur melalui dialog Pengaturan Peningkatan Visual Studio. Mode peningkatan Visual Studio dipilih menggunakan kotak dropdown Mode Peningkatan ke Monitored, UnmonitoredAuto, atau UnmonitoredManual. Untuk informasi selengkapnya, lihat Mengonfigurasi peningkatan aplikasi Service Fabric di Visual Studio.
Parameter yang diperlukan
Parameter | Berlaku Untuk | Deskripsi |
---|---|---|
ApplicationName | PowerShell | Nama aplikasi yang sedang ditingkatkan. Contoh: fabric:/VisualObjects, fabric:/ClusterMonitor. |
ApplicationTypeVersion | PowerShell | Versi jenis aplikasi yang ditargetkan oleh peningkatan. |
FailureAction | PowerShell, Visual Studio | Nilai yang diperbolehkan adalah Rollback, Manual, dan Invalid. Tindakan kompensasi yang harus dilakukan saat peningkatan Monitored menemui pelanggaran kebijakan pemantauan atau kebijakan kesehatan. Rollback menentukan bahwa peningkatan akan secara otomatis mengembalikan ke versi pra-pemutakhiran. Manual menunjukkan bahwa peningkatan akan beralih ke mode pemutakhiran UnmonitoredManual. Invalid menunjukkan bahwa aksi kegagalan tidak valid. |
Monitored | PowerShell | Menunjukkan bahwa mode peningkatan dipantau. Setelah cmdlet menyelesaikan peningkatan untuk domain peingkatan, jika kesehatan domain peningkatan dan klaster memenuhi kebijakan kesehatan yang Anda tentukan, Service Fabric meningkatkan domain peningkatan berikutnya. Jika domain atau klaster peningkatan gagal memenuhi kebijakan kesehatan, peningkatan gagal dan Service Fabric mengembalikan peningkatan untuk domain peningkatan atau kembali ke mode manual sesuai kebijakan yang ditentukan. Ini adalah mode yang direkomendasikan untuk peningkatan aplikasi di lingkungan produksi. |
UpgradeMode | Visual Studio | Nilai yang diizinkan Monitored (default), UnmonitoredAuto, atau UnmonitoredManual. Lihat parameter PowerShell untuk setiap mode dalam artikel ini untuk detailnya. |
UnmonitoredAuto | PowerShell | Menunjukkan bahwa mode peningkatan tidak dipantau secara otomatis. Setelah Service Fabric meningkatkan domain peningkatan, Service Fabric meningkatkan domain peningkatan berikutnya terlepas dari status kesehatan aplikasi. Mode ini tidak direkomendasikan untuk produksi, dan hanya berguna selama pengembangan aplikasi. |
UnmonitoredManual | PowerShell | Menunjukkan bahwa mode peningkatan tidak dipantau manual. Setelah Service Fabric meningkatkan domain peningkatan, ia menunggu Anda untuk meningkatkan domain peningkatan berikutnya dengan menggunakan cmdlet Resume-ServiceFabricApplicationUpgrade. |
Parameter opsional
Parameter evaluasi kesehatan bersifat opsional. Jika kriteria evaluasi kesehatan tidak ditentukan saat peningkatan dimulai, Service Fabric menggunakan kebijakan kesehatan aplikasi yang ditentukan ApplicationManifest.xml dari instans aplikasi.
Parameter | Berlaku Untuk | Deskripsi |
---|---|---|
ApplicationParameter | PowerShell, Visual Studio | Menentukan ambil alih untuk parameter aplikasi. Parameter aplikasi PowerShell ditentukan sebagai pasangan nama/nilai hashtable. Contohnya, @{ "VotingData_MinReplicaSetSize" = "3"; "VotingData_PartitionCount" = "1" }. Parameter aplikasi Visual Studio dapat ditentukan dalam dialog Publikasikan Aplikasi Service Fabric di bidang File Parameter Aplikasi. |
Konfirmasikan | PowerShell | Nilai yang diperbolehkan adalah True dan False. Meminta konfirmasi sebelum menjalankan cmdlet. |
ConsiderWarningAsError | PowerShell, Visual Studio | Nilai yang diperbolehkan adalah True dan False. Nilai default adalah False. Perlakukan peristiwa kesehatan peringatan untuk aplikasi sebagai kesalahan saat mengevaluasi kesehatan aplikasi selama peningkatan. Secara default, Service Fabric tidak mengevaluasi peristiwa kesehatan peringatan menjadi kegagalan (kesalahan), sehingga peningkatan dapat dilanjutkan bahkan jika ada peristiwa peringatan. |
DefaultServiceTypeHealthPolicy | PowerShell, Visual Studio | Menentukan kebijakan kesehatan untuk jenis layanan default yang digunakan untuk peningkatan yang dipantau dalam format MaxPercentUnhealthyPartitionsPerService, MaxPercentUnhealthyReplicasPerPartition, MaxPercentUnhealthyServices. Contohnya, 5,10,15 menunjukkan nilai berikut: MaxPercentUnhealthyPartitionsPerService = 5, MaxPercentUnhealthyReplicasPerPartition = 10, MaxPercentUnhealthyServices = 15. |
Paksa | PowerShell, Visual Studio | Nilai yang diperbolehkan adalah True dan False. Menunjukkan bahwa proses peningkatan melompati pesan peringatan dan memaksa peningkatan bahkan ketika nomor versi belum berubah. Ini berguna untuk pengujian lokal tetapi tidak direkomendasikan untuk digunakan di lingkungan produksi karena memerlukan penghapusan penyebaran yang ada yang menyebabkan waktu henti dan potensi kehilangan data. |
ForceRestart | PowerShell, Visual Studio | Jika Anda memperbarui konfigurasi atau paket data tanpa memperbarui kode layanan, layanan direstart hanya jika properti ForceRestart diatur ke True. Ketika pembaruan selesai, Service Fabric memberi tahu layanan bahwa paket konfigurasi atau paket data baru tersedia. Layanan ini bertanggung jawab untuk menerapkan perubahan. Jika perlu, layanan dapat merestart sendiri. |
HealthCheckRetryTimeoutSec | PowerShell, Visual Studio | Durasi (dalam detik) bahwa Service Fabric terus melakukan evaluasi kesehatan sebelum menyatakan peningkatan sebagai gagal. Defaultnya adalah 600 detik. Durasi ini dimulai setelah HealthCheckWaitDurationSec tercapai. Dalam HealthCheckRetryTimeout ini, Service Fabric mungkin melakukan beberapa pemeriksaan kesehatan kesehatan aplikasi. Nilai default adalah 10 menit dan harus disesuaikan dengan tepat untuk aplikasi Anda. |
HealthCheckStableDurationSec | PowerShell, Visual Studio | Durasi (dalam detik) untuk memverifikasi bahwa aplikasi stabil sebelum pindah ke domain peningkatan berikutnya atau menyelesaikan peningkatan. Durasi tunggu ini digunakan untuk mencegah perubahan kesehatan yang tidak terdeteksi tepat setelah pemeriksaan kesehatan dilakukan. Nilai default adalah 120 detik, dan harus disesuaikan dengan tepat untuk aplikasi Anda. |
HealthCheckWaitDurationSec | PowerShell, Visual Studio | Waktu untuk menunggu (dalam detik) setelah peningkatan selesai pada domain peningkatan sebelum Service Fabric mengevaluasi kesehatan aplikasi. Durasi ini juga dapat dianggap sebagai waktu aplikasi harus berjalan sebelum dapat dianggap sehat. Jika pemeriksaan kesehatan lolos, proses peningkatan berlanjut ke domain peningkatan berikutnya. Jika pemeriksaan kesehatan gagal, Service Fabric menunggu UpgradeHealthCheckInterval sebelum mencoba kembali pemeriksaan kesehatan ulang sampai HealthCheckRetryTimeoutSec tercapai. Nilai default dan yang disarankan adalah 0 detik. |
MaxPercentUnhealthyDeployedApplications | PowerShell, Visual Studio | Nilai default dan yang disarankan adalah 0. Tentukan jumlah maksimum aplikasi yang disebarkan (lihat bagian Kesehatan) yang mungkin tidak sehat sebelum aplikasi dianggap tidak sehat dan gagal dalam peningkatan. Parameter ini mendefinisikan kesehatan aplikasi pada node dan membantu mendeteksi masalah selama peningkatan. Biasanya, replika aplikasi mendapatkan keseimbangan beban ke node lain, yang memungkinkan aplikasi untuk tampil sehat, sehingga memungkinkan peningkatan untuk dilanjutkan. Dengan menentukan kesehatan MaxPercentUnhealthyDeployedApplications yang ketat, Service Fabric dapat mendeteksi masalah dengan paket aplikasi secara cepat dan membantu menghasilkan peningkatan cepat yang gagal. |
MaxPercentUnhealthyServices | PowerShell, Visual Studio | Parameter untuk defaultServiceTypeHealthPolicy dan ServiceTypeHealthPolicyMap. Nilai default dan yang disarankan adalah 0. Tentukan jumlah maksimum layanan dalam instans aplikasi yang mungkin tidak sehat sebelum aplikasi dianggap tidak sehat dan gagal dalam peningkatan. |
MaxPercentUnhealthyPartitionsPerService | PowerShell, Visual Studio | Parameter untuk defaultServiceTypeHealthPolicy dan ServiceTypeHealthPolicyMap. Nilai default dan yang disarankan adalah 0. Tentukan jumlah maksimum partisi dalam layanan yang mungkin tidak sehat sebelum layanan dianggap tidak sehat. |
MaxPercentUnhealthyReplicasPerPartition | PowerShell, Visual Studio | Parameter untuk defaultServiceTypeHealthPolicy dan ServiceTypeHealthPolicyMap. Nilai default dan yang disarankan adalah 0. Tentukan jumlah maksimum replika dalam partisi yang mungkin tidak sehat sebelum partisi dianggap tidak sehat. |
ServiceTypeHealthPolicyMap | PowerShell, Visual Studio | Mewakili kebijakan kesehatan yang digunakan untuk mengevaluasi kesehatan layanan yang dimiliki suatu jenis layanan. Mengambil input tabel hash dalam format berikut: @ {"ServiceTypeName" : "MaxPercentUnhealthyPartitionsPerService,MaxPercentUnhealthyReplicasPerPartition,MaxPercentUnhealthyServices"} Contohnya: @{ "ServiceTypeName01" = "5,10,5"; "ServiceTypeName02" = "5,5,5" } |
TimeoutSec | PowerShell , Visual Studio | Menentukan periode waktu habis dalam detik untuk operasi. |
UpgradeDomainTimeoutSec | PowerShell, Visual Studio | Waktu maksimum (dalam detik) untuk meningkatkan domain peningkatan tunggal. Jika waktu habis ini tercapai, peningkatan berhenti dan berlanjut berdasarkan pengaturan untuk FailureAction. Nilai default tidak pernah (Tak Terbatas) dan harus disesuaikan dengan tepat untuk aplikasi Anda. |
UpgradeReplicaSetCheckTimeoutSec | PowerShell, Visual Studio | Diukur dalam hitungan detik. Layanan stateless--Dalam satu domain peningkatan, Service Fabric mencoba memastikan bahwa instans layanan tambahan tersedia. Jika jumlah instans target lebih dari satu, Service Fabric menunggu lebih dari satu instans tersedia, hingga nilai waktu habis maksimum. Waktu habis ini ditentukan dengan menggunakan properti UpgradeReplicaSetCheckTimeoutSec. Jika waktu habis berakhir, Service Fabric melanjutkan dengan peningkatan, terlepas dari jumlah instans layanan. Jika jumlah instans target adalah satu, Service Fabric tidak menunggu, dan segera melanjutkan dengan peningkatan. Layanan stateful--Dalam satu domain upgrade, Service Fabric mencoba memastikan bahwa replica set memiliki kuorum. Service Fabric menunggu kuorum tersedia, hingga nilai waktu habis maksimum (ditentukan oleh properti UpgradeReplicaSetCheckTimeoutSec). Jika waktu habis berakhir, Service Fabric melanjutkan dengan peningkatan, terlepas dari kuorum. Pengaturan ini diatur sebagai tidak pernah (tak terbatas) saat bergulir maju, dan 1200 detik saat bergulir mundur. |
UpgradeTimeoutSec | PowerShell, Visual Studio | Waktu habis (dalam detik) yang berlaku untuk seluruh peningkatan. Jika waktu habis ini tercapai, peningkatan berhenti dan FailureAction dipicu. Nilai default tidak pernah (Tak Terbatas) dan harus disesuaikan dengan tepat untuk aplikasi Anda. |
WhatIf | PowerShell | Nilai yang diperbolehkan adalah True dan False. Menunjukkan apa yang akan terjadi jika cmdlet berjalan. Cmdlet tidak dijalankan. |
Kriteria MaxPercentUnhealthyServices, MaxPercentUnhealthyPartitionsPerService, dan MaxPercentUnhealthyReplicasPerPartition dapat ditentukan per jenis layanan untuk instans aplikasi. Mengatur parameter per layanan ini memungkinkan aplikasi berisi berbagai jenis layanan dengan kebijakan evaluasi yang berbeda. Contohnya, jenis layanan gateway stateless dapat memiliki MaxPercentUnhealthyPartitionsPerService yang berbeda dari jenis layanan mesin yang stateful untuk instans aplikasi tertentu.
Parameter SFCTL
Peningkatan aplikasi Service Fabric yang menggunakan Service Fabric CLI menggunakan perintah sfctl application upgrade bersama dengan parameter yang diperlukan dan opsional berikut.
Parameter yang diperlukan
Parameter | Deskripsi |
---|---|
application-id | ID aplikasi yang sedang ditingkatkan. Ini biasanya nama lengkap aplikasi tanpa skema URI 'fabric:'. Mulai dari versi 6.0, nama hierarki dibatasi dengan karakter '~'. Misalnya, jika nama aplikasi adalah ‘fabric:/myapp/app1’, identitas aplikasi akan menjadi ‘myapp~app1’ di versi 6.0+ dan ‘myapp/app1’ di versi sebelumnya. |
application-version | Versi jenis aplikasi yang ditargetkan oleh peningkatan. |
parameter | Daftar parameter aplikasi yang dikodekan JSON akan diganti untuk diterapkan saat meningkatkan aplikasi. |
Parameter opsional
Parameter | Deskripsi |
---|---|
default-service-health-policy | JSON mengkodekan spesifikasi kebijakan kesehatan yang digunakan secara default untuk mengevaluasi kesehatan jenis layanan. Peta kosong secara default. |
failure-action | Nilai yang diperbolehkan adalah Rollback, Manual, dan Invalid. Tindakan kompensasi yang harus dilakukan saat peningkatan Monitored menemui pelanggaran kebijakan pemantauan atau kebijakan kesehatan. Rollback menentukan bahwa peningkatan akan secara otomatis mengembalikan ke versi pra-pemutakhiran. Manual menunjukkan bahwa peningkatan akan beralih ke mode pemutakhiran UnmonitoredManual. Invalid menunjukkan bahwa aksi kegagalan tidak valid. |
force-restart | Jika Anda memperbarui konfigurasi atau paket data tanpa memperbarui kode layanan, layanan direstart hanya jika properti ForceRestart diatur ke True. Ketika pembaruan selesai, Service Fabric memberi tahu layanan bahwa paket konfigurasi atau paket data baru tersedia. Layanan ini bertanggung jawab untuk menerapkan perubahan. Jika perlu, layanan dapat merestart sendiri. |
health-check-retry-timeout | Jumlah waktu untuk mencoba kembali evaluasi kesehatan ketika aplikasi atau klaster tidak sehat sebelum FailureAction dijalankan. Ini pertama kali diinterpretasikan sebagai string yang mewakili durasi ISO 8601. Jika gagal, maka ditafsirkan sebagai angka yang mewakili jumlah total milidetik. Default: PT0H10M0S. |
health-check-stable-duration | Jumlah waktu aplikasi atau kluster harus tetap sehat sebelum peningkatan berlanjut ke domain peningkatan berikutnya. Ini pertama kali diinterpretasikan sebagai string yang mewakili durasi ISO 8601. Jika gagal, maka ditafsirkan sebagai angka yang mewakili jumlah total milidetik. Default: PT0H2M0S. |
health-check-wait-duration | Jumlah waktu untuk menunggu setelah menyelesaikan domain pemutakhiran sebelum menerapkan kebijakan kesehatan. Ini pertama kali diinterpretasikan sebagai string yang mewakili durasi ISO 8601. Jika gagal, maka ditafsirkan sebagai angka yang mewakili jumlah total milidetik. Default: 0. |
max-unhealthy-apps | Nilai default dan yang disarankan adalah 0. Tentukan jumlah maksimum aplikasi yang disebarkan (lihat bagian Kesehatan) yang mungkin tidak sehat sebelum aplikasi dianggap tidak sehat dan gagal dalam peningkatan. Parameter ini mendefinisikan kesehatan aplikasi pada node dan membantu mendeteksi masalah selama peningkatan. Biasanya, replika aplikasi mendapatkan keseimbangan beban ke node lain, yang memungkinkan aplikasi untuk tampil sehat, sehingga memungkinkan peningkatan untuk dilanjutkan. Dengan menentukan kesehatan max-unhealthy-apps yang ketat, Service Fabric dapat mendeteksi masalah dengan paket aplikasi secara cepat dan membantu menghasilkan peningkatan cepat yang gagal. Dinyatakan sebagai angka antara 0 dan 100. |
mode | Nilai yang diizinkan adalah Monitored, UpgradeMode, UnmonitoredAuto, UnmonitoredManual. Defaultnya adalah UnmonitoredAuto. Lihat bagian Parameter yang Diperlukan Visual Studio dan PowerShell untuk deskripsi nilai ini. |
replica-set-check-timeout | Diukur dalam hitungan detik. Layanan stateless--Dalam satu domain peningkatan, Service Fabric mencoba memastikan bahwa instans layanan tambahan tersedia. Jika jumlah instans target lebih dari satu, Service Fabric menunggu lebih dari satu instans tersedia, hingga nilai waktu habis maksimum. Waktu habis ini ditentukan dengan menggunakan properti replica-set-check-timeout. Jika waktu habis berakhir, Service Fabric melanjutkan dengan peningkatan, terlepas dari jumlah instans layanan. Jika jumlah instans target adalah satu, Service Fabric tidak menunggu, dan segera melanjutkan dengan peningkatan. Layanan stateful--Dalam satu domain upgrade, Service Fabric mencoba memastikan bahwa replica set memiliki kuorum. Service Fabric menunggu kuorum tersedia, hingga nilai waktu habis maksimum (ditentukan oleh properti replica-set-check-timeout). Jika waktu habis berakhir, Service Fabric melanjutkan dengan peningkatan, terlepas dari kuorum. Pengaturan ini diatur sebagai tidak pernah (tak terbatas) saat bergulir maju, dan 1200 detik saat bergulir mundur. |
kebijakan-layanan-kesehatan | Peta berkode JSON dengan kebijakan kesehatan jenis layanan per nama jenis layanan. Peta kosong menjadi default. Format parameter JSON.. JSON untuk bagian "Nilai" mengandung MaxPercentUnhealthyServices, MaxPercentUnhealthyPartitionsPerService, dan MaxPercentUnhealthyReplicasPerPartition. Lihat bagian Parameter Opsional Visual Studio dan PowerShell untuk deskripsi parameter ini. |
waktu habis | Menentukan periode waktu habis dalam detik untuk operasi. Default: 60. |
upgrade-domain-timeout | Jumlah waktu setiap domain peningkatan harus diselesaikan sebelum FailureAction dijalankan. Ini pertama kali diinterpretasikan sebagai string yang mewakili durasi ISO 8601. Jika gagal, maka ditafsirkan sebagai angka yang mewakili jumlah total milidetik. Nilai default tidak pernah (Tak Terbatas) dan harus disesuaikan dengan tepat untuk aplikasi Anda. Default: P10675199DT02H48M05.4775807S. |
upgrade-timeout | Jumlah waktu setiap domain peningkatan harus diselesaikan sebelum FailureAction dijalankan. Ini pertama kali diinterpretasikan sebagai string yang mewakili durasi ISO 8601. Jika gagal, maka ditafsirkan sebagai angka yang mewakili jumlah total milidetik. Nilai default tidak pernah (Tak Terbatas) dan harus disesuaikan dengan tepat untuk aplikasi Anda. Default: P10675199DT02H48M05.4775807S. |
warning-as-error | Nilai yang diperbolehkan adalah True dan False. Nilai default adalah False. Dapat dikirim sebagai bendera. Perlakukan peristiwa kesehatan peringatan untuk aplikasi sebagai kesalahan saat mengevaluasi kesehatan aplikasi selama peningkatan. Secara default, Service Fabric tidak mengevaluasi peristiwa kesehatan peringatan menjadi kegagalan (kesalahan), sehingga peningkatan dapat dilanjutkan bahkan jika ada peristiwa peringatan. |
Langkah berikutnya
Meningkatkan Aplikasi Anda Menggunakan Visual Studio memandu Anda melalui peningkatan aplikasi menggunakan Visual Studio.
Meningkatkan Aplikasi Anda Menggunakan PowerShell memandu Anda melalui peningkatan aplikasi menggunakan PowerShell.
Meningkatkan Aplikasi Anda menggunakan Service Fabric CLI di Linux memandu Anda melalui peningkatan aplikasi menggunakan Service Fabric CLI.
Meningkatkan aplikasi Anda menggunakan Plugin Service Fabric Eclipse
Buat agar peningkatan aplikasi Anda kompatibel dengan mempelajari cara menggunakan Serialisasi Data.
Pelajari cara menggunakan fungsionalitas lanjutan saat meningkatkan aplikasi dengan merujuk ke Topik Lanjutan.
Perbaiki masalah umum dalam peningkatan aplikasi dengan mengacu pada langkah-langkah dalam Pemecahan Masalah Peningkatan Aplikasi.