Bagikan melalui


Menerbitkan dan berlangganan pesan MQTT menggunakan broker MQTT

Penting

Pratinjau Operasi Azure IoT – diaktifkan oleh Azure Arc saat ini dalam pratinjau. Anda tidak boleh menggunakan perangkat lunak pratinjau ini di lingkungan produksi.

Anda harus menyebarkan penginstalan Azure IoT Operations baru saat rilis yang tersedia secara umum tersedia. Anda tidak akan dapat memutakhirkan penginstalan pratinjau.

Untuk persyaratan hukum yang berlaku untuk fitur Azure yang beta, dalam pratinjau, atau belum dirilis ke ketersediaan umum, lihat Ketentuan Penggunaan Tambahan untuk Pratinjau Microsoft Azure.

IoT Operations memiliki broker MQTT tingkat perusahaan yang mematuhi standar yang dapat diskalakan, sangat tersedia, dan asli Kubernetes. Ini menyediakan bidang olahpesan untuk Pratinjau Operasi Azure IoT, memungkinkan komunikasi tepi/cloud dua arah dan mendukung aplikasi berbasis peristiwa di tepi.

Sesuai MQTT

Message Queue Telemetry Transport (MQTT) telah muncul sebagai franca lingua di antara protokol di ruang IoT. Desain sederhana MQTT memungkinkan satu broker untuk melayani puluhan ribu klien secara bersamaan, dengan pembuatan dan manajemen topik terbitkan-berlangganan yang ringan. Banyak perangkat IoT mendukung MQTT secara asli out-of-the-box, dengan ekor panjang protokol IoT dirasionalisasi ke MQTT oleh gateway terjemahan hilir.

Broker MQTT mendukung lapisan olahpesan dalam Operasi IoT dan mendukung MQTT v3.1.1 dan MQTT v5. Untuk informasi selengkapnya tentang fitur MQTT yang didukung, lihat Dukungan fitur MQTT di broker MQTT.

Sangat tersedia dan dapat diskalakan

Kubernetes dapat menskalakan beban kerja secara horizontal untuk berjalan dalam beberapa instans. Redundansi ini berarti kapasitas tambahan untuk melayani permintaan dan keandalan jika instans apa pun turun. Kubernetes memiliki penyembuhan mandiri bawaan, dan instans dipulihkan secara otomatis.

Selain Kubernetes menjadi teknologi penskalaan elastis, ini juga merupakan standar untuk DevOps. Jika MQTT adalah franca lingua di antara protokol IoT, Kubernetes adalah franca lingua untuk lapisan infrastruktur komputasi. Dengan mengadopsi Kubernetes, Anda dapat menggunakan alur CI/CD, alat, pemantauan, kemasan aplikasi, keterampilan karyawan yang sama di mana saja. Hasilnya adalah sistem end-to-end tunggal dari komputasi cloud, server lokal, dan gateway IoT yang lebih kecil di lantai pabrik. Anda dapat menghabiskan lebih sedikit waktu untuk berurusan dengan infrastruktur atau DevOps dan fokus pada bisnis Anda.

Broker MQTT berfokus pada nilai bidang data edge-native yang unik yang dapat diberikannya ke ekosistem Kubernetes sambil cocok dengan mulus ke dalamnya. Ini membawa sarana platform olahpesan berperforma tinggi dan dapat diskalakan dan integrasi yang mulus ke beban kerja Kubernetes lain yang dapat diskalakan dan Azure.

Aman secara default

Broker MQTT dibangun di atas konsep keamanan dan identitas asli Azure dan Kubernetes yang diuji pertempuran membuatnya sangat aman dan dapat digunakan. Ini mendukung beberapa mekanisme autentikasi untuk fleksibilitas bersama dengan mekanisme kontrol akses terperinci hingga tingkat topik MQTT individual.

Tip

Anda hanya dapat mengakses penyebaran broker MQTT default dengan menggunakan IP kluster, TLS, dan token akun layanan. Klien yang terhubung dari luar kluster memerlukan konfigurasi tambahan sebelum dapat terhubung.

Integrasi Azure Arc

Platform hibrid Microsoft berlabuh di sekitar Kubernetes dengan Azure Arc sebagai sarana kontrol tunggal. Ini menyediakan bidang manajemen yang memproyeksikan sumber daya non-Azure, lokal, atau cloud lainnya yang ada ke Azure Resource Manager. Hasilnya adalah panel kontrol tunggal untuk mengelola komputer virtual, kluster Kubernetes, dan database yang tidak berjalan di pusat data Azure.

