ZYLK Mencapai Layanan IoT yang Lebih Efisien dengan Optimasi APISIX
May 26, 2023
Ikhtisar
Alfonso González adalah seorang Pengembang AI & IoT di ZYLK, pemimpin dalam mengoptimalkan solusi sumber terbuka dan mendorong transformasi digital di Spanyol. Alfonso berbagi pengalaman mereka tentang bagaimana ZYLK menggunakan APISIX untuk komunikasi MQTT dan menerapkan keamanan siber dalam implementasi ini. Dia berkata, "Aman, andal, dan berkinerja tinggi, APISIX mungkin adalah gateway terbaik untuk API."
Tantangan
- Mengalami masalah terkait routing MQTT, jaringan K8S, dan komunikasi HTTP.
- Mengelola dan memelihara setiap endpoint dan routing yang dapat diakses menjadi tantangan, yang mengakibatkan biaya waktu dan usaha yang signifikan.
- Mengakomodasi pengguna baru di jaringan menjadi sulit karena mereka perlu memahami seluruh arsitektur sebelum mengakses layanan atau endpoint apa pun.
Hasil
- ZYLK memperbaiki masalah komunikasi HTTP dan masalah MQTT mereka dengan mengimplementasikan APISIX.
- ZYLK menggunakan APISIX sebagai proxy TCP untuk membuat rute aliran yang aman dari Raspberry Pi ke sistem antrian RabbitMQ di cloud, memastikan kerahasiaan dan integritas transmisi data.
- ZYLK mengalami peningkatan infrastruktur yang signifikan yang lebih ramah pengguna, menghasilkan penghematan waktu dan usaha yang besar dan pada akhirnya meningkatkan produktivitas.
Informasi Latar Belakang
ZYLK adalah konsultan IT berpengalaman yang mengkhususkan diri dalam Big Data, situs web dan portal Liferay, serta Kecerdasan Buatan selama lebih dari 15 tahun. Perusahaan ini telah menjadi pelopor dalam mengoptimalkan solusi sumber terbuka dan mendorong transformasi digital untuk berbagai klien, termasuk perusahaan swasta, administrasi publik, dan badan pemerintah di seluruh Spanyol dan Eropa sejak tahun 2004.
ZYLK sepenuhnya mengandalkan perangkat lunak sumber terbuka untuk menyediakan solusi, karena mereka percaya bahwa perangkat lunak sumber terbuka menawarkan banyak keunggulan dibandingkan alternatif proprietary, seperti hemat biaya, fleksibilitas, transparansi, dan dukungan komunitas. Sebelum mengimplementasikan APISIX, tim harus menangani endpoint komunikasi mereka satu per satu dan merujuk langsung setiap endpoint dari klien. Hal ini menyebabkan biaya waktu dan usaha yang signifikan terkait dengan pengelolaan dan pemeliharaan setiap endpoint dan routing yang dapat diakses.
Titik permasalahan utama dari proses sebelumnya termasuk mengakomodasi pengguna baru di jaringan yang harus memahami seluruh arsitektur sebelum mengakses layanan atau endpoint apa pun. Selain itu, tim menghadapi masalah routing MQTT, masalah terkait jaringan K8S, dan masalah komunikasi HTTP.
Pemilihan Teknis
ZYLK bekerja sepenuhnya dengan perangkat lunak sumber terbuka, termasuk banyak proyek Apache. Oleh karena itu, solusi Apache akan menjadi pilihan yang baik untuk dicoba ketika mencari gateway API. Setelah mencari solusi untuk masalah mereka selama sekitar enam bulan dan membandingkannya dengan Kong Gateway dan HAProxy, ZYLK akhirnya memilih untuk mengimplementasikan APISIX. Alasannya adalah sebagai berikut:
1. APISIX lebih sederhana dan memiliki plugin keamanan yang lebih komprehensif dengan Dashboard yang ramah pengguna.
APISIX menyediakan antarmuka yang sederhana dan mudah digunakan dengan serangkaian plugin keamanan yang komprehensif, yang memudahkan pengguna untuk mengelola dan mengamankan Gateway API mereka. Dashboard yang ramah pengguna juga memungkinkan konfigurasi dan pengelolaan Gateway API yang lebih mudah.
2. APISIX memiliki dukungan untuk berbagai protokol, tidak hanya HTTP.
APISIX mendukung berbagai protokol, menjadikannya alat yang serbaguna untuk mengelola berbagai jenis lalu lintas API. Fleksibilitas ini memungkinkan pengguna untuk mengelola semua lalu lintas API mereka di satu tempat, menyederhanakan infrastruktur mereka dan mengurangi kompleksitas.
3. APISIX memiliki kemampuan untuk mengarahkan ulang pesan MQTT masuk dengan mTLS antara klien dan server.
Dukungan APISIX untuk pesan MQTT dan enkripsi mTLS memberikan lapisan keamanan tambahan untuk komunikasi antara klien dan server. Dengan fitur ini, pesan MQTT masuk dapat diarahkan ulang dengan aman melalui APISIX, memastikan bahwa pesan tersebut dienkripsi dan diautentikasi sebelum mencapai tujuannya. Ini meningkatkan keamanan keseluruhan sistem dan melindungi informasi sensitif dari akses atau manipulasi yang tidak sah.
APISIX terbukti menjadi tambahan yang berharga untuk solusi ZYLK, menyediakan cara yang lebih sederhana dan aman untuk mengelola kebutuhan Gateway API mereka.
Pengenalan Arsitektur
1. Perangkat industri:PLC mendaftarkan data mesin kontrol iklim (di gedung terpencil)
Pertama, fokusnya adalah pada perangkat industri seperti PLC, yang digunakan untuk mendaftarkan data yang dihasilkan oleh mesin kontrol iklim. Sistem kontrol iklim berada di gedung terpencil, yang dianggap sebagai infrastruktur komputasi tepi. Data yang dihasilkan oleh perangkat ini perlu disimpan di server cloud. Cloud memiliki dua bagian yang saling berbagi data, dan data tersebut dihubungkan oleh protokol industri.
2. Protokol industri:Modbus dan BACnet digunakan untuk membaca data dari PLC
Untuk membaca data langsung dari PLC, modul pada BACnet digunakan. ZYLK berencana untuk menerjemahkan modul ini dan informasi BACnet ke dalam TCP agar lebih mudah dikelola. Setelah data dalam format yang sesuai, data tersebut dikirim ke server cloud menggunakan MQTT. Meskipun MQTT mudah digunakan untuk perangkat IoT, menanganinya di cloud telah menimbulkan beberapa tantangan bagi ZYLK, terutama terkait dengan penerapan langkah-langkah keamanan siber.
3. Komunikasi MQTT:Konversi TCP dilakukan dan data dikirim ke server Cloud melalui MQTT
ZYLK menggunakan APISIX sebagai solusi mereka untuk komunikasi MQTT yang aman dalam kasus penggunaan mereka. Data yang dihasilkan oleh mesin pendingin udara industri dikumpulkan oleh PLC dan diterjemahkan ke dalam bahasa TCP oleh gateway TCP untuk Modbus, kemudian dikirim ke Raspberry Pi. Data harus dikirim melalui protokol MQTT untuk mencapai sistem antrian, yang bisa berupa Mosquito atau RabbitMQ, dan ZYLK menggunakan APISIX untuk mencapai ini.

Tujuan menyimpan data ini adalah untuk memiliki catatan historis tentang fungsi mesin, yang digunakan untuk membangun model pembelajaran mesin di cloud. ZYLK menggunakan model NTL untuk melatih dan memberi makan data ini. Infrastruktur tepi dibangun menggunakan diagram sederhana, dengan mesin pendingin udara industri menghasilkan data di sebelah kiri dan dikumpulkan oleh PLC.
Raspberry Pi mengirim pesan MQTT dengan cara yang tidak aman, yang menjadi masalah bagi ZYLK karena mereka membutuhkan pesan tersebut untuk aman, setidaknya dari APISIX ke eksterior karena Raspberry Pi berada di gedung terpencil. ZYLK tidak terlalu memperhatikan keamanan setelah pesan mencapai APISIX karena sistem antrian, RabbitMQ, berada di server mereka sendiri. Namun, mengamankan bagian pertama komunikasi sangat penting untuk memastikan keamanan siber dan pesan terenkripsi.
4. Model ML:Setelah di Cloud, data disimpan dan digunakan untuk melatih dan memberi makan model LSTM

Akhirnya, di cloud, ada kluster Kubernetes dengan database NIFI. Data yang dihasilkan oleh perangkat industri disimpan di cloud dan digunakan untuk melatih dan memberi makan model LSTM.
Proses Implementasi
Langkah 1:Aktifkan Plugin
ZYLK menjelaskan langkah-langkah yang mereka ambil untuk mengaktifkan APISIX agar berfungsi sebagai proxy TCP dan membuat rute aliran dari APISIX ke sistem antrian RabbitMQ. Pertama, mereka mengaktifkan plugin proxy MQTT dengan menghapus komentar beberapa baris dalam file config dan mengizinkan port yang ditentukan untuk berfungsi sebagai proses aliran untuk pesan TCP. Penting untuk dicatat bahwa dengan mengatur ini, mereka masih dapat menggunakan semua fitur APISIX lainnya dan bekerja dengan REST API dan protokol HTTP tanpa masalah.

