Aracılığıyla paylaş


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ükseltilmekte olan uygulamanın 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. Buna ek olarak, sistem durumu değerlendirmesi başarısız olduğunda (örneğin, otomatik geri alma işlemi yaparken) gerçekleştirilecek eylemi yönetici yapılandırabilir. 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ı gözden geçirin:

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 oluşturma 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

Service Fabric komutlarından herhangi birinin PowerShell'de 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 oluşturduktan sonra, uygulama paketini ImageStore'a 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.

VisualObjects.ActorService projesinin ServiceManifest.xml dosyasını da (PackageRoot altında) güncelleştirmemiz gerekir. CodePackage'ı ve hizmet sürümünü 2.0'a ve ServiceManifest.xml dosyasındaki ilgili satırlara 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'a 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 parametreleri ve yükseltme işlemi hakkında bilgi edinin. Bu izlenecek yol için, 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 çıkaralım (böylece yükseltme bir sonraki güncelleştirme etki alanına geçmeden önce hizmetler en az 120 saniye boyunca iyi durumda olur). Ayrıca UpgradeDomainTimeout değerini 1200 saniye ve UpgradeTimeout değerini de 3000 saniye olarak ayarlayalım.

Son olarak UpgradeFailureAction'ı geri alma olarak da 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ığı) 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 oluşturulması gerekir. 2. Adımda 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ı boşaltıyor. Kullanılmayan uygulama paketlerinin tutulması disk depolama alanı kullanır 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, hangi uygulamanın yükseltiliyor olduğunu belirlemek için bu adı kullanır. Zaman aşımlarını çok kısa olacak şekilde ayarlarsanız, sorunu belirten 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'ı veya Get-ServiceFabricApplicationUpgrade PowerShell komutunu kullanarak izleyebilirsiniz:

Get-ServiceFabricApplicationUpgrade fabric:/VisualObjects

Birkaç dakika içinde, önceki PowerShell komutunu kullanarak aldığın 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çiş de yükseltme olarak kabul edilir. Zaman aşımları ve sistem durumu ilkeleriyle oynayarak bunları tanıyın. Azure kümesine dağıtım yaparken parametrelerin uygun şekilde ayarlanması gerekir. Zaman aşımlarını muhafazakar bir şekilde 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 bakarak uygulamanızı yükseltirken gelişmiş işlevleri kullanmayı öğrenin.

Uygulama yükseltmelerinde sık karşılaşılan sorunları gidermek için Uygulama yükseltme sorunlarını giderme makalesindeki adımlara bakın.