معلمات ترقية التطبيق
توضح هذه المقالة المعلمات المختلفة التي يتم تطبيقها أثناء ترقية تطبيق Azure Service Fabric. تتحكم معلمات ترقية التطبيق في المُهْلات وفحوصات السلامة التي يتم تطبيقها أثناء الترقية، وتحدد النُّهج التي يجب تطبيقها عند فشل الترقية. تُطبق معلمات التطبيق على الترقيات باستخدام:
- PowerShell
- Visual Studio
- SFCTL
- REST
يتم بدء ترقيات التطبيق عبر أحد أوضاع الترقية الثلاثة التي يختارها المستخدم. كل وضع له مجموعة خاصة به من معلمات التطبيق:
- Monitored
- Unmonitored Auto
- Unmonitored Manual
يتم وصف المعلمات الاختيارية والمطلوبة القابلة للتطبيق في كل قسم على النحو التالي.
معلمات Visual Studio وPowerShell
تستخدم ترقيات تطبيق Service Fabric باستخدام PowerShell الأمر Start-ServiceFabricApplicationUpgrade. يتم تحديد وضع الترقية عن طريق تمرير إما المعلمة Monitored أو UnmonitoredAuto أو UnmonitoredManual إلى Start-ServiceFabricApplicationUpgrade.
يتم تعيين معلمات ترقية تطبيق Visual Studio Service Fabric عبر مربع حوار Visual Studio Upgrade Settings. يتم تحديد وضع ترقية Visual Studio باستخدام مربع القائمة المنسدلة Upgrade Mode إما إلى Monitored أو UnmonitoredAuto أو UnmonitoredManual. لمزيد من المعلومات، راجع تكوين ترقية تطبيق Service Fabric في Visual Studio.
تتمثل المعلمات المطلوبة في الآتي
المعلمة | ينطبق على | الوصف |
---|---|---|
اسم التطبيق | PowerShell | اسم التطبيق الذي يتم ترقيته. أمثلة: fabric:/VisualObjects وfabric:/ClusterMonitor. |
إصدار نوع التطبيق | PowerShell | إصدار نوع التطبيق الذي تستهدفه الترقية. |
FailureAction | PowerShell, Visual Studio | القيم المسموح بها هي Rollback، Manual وInvalid. الإجراء التعويضي الذي يتم تنفيذه عندما تواجه ترقية تجري مراقبتها مخالفات لنهج المراقبة أو النهج الصحية. يحدد Rollback أن الترقية ستعود تلقائياً إلى إصدار ما قبل الترقية. يشير Manual إلى أن الترقية ستتعن إلى وضع الترقية UnmonitoredManual. يشير Invalid إلى أن إجراء الفشل غير صالح. |
Monitored | PowerShell | يشير إلى أن وضع الترقية مراقب. بعد أن ينتهي الأمر من الترقية لمجال ترقية ما، إذا كانت صحة مجال الترقية، ونظام المجموعة تفي بالنُهج الصحية التي تحددها، فإن Service Fabric تقوم بترقية مجال الترقية التالي. إذا فشل مجال الترقية أو نظام المجموعة في تلبية النهج الصحية، فستفشل الترقية وتقوم Service Fabric بإرجاع الترقية إلى مجال الترقية أو تعود إلى الوضع اليدوي وفقاً للنهج المحدد. هذا هو الوضع الموصى به لترقيات التطبيق في بيئة الإنتاج. |
UpgradeMode | Visual Studio | القيم المسموح بها هي Monitored (افتراضي)، UnmonitoredAuto أوUnmonitoredManual. راجع معلمات PowerShell لكل وضع في هذه المقالة للحصول على التفاصيل. |
UnmonitoredAuto | PowerShell | يشير إلى أن وضع الترقية تلقائي غير مراقب. بعد قيام Service Fabric بترقية مجال ترقية، تقوم Service Fabric بترقية مجال الترقية التالي بغض النظر عن حالة صحة التطبيق. هذا الوضع غير موصى به للإنتاج، وهو مفيد فقط أثناء تطوير أحد التطبيقات. |
UnmonitoredManual | PowerShell | يشير إلى أن وضع الترقية يدوي غير مراقب. بعد أن تقوم Service Fabric بترقية مجال ترقية، تنتظر ترقية مجال الترقية التالي باستخدام الأمر Resume-ServiceFabricApplicationUpgrade. |
تتمثل المعلمات الاختيارية في الآتي
معلمات التقييم الصحي اختيارية. إذا لم يتم تحديد معايير التقييم الصحي عند بدء الترقية، فإن Service Fabric يستخدم نهج سلامة التطبيق المحددة في ApplicationManifest.xml الخاص بمثيل التطبيق.
المعلمة | ينطبق على | الوصف |
---|---|---|
ApplicationParameter | PowerShell, Visual Studio | يحدد التجاوزات لمعلمات التطبيق. يتم تحديد معلمات تطبيق PowerShell كأزواج اسم/قيمة قابلة للتجزئة. على سبيل المثال، @{ "VotingData_MinReplicaSetSize" = "3"; "VotingData_PartitionCount" = "1" }. يمكن تحديد معلمات تطبيق Visual Studio في مربع حوار Publish Service Fabric Application في الحقل Application Parameters File. |
Confirm | PowerShell | القيم المسموح بها هي True وFalse. مطالبات للتأكيد قبل تشغيل الأمر. |
ConsiderWarningAsError | PowerShell, Visual Studio | القيم المسموح بها هي True وFalse. القيمة الافتراضية هي False. تعامل مع الأحداث الصحية التحذيرية للتطبيق على أنها أخطاء عند تقييم صحة التطبيق أثناء الترقية. بشكل افتراضي، لا تقوم Service Fabric بتقييم الأحداث الصحية التحذيرية على أنها حالات فشل (أخطاء)، لذلك يمكن متابعة الترقية حتى في حالة وجود أحداث تحذير. |
DefaultServiceTypeHealthPolicy | PowerShell, Visual Studio | تحدد النهج الصحية لنوع الخدمة الافتراضي المراد استخدامه للترقية المراقبة بالتنسيق MaxPercentUnhealthyPartitionsPerService, MaxPercentUnhealthyReplicasPerPartition, MaxPercentUnhealthyServices. على سبيل المثال، يشير 5،10،15 إلى القيم التالية: MaxPercentUnhealthyPartitionsPerService = 5, MaxPercentUnhealthyReplicasPerPartition = 10, MaxPercentUnhealthyServices = 15. |
القوة | PowerShell, Visual Studio | القيم المسموح بها هي True وFalse. يشير إلى أن عملية الترقية تتخطى رسالة التحذير وتفرض الترقية حتى في حالة عدم تغيير رقم الإصدار. يعد هذا مفيداً للاختبار المحلي ولكن لا يوصى باستخدامه في بيئة الإنتاج لأنه يتطلب إزالة التوزيع الحالي الذي يتسبب في حدوث تعطل وفقدان محتمل للبيانات. |
ForceRestart | PowerShell, Visual Studio | إذا قمت بتحديث التكوين أو حزمة البيانات دون تحديث التعليمة البرمجية للخدمة، فلن تتم إعادة تشغيل الخدمة إلا إذا تم تعيين خاصية ForceRestart على True. عند اكتمال التحديث، يقوم Service Fabric بإعلام الخدمة بوجود حزمة تكوين جديدة أو حزمة بيانات متاحة. الخدمة مسؤولة عن تطبيق التغييرات. إذا لزم الأمر، يمكن للخدمة إعادة تشغيل نفسها. |
HealthCheckRetryTimeoutSec | PowerShell, Visual Studio | المدة (بالثواني) التي يستمر فيها Service Fabric في إجراء التقييم الصحي قبل إعلان فشل الترقية. الافتراضي هو 600 ثانية. تبدأ هذه المدة بعد الوصول إلى HealthCheckWaitDurationSec. ضمن HealthCheckRetryTimeout، قد تجري Service Fabric فحوصات صحية متعددة لسلامة التطبيق. القيمة الافتراضية هي 10 دقائق ويجب تخصيصها بشكل مناسب لتطبيقك. |
HealthCheckStableDurationSec | PowerShell, Visual Studio | المدة (بالثواني) للتحقق من أن التطبيق مستقر قبل الانتقال إلى مجال الترقية التالي أو إكمال الترقية. تُستخدم هذه المدة للانتظار لمنع التغييرات غير المكتشفة في الصحة بعد إجراء الفحص الصحي مباشرةً. القيمة الافتراضية هي 120 ثانية، ويجب تخصيصها بشكل مناسب لتطبيقك. |
HealthCheckWaitDurationSec | PowerShell, Visual Studio | وقت الانتظار (بالثواني) بعد انتهاء الترقية في مجال الترقية قبل أن يقوم Service Fabric بتقييم صحة التطبيق. يمكن أيضاً اعتبار هذه المدة على أنها الوقت الذي يجب أن يتم فيه تشغيل التطبيق قبل اعتباره سليماً. إذا نجح التحقق من الصحة، تستمر عملية الترقية إلى مجال الترقية التالي. في حالة فشل فحص الصحة، يقوم Service Fabric بانتظار UpgradeHealthCheckInterval قبل إعادة محاولة الفحص الصحي مرة أخرى حتى يتم الوصول إلى HealthCheckRetryTimeoutSec. القيمة الافتراضية والموصى بها هي 0 ثانية. |
MaxPercentUnhealthyDeployedApplications | PowerShell, Visual Studio | القيمة الافتراضية والموصى بها هي 0. حدد الحد الأقصى لعدد التطبيقات المُوزعة (راجع قسم الصحة) التي يمكن أن تكون غير صحية قبل اعتبار التطبيق غير صحي ويفشل في الترقية. تحدد هذه المعلمة صحة التطبيق على العقدة وتساعد في اكتشاف المشكلات أثناء الترقية. عادةً ما تحصل النسخ المماثلة للتطبيق على موازنة تحميل للعقدة الأخرى، ما يسمح للتطبيق بالظهور بشكل سليم، ما يسمح باستمرار الترقية. من خلال تحديد صحة صارمة لـMaxPercentUnhealthyDeployedApplications، يمكن لـService Fabric اكتشاف مشكلة في حزمة التطبيق بسرعة والمساعدة في إنتاج ترقية سريعة فاشلة. |
MaxPercentUnhealthyServices | PowerShell, Visual Studio | معلمة لـDefaultServiceTypeHealthPolicy وServiceTypeHealthPolicyMap. القيمة الافتراضية والموصى بها هي 0. حدد الحد الأقصى لعدد الخدمات في مثيل التطبيق التي يمكن أن تكون غير صحية قبل اعتبار التطبيق غير صحي ويفشل في الترقية. |
MaxPercentUnhealthyPartitionsPerService | PowerShell, Visual Studio | معلمة لـDefaultServiceTypeHealthPolicy وServiceTypeHealthPolicyMap. القيمة الافتراضية والموصى بها هي 0. حدد الحد الأقصى لعدد الأقسام في خدمة ما الذي يمكن أن يكون غير صحي قبل اعتبار الخدمة غير صحية. |
MaxPercentUnhealthyReplicasPerPartition | PowerShell, Visual Studio | معلمة لـDefaultServiceTypeHealthPolicy وServiceTypeHealthPolicyMap. القيمة الافتراضية والموصى بها هي 0. حدد الحد الأقصى لعدد النسخ المماثلة في القسم الذي يمكن أن يكون غير صحي قبل اعتبار القسم غير صحي. |
ServiceTypeHealthPolicyMap | PowerShell, Visual Studio | يمثل النهج الصحية المستخدمة لتقييم صحة الخدمات التي تنتمي إلى نوع الخدمة. يأخذ إدخال جدول تجزئة بالتنسيق التالي: @ {"ServiceTypeName" : "MaxPercentUnhealthyPartitionsPerService,MaxPercentUnhealthyReplicasPerPartition,MaxPercentUnhealthyServices"} For example: @{ "ServiceTypeName01" = "5,10,5"; "ServiceTypeName02" = "5,5,5" } |
TimeoutSec | PowerShell , Visual Studio | يحدد فترة المهلة بالثواني للعملية. |
UpgradeDomainTimeoutSec | PowerShell, Visual Studio | الحد الأقصى للوقت (بالثواني) لترقية مجال ترقية واحد. إذا تم الوصول إلى هذه المهلة، فستتوقف الترقية وتستمر بناءً على إعداد FailureAction. القيمة الافتراضية هي أبداً (لانهائية) ويجب تخصيصها بشكل مناسب لتطبيقك. |
UpgradeReplicaSetCheckTimeoutSec | PowerShell, Visual Studio | تقاس بالثواني. خدمة عديمة الحالة- ضمن نطاق ترقية واحد، يحاول Service Fabric ضمان توفر مثيلات إضافية من الخدمة. إذا كان عدد المثيلات الهدف أكثر من واحد، فإن Service Fabric ينتظر توفر أكثر من مثيل واحد، حتى الحد الأقصى لقيمة المهلة. يتم تحديد هذه المهلة باستخدام خاصية UpgradeReplicaSetCheckTimeoutSec. في حالة انتهاء المهلة، يستمر Service Fabric في الترقية، بغض النظر عن عدد مثيلات الخدمة. إذا كان عدد المثيلات الهدف واحداً، فلن تنتظر Service Fabric، وتتابع على الفور الترقية. خدمة ذات حالة- في نطاق ترقية واحد، يحاول Service Fabric التأكد من أن مجموعة النسخ المماثلة بها حصة قانونية. تنتظر خدمة Service Fabric توفر الحصة، بحد أقصى لقيمة المهلة (المحددة بواسطة خاصية UpgradeReplicaSetCheckTimeoutSec ). في حالة انتهاء المهلة، يستمر Service Fabric في الترقية، بغض النظر عن النصاب القانوني. يتم تعيين هذا الإعداد على أنه أبداً (لانهائي) عند التدحرج للأمام، و1200 ثانية عند التراجع. |
UpgradeTimeoutSec | PowerShell, Visual Studio | مهلة (بالثواني) تنطبق على الترقية بأكملها. في حالة الوصول إلى هذه المهلة، تتوقف الترقية ويتم تشغيل FailureAction. القيمة الافتراضية هي أبداً (لانهائية) ويجب تخصيصها بشكل مناسب لتطبيقك. |
WhatIf | PowerShell | القيم المسموح بها هي True وFalse. تعرض ما سيحدث عند تشغيل الأمر cmdlet. لم يتم تشغيل cmdlet. |
يمكن تحديد معايير MaxPercentUnhealthyServices وMaxPercentUnhealthyPartitionsPerService وMaxPercentUnhealthyReplicasPerPartition لكل نوع خدمة لطبعة تطبيق. يسمح تعيين هذه المعلمات لكل خدمة للتطبيق بأن يحتوي على أنواع خدمات مختلفة مع سياسات تقييم مختلفة. على سبيل المثال، يمكن أن يحتوي نوع خدمة البوابة عديمة الحالة على MaxPercentUnhealthyPartitionsPerService يختلف عن نوع خدمة المحرك ذي الحالة لمثيل تطبيق معين.
معلمات SFCTL
ترقيات تطبيق Service Fabric تستخدم Service Fabric CLI يستخدم ترقيات التطبيق sfctl جنباً إلى جنب مع المعلمات المطلوبة والاختيارية التالية.
تتمثل المعلمات المطلوبة في الآتي
المعلمة | الوصف |
---|---|
application-id | معرّف التطبيق الذي تتم ترقيته. عادةً ما يكون هذا هو الاسم الكامل للتطبيق دون المخطط URI 'fabric:'. بدءاً من الإصدار 6.0، يتم تحديد الأسماء المتدرجة بالحرف '~'. على سبيل المثال، إذا كان اسم التطبيق هو «fabric:/myapp/app1»، فستكون هوية التطبيق «myapp~app1» في الإصدار 6.0+ و»myapp/app1» في الإصدارات السابقة. |
إصدار التطبيق | إصدار نوع التطبيق الذي تستهدفه الترقية. |
المعلمات | يتم تجاوز قائمة JSON المشفرة لمعامل التطبيق ليتم تطبيقها عند ترقية التطبيق. |
تتمثل المعلمات الاختيارية في الآتي
المعلمة | الوصف |
---|---|
default-service-health-policy | المواصفات المشفرة JSON لنهج الصحة المستخدمة افتراضياً لتقييم سلامة نوع الخدمة. الخريطة فارغة بشكل افتراضي. |
failure-action | القيم المسموح بها هي Rollback، Manual وInvalid. الإجراء التعويضي الذي يتم تنفيذه عندما تواجه ترقية تجري مراقبتها مخالفات لنهج المراقبة أو النهج الصحية. يحدد Rollback أن الترقية ستعود تلقائياً إلى إصدار ما قبل الترقية. يشير Manual إلى أن الترقية ستتعن إلى وضع الترقية UnmonitoredManual. يشير Invalid إلى أن إجراء الفشل غير صالح. |
force-restart | إذا قمت بتحديث التكوين أو حزمة البيانات دون تحديث التعليمة البرمجية للخدمة، فلن تتم إعادة تشغيل الخدمة إلا إذا تم تعيين خاصية ForceRestart على True. عند اكتمال التحديث، يقوم Service Fabric بإعلام الخدمة بوجود حزمة تكوين جديدة أو حزمة بيانات متاحة. الخدمة مسؤولة عن تطبيق التغييرات. إذا لزم الأمر، يمكن للخدمة إعادة تشغيل نفسها. |
health-check-retry-timeout | مقدار الوقت لإعادة محاولة التقييم الصحي عندما يكون التطبيق أو المجموعة غير سليمين قبل تنفيذ FailureAction. يتم تفسيرها أولًا كسلسلة تمثل مدة ISO 8601. إذا فشل ذلك، فسيتم تفسيره على أنه رقم يمثل العدد الإجمالي للميلي ثانية. الافتراضي: PT0H10M0S. |
health-check-stable-duration | مقدار الوقت الذي يجب أن يظل فيه التطبيق أو المجموعة سليمًا قبل متابعة الترقية إلى مجال الترقية التالي. يتم تفسيرها أولًا كسلسلة تمثل مدة ISO 8601. إذا فشل ذلك، فسيتم تفسيره على أنه رقم يمثل العدد الإجمالي للميلي ثانية. الافتراضي: PT0H2M0S. |
health-check-wait-duration | مقدار الوقت الذي يجب انتظاره بعد إكمال مجال الترقية قبل تطبيق السياسات الصحية. يتم تفسيرها أولًا كسلسلة تمثل مدة ISO 8601. إذا فشل ذلك، فسيتم تفسيره على أنه رقم يمثل العدد الإجمالي للميلي ثانية. الافتراضي: 0. |
max-unhealthy-apps | القيمة الافتراضية والموصى بها هي 0. حدد الحد الأقصى لعدد التطبيقات المُوزعة (راجع قسم الصحة) التي يمكن أن تكون غير صحية قبل اعتبار التطبيق غير صحي ويفشل في الترقية. تحدد هذه المعلمة صحة التطبيق على العقدة وتساعد في اكتشاف المشكلات أثناء الترقية. عادةً ما تحصل النسخ المماثلة للتطبيق على موازنة تحميل للعقدة الأخرى، ما يسمح للتطبيق بالظهور بشكل سليم، ما يسمح باستمرار الترقية. من خلال تحديد صحة مقيدة لـmax-unhealthy-apps، يمكن لـService Fabric اكتشاف مشكلة في حزمة التطبيق بسرعة والمساعدة في إنتاج ترقية سريعة فاشلة. ممثلة كرقم بين 0 و 100. |
الوضع | القيم المسموح بها هي Monitored، UpgradeMode، UnmonitoredAuto، UnmonitoredManual. الإعداد الافتراضي هو UnmonitoredAuto. راجع قسم Visual Studio وPowerShell Required Parameters للحصول على أوصاف لهذه القيم. |
replica-set-check-timeout | تقاس بالثواني. خدمة عديمة الحالة- ضمن نطاق ترقية واحد، يحاول Service Fabric ضمان توفر مثيلات إضافية من الخدمة. إذا كان عدد المثيلات الهدف أكثر من واحد، فإن Service Fabric ينتظر توفر أكثر من مثيل واحد، حتى الحد الأقصى لقيمة المهلة. يتم تحديد هذا المهلة باستخدام خاصية replica-set-check-timeout. في حالة انتهاء المهلة، يستمر Service Fabric في الترقية، بغض النظر عن عدد مثيلات الخدمة. إذا كان عدد المثيلات الهدف واحداً، فلن تنتظر Service Fabric، وتتابع على الفور الترقية. خدمة ذات حالة- في نطاق ترقية واحد، يحاول Service Fabric التأكد من أن مجموعة النسخ المماثلة بها حصة قانونية. تنتظر Service Fabric أن تتوفر الحصة، بحد أقصى لقيمة المهلة (المحددة بواسطة خاصية replica-set-check-timeout ). في حالة انتهاء المهلة، يستمر Service Fabric في الترقية، بغض النظر عن النصاب القانوني. يتم تعيين هذا الإعداد على أنه أبداً (لانهائي) عند التدحرج للأمام، و1200 ثانية عند التراجع. |
service-health-policy | الخريطة المشفرة JSON مع النهج الصحية لنوع الخدمة لكل اسم نوع الخدمة. الخريطة فارغة تكون افتراضية. تنسيق المعلمة JSON.. يحتوي JSON لجزء “Value” على MaxPercentUnhealthyServices وMaxPercentUnhealthyPartitionsPerService وMaxPercentUnhealthyReplicasPerPartition. راجع قسم معلمات Visual Studio وPowerShell الاختيارية للحصول على أوصاف لهذه المعلمات. |
المهلة | يحدد فترة المهلة بالثواني للعملية. الافتراضي: 60. |
upgrade-domain-timeout | مقدار الوقت الذي يجب أن يكتمل فيه كل نطاق ترقية قبل تنفيذ FailureAction. يتم تفسيرها أولًا كسلسلة تمثل مدة ISO 8601. إذا فشل ذلك، فسيتم تفسيره على أنه رقم يمثل العدد الإجمالي للميلي ثانية. القيمة الافتراضية هي أبداً (لانهائية) ويجب تخصيصها بشكل مناسب لتطبيقك. الافتراضي: P10675199DT02H48M05.4775807S. |
upgrade-timeout | مقدار الوقت الذي يجب أن يكتمل فيه كل نطاق ترقية قبل تنفيذ FailureAction. يتم تفسيرها أولًا كسلسلة تمثل مدة ISO 8601. إذا فشل ذلك، فسيتم تفسيره على أنه رقم يمثل العدد الإجمالي للميلي ثانية. القيمة الافتراضية هي أبداً (لانهائية) ويجب تخصيصها بشكل مناسب لتطبيقك. الافتراضي: P10675199DT02H48M05.4775807S. |
warning-as-error | القيم المسموح بها هي True وFalse. القيمة الافتراضية هي False. يمكن تمريرها كعلامة. تعامل مع الأحداث الصحية التحذيرية للتطبيق على أنها أخطاء عند تقييم صحة التطبيق أثناء الترقية. بشكل افتراضي، لا تقوم Service Fabric بتقييم الأحداث الصحية التحذيرية على أنها حالات فشل (أخطاء)، لذلك يمكن متابعة الترقية حتى في حالة وجود أحداث تحذير. |
الخطوات التالية
يرشدك Upgrading your Application Using Visual Studio خلال ترقية التطبيق باستخدام Visual Studio.
يرشدك Upgrading your Application Using PowerShell خلال ترقية التطبيق باستخدام PowerShell.
يرشدكUpgrading your Application using Service Fabric CLI on Linux خلال ترقية التطبيق باستخدام Service Fabric CLI.
ترقية التطبيق الخاص بك باستخدام Service Fabric Eclipse Plugin
اجعل ترقيات تطبيقك متوافقة من خلال تعلم كيفية استخدام Data Serialization.
تعرف على كيفية استخدام الوظائف المتقدمة أثناء ترقية التطبيق من خلال الرجوع إلى الموضوعات المتقدمة.
أصلح المشكلات الشائعة في ترقيات التطبيق بالرجوع إلى الخطوات في Troubleshooting Application Upgrades.