Apa itu Durable Functions?

Selesai

Fungsi Durable memungkinkan Anda untuk mengimplementasikan fungsi stateful yang kompleks dalam lingkungan tanpa server.

Dalam skenario contoh, perusahaan Anda saat ini mengikuti proses persetujuan manual untuk proposal desain proyek. Proses ini memiliki beberapa langkah, dan setiap langkah dalam prosesnya dapat bervariasi dari segi durasi. Menerapkan proses in-house otomatis itu rumit dan mahal. Mengoordinasikan setiap langkah membutuhkan usaha. Selain itu, Anda harus bisa memasukkan logika kustom ke dalam alur kerja.

Dalam unit ini, Anda akan mempelajari tentang manfaat Durable Functions. Anda akan mempelajari tentang berbagai jenis fungsi dan konsep kunci yang terkait dengan Durable Functions.

Durable functions

Durable Functions adalah ekstensi Azure Functions. Sedangkan Azure Functions beroperasi di lingkungan tanpa status, Durable Functions dapat mempertahankan status di antara panggilan fungsi. Pendekatan ini memungkinkan Anda menyederhanakan eksekusi stateful yang kompleks di lingkungan tanpa server.

Durable Functions menskalakan sesuai kebutuhan dan menyediakan cara hemat biaya untuk menerapkan alur kerja yang kompleks di cloud. Beberapa manfaat menggunakan Durable Functions meliputi:

  • Durable Functions memungkinkan Anda menulis kode berbasis aktivitas. Fungsi durable dapat menunggu secara asinkron untuk satu atau beberapa peristiwa eksternal, kemudian melakukan serangkaian tugas sebagai respons terhadap peristiwa ini.

  • Anda dapat mengikat fungsi bersama-sama. Anda dapat menerapkan pola umum seperti fan-out/fan-in, yang menggunakan satu fungsi untuk memanggil fungsi lain secara paralel, lalu mengumpulkan hasilnya.

  • Anda dapat mengatur dan mengoordinasikan fungsi dan menentukan urutan fungsi yang harus dijalankan.

  • Status dikelola untuk Anda. Anda tidak perlu menulis kode Anda sendiri untuk menyimpan informasi status untuk fungsi yang berjalan lama.

Durable Functions memungkinkan Anda menentukan alur kerja stateful menggunakan fungsi orkestrasi. Fungsi orkestrasi memberikan keuntungan tambahan berikut ini:

  • Anda dapat menentukan alur kerja dalam kode. Anda tidak perlu menulis deskripsi JSON atau menggunakan alat desain alur kerja.

  • Fungsi dapat dipanggil secara sinkron dan asinkron. Output dari fungsi yang dipanggil disimpan secara lokal dalam variabel dan digunakan dalam panggilan fungsi berikutnya.

  • Azure memeriksa kemajuan sebuah fungsi secara otomatis saat fungsi menunggu. Azure mungkin memilih untuk mendehidrasi fungsi dan menyimpan statusnya saat fungsi menunggu untuk mempertahankan sumber daya dan mengurangi biaya. Ketika fungsi mulai berjalan lagi, Azure akan menghidrasinya kembali dan memulihkan statusnya.

Jenis fungsi

Anda dapat menggunakan tiga jenis fungsi tahan lama: Klien, Orkestrator, dan Aktivitas.

Fungsi Klien adalah titik masuk untuk membuat instans orkestrasi Fungsi Durable. Fungsi ini dapat berjalan sebagai tanggapan atas aktivitas dari banyak sumber, seperti datangnya permintaan HTTP baru, pesan yang diposting ke antrean pesan, aktivitas yang tiba di aliran aktivitas. Anda dapat menulisnya dalam salah satu bahasa yang didukung.