Broker MQTT disebarkan sebagai ekstensi Azure Arc untuk Kubernetes dan dapat dikelola melalui penyedia sumber daya Azure (RP) berfitur lengkap - microsoft/IoTOperationsMQ. Ini berarti Anda dapat mengelolanya seperti sumber daya cloud Azure asli seperti Virtual Machines, Storage, dll.

Teknologi Azure Arc memungkinkan perubahan diterapkan pada layanan broker MQTT yang berjalan pada kluster Kubernetes lokal. Secara opsional, jika Anda lebih suka pendekatan asli Kubernetes sepenuhnya, Anda dapat mengelola broker MQTT dengan definisi sumber daya kustom (CRD) Kubernetes secara lokal atau menggunakan teknologi GitOps seperti Flux.

Konektor cloud

Anda mungkin memiliki persyaratan olahpesan yang berbeda untuk skenario cloud Anda. Misalnya, jalur cepat cloud/edge dua arah untuk data berprioritas tinggi atau untuk memberi daya dasbor cloud mendekati real-time dan jalur lambat dengan biaya lebih rendah untuk data yang kurang penting waktu yang dapat diperbarui dalam batch.

Untuk memberikan fleksibilitas, broker MQTT menyediakan Konektor Azure bawaan ke Azure Event Hubs (dengan titik akhir Kafka), kemampuan broker MQTT Event Grid, Microsoft Fabric dan Blob Storage. Broker MQTT dapat diperluas sehingga Anda dapat memilih solusi olahpesan cloud pilihan Anda yang berfungsi dengan solusi Anda.

Membangun di atas Azure Arc memungkinkan konektor dikonfigurasi untuk menggunakan Azure Managed Identity untuk mengakses layanan cloud dengan Kontrol Akses berbasis Peran Azure (RBAC) yang kuat. Tidak diperlukan manajemen kredensial manual, tidak aman, dan rumit.

Model pemrograman Dapr

Dapr menyederhanakan plumbing antara aplikasi terdistribusi dengan mengekspos kemampuan aplikasi terdistribusi umum, seperti manajemen status, pemanggilan layanan-ke-layanan, dan pesan terbitkan-berlangganan. Komponen Dapr terletak di bawah blok penyusun dan memberikan penerapan nyata untuk setiap kemampuan. Anda dapat fokus pada logika bisnis dan membiarkan Dapr menangani detail aplikasi terdistribusi.

Broker MQTT menyediakan blok penyusun penerbitan dan penyimpanan status Dapr yang dapat dicolokkan membuat pengembangan dan penyebaran aplikasi berbasis peristiwa di tepi mudah dan agnostik teknologi.

Sistem

Broker MQTT memiliki tiga lapisan:

  • Lapisan front-end stateless yang menangani permintaan klien
  • Load-balancer yang merutekan permintaan dan menghubungkan broker ke orang lain
  • Lapisan back-end stateful dan pecahan yang menyimpan dan memproses data

Lapisan back-end mempartisi data dengan kunci yang berbeda, seperti ID klien untuk sesi klien, dan nama topik untuk pesan topik. Ini menggunakan replikasi rantai untuk mereplikasi data dalam setiap partisi. Untuk data yang dibagikan oleh semua partisi, data menggunakan satu rantai yang mencakup semua partisi.

Tujuan arsitekturnya adalah:

  • Toleransi dan isolasi kesalahan: Penerbitan pesan berlanjut jika simpul back-end gagal dan mencegah kegagalan menyebar ke sistem lainnya
  • Pemulihan kegagalan: Pemulihan kegagalan otomatis tanpa intervensi operator
  • Tidak ada kehilangan pesan: Pengiriman pesan jika setidaknya satu simpul front-end dan satu simpul back-end sedang berjalan
  • Penskalaan elastis: Penskalaan horizontal penerbitan dan berlangganan throughput untuk mendukung penyebaran tepi dan cloud
  • Performa konsisten dalam skala besar: Membatasi overhead latensi pesan karena replikasi rantai
  • Kesederhanaan operasional: Dependensi minimum pada komponen eksternal untuk menyederhanakan pemeliharaan dan kompleksitas

Langkah berikutnya

Menyebarkan Pratinjau Operasi Azure IoT ke kluster Kubernetes dengan dukungan Arc