Menyimpan konfigurasi aplikasi secara terpusat menggunakan Consul Key-Value Store Bagian #1

Posted by Kamarudin • 3 minute read • Comments

Cara apa yang biasa Anda gunakan untuk menyimpan konfigurasi aplikasi? Biasanya ada beberapa pilihan seperti menyimpan dalam format text (INI, XML, JSON), database atau langsung di hardcode di dalam kode program. Nah cara terakhir adalah yang paling ekstrim, jika terjadi perubahan konfigurasi aplikasi berarti kita harus merubah kode program dan melakukan kompilasi ulang :grin:.

Konfigurasi lokalan ini memang sedikit merepotkan bagai programmer desktop, karana aplikasinya biasanya diinstall dibeberapa tempat sesuai dengan jumlah klien yang ada.

Konfigurasi apa saja sih yang biasanya diperlukan oleh sebuah aplikasi? Ini juga tergantung kebutuhan, biasanya yang paling umum itu ya konfigurasi yang berhubungan dengan database seperti, ip server, nama database dan port yang digunakan. Contoh:

Pada contoh di atas konfigurasi aplikasi disimpan dengan berbagai format seperti INI, XML dan JSON.

Untuk aplikasi yang dibuat menggunakan VB6 biasanya akan menyimpan konfigurasi dengan format INI, sedangkan yang menggunakan .NET lebih senang menggunakan format XML atau JSON.

Jadi apapun pilihan format konfigurasi aplikasi yang Anda gunakan, ketika ada perubahan konfigurasi berarti kita harus merubah satu per satu konfigurasi lokal dari aplikasi kita yang sudah terinstall di pc/laptop klien, baik dilakukan secara langsung (datang ke lokasi) atau dengan bantuan tool remote seperti Radmin. Anda bayangkan saja klo pengguna aplikasi kita sudah ratusan bahkan ribuan, tentu akan menjadi pekerjaan yang merepotkan alias buang-buang waktu :grin:

Apa itu Consul?

Consul adalah tool yang digunakan untuk keperluan discovery dan konfigurasi service. Tool ini mempunyai beberapa fitur utama yaitu:

  • Service Discovery
  • Health Checking
  • Key/Value Store
  • Multi Datacenter

Saya sendiri mencoba tool ini ketika mempelajari arsitektur microservices untuk keperluan monitoring service. Nah salah satu fitur tool ini yaitu Key/Value Store yang bisa kita gunakan untuk keperluan menyimpan konfigurasi aplikasi secara terpusat.

Cara Menginstall Consul

Cara installnya gampang, Anda tinggal download consul sesuai dengan versi OS yang Anda gunakan.

Contoh di sini saya mendownload consul versi Windows dan menyimpannya di folder c:\consul.

Setelah itu kita bisa langsung menjalankan consul dengan mode development.

Setelah jalan, kita bisa langsung mengakses web administrasi consul di alamat localhost:8500

Menjalankan consul dengan mode development ini ada sedikit kekurangan yaitu perubahan data yang kita lakukan misal menambahkan data di menu Key/Value itu tidak tersimpan secara permanen, jadi kita akan menjalankan consul agent dengan mode production. Caranya adalah dengan menambahkan file konfigurasi, misal kita simpan di folder c:\consul\config dengan nama consul.json.

Kemudian untuk isinya seperti gambar berikut:

Untuk element bind_addr diisi dengan ip pc/server dimana consul dijalankan. Dan untuk informasi lebih lanjut tentang bagaimana cara mengkonfigurasi consul, bisa anda cek di link ini.

Setelah itu kita jalankan kembali consul dengan mode production.

Consul Key-Value Store

Seperti yang sudah saya jelaskan di atas, salah satu fitur menarik yang dimiliki oleh consul yaitu Key-Value Store. Dengan fitur ini kita bisa menyimpan konfigurasi aplikasi secara terpusat di pc/server yang sudah terinstall consul. Jadi konfigurasi aplikasi kita yang awalnya tersimpan di lokalan, apakah itu menggunakan format INI, XML atau JSON bisa langsung kita pindah ke sini.

Mengakses Data Key-Value Store

Data yang tersimpan di Key-Value Store bisa diakses via RESTful API, untuk postingan pertama ini kita akan menggunakan salah satu tool REST Client yaitu Postman untuk mengakses data tersebut. Adapun endpoint yang digunakan yaitu /v1/kv.

Untuk response valuenya sudah diencoded menggunakan algoritma Base64, tapi jika ingin langsung menampilkan data aslinya kita tinggal tambahkan parameter ?raw=true.

Menambahkan token

Kayaknya kurang aman klo semua orang bisa langsung mengakses endpoint Key-Value Store tersebut tanpa memasukan token terlebih dulu. Jadi kita bisa menambahkan token pada saat mengakses endpoint Key-Value Store. Caranya adalah dengan mengedit kembali file konfigurasi consulnya.

Setelah itu kita coba akses kembali untuk mengakses endpoint Key-Value Storenya tanpa token. Apakah masih bisa?

Karna sudah tertolak, sekarang coba tambahkan parameter ?token untuk mengakses endpointya.

Horeee berhasil :blush:

Nah dengan adanya fitur Key-Value Store yang di miliki oleh Consul ini, akan memudahkan kita jika terjadi perubahan konfigurasi aplikasi karena bisa dilakukan secara terpusat.

Mungkin cukup ya untuk postingan bagian pertama ini, insyaAlloh di postingan berikutnya kita akan bahas bagaimana mengakses data Key-Value Store langsung dari aplikasi yang dibuat menggunakan VB6 dan .NET.

Oh iya ada yang kelupaan, gimana caranya agar consul bisa diinstall sebagai service (windows service)? Gampang, Anda tinggal ikuti langkah-langkah yang ada di sini :grin:.

Selamat mencoba :blush:

Comments