Share via


Service Fabric uygulama yükseltmesi

Azure Service Fabric uygulaması bir hizmet koleksiyonudur. Yükseltme sırasında Service Fabric, yeni uygulama bildirimini önceki sürümle karşılaştırır ve uygulamadaki hangi hizmetlerin güncelleştirme gerektirdiğini belirler. Service Fabric, hizmet bildirimlerindeki sürümü önceki sürümdeki sürümle karşılaştırır. Hizmet sürümü değişmemişse, bu hizmet yükseltilmeyecektir.

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

Sıralı yükseltmelere genel bakış

Sıralı uygulama yükseltmesinde yükseltme aşamalar halinde gerçekleştirilir. Her aşamada yükseltme, kümedeki düğümlerin güncelleştirme etki alanı adı verilen bir alt kümesine uygulanır. Sonuç olarak, uygulama yükseltme boyunca kullanılabilir durumda kalır. Yükseltme sırasında, küme eski ve yeni sürümlerin bir karışımını içerebilir.

Bu nedenle, iki sürüm ileri ve geriye doğru uyumlu olmalıdır. Uyumlu değilse, kullanılabilirliği korumak için çok aşamalı bir yükseltmeyi hazırlama işlemi uygulama yöneticisinin sorumluluğundadır. Çok aşamalı yükseltmede, ilk adım uygulamanın önceki sürümle uyumlu bir ara sürümüne yükseltmektir. İkinci adım, güncelleştirme öncesi sürümle uyumluluğu bozan ancak ara sürümle uyumlu olan son sürümü yükseltmektir.

Kümeyi yapılandırdığınızda küme bildiriminde güncelleştirme etki alanları belirtilir. Güncelleştirme etki alanları güncelleştirmeleri belirli bir sırada almaz. Güncelleştirme etki alanı, bir uygulama için mantıksal dağıtım birimidir. Güncelleştirme etki alanları, yükseltme sırasında hizmetlerin yüksek kullanılabilirlik düzeyinde kalmasına olanak sağlar.

Yükseltme kümedeki tüm düğümlere uygulanırsa, sıralı olmayan yükseltmeler mümkündür. Bu durum, uygulamanın yalnızca bir güncelleştirme etki alanına sahip olması durumunda geçerlidir. Hizmet kapandığı ve yükseltme sırasında kullanılamadığı için bu yaklaşım önerilmez. Ayrıca Azure, bir küme yalnızca bir güncelleştirme etki alanıyla ayarlandığında herhangi bir garanti sağlamaz.

Yükseltme tamamlandıktan sonra tüm hizmetler ve çoğaltmalar (örnekler) aynı sürümde kalır; yükseltme başarılı olursa yeni sürüme güncelleştirilir; Yükseltme başarısız olursa ve geri alınırsa eski sürüme geri alınır.

Yükseltmeler sırasında sistem durumu denetimleri

Yükseltme için sistem durumu ilkelerinin ayarlanması gerekir (veya varsayılan değerler kullanılabilir). Tüm güncelleştirme etki alanları belirtilen zaman aşımları içinde yükseltildiğinde ve tüm güncelleştirme etki alanları iyi durumda kabul edildiğinde yükseltme başarılı olarak kabul edilir. İyi durumda bir güncelleştirme etki alanı, güncelleştirme etki alanının sistem durumu ilkesinde belirtilen tüm sistem durumu denetimlerini geçirdiği anlamına gelir. Örneğin sistem durumu ilkesi, sistem durumu Service Fabric tarafından tanımlandığından bir uygulama örneği içindeki tüm hizmetlerin iyi durumda olmasını zorunlu kılabilir.

Service Fabric'in yükseltmesi sırasında sistem durumu ilkeleri ve denetimleri hizmet ve uygulamadan bağımsızdır. Başka bir ifadeyle, hizmete özgü test yapılmaz. Örneğin, hizmetinizin aktarım hızı gereksinimi olabilir, ancak Service Fabric'in aktarım hızını denetlemeye yönelik bilgileri yoktur. Gerçekleştirilen denetimler için sistem durumu makalelerine bakın. Yükseltme sırasında gerçekleşen denetimler, uygulama paketinin doğru kopyalanıp kopyalanmadığını, örneğin başlatılıp başlatılmadığını ve benzeri testleri içerir.

Uygulama durumu, uygulamanın alt varlıklarının bir toplamıdır. Kısacası, Service Fabric uygulama üzerinde bildirilen sistem durumu aracılığıyla uygulamanın sistem durumunu değerlendirir. Ayrıca uygulama için tüm hizmetlerin durumunu da bu şekilde değerlendirir. Service Fabric, hizmet çoğaltması gibi alt öğelerinin durumunu toplayarak uygulama hizmetlerinin durumunu daha da değerlendirir. Uygulama sistem durumu ilkesi karşılandıktan sonra yükseltme devam edebilir. Sistem durumu ilkesi ihlal edilirse, uygulama yükseltmesi başarısız olur.

Yükseltme modları

Uygulama yükseltmesi için önerdiğimiz mod, yaygın olarak kullanılan mod olan izlenen moddur. İzlenen mod yükseltmeyi bir güncelleştirme etki alanında gerçekleştirir ve tüm sistem durumu denetimleri başarılı olursa (belirtilen ilkeye göre), otomatik olarak bir sonraki güncelleştirme etki alanına geçer. Sistem durumu denetimleri başarısız olursa ve/veya zaman aşımlarına ulaşılırsa, güncelleştirme etki alanı için yükseltme geri alınır veya mod izlenmeyen el ile değiştirilir. Başarısız yükseltmeler için bu iki moddan birini seçmek üzere yükseltmeyi yapılandırabilirsiniz.

İzlenmeyen el ile modun, bir sonraki güncelleştirme etki alanında yükseltmeyi başlatması için bir güncelleştirme etki alanındaki her yükseltmeden sonra el ile müdahale edilmesi gerekir. Service Fabric sistem durumu denetimleri yapılmaz. Yönetici, yükseltmeyi sonraki güncelleştirme etki alanında başlatmadan önce sistem durumu veya durum denetimlerini gerçekleştirir.

Varsayılan hizmetleri yükseltme

Uygulama bildiriminde tanımlanan bazı varsayılan hizmet parametreleri, uygulama yükseltmesinin bir parçası olarak da yükseltilebilir. Yalnızca Update-ServiceFabricService aracılığıyla değiştirilmesini destekleyen hizmet parametreleri yükseltmenin bir parçası olarak değiştirilebilir. Uygulama yükseltmesi sırasında varsayılan hizmetleri değiştirme davranışı aşağıdaki gibidir:

  1. Yeni uygulama bildiriminde kümede henüz mevcut olmayan varsayılan hizmetler oluşturulur.
  2. Hem önceki hem de yeni uygulama bildirimlerinde bulunan varsayılan hizmetler güncelleştirilir. Yeni uygulama bildirimindeki varsayılan hizmetin parametreleri, mevcut hizmetin parametrelerinin üzerine yazar. Varsayılan bir hizmeti güncelleştirme işlemi başarısız olursa uygulama yükseltmesi otomatik olarak geri alınır.
  3. Yeni uygulama bildiriminde bulunmayan varsayılan hizmetler, kümede varsa silinir. Varsayılan bir hizmet silindiğinde bu hizmetin tüm durumunun silineceğini ve geri alınamayacağını unutmayın.

Bir uygulama yükseltmesi geri alındığında, yükseltme başlatılmadan önce varsayılan hizmet parametreleri eski değerlerine geri döndürülür, ancak silinen hizmetler eski durumlarıyla yeniden oluşturulamaz.

İpucu

Yukarıdaki kurallar 2) ve 3' ü etkinleştirmek için EnableDefaultServicesUpgrade kümesi yapılandırma ayarının true olması gerekir (varsayılan hizmet güncelleştirmesi ve silme). Bu özellik, Service Fabric sürüm 5.5'den başlayarak desteklenir.

HTTPS uç noktalarıyla birden çok uygulamayı yükseltme

HTTPS kullanırken aynı uygulamanın farklı örnekleri için aynı bağlantı noktasını kullanmamaya dikkat etmeniz gerekir. Bunun nedeni, Service Fabric'in uygulama örneklerinden biri için sertifikayı yükseltemeyecek olmasıdır. Örneğin, uygulama 1 veya uygulama 2'nin ikisi de sertifika 1'i sertifika 2'ye yükseltmek istiyorsa. Yükseltme gerçekleştiğinde Service Fabric, diğer uygulama tarafından hala kullanılıyor olsa bile cert 1 kaydını http.sys ile temizlemiş olabilir. Bunu önlemek için Service Fabric, bağlantı noktasında sertifikayla kaydedilmiş başka bir uygulama örneği olduğunu algılar (http.sys nedeniyle) ve işlemi başarısız olur.

Bu nedenle Service Fabric, farklı uygulama örneklerinde aynı bağlantı noktasını kullanarak iki farklı hizmeti yükseltmeyi desteklemez. Başka bir deyişle, aynı sertifikayı aynı bağlantı noktasındaki farklı hizmetlerde kullanamazsınız. Aynı bağlantı noktasında paylaşılan bir sertifikanız olması gerekiyorsa, hizmetlerin yerleştirme kısıtlamaları olan farklı makinelere yerleştirildiğinden emin olmanız gerekir. Alternatif olarak, her uygulama örneğindeki her hizmet için mümkünse Service Fabric dinamik bağlantı noktalarını kullanmayı da göz önünde bulundurun.

Yükseltmenin https ile başarısız olduğunu görürseniz , "Windows HTTP Server API'sinin bir bağlantı noktasını paylaşan uygulamalar için birden çok sertifikayı desteklemediğini" belirten bir hata uyarısı.

Uygulama yükseltme akış çizelgesi

Bu paragrafı izleyen akış çizelgesi, Service Fabric uygulamasının yükseltme işlemini anlamanıza yardımcı olabilir. Özellikle, akışta HealthCheckStableDuration, HealthCheckRetryTimeout ve UpgradeHealthCheckInterval gibi zaman aşımlarının, bir güncelleştirme etki alanındaki yükseltmenin başarılı veya başarısız olarak kabul edildiğinde denetlenmesine nasıl yardımcı olduğu açıklanır.

Service Fabric Uygulaması için yükseltme işlemi

Sonraki adımlar

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

PowerShell Kullanarak Uygulamanızı Yükseltme, PowerShell kullanarak uygulama yükseltme işleminde size yol gösterir.

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

Veri Serileştirme'yi kullanmayı öğrenerek uygulama yükseltmelerinizi uyumlu hale getirin.

Gelişmiş Konular'a 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.