Manufaktur industri
Industri Internet of Things | bahan industri | Pemeliharaan dan Perbaikan Peralatan | Pemrograman industri |
home  MfgRobots >> Manufaktur industri >  >> Industrial Internet of Things >> Tertanam

Pelacakan perangkat lunak di perangkat yang diterapkan di lapangan

Pelacakan perangkat lunak adalah alat penting di setiap kotak alat pengembang yang disematkan, terutama bila dikombinasikan dengan visualisasi tingkat lanjut. Sebagian besar sistem tertanam memiliki banyak pola siklus, di mana urutan yang sama berulang-ulang. Saat men-debug, Anda sering ingin menemukan anomali, yaitu penyimpangan dari perilaku siklus normal di mana sesuatu yang tidak biasa terjadi.

Namun, penelusuran perangkat lunak itu sendiri hanyalah bentuk pengumpulan data. Mencari masalah dalam kumpulan data tekstual atau numerik log mirip dengan mencari jarum di tumpukan jerami, tetapi dengan visualisasi yang tepat pencarian diubah menjadi masalah pengenalan pola visual, sesuatu yang otak manusia dilengkapi dengan baik untuk melakukannya. . Grafik interaktif yang menunjukkan waktu eksekusi, waktu respons, pengalihan tugas, pengiriman pesan di antara tugas – semua ini memungkinkan developer untuk dengan cepat menemukan anomali dalam eksekusi firmware mereka, tempat untuk menggali lebih dalam.

Alat untuk diagnostik jejak visual telah ada setidaknya selama satu dekade dan telah terbukti berguna untuk pengembangan dan debugging di lab. Dengan semakin banyak pengembang perangkat lunak tertanam yang menambahkan konektivitas cloud 'internet of things' yang aman, sangat wajar untuk mempertimbangkan penggunaan penelusuran di perangkat yang digunakan di lapangan, untuk menangkap masalah dunia nyata yang terlewatkan selama pengujian. Lagi pula, pelacakan berbasis perangkat lunak tidak memerlukan perangkat keras tambahan dan perangkat IoT yang terhubung jelas mampu mengunggah data pelacakan diagnostik, dengan cara yang sama seperti data aplikasi biasa. Dengan cara ini, pengembang dapat dengan cepat mengetahui masalah perangkat lunak yang tersisa yang menyebabkan masalah selama operasi dunia nyata dan juga mendapatkan diagnosa mendetail untuk memahami penyebabnya.

Dalam skenario ini, pelacakan perangkat lunak sebanding dengan "perekam penerbangan" virtual, seperti yang digunakan di pesawat jika terjadi kecelakaan. Ini adalah bagian terpadu dari produk yang selalu merekam, memberikan informasi penting jika terjadi masalah. Namun tidak seperti kotak perekam penerbangan yang sebenarnya, ini adalah solusi perangkat lunak dan ditujukan untuk masalah perangkat lunak.

Salah satu solusi untuk jenis pemantauan perangkat IoT ini adalah DevAlert Percepio (gambar 1), yang terdiri dari tiga bagian:monitor firmware, perpustakaan kecil yang Anda tambahkan ke firmware untuk memungkinkan pelacakan dan pengunggahan peringatan; alat Tracealyzer kami untuk diagnostik jejak visual; dan layanan cloud, yang bertanggung jawab untuk mengkategorikan dan menyimpan lansiran, memberi tahu pengembang, memfilter lansiran duplikat, dan banyak lagi.

Gambar 1. Percepio DevAlert memberikan umpan balik instan kepada pengembang IoT tentang kesalahan pada perangkat mereka yang terhubung ke cloud, memungkinkan peningkatan berkelanjutan yang cepat dari perangkat lunak perangkat.
(Klik gambar untuk memperbesar)

Versi awal berjalan di AWS dan ditujukan untuk aplikasi RTOS yang menggunakan inti AWS IoT, tetapi solusinya dapat disesuaikan untuk platform cloud lainnya.

Pelacakan perangkat lunak dan konektivitas awan
Menelusuri di lab pengembangan dan melacak perangkat yang digunakan adalah dua hal yang berbeda. Jika Anda menggunakan diagnostik jejak visual di lab saat ini dan ingin mengembangkannya di lapangan, ada beberapa hal yang perlu Anda pikirkan.

Dibandingkan dengan koneksi fisik langsung seperti USB atau Ethernet, koneksi cloud menawarkan bandwidth yang terbatas dan waktu respons yang lebih lama. Mengunggah katakanlah 5 KB data mungkin memerlukan puluhan atau ratusan milidetik melalui antarmuka nirkabel. Namun, dalam pendekatan ini, jejak tidak ditransmisikan secara terus menerus, tetapi hanya ketika peringatan dibuat dan hanya sedikit jejak dari peristiwa terbaru. Peringatan hanya ditujukan untuk hal-hal yang tidak biasa tetapi penting, misalnya jika ada kesalahan yang terdeteksi dalam kode aplikasi, seperti pemeriksaan kewarasan yang gagal, kesalahan keras, atau reset pengawas.

Perangkat apa pun yang terhubung ke internet harus aman. Oleh karena itu, penting untuk tidak memperkenalkan vektor serangan baru. Kami mengatasi ini di DevAlert dengan mengandalkan konektivitas cloud yang ada daripada memperkenalkan koneksi baru. Ini memanfaatkan keamanan AWS dan penyedia IoT/cloud terkemuka lainnya, yang menawarkan SDK terverifikasi untuk konektivitas cloud yang diamankan sesuai dengan praktik terbaik, seperti autentikasi perangkat menggunakan sertifikat X.509 dan komunikasi terenkripsi menggunakan TLS. Ini kemudian akan membuat unggahan DevAlert sama amannya dengan data aplikasi IoT biasa, dan untuk keamanan tambahan, ia hanya membutuhkan komunikasi satu arah:ia tidak pernah mendengarkan pesan masuk.

Dalam pendekatan ini, peringatan diunggah ke akun cloud yang sama seperti yang biasanya digunakan oleh perangkat, dan dengan tingkat keamanan yang sama. Setelah di cloud, sebagian kecil dari data disediakan ke layanan cloud. Ini tidak termasuk data jejak yang sebenarnya, yang dapat dianggap sebagai informasi sensitif dan karena itu tetap berada di akun cloud perangkat. Gambar 2a dan 2b menunjukkan aliran data dan hambatan keamanan secara lebih rinci.

Gambar 2a. Alur data dimulai di perangkat lunak perangkat, tempat pengembang menambahkan peringatan ke kode sumber. Setiap lansiran yang diunggah ke akun cloud perangkat menyertakan jejak singkat dengan peristiwa terbaru sebelum lansiran. Terakhir, tanda tangan metadata diteruskan ke layanan cloud DevAlert. (Klik pada gambar untuk memperbesar)

Gambar 2b. Layanan cloud membandingkan peringatan yang masuk dengan peringatan sebelumnya dari seluruh armada perangkat pelanggan dan memberi tahu pengembang tentang masalah baru apa pun. Peringatan yang merupakan duplikat dihitung dan disimpan, tetapi tidak ada pemberitahuan yang dikirim. Dengan cara ini, kotak masuk pengembang tidak dibanjiri jika peringatan yang sama dipicu di beberapa perangkat. (Klik pada gambar untuk memperbesar)

Biaya operasional untuk menerima peringatan ke akun cloud biasanya rendah, meskipun tentu saja tergantung pada volumenya. Untuk memulainya, selama tidak ada masalah yang terdeteksi, tidak ada peringatan yang dikirim. Secara umum, penyedia cloud juga mengenakan biaya yang sangat kecil untuk mengirim dan menyimpan pesan peringatan sesekali. Sebagian besar aplikasi IoT menghasilkan lebih banyak data, yang tercermin dalam harga layanan IoT/cloud. Misalnya, mengirim 1 juta pesan MQTT ke inti AWS IoT dikenakan biaya US$1.

Sebagian besar pemrosesan peringatan dilakukan di layanan cloud, layanan yang dikelola sepenuhnya oleh Percepio. Hanya pemrosesan awal yang dilakukan di akun cloud pengembang perangkat, yang menjaga biaya cloud tetap rendah dan menyederhanakan integrasi.

Mengirim pembaruan over-the-air untuk memperbaiki kesalahan yang dilaporkan berpotensi menghabiskan biaya lebih banyak, karena Anda perlu mentransfer lebih banyak data dan ke semua perangkat. AWS memberikan contoh harga di mana biaya memperbarui armada 600.000 perangkat adalah US$ 1.275. Namun ini tidak terlalu mahal dalam kaitannya dengan biaya membiarkan bug tetap tidak diperbaiki – pengalaman pelanggan yang rusak, peringkat ulasan produk yang lebih rendah, penjualan yang lebih rendah, atau bahkan kecelakaan dan tindakan hukum.

DevOps untuk pengembangan tersemat
Mengaktifkan perangkat IoT Anda untuk "menelepon ke rumah" jika terjadi masalah perangkat lunak memberikan keuntungan yang signifikan. Kesadaran langsung akan kesalahan dan diagnostik mendetail menciptakan loop umpan balik antara pengembang dan kode yang diterapkan, memungkinkan pengembang untuk memperbaiki bug lebih cepat dan mengeluarkan firmware yang diperbarui lebih cepat – lihat Gambar 3. Filosofi DevOps yang disebut ini telah lama menjadi standar dalam pengembangan seluler dan aplikasi cloud, dan dengan diperkenalkannya platform IoT berbasis cloud yang aman, pengembangan tertanam juga dapat bekerja dengan cara ini.

Gambar 3. Dasbor DevAlert di Tracealyzer mencantumkan peringatan dan jejak terbaru yang dilaporkan.
(Klik gambar untuk memperbesar)

Dari perspektif bisnis, pemantauan gaya DevOps ini menghasilkan lebih sedikit pelanggan yang tidak puas, karena lebih sedikit pengguna akhir yang akan terpengaruh oleh bug dalam kode produksi. Sebagian besar perangkat lunak yang disematkan berisi beberapa bug yang terlewat saat dirilis, terlepas dari semua upaya verifikasi, tetapi biasanya tidak muncul secara langsung untuk semua orang. Seringkali ada waktu untuk memperbaiki masalah sebelum banyak pelanggan terpengaruh, jika Anda mengetahuinya lebih awal. Idealnya, pengembang harus diberi tahu dalam hitungan detik sejak peringatan pertama dan diagnostik pelacakan yang disediakan memungkinkan analisis dan koreksi yang cepat. Pengembang kemudian dapat mengirimkan pembaruan over-the-air otomatis untuk memperbaiki masalah. Kesadaran instan dan diagnostik pelacakan dapat sangat mengurangi waktu perbaikan dan meminimalkan jumlah pelanggan yang terpengaruh.

Keandalan perangkat yang ditingkatkan mengurangi risiko kewajiban dan juga mengurangi biaya untuk dukungan pelanggan, pengembalian, dan debugging. Diagnostik yang disediakan membuat pengembang jauh lebih mudah untuk mereproduksi masalah pelanggan, karena mereka mendapatkan informasi langsung dari perangkat dan tidak harus bergantung pada pengguna untuk menjelaskan keadaan. Tanpa umpan balik otomatis, Anda mengandalkan pengguna akhir Anda untuk melaporkan masalah apa pun dan memberikan informasi yang cukup mendetail. Laporan kesalahan yang tidak jelas seperti "sistem berhenti merespons" tidak terlalu membantu, dan mungkin perlu waktu berminggu-minggu untuk menemukan kemungkinan penyebabnya. Dan meskipun demikian, itu hanya tebakan terbaik Anda – Anda tidak dapat benar-benar tahu apakah Anda memecahkan masalah yang tepat.

Tidak hanya bug
Satu hal yang perlu diperhatikan adalah bahwa peringatan tidak harus tentang bug yang terlewat dan kesalahan yang dihasilkan. Karena pengembang bebas memutuskan di mana dan mengapa lansiran harus dibuat, mereka juga dapat menggunakannya untuk memantau metrik kinerja utama aplikasi dan melihat alasan masalah kinerja sesekali.

Memantau antarmuka pengguna juga dapat mengungkapkan informasi menarik. Katakanlah Anda memiliki situasi di mana pengguna membuka menu di layar sentuh, mis. dalam sistem infotainment mobil, dan kemudian ragu-ragu ke mana harus melanjutkan. Untuk mengatasi masalah tersebut, pengembang aplikasi dapat memulai pengatur waktu setelah setiap kejadian input dan menghasilkan peringatan jika tidak ada input yang diterima dalam katakanlah 5 detik. Jika banyak peringatan kemudian diterima tentang bagian yang sama dari antarmuka pengguna, ini bisa menjadi umpan balik penting yang dapat membantu organisasi Anda membuat produk yang lebih baik.

Secara keseluruhan, memanfaatkan pelacakan perangkat lunak dan peringatan berbasis cloud di perangkat yang digunakan memiliki manfaat besar dan tidak rumit. Namun, untuk sepenuhnya merangkul alur kerja gaya DevOps membutuhkan kemampuan untuk pembaruan over-the-air dan organisasi pengembangan responsif yang memahami batasan pengujian perangkat lunak dan pentingnya peningkatan berkelanjutan juga setelah rilis.


Tertanam

  1. Siapa yang Menang di Pasar Perangkat Lunak ERP Cloud?
  2. RISC-V Summit:agenda utama
  3. Cypress:Perangkat lunak Cirrent dan layanan awan menyederhanakan konektivitas Wi-Fi
  4. Infineon:OPTIGA Trust M untuk meningkatkan keamanan perangkat dan layanan yang terhubung ke cloud
  5. Paket perangkat lunak MCU menyederhanakan konektivitas cloud Azure IoT
  6. Memantau kemajuan perangkat medis
  7. Internet of Things membutuhkan edge cloud computing
  8. Internet of Things:Sebuah ladang ranjau distribusi perangkat lunak dalam pembuatan?
  9. Penyedia perangkat lunak cloud Blackbaud membayar tebusan, karena insiden meningkat secara global
  10. Panduan Empat Langkah Untuk Jaminan Keamanan Untuk Perangkat Iot