Fungsi orkestrator menjelaskan bagaimana tindakan dijalankan dan urutan dijalankannya. Anda menulis logika orkestrasi dalam kode (C# atau JavaScript).

Fungsi aktivitas adalah unit dasar pekerjaan dalam orkestrasi Durable Functions. Fungsi aktivitas berisi pekerjaan aktual yang dilakukan oleh tugas yang diorkestrasi.

Pola aplikasi

Anda dapat menggunakan Durable Functions untuk mengimplementasikan banyak pola alur kerja umum. Pola ini meliputi:

  • Penautan fungsi: Dalam pola ini, alur kerja menjalankan urutan fungsi dalam urutan tertentu. Output satu fungsi diterapkan ke input fungsi berikutnya dalam urutan. Output fungsi akhir digunakan untuk menghasilkan hasil.

    Diagram illustrating a function chaining pattern.

  • Fan out/fan in: Pola ini menjalankan beberapa fungsi secara paralel dan menunggu semua fungsi selesai. Anda dapat mengagregasi hasil dari eksekusi paralel atau menggunakannya untuk menghitung hasil akhir.

    Diagram illustrating a fan out/fan in pattern.

  • API HTTP Asinkron: Pola ini mengatasi masalah koordinasi status operasi jangka panjang dengan klien eksternal. Panggilan HTTP dapat memicu tindakan yang berjalan lama, lalu mengalihkan klien ke titik akhir status. Klien dapat mempelajari kapan operasi selesai dengan polling titik akhir ini.

    Diagram illustrating an async HTTP API pattern.

  • Monitor: Pola ini mengimplementasikan proses berulang dalam alur kerja, mungkin mencari perubahan status. Misalnya, Anda dapat menggunakan pola ini untuk polling sampai kondisi tertentu terpenuhi.

    Diagram illustrating a monitor pattern.

  • Interaksi manusia: Pola ini menggabungkan proses otomatis yang juga melibatkan beberapa interaksi manusia. Proses manual dalam proses otomatis karena orang tidak selalu tersedia dan responsif seperti komputer. Anda dapat menggabungkan interaksi manusia menggunakan batas waktu dan logika kompensasi yang berjalan jika manusia gagal berinteraksi dengan benar dalam waktu respons tertentu. Proses persetujuan adalah contoh proses yang melibatkan interaksi manusia.

    Diagram illustrating a human interaction pattern.

Perbandingan dengan Logic Apps

Durable Functions dan Logic Apps adalah layanan Azure yang memungkinkan beban kerja tanpa server. Azure Durable Functions dimaksudkan sebagai opsi komputasi tanpa server yang kuat untuk menjalankan logika kustom. Azure Logic Apps lebih cocok untuk mengintegrasikan layanan dan komponen Azure. Anda dapat menggunakan salah satu teknologi untuk membuat orkestrasi yang kompleks. Dengan Azure Durable Functions, Anda mengembangkan orkestrasi dengan menulis kode dan menggunakan ekstensi Durable Functions. Dengan Logic Apps, Anda membuat orkestrasi dengan menggunakan permukaan desain atau mengedit file konfigurasi.

Tabel berikut mencantumkan beberapa perbedaan utama antara Azure Durable Functions dan Azure Logic Apps.

Tugas Azure Durable Functions Azure Logic Apps
Pengembangan Code-first (imperatif) Designer-first (deklaratif)
Konektivitas Sekitar selusin jenis pengikatan bawaan. Anda dapat menulis kode untuk pengikatan kustom. Koleksi konektor dalam jumlah besar. Paket Integrasi Perusahaan untuk B2B. Anda juga dapat membuat konektor kustom.
Tindakan Setiap aktivitas adalah Azure Function. Anda menulis kode untuk fungsi aktivitas. Banyak koleksi tindakan siap saji. Anda mengintegrasikan logika kustom melalui konektor kustom.
Pemantauan Azure Application Insights Azure portal, log Azure Monitor
Manajemen REST API, PowerShell, Visual Studio Portal Microsoft Azure, REST API, PowerShell, Visual Studio, ekstensi Visual Studio Code

Uji pengetahuan Anda

1.

Apa itu Durable Functions?

2.

Berikut ini manakah yang paling menggambarkan peran fungsi Orkestrator dalam alur kerja?

3.

Manakah dari berikut ini yang paling menjelaskan alasan pola aplikasi Interaksi Manusia diuntungkan dengan adanya Durable Functions?