PowerShell kullanarak Service Fabric uygulama yükseltmesi


En sık kullanılan ve önerilen yükseltme yaklaşımı izlenen sıralı yükseltmedir. Azure Service Fabric, bir dizi sistem durumu ilkesine göre yükseltilen uygulamanın sistem durumunu izler. Bir güncelleştirme etki alanı (UD) yükseltildikten sonra Service Fabric uygulama durumunu değerlendirir ve bir sonraki güncelleştirme etki alanına devam eder veya sistem durumu ilkelerine bağlı olarak yükseltme başarısız olur.

yönetilen veya yerel API'ler, PowerShell, Azure CLI, Java veya REST kullanılarak izlenen bir uygulama yükseltmesi gerçekleştirilebilir. Visual Studio kullanarak yükseltme gerçekleştirme yönergeleri için bkz. Visual Studio kullanarak uygulamanızı yükseltme.

Service Fabric izlenen sıralı yükseltmelerle, uygulama yöneticisi Service Fabric'in uygulamanın iyi durumda olup olmadığını belirlemek için kullandığı sistem durumu değerlendirme ilkesini yapılandırabilir. Ayrıca yönetici, sistem durumu değerlendirmesi başarısız olduğunda gerçekleştirilecek eylemi yapılandırabilir (örneğin, otomatik geri alma işlemi gerçekleştirebilir.) Bu bölümde, PowerShell kullanan SDK örneklerinden biri için izlenen yükseltme adımları açıklanmıştır.

Uygulama yükseltme işleminde size yol gösteren bir eğitim videosu için bu sayfayı kontrol edin:

Not

ApplicationParameter'larbir uygulama yükseltmesinde korunmaz. Geçerli uygulama parametrelerini korumak için, kullanıcının önce parametreleri alması ve aşağıdaki gibi yükseltme API'si çağrısına geçirmesi gerekir:

$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

1. Adım: Visual Objects örneğini derleme ve dağıtma

VisualObjectsApplication uygulama projesine sağ tıklayıp Yayımla komutunu seçerek uygulamayı derleyin ve yayımlayın. Daha fazla bilgi için bkz. Service Fabric uygulama yükseltme öğreticisi. Alternatif olarak, uygulamanızı dağıtmak için PowerShell'i kullanabilirsiniz.

Not

PowerShell'de Service Fabric komutlarından herhangi birinin kullanılabilmesi için önce cmdlet'ini kullanarak kümeye Connect-ServiceFabricCluster bağlanmanız gerekir. Benzer şekilde, Kümenin yerel makinenizde zaten ayarlandığı varsayılır. Service Fabric geliştirme ortamınızı ayarlama makalesine bakın.

Projeyi Visual Studio'da derledikten sonra Uygulama paketini ImageStore'na kopyalamak için Copy-ServiceFabricApplicationPackage PowerShell komutunu kullanabilirsiniz. Uygulama paketini yerel olarak doğrulamak istiyorsanız Test-ServiceFabricApplicationPackage cmdlet'ini kullanın. Sonraki adım , Register-ServiceFabricApplicationType cmdlet'ini kullanarak uygulamayı Service Fabric çalışma zamanına kaydetmektir. Aşağıdaki adım , New-ServiceFabricApplication cmdlet'ini kullanarak uygulamanın bir örneğini başlatmaktır. Bu üç adım, Visual Studio'da Dağıt menü öğesini kullanmaya benzer. Sağlama tamamlandıktan sonra, tüketilen kaynakları azaltmak için kopyalanan uygulama paketini görüntü deposundan temizlemeniz gerekir. Bir uygulama türü artık gerekli değilse, aynı nedenle kaydı kaldırılmalıdır. Daha fazla bilgi için bkz. PowerShell kullanarak uygulamaları dağıtma ve kaldırma .

Artık kümeyi ve uygulamayı görüntülemek için Service Fabric Explorer kullanabilirsiniz. Uygulamanın, adres çubuğuna yazarak http://localhost:8081/visualobjects Internet Explorer'da gidilebilen bir web hizmeti vardır. Ekranda hareket eden bazı kayan görsel nesneler görmeniz gerekir. Ayrıca, uygulama durumunu denetlemek için Get-ServiceFabricApplication kullanabilirsiniz.

2. Adım: Görsel Nesneler örneğini güncelleştirme

1. Adımda dağıtılan sürümde görsel nesnelerin döndürülmediğini fark edebilirsiniz. Şimdi bu uygulamayı görsel nesnelerin de döndürdüğü bir uygulamaya yükseltelim.

VisualObjects çözümünde VisualObjects.ActorService projesini seçin ve StatefulVisualObjectActor.cs dosyasını açın. Bu dosyanın içinde yöntemine MoveObjectgidin, açıklama satırı oluşturun this.State.Move()ve açıklamasını this.State.Move(true)kaldırın. Bu değişiklik, hizmet yükseltildikten sonra nesneleri döndürür.

Ayrıca VisualObjects.ActorService projesinin ServiceManifest.xml dosyasını (PackageRoot altında) güncelleştirmemiz gerekir. CodePackage'ı ve hizmet sürümünü 2.0'a ve ServiceManifest.xml dosyasındaki ilgili satırları güncelleştirin. Bildirim dosyası değişikliklerini yapmak için çözüme sağ tıkladıktan sonra Visual Studio Bildirim Dosyalarını Düzenle seçeneğini kullanabilirsiniz.

Değişiklikler yapıldıktan sonra bildirim aşağıdaki gibi görünmelidir (vurgulanan bölümler değişiklikleri gösterir):

<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">

Şimdi ApplicationManifest.xml dosyası (VisualObjects çözümünün altındaki VisualObjects projesi altında bulunur) VisualObjects.ActorService projesinin 2.0 sürümüne güncelleştirildi. Ayrıca, Uygulama sürümü 1.0.0.0 sürümünden 2.0.0.0 sürümüne güncelleştirilir. ApplicationManifest.xml aşağıdaki kod parçacığı gibi görünmelidir:

<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" />

Şimdi yalnızca ActorService projesini seçip sağ tıklayıp Visual Studio'da Oluştur seçeneğini belirleyerek projeyi derleyin. Tümünü yeniden derle'yi seçerseniz, kod değişeceğinden tüm projelerin sürümlerini güncelleştirmeniz gerekir. Şimdi VisualObjectsApplication'a sağ tıklayıp Service Fabric Menüsü'ne tıklayıp Paketle'yi seçerek güncelleştirilmiş uygulamayı paketleyelim. Bu eylem, dağıtılabilir bir uygulama paketi oluşturur. Güncelleştirilmiş uygulamanız dağıtılmaya hazır.

3. Adım: Sistem durumu ilkelerine ve yükseltme parametrelerine karar verme

Uygulanan çeşitli yükseltme parametreleri, zaman aşımları ve sistem durumu ölçütlerini iyi anlamak için uygulama yükseltme parametrelerini ve yükseltme işlemini öğrenin. Bu kılavuzda, hizmet durumu değerlendirme ölçütü varsayılan (ve önerilen) değerlere ayarlanır; bu da yükseltmeden sonra tüm hizmetlerin ve örneklerin iyi durumda olması gerektiği anlamına gelir.

Ancak, HealthCheckStableDuration'ı 180 saniyeye yükseltelim (böylece yükseltme bir sonraki güncelleştirme etki alanına geçmeden önce hizmetlerin en az 120 saniye boyunca iyi durumda olması için). Ayrıca UpgradeDomainTimeout değerini 1200 saniye ve UpgradeTimeout değerini de 3000 saniye olarak ayarlayalım.

Son olarak UpgradeFailureAction değerini de geri alma olarak ayarlayalım. Bu seçenek, yükseltme sırasında herhangi bir sorunla karşılaşırsa Service Fabric'in uygulamayı önceki sürüme geri döndürmesini gerektirir. Bu nedenle, yükseltme başlatılırken (4. Adımda) aşağıdaki parametreler belirtilir:

FailureAction = Geri Alma

HealthCheckStableDurationSec = 180

UpgradeDomainTimeoutSec = 1200

UpgradeTimeout = 3000

4. Adım: Uygulamayı yükseltme için hazırlama

Artık uygulama derlendi ve yükseltilmeye hazır. Bir PowerShell penceresini yönetici olarak açar ve Get-ServiceFabricApplication yazarsanız, bunun dağıtılan VisualObjects'in 1.0.0.0 uygulama türü olduğunu size bildirir.

Uygulama paketi, Service Fabric SDK'sının sıkıştırmasını kaldırdığınız şu göreli yol altında depolanır: Samples\Services\Stateful\VisualObjects\VisualObjects\obj\x64\Debug. Uygulama paketinin depolandığı dizinde bir "Paket" klasörü bulmanız gerekir. En son derleme olduğundan emin olmak için zaman damgalarını denetleyin (yolları da uygun şekilde değiştirmeniz gerekebilir).

Şimdi güncelleştirilmiş uygulama paketini Service Fabric ImageStore'na (uygulama paketlerinin Service Fabric tarafından depolandığı yer) kopyalayalım. ApplicationPackagePathInImageStore parametresi Service Fabric'e uygulama paketini nerede bulabileceğini bildirir. Güncelleştirilmiş uygulamayı aşağıdaki komutla "VisualObjects_V2" içine koyduk (yolları yeniden uygun şekilde değiştirmeniz gerekebilir).

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

Sonraki adım, bu uygulamayı Register-ServiceFabricApplicationType komutu kullanılarak gerçekleştirilebilen Service Fabric'e kaydetmektir :

Register-ServiceFabricApplicationType -ApplicationPathInImageStore "VisualObjects\_V2"

Yukarıdaki komut başarılı olmazsa, büyük olasılıkla tüm hizmetlerin yeniden derlenmesi gerekir. Adım 2'de belirtildiği gibi, WebService sürümünüzü de güncelleştirmeniz gerekebilir.

Uygulama başarıyla kaydedildikten sonra uygulama paketini kaldırmanız önerilir. Görüntü deposundan uygulama paketlerinin silinmesi sistem kaynaklarını serbesttir. Kullanılmayan uygulama paketlerinin tutulması disk depolama alanını tüketir ve uygulama performansı sorunlarına yol açar.

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

5. Adım: Uygulama yükseltmesini başlatma

Şimdi, Start-ServiceFabricApplicationUpgrade komutunu kullanarak uygulama yükseltmesini başlatmaya hazırız:

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

Uygulama adı, ApplicationManifest.xml dosyasında açıklanan adla aynıdır. Service Fabric, yükseltilen uygulamayı belirlemek için bu adı kullanır. Zaman aşımlarını çok kısa olacak şekilde ayarlarsanız, sorunu bildiren bir hata iletisiyle karşılaşabilirsiniz. Sorun giderme bölümüne bakın veya zaman aşımlarını artırın.

Artık uygulama yükseltme işlemi devam ederken, Service Fabric Explorer kullanarak veya Get-ServiceFabricApplicationUpgrade PowerShell komutunu kullanarak izleyebilirsiniz:

Get-ServiceFabricApplicationUpgrade fabric:/VisualObjects

Birkaç dakika içinde, önceki PowerShell komutunu kullanarak aldığınız durum, tüm güncelleştirme etki alanlarının yükseltildiğini (tamamlandığını) belirtmelidir. Ve tarayıcı pencerenizdeki görsel nesnelerin dönmeye başladığını göreceksiniz!

Alıştırma olarak sürüm 2'den sürüm 3'e veya sürüm 2'den sürüm 1'e yükseltmeyi deneyebilirsiniz. Sürüm 2'den sürüm 1'e geçmek de yükseltme olarak kabul edilir. Zaman aşımları ve sistem durumu ilkeleriyle oynayarak bunları tanıyın. Bir Azure kümesine dağıtım yaparken parametrelerin uygun şekilde ayarlanması gerekir. Zaman aşımlarını muhafazakar olarak ayarlamak iyidir.

Sonraki adımlar

Visual Studio kullanarak uygulamanızı yükseltme, Visual Studio kullanarak uygulama yükseltme işleminde size yol gösterir.

Yükseltme parametrelerini kullanarak uygulamanızın yükseltme şeklini kontrol edin.

Veri serileştirmeyi kullanmayı öğrenerek uygulama yükseltmelerinizi uyumlu hale getirin.

Gelişmiş konulara başvurarak uygulamanızı yükseltirken gelişmiş işlevleri kullanmayı öğrenin.

Uygulama yükseltme sorunlarını giderme makalesindeki adımlara başvurarak uygulama yükseltmelerindeki yaygın sorunları düzeltin.