Aplikasi Kubernetes sebagai platform pada ‘connected vehicle’

Di KubeFest Tokyo 2020 pekan lalu, Denso (perusahaan Jepang, automotive-parts manufacturer) membawakan presentasi tentang prototype k8s platform bernama “Misaki”, Kubernetes based connected vehicle platform.

Konsepnya menarik, platform Kubernetes nya didesain dalam bentuk sebuah ‘vehicle cluster’ dengan Master Node/Control Plane berada di Cloud, dan Worker Node(Edge) yang berada di ECU pada sebuah mobil. ECU(Electronic Control Unit) sebagai unit komputasi terintegrasi yang berperan tidak hanya sebagai k8s worker node, tapi juga menjadi pengendali berbagai sensor yang ada di sebuah mobil pintar.

Implementasi use-case nya adalah ‘connected vehicle’, dimana Kubernetes cluster terdiri dari Control Plane dengan Edge node yang bisa dikendalikan secara dinamis. Ketika disetel pada mode connected vehicle, Edge dari banyak mobil pintar terkoneksi dalam satu Kubernetes cluster, yang dalam arti lain sistem ini bisa mengendalikan banyak unit mobil dalam satu cluster nya. Tentunya untuk alasan keamanan, high-spec ECU yang berperan sebagai k8s worker node beroperasi terpisah dengan ECU lain yang mengendalikan operasi dasar sebuah mobil (jalan, berhenti, belok). Sehingga meminimalisir kemungkinan pengendalian mobil oleh pihak luar yang bermaksud tidak baik.

Aplikasi pada sebuah mobil pintar didesain dalam bentuk Pod yang bekerja di atas Edge node. Pod dapat didesain sesuai kebutuhan, misalnya: Anda bisa membuat Pod yang tugasnya untuk mengumpulkan data pada berbagai sensor mobil (camera, rain sensor, accessmeter, battery sensor, etc) dan mengirimkan data tersebut ke storage di Cloud untuk proses selanjutnya. Karena banyaknya sensor dan aplikasi Pod, dibutuhkan peran Kubernetes sebagai orkestrator microservice sekaligus mengatur resource pada ECU secara fleksibel.

Ada banyak challenges yang dihadapi dalam pengembangan sistem ini. Salah satunya adalah ketika putusnya koneksi jaringan antara Edge unit dengan Control Plane ketika mobil berada di luar jangkauan. Untuk mengatasi hal tersebut, “Misaki” mengimplementasikan ServiceMesh berupa sistem ‘Queue’ yang mempunyai peran sebagai proxy server ketika koneksi jaringan terputus. Queue berfungsi untuk menyimpan HTTP Request dan streaming-data dari aplikasi ketika terjadi gangguan koneksi jaringan, dan apabila koneksi kembali normal, maka Queue akan melakukan retry untuk mengirimkan data yang tersimpan di local storage nya.

Silakan bisa melihat lebih detail tentang arsitektur nya di SlideShare berikut:

Atau lihat di sini untuk presentasi tentang Technical Details nya:

 

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: