Penggunaan container pada arsitektur microservice merupakan sebuah pendekatan yang dapat digunakan untuk mempermudah proses delivery sistem. Container dalam sistem pun lebih mudah diatur dengan Kubernetes sehingga sistem dapat berjalan secara seamless. Hal tersebut memungkinkan deployment sistem yang cepat dan portable. Salah satu strategi deployment yang dapat digunakan untuk men-deploy sistem yang menggunakan container pada arsitektur microservice adalah canary deployment, dimana sebagian traffic diarahkan ke sekelompok kecil pengguna terlebih dahulu untuk menguji aplikasi di production. Pada dasarnya, canary deployment dapat dilakukan secara native dengan Kubernetes, namun cara ini masih memiliki masalah, yaitu traffic distribution dan replica deployment yang tidak independen. Salah satu solusi yang dapat dilakukan untuk memecahkan masalah tersebut adalah dengan menggunakan service mesh. Hal ini dikarenakan service mesh memiliki fitur traffic management yang dapat melakukan intelligent routing untuk melakukan canary deployment. Isu independensi ini memengaruhi proses deployment dan kebutuhan bisnis, dimana dengan menggunakan service mesh, jumlah replika pods yang digunakan untuk men-deploy aplikasi tidak berubah bagaimanapun aturan traffic routing-nya. Hal ini berbeda dengan sistem yang tidak menggunakan service mesh, dimana jumlah replika pods-nya berubah-ubah menyesuaikan aturan traffic routing yang telah ditentukan. Tanpa service mesh, rasio replika pods perlu diatur secara manual dengan konfigurasi yang redundan. Di sisi lain, konfigurasi sistem dengan service mesh mudah diatur dengan memanfaatkan fitur-fitur yang disediakan oleh service mesh itu sendiri, khususnya fitur traffic management. Selain itu, penggunaan service mesh dalam proses canary deployment pada aplikasi berbasis Kubernetes juga dapat membuat proses deployment menjadi lebih efisien dalam jumlah resource (pods). The use of containers in the microservice architecture is an approach that can be used to simplify the system delivery process. Containers in the system are also easier to manage with Kubernetes so that the system can run seamlessly. This allows for fast and portable system deployment. One deployment strategy that can be used to deploy systems that use containers on a microservices architecture is canary deployment, where some traffic is directed to a small group of users first to test the application in production. Basically, canary deployment can be done with Kubernetes natively, but this method still has problems, namely traffic distribution and replica deployment which are not independent. One solution that can be done to solve this problem is to use a service mesh. This is because the service mesh has a traffic management feature that can perform intelligent routing to perform canary deployments. This independence issue affects the deployment process and business needs, where by using a service mesh, the number of replica pods used to deploy applications does not change regardless of the traffic routing rules. This is different from a system that does not use a service mesh, where the number of replica pods varies according to predetermined traffic routing rules. Without a service mesh, the ratio of pod replicas needs to be set manually with redundant configurations. On the other hand, system configuration with service mesh is easy to manage by utilizing the features provided by the service mesh itself, especially the traffic management feature. In addition, the use of service mesh in the canary deployment process for Kubernetes-based applications can also make the deployment process more efficient in terms of the number of resources (pods). |