Service Fabric uygulaması yaşam döngüsü

Diğer platformlarda olduğu gibi Azure Service Fabric'te de bir uygulama genellikle şu aşamalardan geçer: tasarım, geliştirme, test, dağıtım, yükseltme, bakım ve kaldırma. Service Fabric, geliştirmeden dağıtıma, günlük yönetime ve bakımdan sonunda kullanımdan kaldırmaya kadar bulut uygulamalarının tam uygulama yaşam döngüsü için birinci sınıf destek sağlar. Hizmet modeli, birkaç farklı rolün uygulama yaşam döngüsüne bağımsız olarak katılmasını sağlar. Bu makalede API'lere genel bir bakış ve Service Fabric uygulama yaşam döngüsünün aşamaları boyunca farklı roller tarafından nasıl kullanıldıkları anlatılır.

Uygulama yaşam döngünüzü yönetmeyi açıklayan eğitim videosu için bu sayfayı gözden geçirin:

Önemli

Service Fabric ile etkileşim kurmak için kullanılan iki CLI yardımcı programı vardır. Azure CLI, Azure'da barındırılan Service Fabric kümesi gibi Azure kaynaklarını yönetmek için kullanılır. Service Fabric CLI, Service Fabric kümesine (barındırıldığı yerden bağımsız olarak) doğrudan bağlanarak kümeyi, uygulamaları ve hizmetleri yönetmek için kullanılır.

Hizmet modeli rolleri

Hizmet modeli rolleri şunlardır:

  • Hizmet geliştiricisi: Aynı türde veya farklı türlerde birden çok uygulamada yeniden amaçlanabilen ve kullanılabilecek modüler ve genel hizmetler geliştirir. Örneğin, kuyruk hizmeti bilet oluşturma uygulaması (yardım masası) veya e-ticaret uygulaması (alışveriş sepeti) oluşturmak için kullanılabilir.
  • Uygulama geliştiricisi: Belirli gereksinimleri veya senaryoları karşılamak için bir hizmet koleksiyonunu tümleştirerek uygulamalar oluşturur. Örneğin, bir e-ticaret web sitesi açık artırma çözümü oluşturmak için "JSON Durum Bilgisi Olmayan Front-End Hizmeti", "Açık Artırma Durum Bilgisi Olan Hizmet" ve "Durum Bilgisi Olan Hizmeti Sıraya Al" ile tümleştirebilir.
  • Uygulama yöneticisi: Uygulama yapılandırması (yapılandırma şablonu parametrelerini doldurma), dağıtım (kullanılabilir kaynaklara eşleme) ve hizmet kalitesiyle ilgili kararlar alır. Örneğin, bir uygulama yöneticisi uygulamanın dil yerel ayarını (Birleşik Devletler için İngilizce veya örneğin Japonya için Japonca) karar verir. Dağıtılan farklı bir uygulamanın farklı ayarları olabilir.
  • İşleç: Uygulama yöneticisi tarafından belirtilen uygulama yapılandırmasına ve gereksinimlerine göre uygulamaları dağıtır. Örneğin, bir operatör uygulamayı sağlar ve dağıtır ve Azure'da çalıştığından emin olur. Operatörler uygulama durumu ve performans bilgilerini izler ve gerektiğinde fiziksel altyapıyı korur.

Geliştirme

  1. Bir hizmet geliştiricisiReliable Actors veya Reliable Services programlama modelini kullanarak farklı türlerde hizmetler geliştirir.
  2. Hizmet geliştiricisi, bir veya daha fazla kod, yapılandırma ve veri paketinden oluşan bir hizmet bildirim dosyasında geliştirilen hizmet türlerini bildirimli olarak açıklar.
  3. Ardından bir uygulama geliştiricisi farklı hizmet türlerini kullanarak bir uygulama oluşturur.
  4. Uygulama geliştiricisi, bağlı hizmetlerin hizmet bildirimlerine başvurarak ve bağlı hizmetlerin farklı yapılandırma ve dağıtım ayarlarını uygun şekilde geçersiz kılıp parametreleştirerek uygulama bildirimindeki uygulama türünü bildirimli olarak açıklar.

Örnekler için bkz . Reliable Actors'ı kullanmaya başlama ve Reliable Services'ı kullanmaya başlama .

Dağıtma

  1. Uygulama yöneticisi, uygulama bildiriminde ApplicationType öğesinin uygun parametrelerini belirterek uygulama türünü bir Service Fabric kümesine dağıtılacak belirli bir uygulamaya uyarlar.
  2. Operatör, CopyApplicationPackage yöntemini veyaCopy-ServiceFabricApplicationPackage cmdlet'ini kullanarak uygulama paketini küme görüntü deposuna yükler. Uygulama paketi, uygulama bildirimini ve hizmet paketlerinin koleksiyonunu içerir. Service Fabric, bir Azure blob deposu veya Service Fabric sistem hizmeti olabilecek görüntü deposunda depolanan uygulama paketinden uygulamaları dağıtır.
  3. Operatör daha sonra ProvisionApplicationAsync yöntemini, Register-ServiceFabricApplicationType cmdlet'ini veya Uygulama Sağlama REST işlemini kullanarak karşıya yüklenen uygulama paketinden hedef kümedeki uygulama türünü sağlar.
  4. Uygulamayı sağladıktan sonra, işleçCreateApplicationAsync yöntemini, New-ServiceFabricApplication cmdlet'ini veya Uygulama REST Oluşturma işlemini kullanarak uygulama yöneticisi tarafından sağlanan parametrelerle uygulamayı başlatır.
  5. Uygulama dağıtıldıktan sonra, bir operatörCreateServiceAsync yöntemini, New-ServiceFabricService cmdlet'ini veya Hizmet REST Oluşturma işlemini kullanarak uygulama için kullanılabilir hizmet türlerine göre yeni hizmet örnekleri oluşturur.
  6. Uygulama artık Service Fabric kümesinde çalışıyor.

Örnekler için bkz . Uygulama dağıtma .

Test etme

  1. Yerel geliştirme kümesine veya test kümesine dağıttıktan sonra, hizmet geliştiricisiFailoverTestScenarioParameters ve FailoverTestScenario sınıflarını veya Invoke-ServiceFabricFailoverTestScenario cmdlet'ini kullanarak yerleşik yük devretme testi senaryosunu çalıştırır. Yük devretme testi senaryosu, hala kullanılabilir ve çalışır durumda olduğundan emin olmak için önemli geçişler ve yük devretmeler aracılığıyla belirtilen bir hizmeti çalıştırır.
  2. Hizmet geliştiricisi daha sonra ChaosTestScenarioParameters ve ChaosTestScenario sınıflarını veya Invoke-ServiceFabricChaosTestScenario cmdlet'ini kullanarak yerleşik chaos test senaryosunu çalıştırır. Kaos testi senaryosu kümede rastgele olarak birden çok düğüm, kod paketi ve çoğaltma hatası oluşturur.
  3. Hizmet geliştiricisi, birincil çoğaltmaları küme etrafında hareket ettiren test senaryoları yazarak hizmet-hizmet iletişimini test eder.

Daha fazla bilgi için bkz . Hata Analizi Hizmetine Giriş .

Yükseltme

  1. Hizmet geliştiricisi, örnek uygulamanın bileşen hizmetlerini güncelleştirir ve/veya hataları düzeltir ve hizmet bildiriminin yeni bir sürümünü sağlar.
  2. Uygulama geliştiricisi tutarlı hizmetlerin yapılandırma ve dağıtım ayarlarını geçersiz kılar ve parametreleştirir ve uygulama bildiriminin yeni bir sürümünü sağlar. Uygulama geliştiricisi daha sonra hizmet bildirimlerinin yeni sürümlerini uygulamaya ekler ve güncelleştirilmiş bir uygulama paketinde uygulama türünün yeni bir sürümünü sağlar.
  3. Uygulama yöneticisi, uygun parametreleri güncelleştirerek uygulama türünün yeni sürümünü hedef uygulamaya ekler.
  4. Operatör, güncelleştirilmiş uygulama paketini CopyApplicationPackage yöntemini veya Copy-ServiceFabricApplicationPackage cmdlet'ini kullanarak küme görüntü deposuna yükler. Uygulama paketi, uygulama bildirimini ve hizmet paketlerinin koleksiyonunu içerir.
  5. OperatörProvisionApplicationAsync yöntemini, Register-ServiceFabricApplicationType cmdlet'ini veya Uygulama Sağlama REST işlemini kullanarak hedef kümedeki uygulamanın yeni sürümünü sağlar.
  6. OperatörUpgradeApplicationAsync yöntemini, Start-ServiceFabricApplicationUpgrade cmdlet'ini veya Bir Uygulamayı Yükseltme REST işlemini kullanarak hedef uygulamayı yeni sürüme yükseltir.
  7. Operatör, GetApplicationUpgradeProgressAsync yöntemini, Get-ServiceFabricApplicationUpgrade cmdlet'ini veya Uygulama Yükseltme İlerleme durumunu alma REST işlemini kullanarak yükseltmenin ilerleme durumunu denetler.
  8. Gerekirse, işleçUpdateApplicationUpgradeAsync yöntemini, Update-ServiceFabricApplicationUpgrade cmdlet'ini veya Uygulama Yükseltme REST'sini Güncelleştir işlemini kullanarak geçerli uygulama yükseltmesinin parametrelerini değiştirir ve yeniden uygular.
  9. Gerekirse, işleçRollbackApplicationUpgradeAsync yöntemini, Start-ServiceFabricApplicationRollback cmdlet'ini veya Geri Alma Uygulaması Yükseltme REST işlemini kullanarak geçerli uygulama yükseltmesini geri alır.
  10. Service Fabric, bağlı hizmetlerinden herhangi birinin kullanılabilirliğini kaybetmeden kümede çalışan hedef uygulamayı yükseltir.

Örnekler için bkz. Uygulama yükseltme öğreticisi .

Bakım

  1. İşletim sistemi yükseltmeleri ve düzeltme ekleri için Service Fabric, kümede çalışan tüm uygulamaların kullanılabilirliğini garanti etmek için Azure altyapısıyla arabirim oluşturur.
  2. Service Fabric platformuna yapılan yükseltmeler ve düzeltme ekleri için, Service Fabric kümede çalışan uygulamalardan herhangi birinin kullanılabilirliğini kaybetmeden kendisini yükseltir.
  3. Uygulama yöneticisi, geçmiş kapasite kullanım verilerini analiz ettikten ve gelecekteki talebi yansıtarak düğümlerin kümeden eklenmesini veya kaldırılmasını onaylar.
  4. İşleç, uygulama yöneticisi tarafından belirtilen düğümleri ekler ve kaldırır.
  5. Kümeye yeni düğümler eklendiğinde veya mevcut düğümler kümeden kaldırıldığında, Service Fabric en iyi performansı elde etmek için kümedeki tüm düğümlerde çalışan uygulamaların yükünü otomatik olarak dengeler.

Kaldır

  1. OperatörDeleteServiceAsync yöntemini,Remove-ServiceFabricService cmdlet'ini veya Hizmeti Silme REST işlemini kullanarak uygulamanın tamamını kaldırmadan kümede çalışan bir hizmetin belirli bir örneğini silebilir.
  2. Operatör ayrıca DeleteApplicationAsync yöntemini, Remove-ServiceFabricApplication cmdlet'ini veya Delete Application REST işlemini kullanarak bir uygulama örneğini ve tüm hizmetlerini silebilir.
  3. Uygulama ve hizmetler durdurulduktan sonra işleçUnprovisionApplicationAsync yöntemini, Unregister-ServiceFabricApplicationType cmdlet'ini veya Uygulama REST Sağlamasını Kaldır işlemini kullanarak uygulama türünün sağlamasını kaldırabilir. Uygulama türünün sağlamasını kaldırmak, uygulama paketini ImageStore'ndan kaldırmaz.
  4. Operatör, RemoveApplicationPackage yöntemini veyaRemove-ServiceFabricApplicationPackage cmdlet'ini kullanarak uygulama paketini ImageStore'ndan kaldırır.

Örnekler için bkz . Uygulama dağıtma .

Küme görüntü deposunda disk alanını koruma

ImageStoreService kopyalanan ve sağlanan paketleri tutar ve bu da dosyaların birikmesine yol açabilir. Dosya birikmesi ImageStoreService'in (fabric:/System/ImageStoreService) diski doldurmasına neden olabilir ve ImageStoreService çoğaltmaları için derleme süresini artırabilir.

Dosya birikmesi önlemek için aşağıdaki sağlama dizisini kullanın:

  1. Paketi ImageStore'na kopyalama ve sıkıştırma seçeneğini kullanma

  2. Paketi sağlama

  3. Görüntü deposundaki paketi kaldırma

  4. Uygulamayı/kümeyi yükseltme

  5. Eski sürümün sağlamasını kaldırma

Yukarıdaki yordamda yer alan 3. ve 5. adımlar, görüntü deposunda dosyaların birikmesini engeller.

Otomatik temizleme yapılandırması

PowerShell veya XML kullanarak yukarıdaki 3. adımı otomatikleştirebilirsiniz. Bu, uygulama türünün başarıyla kaydedilmesinden sonra uygulama paketinin otomatik olarak silinmesine neden olur.

PowerShell:

Register-ServiceFabricApplicationTye -ApplicationPackageCleanupPolicy Automatic

XML:

<Section Name="Management">
  <Parameter Name="CleanupApplicationPackageOnProvisionSuccess" Value="True" />
</Section>

XML kullanarak yukarıdaki 5. adımı otomatikleştirebilirsiniz. Bu, kullanılmayan uygulama türlerinin otomatik olarak kaydının alınmasına neden olur.

<Section Name="Management">
  <Parameter Name="CleanupUnusedApplicationTypes" Value="true" />
  <Parameter Name="PeriodicCleanupUnusedApplicationTypes" Value="true" />     
  <Parameter Name="TriggerAppTypeCleanupOnProvisionSuccess" Value="true" />
  <Parameter Name="MaxUnusedAppTypeVersionsToKeep" Value="3" />
</Section>

Düğümlerde dosyaları ve verileri temizleme

Uygulama dosyalarının çoğaltılması, dengeleme eylemlerine bağlı olarak dosyaları sonunda tüm düğümlere dağıtır. Bu, uygulama sayısına ve dosya boyutuna bağlı olarak disk baskısı oluşturabilir. Düğümde etkin örnek çalıştırılmasa bile, eski bir örnekteki dosyalar korunur. Durum bilgisi olan hizmetler tarafından kullanılan güvenilir koleksiyonlardan veriler için de aynı durum geçerlidir. Bu, daha yüksek kullanılabilirlik amacına hizmet eder. Aynı düğümde yeni bir uygulama örneği olması durumunda hiçbir dosya kopyalanamaz. Güvenilir koleksiyonlar için yalnızca delta çoğaltılmalıdır.

Uygulama ikili dosyalarını tamamen kaldırmak için uygulama türünün kaydını kaldırmanız gerekir.

Disk baskısını azaltmaya yönelik öneriler:

  1. Remove-ServiceFabricApplicationPackage bu işlem paketi geçici karşıya yükleme konumundan kaldırır.
  2. Unregister-ServiceFabricApplicationType , uygulama türü dosyalarını görüntü deposu hizmetinden ve tüm düğümlerden kaldırarak depolama alanını serbest bırakır. Silme yöneticisi varsayılan olarak saatte bir çalıştırılır.
  3. CleanupUnusedApplicationTypes , kullanılmayan eski uygulama sürümlerini otomatik olarak temizler.
    {
      "name": "Management",
      "parameters": [
        {
          "name": "CleanupUnusedApplicationTypes",
          "value": true
        },
        {
          "name": "MaxUnusedAppTypeVersionsToKeep",
          "value": "3"
        }
      ]
    }
    
  4. Remove-ServiceFabricClusterPackage eski kullanılmayan çalışma zamanı yükleme ikili dosyalarını kaldırır.

Not

Uygulama düğümden boşaltıldıktan sonra Service Fabric'in uygulama klasörlerini silmesine izin veren bir özellik geliştiriliyor.

Sonraki adımlar

Service Fabric uygulamalarını ve hizmetlerini geliştirme, test etme ve yönetme hakkında daha fazla bilgi için bkz: