Azure Service Fabric: Hal yang perlu Anda ketahui

Layanan cloud seperti Azure pada dasarnya adalah sistem terdistribusi masif, yang menampung semua jenis layanan. Beberapa di antaranya adalah infrastruktur yang dihosting, beberapa di antaranya adalah wadah dan layanan mikro, beberapa adalah platform pengembangan, dan beberapa memanfaatkan pola tanpa server.

Mereka semua membutuhkan satu hal: platform manajemen dan orkestrasi. Alat lintas-cloud tujuan umum seperti Kubernetes menawarkan satu cara untuk menghadirkan lingkungan container terkelola, tetapi ada juga tempat untuk lingkungan kustom yang berfokus pada kebutuhan platform cloud tertentu. Untuk Azure, itu ditangani oleh alat yang telah ada sejak masa awal cloud publik Microsoft: Azure Service Fabric.

Memperkenalkan Azure Service Fabric

Tersembunyi dalam fondasi Azure, Service Fabric bisa jadi sulit untuk dijelaskan. Tapi kami melihatnya sepanjang waktu, dalam alat yang kami gunakan untuk membangun perangkat lunak cloud-native kami sendiri. Ini adalah inti dari Pusat Acara dan platform IoT Azure, database SQL dan Cosmos DB, serta banyak layanan perusahaan dan konsumen yang kami gunakan setiap hari. Dengan Azure Service Fabric, Anda mendapatkan akses ke alat yang sama yang digunakan Microsoft untuk menjalankan dan mengelola layanannya sendiri, membuatnya menjadi kode Anda sendiri.

Maksud dari Azure Service Fabric adalah untuk mempermudah penerapan dan pengelolaan layanan mikro, menangani operasi berstatus dan tanpa status di seluruh instans PaaS Azure. Ini tidak hanya untuk Azure, karena alat pengembangan lokal adalah versi lengkap dari Azure Service Fabric, yang berarti akan berjalan di sistem Windows apa pun. Versi Linux membuatnya portabel di berbagai cloud juga, menangani kode yang ada dan kustom.

Azure Service Fabric mengelola siklus hidup aplikasi Anda, dengan API yang memberikan akses platform tambahan di luar kode yang murni berdiri sendiri. Ini juga mendukung layanan mikro aktor / pesannya sendiri serta menghosting kode ASP.Net Core. Layanan dapat berjalan secara asli sebagai proses, atau Anda dapat menghostingnya dalam wadah, memberi Anda opsi untuk membawa kode yang ada dengan cepat ke PaaS Azure. Kontainer bercampur dengan model aplikasi Azure Service Fabric lainnya, memungkinkan Anda dengan cepat menyertakan fungsionalitas yang ada melalui lift-and-shift atau dengan memasukkan aplikasi paket tertentu.

Mulailah dengan Azure Service Fabric

Mungkin cara tercepat untuk mulai mengembangkan dengan Service Fabric adalah kerangka Layanan yang Andal. Ini adalah sekumpulan API yang terintegrasi dengan fitur manajemen siklus hidup aplikasi Azure Service Fabric. Anda dapat menulis kode dalam bahasa apa pun yang didukung, atau dalam kerangka kerja aplikasi pilihan Anda. Layanan bisa stateless atau stateful, dengan layanan stateless menggunakan penyimpanan eksternal untuk menangani status. Opsi stateful lebih menarik, karena menggunakan alat Service Fabric sendiri untuk mengelola status aplikasi. Anda tidak perlu mempertimbangkan penskalaan atau ketersediaan tinggi; semuanya ditangani untuk Anda.

Jika Anda telah menggunakan koleksi C #, Anda akan menemukan Koleksi Terpercaya dari Layanan Andal sudah tidak asing lagi. Mereka juga diadakan dalam contoh yang sama dengan komputasi Anda, mengurangi latensi. Jika sebuah layanan gagal, ia dapat mengambil status saat diluncurkan kembali. Memiliki model status yang berbeda memungkinkan Anda memilih model yang paling sesuai untuk layanan Anda. Layanan sederhana yang hanya memerlukan data masukan untuk beroperasi dapat menjadi tanpa kewarganegaraan, tetapi jika Anda bekerja dengan kode yang perlu mengetahui status sebelumnya, Anda perlu membangun Layanan yang Andal.

