Gambaran terminologi Service Fabric

Azure Service Fabric adalah platform sistem terdistribusi yang mempermudah pengemasan, penyebaran, dan pengelolaan layanan mikro yang andal dan terukur. Service Fabric adalah kontainer dan orkestrator proses yang memungkinkan Anda meng-host kluster Anda di mana saja: di Azure, di pusat data lokal, atau di penyedia cloud apa pun. Anda dapat menggunakan kerangka kerja apa pun untuk menulis layanan Anda dan memilih tempat guna menjalankan aplikasi dari beberapa pilihan lingkungan. Artikel ini memerinci terminologi yang digunakan oleh Azure Service Fabric Mesh untuk membantu Anda lebih memahami istilah yang digunakan dalam dokumentasi.

Video pelatihan terkait yang disebutkan di bawah ini merinci aplikasi, pengemasan, penyebaran, abstraksi, dan terminologi yang digunakan oleh Service Fabric:

Konsep infrastruktur

Kluster: Sekumpulan komputer virtual yang tersambung dengan jaringan tempat layanan mikro Anda disebarkan dan dikelola. Kluster dapat menskalakan hingga ribuan komputer.

Node: Komputer atau VM yang merupakan bagian dari kluster disebut node. Setiap node diberi nama node (string). Node memiliki karakteristik, seperti properti penempatan. Setiap komputer atau VM memiliki layanan Windows auto-start, FabricHost.exe, yang mulai berjalan saat booting dan kemudian memulai dua executable: Fabric.exe dan FabricGateway.exe. Kedua executable ini membentuk node. Untuk skenario pengujian, Anda dapat menghosting beberapa node pada satu komputer atau komputer virtual dengan menjalankan beberapa instans Fabric.exe dan FabricGateway.exe.

Konsep aplikasi dan layanan

Aplikasi Service Fabric Native: Aplikasi Service Fabric Native dijelaskan oleh Model Aplikasi Native (manifes aplikasi dan layanan berbasis XML).

Konsep Aplikasi Service Fabric Native

Aplikasi: Aplikasi adalah kumpulan layanan konstituen yang melakukan fungsi atau fungsi tertentu. Siklus hidup setiap instans aplikasi dapat dikelola secara terpisah.

Layanan: Layanan melakukan fungsi yang lengkap dan mandiri dan dapat memulai dan menjalankan layanan lain secara independen. Layanan terdiri dari kode, konfigurasi, dan data. Untuk setiap layanan, kode terdiri dari biner executable, konfigurasi terdiri dari pengaturan layanan yang dapat dimuat pada waktu proses, dan data terdiri dari data statis sewenang-wenang yang akan dikonsumsi oleh layanan.

Jenis aplikasi: Nama/versi yang ditetapkan ke kumpulan jenis layanan. Ini didefinisikan dalam file ApplicationManifest.xml dan disematkan dalam direktori paket aplikasi. Direktori kemudian disalin ke penyimpanan citra kluster Service Fabric. Anda kemudian dapat membuat aplikasi bernama dari jenis aplikasi ini di dalam kluster.

Baca artikel Model aplikasi untuk informasi selengkapnya.

Paket aplikasi: Direktori disk yang berisi file ApplicationManifest.xml jenis aplikasi. Mereferensikan paket layanan untuk setiap jenis layanan yang membentuk jenis aplikasi. File dalam direktori paket aplikasi disalin ke penyimpanan citra kluster Service Fabric. Misalnya, paket aplikasi untuk jenis aplikasi email dapat berisi referensi ke paket layanan antrean, paket layanan frontend, dan paket layanan database.

Aplikasi bernama: Setelah Anda menyalin paket aplikasi ke penyimpanan citra, Anda membuat contoh aplikasi dalam kluster. Anda membuat instans saat menentukan jenis aplikasi paket aplikasi, dengan menggunakan nama atau versinya. Setiap instans jenis aplikasi diberi nama pengidentifikasi sumber daya seragam (URI) yang terlihat seperti: "fabric:/MyNamedApp". Dalam kluster, Anda dapat membuat beberapa aplikasi bernama dari satu jenis aplikasi. Anda juga dapat membuat aplikasi bernama dari berbagai jenis aplikasi. Setiap aplikasi bernama dikelola dan di versi independen.

Jenis layanan: Nama/versi yang ditetapkan ke paket kode layanan, paket data, dan paket konfigurasi. Jenis layanan didefinisikan dalam file ServiceManifest.xml dan disematkan dalam direktori paket layanan. Direktori paket layanan kemudian dirujuk oleh file ApplicationManifest.xml paket aplikasi. Di dalam kluster, setelah membuat aplikasi bernama, Anda dapat membuat layanan bernama dari salah satu jenis layanan jenis aplikasi. File ServiceManifest.xml jenis layanan menjelaskan layanan.

Baca artikel Model aplikasi untuk informasi selengkapnya.

Ada dua jenis layanan:

  • Stateless: Gunakan layanan stateless saat status persisten layanan disimpan di layanan penyimpanan eksternal, seperti Azure Storage, Azure SQL Database, atau Azure Cosmos DB. Gunakan layanan stateless ketika layanan tidak memiliki penyimpanan persisten. Misalnya, untuk layanan kalkulator tempat nilai diteruskan ke layanan, perhitungan dilakukan yang menggunakan nilai ini, lalu hasilnya dikembalikan.
  • Stateful: Gunakan layanan yang canggih ketika Anda ingin Service Fabric mengelola status layanan Anda melalui model pemrograman Reliable Collection atau Reliable Actor. Saat Anda membuat layanan bernama, tentukan berapa banyak partisi yang ingin Anda sebarkan status Anda untuk skalabilitas. Tentukan juga berapa kali untuk mereplikasi status Anda di seluruh node, untuk keandalan. Setiap layanan bernama memiliki replika utama tunggal dan beberapa replika sekunder. Anda mengubah status layanan bernama saat menulis ke replika utama. Service Fabric kemudian mereplikasi status ini ke semua replika sekunder agar status Anda tetap sinkron. Service Fabric secara otomatis mendeteksi ketika replika utama gagal dan mempromosikan replika sekunder yang ada ke replika utama. Service Fabric kemudian membuat replika sekunder baru.

Replika atau instans merujuk ke kode (dan menyatakan untuk layanan yang dinyatakan) dari layanan yang digunakan dan dijalankan. Replika dan instans.

Konfigurasi ulang mengacu pada proses setiap perubahan dalam kumpulan replika layanan. See Konfigurasi ulang.

Paket layanan: Sebuah direktori disk yang berisi file jenis layanan ServiceManifest.xml. File ini mereferensikan kode, data statis, dan paket konfigurasi untuk jenis layanan. File dalam direktori paket layanan direferensikan oleh file ApplicationManifest.xml jenis aplikasi. Misalnya, paket layanan dapat merujuk ke kode, data statis, dan paket konfigurasi yang membentuk layanan database.

Layanan bernama: Setelah Anda membuat aplikasi bernama, Anda dapat membuat contoh salah satu jenis layanannya dalam kluster. Anda menentukan tipe layanan dengan menggunakan nama/versinya. Setiap instans jenis layanan diberi nama URI yang tercakup dalam URI aplikasi bernama. Misalnya, jika Anda membuat layanan bernama "MyDatabase" dalam aplikasi bernama "MyNamedApp", URI terlihat seperti: "fabric:/MyNamedApp/MyDatabase". Dalam aplikasi bernama, Anda dapat membuat banyak layanan bernama. Setiap layanan bernama dapat memiliki skema partisi sendiri dan jumlah instans atau replika.

Paket kode: Direktori disk yang berisi file executable jenis layanan, biasanya file EXE/DLL. File dalam direktori paket kode direferensikan oleh file ServiceManifest.xml jenis layanan. Ketika Anda membuat layanan bernama, paket kode disalin ke node atau node yang dipilih untuk menjalankan layanan bernama. Kemudian kode mulai berjalan. Ada dua jenis executable paket kode:

  • Guest executable: Executable yang berjalan sebagaimana adanya pada sistem operasi host (Windows atau Linux). Executable ini tidak menautkan atau mereferensikan file runtime Service Fabric apa pun dan karenanya tidak menggunakan model pemrograman Service Fabric apa pun. Executable ini tidak dapat menggunakan beberapa fitur Service Fabric, seperti naming service untuk penemuan titik akhir. Guest executable tidak dapat melaporkan metrik beban yang khusus untuk setiap instans layanan.
  • Service host executable: Executable yang menggunakan model pemrograman Service Fabric dengan menautkan ke file runtime Service Fabric, memungkinkan fitur Service Fabric. Misalnya, instans layanan bernama dapat mendaftarkan titik akhir dengan Naming Service dari Service Fabric dan juga dapat melaporkan metrik beban.

Paket data: Direktori disk yang berisi file data statis jenis layanan, file data baca-saja, biasanya file foto, suara, dan video. File dalam direktori paket data direferensikan oleh file ServiceManifest.xml jenis layanan. Ketika Anda membuat layanan bernama, paket data disalin ke node atau node yang dipilih untuk menjalankan layanan bernama. Kode mulai berjalan dan sekarang dapat mengakses file data.

Paket konfigurasi: Suatu direktori disk yang berisi file konfigurasi statis dan baca-saja dari jenis layanan, biasanya file teks. File dalam direktori paket konfigurasi direferensikan oleh file ServiceManifest.xml jenis layanan. Ketika Anda membuat layanan bernama, file dalam paket konfigurasi disalin ke satu atau beberapa node yang dipilih untuk menjalankan layanan bernama. Kemudian kode mulai berjalan dan sekarang dapat mengakses file konfigurasi.

Kontainer: Secara default, Service Fabric menyebarkan dan mengaktifkan layanan sebagai proses. Service Fabric juga dapat menyebarkan layanan dalam citra kontainer. Kontainer adalah teknologi virtualisasi yang mengabstraksi sistem operasi yang mendasarinya dari aplikasi. Aplikasi dan runtime, dependensi, dan pustaka sistemnya berjalan di dalam kontainer. Kontainer ini memiliki akses pribadi penuh ke tampilan kontainer yang terisolasi dari konstruksi sistem operasi. Service Fabric mendukung kontainer Windows Server dan kontainer Docker di Linux. Untuk informasi lebih lanjut, baca Service Fabric dan kontainer.

Skema partisi: Ketika Anda membuat layanan bernama, Anda menentukan skema partisi. Layanan dengan sejumlah besar status membagi data di seluruh partisi, yang menyebarkan status di seluruh node kluster. Dengan membagi data di seluruh partisi, status layanan bernama Anda dapat menskalakan. Dalam partisi, layanan bernama stateless memiliki instans, sementara layanan bernama stateful memiliki replika. Biasanya, layanan bernama stateless hanya memiliki satu partisi, karena tidak memiliki status internal. Instans partisi menyediakan ketersediaan. Jika satu instans gagal, instans lain terus beroperasi secara normal dan kemudian Service Fabric membuat instans baru. Layanan bernama stateful memiliki status dalam replika dan setiap partisi memiliki set replika sendiri sehingga status tetap sinkron. Jika replika gagal, Service Fabric membangun replika baru dari replika yang ada.

Baca artikel Mempartisi reliable service dari Service Fabric untuk informasi lebih lanjut.

Layanan sistem

Ada layanan sistem yang dibuat di setiap kluster yang menyediakan kemampuan platform Service Fabric.

Naming Service: Setiap kluster Service Fabric memiliki Naming Service, yang menyelesaikan nama layanan ke lokasi di kluster. Anda mengelola nama layanan dan properti, seperti Sistem Nama Domain (DNS) internet untuk kluster. Dengan menggunakan Naming Service, klien dapat dengan aman berkomunikasi dengan node apa pun di kluster untuk menyelesaikan nama layanan dan mengambil metadata layanan. Aplikasi bergerak di dalam kluster. Misalnya, ini bisa disebabkan oleh kegagalan, penyeimbangan sumber daya, atau perubahan ukuran kluster. Anda dapat mengembangkan layanan dan klien yang menyelesaikan lokasi jaringan saat ini. Klien mendapatkan alamat IP komputer dan port aktual di mana ia sedang berjalan.

Baca Berkomunikasi dengan layanan untuk informasi lebih lanjut tentang API komunikasi klien dan layanan yang bekerja dengan Naming Service.

Layanan Penyimpanan Citra: Setiap kluster Service Fabric memiliki layanan Penyimpanan Citra tempat paket aplikasi yang disebarkan dan versi disimpan. Salin paket aplikasi ke Penyimpanan Citra dan kemudian daftarkan jenis aplikasi yang terkandung dalam paket aplikasi tersebut. Setelah jenis aplikasi disediakan, Anda membuat aplikasi bernama darinya. Anda dapat membatalkan pendaftaran jenis aplikasi dari layanan Penyimpanan Citra setelah semua aplikasi bernamanya telah dihapus.

Baca Memahami pengaturan ImageStoreConnectionString untuk informasi lebih lanjut tentang layanan Penyimpanan Citra.

Baca artikel Menyebarkan aplikasi untuk informasi selengkapnya tentang penyebaran aplikasi ke layanan Penyimpanan Citra.

Layanan Failover Manager: Setiap kluster Service Fabric memiliki layanan Failover Manager yang bertanggung jawab atas tindakan berikut:

  • Melakukan fungsi yang terkait dengan ketersediaan tinggi dan konsistensi layanan.
  • Mengatur peningkatan aplikasi dan kluster.
  • Berinteraksi dengan komponen sistem lainnya.

Layanan Pengelola Perbaikan: Ini adalah layanan sistem opsional yang memungkinkan tindakan perbaikan dilakukan pada kluster dengan cara yang aman, dapat diotomatisasi, dan transparan. Manajer perbaikan digunakan dalam:

Model aplikasi dan penyebaran

Untuk menyebarkan layanan, Anda perlu menjelaskan cara layanan harus berjalan. Service Fabric mendukung tiga model penyebaran yang berbeda:

Model native

Model aplikasi native menyediakan aplikasi akses tingkat rendah penuh ke Service Fabric. Aplikasi dan layanan didefinisikan sebagai jenis terdaftar dalam file manifes XML.

Model native mendukung kerangka kerja Reliable Service dan Reliable Actor, yang menyediakan akses ke API runtime Service Fabric dan API manajemen kluster di C# dan Java. Model native juga mendukung kontainer dan executable arbitrer.

Reliable Service: Suatu API untuk membangun layanan stateless dan stateful. Layanan stateful menyimpan status mereka di Reliable Collection, seperti dictionary atau queue. Anda juga dapat menempatkan berbagai tumpukan komunikasi, seperti Web API dan Windows Communication Foundation (WCF).

Reliable Actor: API untuk membangun objek stateless dan stateful melalui model pemrograman Actor virtual. Model ini berguna ketika Anda memiliki banyak unit komputasi atau status independen. Model ini menggunakan model threading berbasis giliran, jadi yang terbaik adalah menghindari kode yang memanggil actor atau layanan lain karena actor individu tidak dapat memproses permintaan masuk lainnya sampai semua permintaan keluarnya selesai.

Anda juga dapat menjalankan aplikasi yang ada di Service Fabric:

Kontainer: Service Fabric mendukung penerapan kontainer Docker di kontainer Linux dan Windows Server di Windows Server 2016, bersama dengan dukungan untuk mode isolasi Hyper-V. Dalam model aplikasi Service Fabric, kontainer mewakili host aplikasi di mana beberapa replika layanan ditempatkan. Service Fabric dapat menjalankan kontainer apa pun, dan skenarionya mirip dengan skenario guest executable, yang Anda mengemas aplikasi yang ada di dalam wadah. Selain itu, Anda dapat menjalankan layanan Service Fabric di dalam juga.

Guest executable: Anda dapat menjalankan semua jenis kode, seperti Node.js, Python, Java, atau C++ di Azure Service Fabric sebagai layanan. Service Fabric mengacu pada jenis layanan ini sebagai guest executable, yang diperlakukan sebagai layanan stateless. Keuntungan menjalankan guest executable dalam kluster Service Fabric termasuk ketersediaan tinggi, pemantauan kesehatan, manajemen siklus hidup aplikasi, kepadatan tinggi, dan discoverability.

Baca artikel Memilih model pemrograman untuk layanan Anda untuk informasi selengkapnya.

Docker Compose

Docker Compose adalah bagian dari proyek Docker. Service Fabric memberikan dukungan terbatas untuk menyebarkan aplikasi menggunakan model Docker Compose.

Lingkungan

Service Fabric adalah teknologi platform sumber terbuka yang didasarkan pada beberapa layanan dan produk berbeda. Microsoft menyediakan opsi berikut:

  • Azure Service Fabric: Azure menghosting penawaran kluster Service Fabric. Ini menyediakan integrasi antara Service Fabric dan infrastruktur Azure, bersama dengan peningkatan dan manajemen konfigurasi kluster Service Fabric.
  • Service Fabric mandiri: Seperangkat alat penginstalan dan konfigurasi untuk menyebarkan kluster Service Fabric di mana saja (lokal atau di penyedia cloud apa pun). Tidak dikelola oleh Azure.
  • Kluster pengembangan Service Fabric: Memberikan pengalaman pengembangan lokal di Windows, Linux, atau Mac untuk pengembangan aplikasi Service Fabric.

Langkah berikutnya

Pelajari lebih lanjut tentang Service Fabric: