Consul İle Service Discovery Dünyasına Bakış

Google’da ilk çıkan micro-service görseli :)

Consul nedir?

upstream backend {
server backend1.example.com:8080;
server backend2.example.com:8080;
server backend3.example.com:8080;
}
cd /usr/local/bin
wget https://releases.hashicorp.com/consul/1.0.7/consul_1.0.7_linux_amd64.zip
unzip consul_1.0.7_linux_amd64.zip
rm consul_1.0.7_linux_amd64.zip
  • data-dir parametresi ile, agent’ın yaşam döngüsü boyunca state’inin tutulacağı klasörü gösteriyoruz.
  • bootstrap-expect parametresine 3 değerini geçerek, cluster’ın çalışabilmesi için en az 3 agent’ın server olarak çalışması gerektiğini söylüyoruz. Yukarıda bahsettiğimiz 2n+1 durumunu burada canlandırıyoruz. Bu parametrenin kullanılabilmesi için server parametresi muhakkak eklenmeli.
  • server parametresi ile de agent’ın server mode’da çalışması gerektiğini söylüyoruz.
  • ui parametresi ile bu agent’ın web arayüzü sunacağını söylüyoruz.
  • Web arayüzüne ulaşabilmek için de bir client interface’ini, node’un public ip’si olarak atıyoruz. Varsayılan olarak 127.0.0.1 değerini üzerinde taşır.
apt-get install python-pip
pip install tornado
mkdir /usr/local/bin/tornado-app
nano /usr/local/bin/tornado-app/app.py
{
"service": {
"name": "tornado-app",
"tags": [
"python",
"web"
],
"port": 8888,
"check": {
"id": "app",
"name": "HTTP check on status endpoint",
"http": "http://localhost:8888/status",
"method": "GET",
"interval": "10s",
"timeout": "1s"
}
}
}
Node’ların ve servislerin sorunsuz bir şekilde çalıştığını; tornado-app servisinin health-check’ten dönen sonucunu görebiliyoruz.

Sonuç

Yazının detayında yer almasa dahi, Consul’ün çalışma mekaniğinde yer alan Consensus ve Gossip protokollerinin de okunmasında ve incelenmesinde fayda görüyorum. Bu protokoller bir çok cluster management aracının (Docker Swarm Mode gibi) kalbinde yer alıyor.

--

--

Engineering Manager (at) Hepsiburada. Former trainer & consultant. Tweets are mostly about tech and coding. https://superpeer.com/selcukusta

Love podcasts or audiobooks? Learn on the go with our new app.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Selçuk Usta

Selçuk Usta

Engineering Manager (at) Hepsiburada. Former trainer & consultant. Tweets are mostly about tech and coding. https://superpeer.com/selcukusta