Siklus Hidup Aplikasi Service Fabric

Seperti platform lain, aplikasi pada Azure Service Fabric biasanya melalui fase berikut: desain, pengembangan, pengujian, penyebaran, peningkatan, pemeliharaan, dan penghapusan. Service Fabric memberikan dukungan kelas satu untuk siklus hidup aplikasi cloud penuh, dari pengembangan melalui penyebaran, manajemen harian, dan pemeliharaan hingga penonaktifan akhir. Model layanan memungkinkan beberapa peran berbeda untuk berpartisipasi secara independen dalam siklus hidup aplikasi. Artikel ini memberikan ringkasan tentang API dan cara menggunakannya oleh berbagai peran selama fase siklus hidup aplikasi Service Fabric.

Periksa halaman ini untuk video pelatihan yang menjelaskan cara mengelola siklus hidup aplikasi Anda:

Penting

Ada dua utilitas CLI yang digunakan untuk berinteraksi dengan Service Fabric. Azure CLI digunakan untuk mengelola sumber daya Azure, seperti kluster Service Fabric yang dihost Azure. Service Fabric CLI digunakan untuk terhubung ke kluster Service Fabric secara langsung (terlepas dari lokasi hostingnya) dan mengelola kluster, aplikasi, serta layanan.

Peran model layanan

Peran model layanan adalah:

  • Developer layanan: Mengembangkan layanan modular dan umum yang dapat digunakan kembali dan digunakan dalam beberapa aplikasi dengan jenis yang sama atau jenis yang berbeda. Misalnya, layanan antrean dapat digunakan untuk membuat aplikasi tiket (helpdesk) atau aplikasi e-commerce (keranjang belanja).
  • Developer aplikasi: Membuat aplikasi dengan mengintegrasikan koleksi layanan untuk memenuhi persyaratan atau skenario tertentu. Misalnya, situs web e-commerce dapat mengintegrasikan "Layanan JSON Stateless Front-End," "Layanan Stateful Lelang," dan "Layanan Stateful Antrean" untuk membangun solusi pelelangan.
  • Administrator aplikasi: Membuat keputusan tentang konfigurasi aplikasi (mengisi parameter templat konfigurasi), penyebaran (pemetaan ke sumber daya yang tersedia), dan kualitas layanan. Misalnya, administrator aplikasi memutuskan lokal bahasa aplikasi (Bahasa Inggris untuk Amerika Serikat atau Jepang untuk Jepang, misalnya). Aplikasi yang disebarkan secara berbeda dapat memiliki pengaturan yang berbeda.
  • Operator: Menyebarkan aplikasi berdasarkan konfigurasi aplikasi dan persyaratan yang ditentukan oleh administrator aplikasi. Misalnya, operator menyediakan dan menyebarkan aplikasi dan memastikan bahwa aplikasi berjalan di Azure. Operator memantau informasi kesehatan dan kinerja aplikasi serta menjaga infrastruktur fisik sesuai kebutuhan.

Kembangkan

  1. Developer layanan mengembangkan berbagai jenis layanan menggunakan model pemrograman Aktor Andal atau Layanan Andal.
  2. Developer layanan secara deklaratif menjelaskan jenis layanan yang dikembangkan dalam file manifes layanan yang terdiri dari satu atau beberapa kode, konfigurasi, dan paket data.
  3. Developer aplikasi kemudian membuat aplikasi menggunakan berbagai jenis layanan.
  4. Developer aplikasi secara deklaratif menjelaskan jenis aplikasi dalam manifes aplikasi dengan merujuk manifes layanan dari layanan konstituen dan secara tepat menimpa serta membuat parameter pengaturan konfigurasi dan penyebaran yang berbeda dari layanan konstituen.

Lihat Mulai menggunakan Aktor Andal dan Mulai menggunakan Layanan Andal untuk contohnya.

Sebarkan

  1. Administrator aplikasi menyesuaikan jenis aplikasi dengan aplikasi tertentu yang akan disebarkan ke kluster Service Fabric dengan menentukan parameter yang sesuai dari elemen ApplicationType dalam manifes aplikasi.
  2. Operator mengunggah paket aplikasi ke penyimpanan citra kluster menggunakan metode CopyApplicationPackage ataucmdlet Copy-ServiceFabricApplicationPackage. Paket aplikasi berisi manifes aplikasi dan pengumpulan paket layanan. Service Fabric menyebarkan aplikasi dari paket aplikasi yang disimpan di penyimpanan citra yang dapat menjadi penyimpanan blob Azure atau layanan sistem Service Fabric.
  3. Operator kemudian memprovisikan jenis aplikasi di kluster target dari paket aplikasi yang diunggah menggunakan metode ProvisionApplicationAsync, cmdlet Register-ServiceFabricApplicationType, atau operasi REST Provisikan Aplikasi.
  4. Setelah menyediakan aplikasi, operator memulai aplikasi dengan parameter yang disediakan oleh administrator aplikasi menggunakan metode CreateApplicationAsync, cmdlet New-ServiceFabricApplication, atau operasi REST Buat Aplikasi.
  5. Setelah aplikasi disebarkan, operator menggunakan metode CreateServiceAsync, cmdlet New-ServiceFabricService, atau operasi REST Buat Layanan untuk membuat instans layanan baru untuk aplikasi berdasarkan jenis layanan yang tersedia.
  6. Aplikasi sekarang berjalan di cluster Service Fabric.

Lihat Menyebarkan aplikasi untuk contohnya.

Uji

  1. Setelah menyebarkan ke kluster pengembangan lokal atau kluster pengujian, pengembang layanan menjalankan skenario uji failover bawaan dengan menggunakan kelas FailoverTestScenarioParameters dan FailoverTestScenario, atau cmdlet Invoke-ServiceFabricFailoverTestScenario. Skenario uji failover menjalankan layanan tertentu melalui transisi dan failover penting untuk memastikan bahwa layanan tersebut masih tersedia dan berfungsi.
  2. Developer layanan kemudian menjalankan skenario uji kekacauan bawaan menggunakan kelas ChaosTestScenarioParameters dan ChaosTestScenario, atau cmdlet Invoke-ServiceFabricChaosTestScenario. Skenario uji kekacauan secara acak menyebabkan beberapa node, paket kode, dan kesalahan replika ke dalam kluster.
  3. Pengembang layananmenguji komunikasi layanan-ke-layanan dengan menulis skenario pengujian yang memindahkan replika utama di sekitar kluster.

Lihat Pengenalan Layanan Analisis Kesalahan untuk informasi selengkapnya.

Mutakhirkan

  1. Developer layanan memperbarui layanan konstituen aplikasi representasi dan/atau memperbaiki bug dan menyediakan versi baru manifes layanan.
  2. Developer aplikasi menimpa dan membuat parameter pengaturan konfigurasi dan penyebaran layanan yang konsisten serta menyediakan versi baru manifes aplikasi. Developer aplikasi kemudian menggabungkan versi baru manifes layanan ke dalam aplikasi dan menyediakan versi baru dari jenis aplikasi dalam paket aplikasi yang diperbarui.
  3. Administrator aplikasi menggabungkan versi baru jenis aplikasi ke dalam aplikasi target dengan memperbarui parameter yang sesuai.
  4. Operator mengunggah paket aplikasi yang diperbarui ke penyimpanan citra kluster menggunakan metode CopyApplicationPackage atau cmdlet Copy-ServiceFabricApplicationPackage. Paket aplikasi berisi manifes aplikasi dan pengumpulan paket layanan.
  5. Operator menyediakan versi baru aplikasi di kluster target menggunakan metode ProvisionApplicationAsync, cmdlet Register-ServiceFabricApplicationType, atau operasi REST Sediakan Aplikasi.
  6. Operator meningkatkan aplikasi target ke versi baru menggunakan metode UpgradeApplicationAsync, cmdlet Start-ServiceFabricApplicationUpgrade, atau operasi REST Tingkatkan operasi.
  7. Operator memeriksa kemajuan peningkatan menggunakan metode GetApplicationUpgradeProgressAsync, cmdlet Get-ServiceFabricApplicationUpgrade, atau operasi REST Dapatkan Kemajuan Peningkatan Aplikasi.
  8. Jika perlu, operator memodifikasi dan menerapkan kembali parameter peningkatan aplikasi saat ini menggunakan metode UpdateApplicationUpgradeAsync, cmdlet Update-ServiceFabricApplicationUpgrade, atau operasi REST Perbarui Peningkatan Aplikasi.
  9. Jika perlu, operator mengembalikan peningkatan aplikasi saat ini menggunakan metode RollbackApplicationUpgradeAsync, cmdlet Start-ServiceFabricApplicationRollback, atau operasi REST Rollback Peningkatan Aplikasi.
  10. Service Fabric meningkatkan aplikasi target yang berjalan di kluster tanpa kehilangan ketersediaan layanan konstituennya.

Lihat tutorial peningkatan aplikasi untuk contohnya.

Pertahankan

  1. Untuk peningkatan dan patch sistem operasi, antarmuka Service Fabric dengan infrastruktur Azure untuk menjamin ketersediaan semua aplikasi yang berjalan di kluster.
  2. Untuk peningkatan dan patch ke platform Service Fabric, Service Fabric meningkatkan dirinya tanpa kehilangan ketersediaan aplikasi apa pun yang berjalan di kluster.
  3. Administrator aplikasi menyetujui penambahan atau penghapusan node dari kluster setelah menganalisis data penggunaan kapasitas historis dan memproyeksikan permintaan di masa depan.
  4. Operator menambahkan dan menghapus node yang ditentukan oleh administrator aplikasi.
  5. Ketika node baru ditambahkan ke atau node yang ada dihapus dari kluster, Service Fabric secara otomatis menyeimbangkan muatan aplikasi yang berjalan di semua node di kluster untuk mencapai kinerja optimal.

