Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Artikel ini membantu Anda memutuskan antara dua model hosting Durable Task — Durable Functions (Azure Functions) dan standalone Durable Task SDK (dihost sendiri) — berdasarkan platform hosting, kebutuhan penskalaan, dan persyaratan operasional Anda.
Petunjuk / Saran
Sudah tahu platform hosting Anda? Lompat ke tabel pencarian platform untuk mendapatkan jawaban cepat.
Seperti yang dijelaskan dalam Apa itu Durable Task?, Durable Task mendukung dua model hosting:
- Azure Functions (melalui Durable Functions)
- Dihost sendiri (melalui SDK Tugas Tahan Lama mandiri).
Kedua model hosting menyediakan kemampuan eksekusi tahan lama inti yang sama (orkestrasi, aktivitas, timer, peristiwa eksternal, dan banyak lagi) tetapi berbeda dalam bagaimana aplikasi Anda dihosting, diskalakan, dan disebarkan.
Secara umum, di mana aplikasi Anda berjalan menentukan model hosting mana yang Anda gunakan. Jika Anda membangun di Azure Functions, Anda menggunakan Durable Functions. Jika Anda membangun di platform komputasi lain, Anda menggunakan SDK Durable Task terpisah.
Pilih berdasarkan platform hosting
Jika Anda sudah mengetahui platform hosting aplikasi Anda, tabel berikut dapat membantu Anda menentukan model hosting mana yang akan digunakan:
| Platform penyedia layanan hosting | Model layanan hosting |
|---|---|
| Azure Functions (Konsumsi, Konsumsi Fleksibel, Premium) | Durable Functions |
| Azure Container Apps (dengan runtime Azure Functions) | Salah satu |
| Azure App Service (dilengkapi dengan runtime Azure Functions) | Salah satu |
| Azure Kubernetes Service (AKS) | SDK Tugas Tahan Lama Mandiri |
| Komputer virtual atau lokal | SDK Tugas Tahan Lama Mandiri |
Nota
Azure App Service dan Azure Container Apps dapat menghosting runtime Azure Functions, baik melalui integrasi Azure Functions yang sepenuhnya dikelola atau dengan menyebarkan runtime Functions secara langsung. Dengan demikian, kedua platform mendukung model hosting. Untuk informasi selengkapnya tentang model hosting Azure Functions, lihat paket hosting Azure Functions.
Membandingkan model hosting
Tabel berikut ini meringkas perbedaan utama antara dua model hosting:
| Durable Functions (Azure Functions) | SDK Tugas Tahan Lama Mandiri (dihost sendiri) | |
|---|---|---|
| Hosting | Azure Functions (Konsumsi, Konsumsi Fleksibel, Premium), App Service, dan Aplikasi Kontainer (dengan runtime Functions) | Platform apa pun: Azure Container Apps, AKS, App Service, VM, lokal |
| Skalabilitas | Otomatis, dikelola oleh infrastruktur skala terkelola Azure Functions | Anda mengelola penskalaan sendiri, atau menggunakan penskalaan otomatis asli platform (misalnya, KEDA di Kubernetes) |
| Pemicu |
Dukungan bawaan untuk pemicu HTTP, Antrean, Timer, Event Grid, dan Azure Functions | Anda menentukan titik masuk Anda sendiri (misalnya, titik akhir HTTP, konsumen pesan, dll.) |
| Penyimpanan status | Durable Task Scheduler (disarankan), Azure Storage, MSSQL, Netherite | Penjadwal Tugas Tahan Lama |
| Bahasa | .NET (C#/F#), JavaScript/TypeScript, Python, Java, PowerShell | .NET (C#/F#), JavaScript/TypeScript, Python, Java |
| Monitoring | Integrasi bawaan dengan portal Azure, Application Insights | Anda menyiapkan solusi pemantauan Anda sendiri (misalnya, Azure Monitor, Prometheus, atau Grafana) |
Nota
Cold start terjadi saat fungsi aplikasi dimulai setelah tidak aktif. Paket hosting Premium dan Khusus menjaga instans tetap hangat untuk mengurangi latensi cold start.
Paket hosting Flex Consumption menawarkan konsep "instance yang selalu siap siaga" sebagai mitigasi terhadap cold start.
Pelajari selengkapnya tentang model hosting Azure Functions.
API HTTP bawaan
Azure Functions menyediakan titik akhir HTTP untuk aplikasi fungsi Anda, yang digunakan ekstensi Durable Functions untuk memberikan dukungan bawaan untuk manajemen instans melalui HTTP.
Saat menggunakan SDK Tugas Tahan Lama, Anda perlu menerapkan titik akhir HTTP Anda sendiri tergantung pada komputasi hosting Anda.
| Feature | Durable Functions | SDK Tugas Tahan Lama |
|---|---|---|
| API HTTP Manajemen | ✅ Bawaan | ❌ Terapkan sendiri |
| Status URL otomatis | ✅ Bawaan | ❌ Terapkan sendiri |
Durable Functions fitur HTTP
Durable Functions secara otomatis mengekspos titik akhir HTTP untuk memulai orkestrasi, mengkueri status, meningkatkan peristiwa, dan mengakhiri instans. API ini mengikuti pola polling HTTP asinkron, sehingga mudah diintegrasikan dengan sistem eksternal.
Nota
Durable Functions mendukung penggunaan kelas DurableTaskClient secara langsung jika Anda lebih suka menggunakan API HTTP bawaan.
Pelajari selengkapnya: fitur HTTP dalam Durable Functions | referensi API HTTP
Manajemen SDK Tugas Tahan Lama
Dengan Durable Task SDKs, Anda menggunakan kelas DurableTaskClient secara langsung untuk mengelola instans orkestrasi. Jika Anda memerlukan titik akhir HTTP, Anda mengimplementasikannya sendiri menggunakan kerangka kerja web pilihan Anda.
Pelajari lebih lanjut: Mengelola instans orkestrasi
Backend penyimpanan
Kedua model hosting menggunakan Durable Task Scheduler — layanan Azure yang dikelola sepenuhnya untuk persistensi dan eksekusi status orkestrasi (pricing). Durable Functions juga mendukung backend penyimpanan bawaan Anda sendiri (Azure Storage, MSSQL, dan Netherite). Durable Task SDK secara eksklusif menggunakan Durable Task Scheduler.
Pelajari lebih lanjut: Penyedia penyimpanan
Konfigurasi tugas hub
Durable Functions mengonfigurasi hub tugas dalam file host.json. SDK Tugas yang Bertahan Lama mengonfigurasi hub tugas dalam kode dan variabel lingkungan (string koneksi/endpoint).
Pelajari selengkapnya: Hub tugas
Diagnostik dan pengendalian versi
| Feature | Durable Functions | SDK Tugas Tahan Lama |
|---|---|---|
| Dasbor Penjadwal Tugas Tahan Lama | ✅ Ya | ✅ Ya |
| Wawasan Aplikasi | ✅ Bawaan | Penyiapan manual |
| Penerapan tanpa gangguan | ✅ Slot fungsi | Khusus platform |
Pelajari lebih lanjut:Diagnostik | Pengelolaan Versi
Kapan memilih setiap model
Saat memilih antara dua model hosting, pertimbangkan faktor-faktor berikut:
| Pilih Durable Functions jika... | Pilih SDK Tugas Tahan Lama mandiri jika... |
|---|---|
| Anda ingin pemicu bawaan Azure Functions (HTTP, Antrean, Timer, dll.). | Anda ingin kontrol penuh atas kontainer Anda dan titik masuknya. |
| Anda sudah terbiasa dengan model hosting Azure Functions. | Anda lebih suka SDK ringan tanpa overhead dari runtime Azure Functions. |
| Anda ingin integrasi portal Azure untuk manajemen fungsi. | Anda ingin kode yang sama portabel di seluruh platform kontainer (AKS, App Service, dll.). |
| Anda perlu memilih dari beberapa backend penyimpanan yang tersedia. | Anda memiliki kode aplikasi selain Functions yang sudah ada untuk diintegrasikan. |
| Anda memerlukan aplikasi tanpa server berbasis peristiwa yang menskalakan ke nol. | Anda memerlukan beban kerja latensi rendah yang selalu aktif tanpa penundaan cold start. |
| Anda menginginkan penetapan harga per eksekusi dengan paket konsumsi. | Anda memerlukan skenario tingkat penyerapan tinggi yang dioptimalkan untuk pemrosesan batch. |
| Anda perlu membuat prototipe cepat dengan pemicu dan pengikatan deklaratif. | Anda memiliki aplikasi kontainer atau Kubernetes yang ada. |
Migration
Jika Anda sudah menggunakan Durable Functions dan ingin pindah ke penyebaran berbasis kontainer atau memanfaatkan fleksibilitas hosting SDK Tugas Tahan Lama, migrasi sangat mudah. Kode orkestrasi sangat mirip antara kedua kerangka kerja.
Untuk panduan migrasi terperinci, lihat Migrate dari Durable Functions ke Durable Task SDK.
Nota
Durable Task Framework (DTFx): Kerangka Kerja Tugas Durable adalah pustaka .NET sumber terbuka yang dikelola komunitas untuk orkestrasi yang tahan lama. Ini digunakan secara internal sebagai dependensi Durable Functions, tetapi tidak dilengkapi dengan dukungan Microsoft resmi. Jika Anda memulai proyek baru, gunakan SDK Tugas Tahan Lama modern atau Durable Functions sebagai gantinya.
Langkah berikutnya
Mulai menggunakan kerangka kerja yang Anda pilih:
Kemudian, pelajari selengkapnya tentang penyedia backend Durable Task Scheduler.