Acara
Membangun Aplikasi dan Agen AI
17 Mar, 21 - 21 Mar, 10
Bergabunglah dengan seri meetup untuk membangun solusi AI yang dapat diskalakan berdasarkan kasus penggunaan dunia nyata dengan sesama pengembang dan pakar.
Daftar sekarangBrowser ini sudah tidak didukung.
Mutakhirkan ke Microsoft Edge untuk memanfaatkan fitur, pembaruan keamanan, dan dukungan teknis terkini.
Orleans:
Orleans didasarkan pada "model aktor". Model aktor berasal pada awal 1970-an dan sekarang menjadi komponen inti Orleans. Model aktor adalah model pemrograman di mana setiap aktor adalah objek ringan, bersamaan, tidak dapat diubah yang merangkum bagian dari status dan perilaku yang sesuai. Aktor berkomunikasi secara eksklusif satu sama lain menggunakan pesan asinkron. Orleans terutama menciptakan abstraksi Virtual Actor, di mana aktor ada secara abadi.
Catatan
Aktor adalah entitas murni logis yang selalu ada, secara virtual. Aktor tidak dapat dibuat atau dihancurkan secara eksplisit, dan keberadaan virtualnya tidak terpengaruh oleh kegagalan server yang menjalankannya. Karena aktor selalu ada, mereka selalu dapat diatasi.
Ini adalah pendekatan baru untuk membangun generasi baru aplikasi terdistribusi untuk era Cloud. Model pemrograman Orleans menjinakkan kompleksitas yang melekat pada aplikasi terdistribusi yang sangat paralel tanpa membatasi kemampuan atau memberlakukan batasan pada pengembang.
Untuk informasi selengkapnya, lihat Orleans: Virtual Actors melalui Microsoft Research. Aktor virtual direpresentasikan sebagai butir Orleans.
Biji-bijian adalah salah satu dari beberapa primitif Orleans. Dalam hal model aktor, biji-bijian adalah aktor virtual. Blok penyusun mendasar dalam aplikasi Orleans apa pun adalah butir. Butiran adalah entitas yang terdiri dari identitas, perilaku, dan keadaan yang ditentukan pengguna. Pertimbangkan representasi visual butir berikut:
Identitas butir adalah kunci yang ditentukan pengguna yang membuat biji-bijian selalu tersedia untuk pemanggilan. Biji-bijian dapat dipanggil oleh biji-bijian lain atau oleh sejumlah klien eksternal. Setiap butir adalah instans kelas yang mengimplementasikan satu atau beberapa antarmuka berikut:
Guid
.Int64
.string
.Biji-bijian dapat memiliki data status volatil atau persisten yang dapat disimpan dalam sistem penyimpanan apa pun. Dengan demikian, butiran secara implisit mempartisi status aplikasi, memungkinkan skalabilitas otomatis dan menyederhanakan pemulihan dari kegagalan. Status grain disimpan dalam memori saat grain aktif, sehingga mengurangi latensi dan beban pada penyimpanan data.
Instansiasi biji-bijian secara otomatis dilakukan sesuai permintaan oleh runtime Orleans. Biji-bijian yang tidak digunakan untuk sementara waktu secara otomatis dihapus dari memori untuk membebaskan sumber daya. Ini dimungkinkan karena identitas stabil mereka, yang memungkinkan pemanggilan biji-bijian apakah sudah dimuat ke dalam memori atau tidak. Ini juga memungkinkan pemulihan transparan dari kegagalan karena pemanggil tidak perlu tahu di server mana sebuah grain diinstansiasi pada titik waktu tertentu. Grain memiliki siklus hidup terkelola, dengan runtime Orleans bertanggung jawab untuk mengaktifkan/menonaktifkan, dan menempatkan/menempatkan grain sesuai keperluan. Ini memungkinkan pengembang untuk menulis kode seolah-olah semua biji-bijian selalu dalam memori.
Silo adalah contoh lain dari primitif Orleans. Silo menyimpan satu atau beberapa jenis gandum. Runtime Orleans adalah yang mengimplementasikan model pemrograman untuk aplikasi.
Biasanya, sekelompok silo berjalan sebagai kluster untuk skalabilitas dan toleransi kesalahan. Saat dijalankan sebagai kluster, silo berkoordinasi satu sama lain untuk mendistribusikan pekerjaan dan mendeteksi dan memulihkan dari kegagalan. Runtime memungkinkan biji-bijian yang dihosting dalam kluster untuk berkomunikasi satu sama lain seolah-olah mereka berada dalam satu proses. Untuk membantu memvisualisasikan hubungan antara kluster, silo, dan biji-bijian, pertimbangkan diagram berikut:
Diagram sebelumnya menunjukkan hubungan antara kluster, silo, dan biji-bijian. Anda dapat memiliki sejumlah kluster, setiap kluster memiliki satu atau beberapa silo, dan setiap silo memiliki satu atau beberapa butir.
Selain model pemrograman inti, silo menyediakan biji-bijian dengan serangkaian layanan runtime seperti timer, pengingat (timer persisten), persistensi, transaksi, aliran, dan banyak lagi. Untuk informasi selengkapnya, lihat Apa yang bisa saya lakukan dengan Orleans?.
Aplikasi web dan klien eksternal lainnya memanggil biji-bijian di kluster menggunakan pustaka klien, yang secara otomatis mengelola komunikasi jaringan. Klien-klien juga dapat diko-host dalam proses yang sama dengan silo untuk kesederhanaan.
Orleans adalah kerangka kerja untuk membangun aplikasi cloud-native dan harus dipertimbangkan setiap kali Anda membangun aplikasi .NET yang pada akhirnya perlu diskalakan. Ada tampaknya cara yang hampir tak terbatas untuk menggunakan Orleans, tetapi berikut ini adalah beberapa cara yang paling umum; Permainan, Perbankan, Aplikasi obrolan, Pelacakan GPS, Trading saham, Keranjang belanja, Aplikasi voting, dan banyak lagi. Orleans digunakan oleh Microsoft di Azure, Xbox, Skype, Halo, PlayFab, Gears of War, dan banyak layanan internal lainnya. Orleans memiliki banyak fitur yang memudahkan penggunaan untuk berbagai aplikasi.
Orleans menyediakan model persistensi sederhana yang memastikan status tersedia sebelum memproses permintaan, dan konsistensinya dipertahankan. Biji-bijian dapat memiliki beberapa objek data persisten bernama. Misalnya, mungkin ada satu yang disebut "profil" untuk profil pengguna dan yang disebut "inventory" untuk inventori mereka. Status ini dapat disimpan dalam sistem penyimpanan apa pun.
Ketika sebuah objek sedang berjalan, statusnya disimpan dalam memori agar permintaan baca dapat dilayani tanpa mengakses penyimpanan. Ketika grain memperbarui statusnya, memanggil IStorage.WriteStateAsync memastikan bahwa penyimpanan pendukung diperbarui untuk daya tahan dan konsistensi.
Untuk informasi selengkapnya, lihat Ketahanan Butir.
Pengingat adalah mekanisme penjadwalan yang tahan lama untuk butiran. Mereka dapat digunakan untuk memastikan bahwa suatu tindakan diselesaikan pada waktu mendatang, bahkan jika elemen tersebut belum diaktifkan pada saat itu. Timer adalah mitra pengingat yang tidak tahan lama dan dapat digunakan untuk peristiwa frekuensi tinggi, yang tidak memerlukan keandalan.
Untuk informasi selengkapnya, lihat Pengatur waktu dan pengingat.
Ketika biji-bijian diaktifkan di Orleans, runtime memutuskan server mana (silo) untuk mengaktifkan biji-bijian itu. Ini disebut penempatan biji-bijian.
Proses penempatan di Orleans sepenuhnya dapat dikonfigurasi. Pengembang dapat memilih dari serangkaian kebijakan penempatan siap pakai seperti acak, preferensi lokal, dan berbasis beban, atau logika kustom yang dapat dikonfigurasi. Ini memungkinkan fleksibilitas penuh dalam memutuskan di mana butir dibuat. Misalnya, biji-bijian dapat ditempatkan di server yang dekat dengan sumber daya yang perlu mereka operasikan terhadap atau biji-bijian lain yang berkomunikasi dengan mereka.
Untuk informasi selengkapnya, lihat penempatan biji-bijian .
Meningkatkan sistem produksi dengan cara yang aman memperkirakan perubahan dapat menjadi tantangan, terutama dalam sistem stateful. Untuk memperhitungkan hal ini, antarmuka grain di Orleans dapat memiliki versi.
Kluster mempertahankan pemetaan implementasi biji-bijian mana yang tersedia di mana silo dalam kluster dan versi implementasi tersebut. Versi informasi ini digunakan oleh sistem runtime bersama dengan strategi penempatan untuk membuat keputusan penempatan saat merutekan panggilan ke grains. Selain itu, untuk memperbarui biji-bijian versi dengan aman, ini juga memungkinkan kluster heterogen, di mana silo yang berbeda memiliki set implementasi biji-bijian yang berbeda yang tersedia.
Untuk informasi selengkapnya, lihat Versi Grain.
Pekerja tanpa status adalah biji-bijian yang ditandai secara khusus yang tidak memiliki status terkait dan dapat diaktifkan pada beberapa silo secara bersamaan. Ini memungkinkan peningkatan paralelisme untuk fungsi stateless.
Untuk informasi selengkapnya, lihat butir pekerja tanpa status.
Filter panggilan grain adalah logika yang umum untuk banyak biji-bijian. Orleans mendukung filter untuk panggilan masuk dan keluar. Filter untuk otorisasi, pengelogan dan telemetri, dan penanganan kesalahan semuanya dianggap umum.
Metadata dan informasi lainnya dapat diteruskan dengan serangkaian permintaan menggunakan konteks permintaan . Konteks permintaan dapat digunakan untuk menyimpan informasi pelacakan terdistribusi atau nilai lain yang ditentukan pengguna.
Selain model persistensi sederhana yang dijelaskan di atas, biji-bijian dapat memiliki status transaksi . Beberapa biji-bijian dapat berpartisipasi dalam transaksi ACID bersama-sama terlepas dari di mana keadaan mereka pada akhirnya disimpan. Transaksi dalam Orleans didistribusikan dan didesentralisasi (tidak ada manajer transaksi pusat atau koordinator transaksi) dan memiliki isolasi yang dapat diserialisasikan.
Untuk informasi selengkapnya tentang transaksi, lihat transaksi .
Fitur aliran membantu pengembang memproses serangkaian item data hampir secara real-time. aliran Orleansterkelola; aliran tidak perlu dibuat atau didaftarkan sebelum grain atau klien diterbitkan, atau berlangganan aliran. Ini memungkinkan pemisahan yang lebih besar antara produsen dan konsumen aliran dari satu sama lain serta dari infrastruktur.
Pemrosesan aliran dapat diandalkan: biji-bijian dapat menyimpan titik pemeriksaan (kursor) dan mengatur ulang ke titik pemeriksaan yang disimpan selama aktivasi atau pada waktu berikutnya. Stream mendukung pengiriman pesan secara batch kepada konsumen untuk meningkatkan efisiensi dan kinerja pemulihan.
Aliran didukung oleh layanan antrean seperti Azure Event Hubs, Amazon Kinesis, dan lainnya.
Sejumlah aliran dapat di-multipleks ke dalam beberapa antrean yang lebih kecil, dan tanggung jawab untuk memproses antrean ini dibagi secara merata di seluruh kluster.
Jika Anda tertarik dengan pengenalan video Orleans, lihat video berikut:
Tutorial : Membuat aplikasi Orleans minimal
Umpan balik .NET
.NET adalah proyek sumber terbuka. Pilih tautan untuk memberikan umpan balik:
Acara
Membangun Aplikasi dan Agen AI
17 Mar, 21 - 21 Mar, 10
Bergabunglah dengan seri meetup untuk membangun solusi AI yang dapat diskalakan berdasarkan kasus penggunaan dunia nyata dengan sesama pengembang dan pakar.
Daftar sekarangPelatihan
Modul
Pengantar untuk Orleans - Training
Pelajari apa itu kerangka kerja Orleans, manfaat yang dapat diberikannya, serta cara mengintegrasikannya dengan aplikasi Anda.