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 son 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 ve Service Fabric uygulama yaşam döngüsünün aşamaları boyunca farklı roller tarafından nasıl kullanıldıklarına ilişkin bir genel bakış sağlanır.

Uygulama yaşam döngünüzü yönetmeyi açıklayan bir 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 kullanılabilir ve kullanılabilecek modüler ve genel hizmetler geliştirir. Örneğin, kuyruk hizmeti bilet 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 Ön Uç 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, uygulama yöneticisi uygulamanın dil yerel ayarını (Birleşik Devletler için İngilizce veya örneğin Japonya için Japonca) belirler. Farklı bir dağıtılan 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ştiricisi Reliable Actors veya Reliable Services programlama modelini kullanarak farklı hizmet türleri geliştirir.
  2. Hizmet geliştiricisi , bir veya daha fazla kod, yapılandırma ve veri paketinden oluşan bir hizmet bildirim dosyasındaki geliştirilmiş hizmet türlerini bildirimli olarak açıklar.
  3. Uygulama geliştiricisi daha sonra 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ılarak ve 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ü service fabric kümesine dağıtılacak belirli bir uygulamaya uyarlar.
  2. Operatör, CopyApplicationPackage yöntemini veya Copy-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, 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, bir işleç CreateApplicationAsync yöntemini, New-ServiceFabricApplication cmdlet'ini veya Uygulama Oluşturma REST işlemini kullanarak uygulama yöneticisi tarafından sağlanan parametrelerle uygulamayı başlatır.
  5. Uygulama dağıtıldıktan sonra, bir işleç createServiceAsync yöntemini, New-ServiceFabricService cmdlet'ini veya Hizmet Oluşturma REST 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ğıtıldıktan sonra, hizmet geliştiricisi FailoverTestScenarioParameters 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 olduğundan ve çalıştığından 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 birden çok düğüm, kod paketi ve çoğaltma hatası oluşturur.
  3. Hizmet geliştiricisi , birincil çoğaltmaları kümenin çevresine taşıyabilen 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ör ProvisionApplicationAsync yöntemini, Register-ServiceFabricApplicationType cmdlet'ini veya Uygulama Sağlama REST işlemini kullanarak hedef kümede uygulamanın yeni sürümünü sağlar.
  6. Operatör UpgradeApplicationAsync yöntemini, Start-ServiceFabricApplicationUpgrade cmdlet'ini veya 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 Al 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 işlemini güncelleştir seçeneğini 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, kümede çalışan hedef uygulamayı, herhangi bir bağlı hizmetinin kullanılabilirliğini kaybetmeden 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 arabirimler.
  2. Service Fabric platformuna yapılan yükseltmeler ve düzeltme ekleri için Service Fabric, kümede çalışan uygulamaların kullanılabilirliğini kaybetmeden kendisini yükseltir.
  3. Uygulama yöneticisi , geçmiş kapasite kullanım verilerini ve gelecekteki talebi yansıtan verileri analiz ettikten sonra kümeden düğümlerin eklenmesini veya kaldırılmasını onaylar.
  4. Bir işleç, uygulama yöneticisi tarafından belirtilen düğümleri ekler ve kaldırır.
  5. Yeni düğümler kümeye 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ör DeleteServiceAsync yöntemini, Remove-ServiceFabricService cmdlet'ini veya Hizmeti Sil REST işlemini kullanarak uygulamanın tamamını kaldırmadan kümede çalışan bir hizmetin belirli bir örneğini silebilir.
  2. Operatör deleteApplicationAsync yöntemini, Remove-ServiceFabricApplication cmdlet'ini veya Uygulamayı Sil REST işlemini kullanarak bir uygulama örneğini ve tüm hizmetlerini de silebilir.
  3. Uygulama ve hizmetler durdurulduktan sonra, işleç UnprovisionApplicationAsync yöntemini, Unregister-ServiceFabricApplicationType cmdlet'ini veya Uygulama REST sağlamasını kaldırma 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'dan kaldırmaz.
  4. Bir işleç RemoveApplicationPackage yöntemini veya Remove-ServiceFabricApplicationPackage cmdlet'ini kullanarak uygulama paketini ImageStore'dan 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 neden olabilir. Dosya birikimi ImageStoreService'in (fabric:/System/ImageStoreService) diski doldurmasına neden olabilir ve ImageStoreService çoğaltmaları için derleme süresini artırabilir.

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

  1. Paketi ImageStore'a 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 yordamdaki 3. ve 5. adımlar, görüntü deposunda dosya birikimini önler.

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 bir örnek çalıştırılmasa bile, eski bir örnekteki dosyalar korunur. Durum bilgisi olan hizmetler tarafından kullanılan güvenilir koleksiyonlardan alınan 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 dosyanın kopyalanması gerekmez. 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ı azaltma önerileri:

  1. Remove-ServiceFabricApplicationPackage bu işlem paketi geçici karşıya yükleme konumundan kaldırır.
  2. Unregister-ServiceFabricApplicationType , görüntü deposu hizmetinden ve tüm düğümlerden uygulama türü dosyalarını kaldırarak depolama alanı bırakır. Silme yöneticisi varsayılan olarak saatte bir çalışı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: