Berkenalan dengan Istio
I am a Junior Fullstack Developer who currently study at University of Merdeka Malang majoring in Management Information Systems. Interested in Devops, Cloud Computing and Microservice.
Halo semuanya disini saya akan menjelaskan mengenai Istio dan juga akan menjelaskan beberapa konsep cara kerja Istio sebagai Service Mesh.
Apa itu Istio?
Istio adalah salah satu service mesh populer yang bisa digunakan bersamaan dengan Kubernetes. Service Mesh sendiri adalah sebuah cara atau arsitektur untuk mengelola komunikasi antar service di dalam cluster (microservice).
Dengan adanya Istio sebagai service mesh memudahkan kita dalam melakukan monitoring, manajemen traffic, penambahan security, dan policy dalam cluster Kubernetes kita.
Fitur - Fitur Istio
Istio memiliki beberapa fitur yang dapat membantu kita dalam mengatur cluster kubernetes kita, antara lain:
Traffic Management
Security
Observability
Extensibility
Traffic Management
Traffic Management adalah fitur dalam Istio yang berguna untuk manajemen trafic request di dalam cluster kita. Misalnya kita ingin ketika user melakukan request ke "/reviews", 80% user akan diarahkan ke review-service v1 sedangkan 20% akan diarahkan ke review-service v2. Fitur ini bisa kita peroleh dengan menggunakan CRD bawaan Istio yaitu Virtual Service dan Destination Rule.
Security
Fitur ini membantu kita dalam memberikan perlindungan pada aplikasi kita baik itu dari dalam cluster maupun dari luar (eksternal). Di dalam Istio terdapat fitur yang bernama mTLS.
MTLS memungkinkan service di dalam cluster kita untuk bisa komunikasi dengan service lain dengan menggunakan protokol TLS, yang mana TLS ini dapat meningkatkan security ketika komunikasi antar service.

Cara kerja mTLS di Istio ini adalah:
Ketika kita membuat workload (pod) Istio akan meng-inject satu container baru bernama Sidecar. Sidecar sendiri adalah nama lain dari Envoy Proxy.
Ketika akan melakukan komunikasi, request akan dilewatkan ke sidecar tersebut terlebih dahulu.
Sidecar akan membuat koneksi mTLS ke sidecar pada service lain yang akan dituju.
Setelah terjadi koneksi mTLS, sidecar akan memproses request tersebut dan meneruskannya ke service yang dituju.
Dengan menggunakan mTLS ini, komunikasi antar service menjadi lebih aman dan terhindar dari ancaman seperti man-in-the-middle attack, karena komunikasi antar service dilakukan melalui koneksi terenkripsi.
Selain mTLS, Istio juga menyediakan fitur lain seperti authentication dan authorization untuk memperkuat security pada aplikasi kita. Fitur authentication digunakan untuk memastikan bahwa hanya service yang diberikan akses yang dapat melakukan request pada service lainnya, sedangkan fitur authorization digunakan untuk memastikan bahwa service tersebut memiliki hak akses untuk melakukan operasi yang diminta.
Dengan fitur-fitur keamanan yang disediakan oleh Istio, kita dapat lebih memperkuat security pada aplikasi kita, sehingga data dan informasi yang ditransfer antar service menjadi lebih aman.
Observability
Observability pada Istio adalah kemampuan untuk melihat dan menganalisis apa yang terjadi di dalam cluster kita. Istio menyediakan beberapa fitur untuk observability, di antaranya adalah:
Metrics: Istio menyediakan metric yang dapat digunakan untuk memantau kinerja dan keadaan cluster kita. Metric ini dapat dilihat melalui dashboard yang disediakan oleh Istio.
Distributed Tracing: Istio menyediakan fitur distributed tracing yang memungkinkan kita untuk melihat perjalanan request yang dilakukan oleh service di dalam cluster kita. Dengan distributed tracing ini, kita dapat melihat waktu yang dibutuhkan oleh setiap service dalam memproses request tersebut, sehingga kita dapat mengetahui apakah terdapat bottleneck atau masalah pada salah satu service.
Logging: Istio juga menyediakan fitur logging yang dapat digunakan untuk melihat log dari setiap request yang masuk ke dalam cluster kita. Dengan logging ini, kita dapat melihat detail dari setiap request yang masuk, seperti header, body, dan response dari request tersebut.
Selain itu Istio juga menyediakan konsol untuk monitoring yang bernama Kiali. Kiali adalah salah satu open-source project yang digunakan untuk memonitor dan memvisualisasikan traffic di dalam cluster yang menggunakan Istio.

Kiali menyediakan tampilan grafis yang mudah dipahami untuk memonitor dan memvisualisasikan traffic antar service di dalam cluster. Kiali juga dapat menampilkan informasi seperti request/response time, jumlah request yang dilakukan, serta performa dan status dari masing-masing service.
Selain itu, Kiali juga memiliki fitur tracing yang memungkinkan kita untuk melihat trace dari setiap request yang dilakukan di dalam cluster kita. Dengan fitur tracing ini, kita dapat mengetahui perjalanan request tersebut dan melihat performa dari setiap service yang terlibat dalam request tersebut.
Dengan adanya Kiali, kita dapat dengan mudah memonitor dan menganalisis kinerja dari aplikasi yang kita deploy di dalam cluster yang menggunakan Istio. Hal ini dapat membantu kita untuk mengetahui apakah terdapat masalah pada aplikasi kita dan memperbaikinya dengan cepat.
Secara keseluruhan, Istio dengan fitur-fitur observability dan konsol monitoring seperti Kiali dapat membantu kita dalam memantau dan menganalisis kinerja dari aplikasi kita di dalam cluster, sehingga kita dapat lebih mudah mendeteksi masalah dan meningkatkan performa dari aplikasi kita.
Extensibility
Untuk extensibility jujur saya kurang paham dengan fitur ini dan saya juga belum pernah mencobanya. Untuk fitur ini dari yang saya baca ini berguna untuk menambahkan fitur - fitur baru atau plugin ke dalam Istio. Fitur ini sementara saya belum membutuhkannya tetapi kalau teman-teman disini mau bisa untuk coba mempelajarinya sendiri.
Kesimpulan
Istio adalah service mesh yang memiliki beberapa fitur yang dapat membantu kita dalam mengatur cluster kubernetes kita, antara lain: Traffic Management, Security, Observability, dan Extensibility. Di dalam Istio terdapat Kiali yaitu salah satu open-source project yang digunakan untuk memonitor dan memvisualisasikan traffic di dalam cluster yang menggunakan Istio.
Tujuan saya menulis artikel ini adalah untuk meningkatkan skill saya dalam menulis artikel dan juga membantu teman - teman yang kesusahan dalam belajar Istio. Saya sendiri awal belajar Istio kesusahaan dengan istilah - istilah dan konsep yang sangat baru ini jadinya saya harap dengan artikel ini bisa membantu teman - teman dalam belajar dan menguasai Istio Service Mesh.