Hapus

  1. Operator dapat menghapus instans tertentu dari layanan yang berjalan di kluster tanpa menghapus seluruh aplikasi menggunakan metode DeleteServiceAsync, cmdlet Remove-ServiceFabricService, atau operasi REST Hapus Layanan.
  2. Operator juga dapat menghapus instans aplikasi dan semua layanannya menggunakan metode DeleteApplicationAsync, cmdlet Remove-ServiceFabricApplication, atau operasi REST Hapus Aplikasi.
  3. Setelah aplikasi dan layanan berhenti, operator dapat membatalkan provisi jenis aplikasi menggunakan metode UnprovisionApplicationAsync, cmdlet Unregister-ServiceFabricApplicationType, atau operasi REST Batalkan Provisi Aplikasi. Membatalkan penyediaan jenis aplikasi tidak menghapus paket aplikasi dari ImageStore.
  4. Operator menghapus paket aplikasi dari ImageStore menggunakan metode RemoveApplicationPackage, cmdlet Remove-ServiceFabricApplicationPackage.

Lihat Menyebarkan aplikasi untuk contohnya.

Mempertahankan ruang disk di penyimpanan citra kluster

ImageStoreService menyimpan paket yang disalin dan disediakan, yang dapat menyebabkan akumulasi file. Akumulasi file dapat menyebabkan ImageStoreService (fabric:/System/ImageStoreService) mengisi disk dan dapat meningkatkan waktu build untuk replika ImageStoreService.

Untuk menghindari akumulasi file, gunakan urutan provisi berikut:

  1. Salin paket ke ImageStore dan gunakan opsi kompres

  2. Provisikan paket

  3. Hapus paket di penyimpanan gambar

  4. Meningkatkan aplikasi/kluster

  5. Batalkan provisi versi lama

Langkah 3 dan 5 dalam prosedur di atas mencegah akumulasi file di penyimpanan citra.

Konfigurasi untuk pembersihan otomatis

Anda dapat mengotomatiskan langkah 3 di atas menggunakan PowerShell atau XML. Ini akan menyebabkan paket aplikasi dihapus secara otomatis setelah pendaftaran jenis aplikasi berhasil.

PowerShell:

Register-ServiceFabricApplicationTye -ApplicationPackageCleanupPolicy Automatic

XML:

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

Anda dapat mengotomatiskan langkah 5 di atas menggunakan XML. Ini akan menyebabkan jenis aplikasi yang tidak digunakan secara otomatis tidak terdaftar.

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

Membersihkan file dan data pada simpul

Replikasi file aplikasi pada akhirnya akan mendistribusikan file ke semua simpul bergantung pada tindakan penyeimbangan. Ini dapat membuat tekanan disk bergantung pada jumlah aplikasi dan ukuran filenya. Meskipun tidak ada instans aktif yang berjalan pada simpul, file dari instans sebelumnya akan tetap disimpan. Hal serupa juga berlaku untuk data dari koleksi andal yang digunakan oleh layanan berstatus. Ini melayani tujuan ketersediaan yang lebih tinggi. Dalam kasus instans aplikasi baru pada simpul yang sama, tidak ada file yang harus disalin. Untuk koleksi yang andal, hanya delta yang harus direplikasi.

Untuk menghapus biner aplikasi sepenuhnya, Anda harus membatalkan pendaftaran jenis aplikasi.

Rekomendasi untuk mengurangi tekanan disk:

  1. Remove-ServiceFabricApplicationPackage menghapus paket dari lokasi pengunggahan sementara.
  2. Unregister-ServiceFabricApplicationType membebaskan ruang penyimpanan dengan menghapus file jenis aplikasi dari layanan penyimpanan citra dan semua simpul. Pengelola penghapusan dijalankan setiap jam per default.
  3. CleanupUnusedApplicationTypes membersihkan versi aplikasi lama yang tidak digunakan secara otomatis.
    {
      "name": "Management",
      "parameters": [
        {
          "name": "CleanupUnusedApplicationTypes",
          "value": true
        },
        {
          "name": "MaxUnusedAppTypeVersionsToKeep",
          "value": "3"
        }
      ]
    }
    
  4. Remove-ServiceFabricClusterPackage menghapus biner penginstalan runtime lama yang tidak digunakan.

Catatan

Fitur sedang dikembangkan untuk memungkinkan Service Fabric menghapus folder aplikasi setelah aplikasi dikeluarkan dari simpul.

Langkah berikutnya

Untuk informasi selengkapnya tentang mengembangkan, menguji, dan mengelola aplikasi dan layanan Service Fabric, lihat: