Aracılığıyla paylaş


Service Fabric uygulaması yükseltme

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şmediyse, 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 bir alt kümesine uygulanır ve güncelleştirme etki alanı olarak adlandırılı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 geri uyumlu olmalıdır. Uyumlu değilse, uygulama yöneticisi kullanılabilirliği korumak için çok aşamalı bir yükseltmeyi hazırlamadan sorumludur. Ç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 güncelleştirme etki alanları küme bildiriminde 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 olduğu durumlardır. Hizmet kapandığından ve yükseltme sırasında kullanılamadığından 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, bunlar 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ının iyi durumda olduğu varsayıldığında 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çtiği anlamına gelir. Örneğin sistem durumu ilkesi, sistem durumu Service Fabric tarafından tanımlandığı için bir uygulama örneği içindeki tüm hizmetlerin iyi durumda olmasını zorunlu kılabilir.

Service Fabric 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ı vb. testlerini içerir.

Uygulama durumu, uygulamanın alt varlıklarının bir toplamıdır. Kısaca, 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 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 yükseltme, güncelleştirme etki alanı için geri alınır veya mod izlenmeyen el ile değiştirilir. Yükseltmeyi, başarısız yükseltmeler için bu iki moddan birini seçecek şekilde yapılandırabilirsiniz.

İzlenmeyen el ile mod, bir güncelleştirme etki alanındaki her yükseltmeden sonra bir sonraki güncelleştirme etki alanında yükseltmeyi başlatmak için el ile müdahaleye ihtiyaç duyar. 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 hizmetin silinmesinin, hizmetin tüm durumunun silinmesine neden olacağını 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 (varsayılan hizmet güncelleştirmesi ve silme) 2. ve 3. kuralları etkinleştirmek için EnableDefaultServicesUpgrade kümesi yapılandırma ayarının true olması gerekir. Bu özellik Service Fabric 5.5 sürümünden itibaren 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 birinin sertifikasını yükseltemeyecek olmasıdır. Örneğin, uygulama 1 veya uygulama 2'nin her ikisi de sertifika 1'ini sertifika 2'ye yükseltmek istiyorsa. Yükseltme gerçekleştiğinde Service Fabric, diğer uygulama hala kullanıyor olsa bile http.sys ile cert 1 kaydını 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'si bir bağlantı noktasını paylaşan uygulamalar için birden çok sertifikayı desteklemez" 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 denetime 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ükseltmelerinde Sorun Giderme makalesindeki adımlara başvurarak uygulama yükseltmelerindeki yaygın sorunları düzeltin.