Friday, December 15, 2017

Service Discovery using Consul

Halo Sobat Nostra,

 Pada kesempatan ini saya ingin mengulas tentang Consul yang di provide oleh Hashicorp.
 Apa itu consul? Baik, consul adalah software yang terdiri dari beberapa komponen dimana secara keseluruhan berfungsi untuk discovering service dan konfigurasi service pada infrastruktur. Untuk fitur dari layanan consul ini, yaitu:

- Service Discovery, fitur untuk menemukan aplikasi seperti api, mysql atau aplikasi lainnya. Hal ini dilakukan dengan memanfaatkan dns dan http sehingga aplikasi dapat ditemukan dengan mudah.

- Health Check, fitur yang berguna untuk pengecekan kesehatan aplikasi baik tergantung dengan aplikasinya seperti webserver return status 200 ok, atau kondisi kesehatan mesin dari aplikasi.

- KV Store, fitur ini dapat digunakan untuk berbagai tujuan seperti dynamic configuration, feature flagging, coordination, leader election, atau yang intinya KV Store ini menyimpan nilai dan dapat diakses melalui http.

- Multi Datacenter, fitur ini adalah yang memungkinkan arsitektur consul di region berbeda. Sebagai catatan komunikasi-nya menggunakan protokol "Gossip" tipe WAN.



Untuk simulasi dapat dengan instalasi mode development
 $ consul agent -dev  
Pada mode ini agent akan berfungsi sebagai agent server dan client serta akan menyediakan layanan UI.

Pengecekan daftar member dapat dilakukan dengan
 $ consul members  

==> Pengimplementasian pada server production dapat dipikirkan beberapa pertimbangan sebagai berikut:
- Run service sebagai daemon (bisa menggunakan layanan systemd atau monit)
- Baiknya menggunakan fitur encrypt untuk pertimbangan keamanan (Bisa dilihat contoh config pada poin dibawah)
 $ consul keygen
   Bi1MEUBMlzmxqm854XIhrw==  

- Untuk menjalankan agent server menggunakan file server, contoh isi file
{        
        "bootstrap": false,        
        "server": true,        
        "datacenter" : "arjuna-01",        
        "data_dir": "/var/consul",        
        "encrypt": "Bi1MEUBMlzmxqm854XIhrw==",       
        "log_level": "INFO",        
        "enable_syslog": true,        
        "start_join": ["172.16.130.2", "172.16.130.3"]
}

Config diatas dapat di save di file /etc/consul.d/server/config.json

Demikian ulasan tentang consul, bagaimana mengimplementasikannya dengan simpel serta hal-hal yang perlu diperhatikan bila ingin menjalankan di production.


No comments:

Post a Comment