Microsoft mempermudah pembuatan web dan aplikasi yang sudah dikenal di bagian belakang Azure Service Fabric dengan dukungan untuk ASP.Net Core. Meskipun tidak 100 persen kompatibel dengan kode dengan ASP.Net MVC, Anda dapat memigrasi kode yang ada ke platform baru. Ada dukungan untuk membangun layanan stateless dan stateful, menyerahkan orkestrasi aplikasi dan penskalaan ke Azure Service Fabric.

Konkurensi yang skalabel dengan aktor

Aplikasi Born-in-the-cloud harus memanfaatkan framework Aktor yang Andal. Ini memperluas Layanan Andal untuk mengimplementasikan aktor virtual (seperti yang digunakan oleh kerangka kerja Project Orleans terbuka yang populer di bagian belakang game). Menggunakan pola aktor / pesan untuk menangani layanan mikro bekerja dengan baik, karena model sistem konkuren yang mendasarinya berskala cepat dan dapat menangani banyak pelaku yang beroperasi pada waktu yang sama.

Aktor yang Andal tidak untuk setiap skenario. Ini berfungsi paling baik ketika kode Anda dapat dipecah menjadi blok komputasi sederhana yang dapat diimplementasikan sebagai nonblocking single-threaded object yang tidak memiliki status atau memiliki statusnya sendiri. Paling baik untuk aplikasi yang benar-benar baru, karena sulit untuk menguraikan kode yang ada. Membuat aplikasi menggunakan Aktor Andal bisa jadi rumit, bahkan ketika Anda telah menentukan aktor Anda. Perlu diingat bahwa meskipun aktor dapat dikumpulkan sampahnya, statusnya akan tetap ada dan diakses saat Anda memanggil aktor dengan ID yang sama di masa mendatang.

Aktor yang Andal memecahkan banyak masalah komputasi terdistribusi yang kompleks, meskipun Anda harus memikirkan dengan hati-hati tentang bagaimana Anda memetakan objek ke aktor, dan bagaimana Anda akan menggunakannya dalam aplikasi Anda.

Azure Service Fabric menjadi sumber terbuka

Microsoft baru-baru ini mengumumkan bahwa itu adalah Layanan Fabric sumber terbuka, mengubah model pengembangan menjadi model yang akan menerima permintaan penarikan pihak ketiga, serta memungkinkan proses desain terbuka dan publik.

Pergeseran ke model pengembangan open source, bersamaan dengan proses desain terbuka, merupakan upaya besar untuk teknologi dasar seperti Azure Service Fabric. Sementara tahap awal kode sumber terbuka berbasis Linux, tim pengembangan Microsoft telah mengindikasikan bahwa kode berbasis Windows yang saat ini berjalan di Azure akan segera menyusul. Pengembangan akan dilakukan di GitHub, dengan sebagian besar pekerjaan awal difokuskan pada penyelesaian transisi dari platform internal Microsoft ke proses yang dihadapi publik.

Microsoft telah merencanakan untuk memberikan Azure Service Fabric untuk beberapa waktu sekarang — setidaknya sejak dimulainya cabang Linux kode. Karena keduanya merupakan kode yang lebih baru dan menggunakan alat yang berbeda dari versi Windows, jauh lebih mudah untuk membuat cabang itu dibentuk untuk rilis publik. Alat Windows lebih kompleks, dengan satu dekade atau lebih sejarah yang perlu diurai dan difaktor ulang. Sebagian besar disebabkan oleh penggunaan alat pengembangan khusus Microsoft yang tidak tersedia untuk dunia luar, ditambah pengerjaan ulang yang diperlukan untuk memindahkannya ke alat yang tersedia untuk umum.

Memiliki alat seperti Azure Service Fabric yang Anda inginkan memberi Anda lebih banyak opsi daripada PaaS tradisional, terutama saat membangun aplikasi baru dari awal. Dukungan untuk penampung menambahkan kemampuan untuk menghadirkan aplikasi yang dikemas bersama kode Anda. Demikian pula, menggunakan kerangka kerja dan pola yang sudah dikenal dapat mempersingkat kurva pembelajaran. Dengan masa depan open source di depannya, Azure Service Fabric dapat menjadi kerangka kerja aplikasi multicloud yang Anda cari.