Hai!

Pada jurnal ini, saya ingin sharing mengenai salah satu services PaaS di GCP, yaitu App Engine. Pada jurnal ini ada skenario dimana pertama deploy aplikasi dan set ke versi 1, ubah file pada aplikasi, lalu deploy aplikasi lagi dengan mengaturnya menjadi versi 2, dan melakukan split traffic.

Langsung saja ya!

Disini saya menggunakan aplikasi dari link > https://github.com/GoogleCloudPlatformTraining/cp100-bookshelf. Clone repo tersebut di cloud shell.

git clone https://github.com/GoogleCloudPlatformTraining/cp100-bookshelf

Setelah masuk ke direktori aplikasi, instal requirement dari aplikasinya terlebih dahulu.

pip install -r requirements.txt -t lib

Lalu deploy aplikasi dan set versinya menjadi versi 1.

gcloud app deploy --version 1

Bisa set lokasi terdekat ya. Dan hasilnya akan seperti berikut jika sudah berhasil di deploy.

Jika url dibuka lewat browser, tampilannya seperti berikut ini:

Jika kita menambahkan buku melalui browser seperti berikut ini:

Lalu buka BookShelf app melalui console.

Dan verifikasi datastore tempat dimana database app engine berada, kita akan menemukan data buku yang sebelumnya ditambahkan.

Selanjutnya, kita akan coba buat versi 2 dari aplikasi BookShelf nya. Agar terlihat perbedaanya, bisa edit file base.html di cp100-bookshelf > app-engine > bookshelf > templates. Seperti misal di bawah ini.

Lalu deploy aplikasi dengan set parameter versi 2.

gcloud app deploy --no-promote --version 2

Pastikan berhasil ya:

Dan hasil aplikasi versi 2 nya adalah seperti berikut ini:

Perhatikan perbedaan dibagian title nya ya.

Selanjutnya, kita akan coba split traffic. Buka Dashboard > App Engine > Versions. Terlihat bahwa traffic di aplikasi versi 1 adalah 100%, dan versi 2 adalah 0%.

Untuk split traffic, klik tombol split traffic di sisi atas aplikasi. Set Random, klik add version 2, dan set allocationnya menjadi 10%. Lalu klik save.

Hasilnya akan seperti berikut ini:

Maka, saat kita buka url aplikasi versi pertama, akan bisa muncul aplikasi dari versi 2. Perbandingannya 1:9. Sesuai alokasi yang dibuat sebelumnya.

Biasanya, split traffic digunakan untuk memindahkan traffic sedikit demi sedikit aplikasi dari versi lama ke versi baru, agar tidak ada downtime. Bisa disesuaikan allocationnya ya. Selamat mencoba!

Sekian!