Langkah 2: Buat Rute Aliran
Selanjutnya, ZYLK membuat rute aliran menggunakan objek khusus di APISIX yang mirip dengan jalan tetapi tidak muncul di dashboard. Mereka menggunakan perintah sederhana untuk menentukan plugin yang mereka gunakan, nama dan versi protokol MQTT, dan SNI (server name indication) untuk mencocokkan sertifikat mereka untuk komunikasi yang aman. Mereka menentukan node upstream yang menghosting layanan RabbitMQ atau sistem antrian pesan lain yang mereka pilih untuk digunakan. Mengaktifkan APISIX sebagai proxy TCP dan mengatur rute upstream memungkinkan ZYLK untuk mengirim pesan MQTT dengan aman dari Raspberry Pi ke sistem antrian RabbitMQ di cloud. Ini memastikan keamanan siber dan pesan terenkripsi yang diperlukan untuk kasus penggunaan mereka. Kemampuan untuk tetap menggunakan fitur APISIX lainnya dan bekerja dengan REST API dan protokol HTTP membuat solusi ini fleksibel dan dapat disesuaikan dengan kebutuhan mereka. ZYLK telah berhasil menguji solusi mereka dengan Mosquitto Broker dan menemukan bahwa solusi tersebut bekerja dengan baik.

Langkah 3: Tandatangani dan Muat Sertifikat
Setelah membuat rute aliran, langkah selanjutnya adalah membuat dan menandatangani sertifikat serta memuatnya ke dalam instance APISIX. Mereka menggunakan skrip Python untuk membuat objek SSL dengan sertifikat, kunci, dan SNI, memastikan SNI cocok dengan yang ditentukan dalam rute aliran.

ZYLK menekankan pentingnya memastikan SNI benar. Setelah sertifikat dimuat, mutual TLS terbentuk antara klien dan server, dengan keduanya menunjukkan sertifikat mereka. Dengan pengaturan ini, ZYLK memiliki komunikasi yang aman dari APISIX ke eksterior. Mereka juga dapat mengenkripsi komunikasi antara APISIX dan upstream mereka jika diperlukan tetapi memilih untuk membiarkannya tidak terenkripsi. ZYLK telah menggunakan APISIX untuk penggunaan lain dan menemukan bahwa plugin memberikan mereka fungsionalitas tambahan. Mereka mengarahkan ulang lalu lintas masuk ke broker MQTT, menggunakan ID klien untuk membagi pesan ke dalam topik yang berbeda jika diperlukan. Dan autentikasi MQTT juga dimungkinkan.
Penggunaan APISIX dan MQTT memungkinkan ZYLK untuk memecahkan masalah unik dan memperluas kemampuan mereka melampaui masalah terkait HTTP yang khas. Dengan membuat saluran komunikasi yang aman, mereka dapat menyimpan dan menganalisis data yang dihasilkan oleh peralatan industri dan menggunakannya untuk melatih model pembelajaran mesin untuk pemeliharaan prediktif.
Pencapaian setelah Menggunakan APISIX
ZYLK sangat mendukung APISIX dan sangat bersedia merekomendasikannya kepada mitra bisnis mereka. Ketika menggambarkan APISIX kepada seorang teman, Alfonso González akan berkata, "APISIX adalah layanan gateway API Apache yang menyediakan banyak fitur untuk routing, termasuk autentikasi, pembatasan kecepatan, dan kemampuan pelacakan." Alfonso percaya bahwa APISIX adalah gateway terbaik untuk API.
Kasus penggunaan ZYLK melibatkan perangkat industri, protokol industri, komunikasi MQTT, dan model ML. Manfaat yang diperoleh ZYLK dari penggunaan APISIX meliputi:
1. Mengirim Pesan MQTT dengan Aman Menggunakan APISIX di Lingkungan Industri
Perangkat industri seperti PLC mendaftarkan data mesin kontrol iklim, yang diterjemahkan ke dalam TCP dan dikirim ke server cloud menggunakan MQTT. APISIX digunakan untuk mengirim pesan MQTT dengan aman dari Raspberry Pi ke sistem antrian RabbitMQ di cloud, memastikan keamanan siber dan pesan terenkripsi yang diperlukan untuk kasus penggunaan mereka.
2. Mengaktifkan Komunikasi Aman dengan Plugin Proxy MQTT dan Mutual TLS
ZYLK mengaktifkan plugin proxy MQTT dan membuat rute aliran menggunakan objek khusus di APISIX. Mereka juga menandatangani dan memuat sertifikat dengan skrip Python, memastikan SNI cocok dengan yang ditentukan dalam rute aliran. Dengan membentuk mutual TLS antara klien dan server, ZYLK dapat memiliki komunikasi yang aman dari APISIX ke eksterior.
3. Memperluas Kemampuan dengan APISIX
Implementasi APISIX dan MQTT yang berhasil oleh ZYLK memungkinkan mereka untuk memecahkan masalah unik dan memperluas kemampuan mereka melampaui masalah terkait HTTP yang khas. Mereka dapat menyimpan dan menganalisis data yang dihasilkan oleh peralatan industri dan menggunakannya untuk melatih model pembelajaran mesin untuk pemeliharaan prediktif.
ZYLK berkomitmen untuk tetap berada di garis depan industri mereka dan memberikan solusi terbaik kepada klien mereka. Saat mereka terus menghadapi tantangan di masa depan, mereka pasti akan menemukan cara baru dan inovatif untuk memanfaatkan teknologi seperti APISIX untuk mencapai tujuan mereka.
Ringkasan
Sebelum mengimplementasikan APISIX, ZYLK harus mengelola komunikasi mereka endpoint demi endpoint, yang memakan waktu dan tidak efisien. Mereka menghadapi beberapa masalah terkait routing MQTT, jaringan K8S, dan komunikasi HTTP.
Setelah meneliti berbagai solusi gateway API, ZYLK akhirnya memilih untuk mengimplementasikan APISIX karena fitur keamanannya yang komprehensif, dashboard yang ramah pengguna, dan kesederhanaannya. Dengan APISIX, ZYLK dapat membuka port router dengan aman untuk komunikasi pesan MQTT dan routing API internal. Mereka juga dapat mengarahkan ulang pesan MQTT masuk dengan mTLS antara klien dan server. ZYLK juga mengalami peningkatan signifikan dalam infrastruktur mereka, menghasilkan penghematan waktu dan usaha.
Dalam hal tujuan masa depan, ZYLK melihat keamanan siber, konvergensi IT dan OT, dan pembelajaran mendalam yang dapat dijelaskan sebagai tantangan terbesar di cakrawala industri mereka. Dalam enam bulan ke depan, tim berencana untuk terus mengerjakan proyek R&D dan mengembangkan layanan IoT mereka sendiri.