Setup High Availability Web Service dengan Docker HAProxy


Setup High Availability Web Service - Hallo sobat opreker, pada artikel sebelumnya www.dimasrio.com sudah menjelaskan bagimana cara membuat web service menggunakan docker. Pada kesempatan kali ini, saya akan mencoba sedikit mengembangkan artikel sebelumnya yaitu dengan membuat high availability web service dengan haproxy. Oke sobat, berikut yang sobat harus persiapkan.
  1. Download (pull) docker images nginx dan haproxy.
    docker pull nginx
    Untuk download images haproxy caranya sedikit berbeda. Karena images haproxy memerlukan file haproxy.cfg maka kita perlu membuat Dockerfile saat pull images haproxy.
    touch haproxy.cfg
    touch Dockerfile
    Tambahkan perintah berikut pada Dockerfile.
    FROM haproxy:1.7
    COPY haproxy.cfg /usr/local/etc/haproxy/haproxy.cfg
    Selanjutnya build images haproxy.
    docker build -t haproxy .
    Output :


  2. Install docker compose.
Jika kedua tahap di atas sudah selesai dilakukan maka lanjut pada konfigurasi.

Konfigurasi High Availability Web Service

Step 1 - Buat direktory untuk docker compose.
mkdir /docker
touch /docker/docker-compose.yml
Tambahkan perintah berikut pada docker-compose.yml.
version: '2'

services:

        nginx_01:
          container_name: web01
          image: nginx
          restart: always
          volumes:
               - ./nginx/www01:/usr/share/nginx/html/:rw

        nginx_02:
          container_name: web02
          image: nginx
          restart: always
          volumes:
               - ./nginx/www02:/usr/share/nginx/html/:rw
              
        load_balance:
          container_name: load_balance
          image: haproxy
          restart: always
          ports:
               - 8082:8082
               - 8080:80
          links:
               - nginx_01
               - nginx_02
          volumes:
               - ./haproxy/:/usr/local/etc/haproxy/:rw
Step 2 - Buat direktory untuk konfigurasi haproxy.
mkdir /docker/haproxy
touch /docker/haproxy/haproxy.cfg
Tambahkan perintah berikut pada file /docker/haproxy/haproxy.cfg.
global
    log         127.0.0.1 local2 info
    maxconn     512
    daemon

defaults
    mode http
    log global
    option httplog
    timeout connect 10s
    timeout client 30s
    timeout server  30s

frontend http-in
    bind *:80
    default_backend http_backend
    option forwardfor

backend http_backend
    balance roundrobin
    server www01 web01:80 check
    server www02 web02:80 check
   
frontend stats
    bind *:8082
    stats enable
    stats auth admin:admin
    stats hide-version
    stats show-node
    stats refresh 15s
    stats uri /stats
Step 3 - Jalankan docker compose.
docker-compose up -d
Output :

Sampai di sini sobat sudah bisa menambahkan script html, sebagai contoh buat script index.html sederhana pada folder www01 dan www02 pada direktory /docker/nginx/

Output:


Demikian tutorial docker kali ini mengenai simple setup high availability web service dengan docker haproxy. Semoga bermanfaat bagi kita semua dan selamat mencoba..!!!

Cara menggunakan Docker Compose


Docker Compose adalah sebuah tools yang digunakan untuk mendefinisikan, menggabungkan dan mengkonfigurasi berberapa docker container menjadi satu kesatuan application's services. Karena sebelumnya kita sudah belajar dan mengenal beberapa command docker maka kali ini dimasrio.com akan menjelaskan bagimana cara menggunakan docker compose untuk setup suatu service application's.

Step 1 - Install docker
Step 2 - Install docker compose
yum -y install python-pip
pip install docker-compose
Step 3 - Configure docker compose

Pada contoh kali ini saya akan mengambil contoh membuat suatu service http menggunakan nginx

Download docker image nginx.
docker pull nginx
Buat sebuah directory dan docker compose file.
mkdir /docker
mkdir /docker/nginx
cd /docker/nginx/

touch docker-compose.yml
Edit isi file docker-compose.yml seperti di bawah ini.
version: '2'

services:

 nginx:
  container_name: web01
  image: nginx
  restart: always
  ports:
   - "8081:80"
  volumes:
  - ./www:/usr/share/nginx/html:rw
Perintah diatas akan membuat sebuah container dengan nama web01 dengan listen port 8081 yang di nat ke port 80 (service nginx). Sedangkan volumes digunakan untuk mounting direktory /usr/share/nginx/html pada conteiner ke direktory /docker/nginx/www host. Sehingga jika kita ingin membuat halaman index.html kita hanya perlu meletakannya pada direktory www.

Setelah selesai jalankan docker-compose sebagai daemon.
docker-compose up -d
Output :

Sampai disini sobat sudah bisa membuat halaman web. Sebagai contoh saya sudah membuat index.html yang saya letakan pada direktory www.

Output :


Demikian tutorial docker compose singkat saya saya kali ini. Semoga bermanfaat bagi kita semua dan selamat mencoba.!!!

Cara menggunakan docker di CentOS 7

Cara menggunakan docker di CentOS 7 - Hallo sobat opreker, pada artikel sebelumnya www.dimasrio.com sudah menjelaskan bagaimana cara untuk install docker di centos 7. Lalu bagimana cara kita menggunakan docker? seperti yang sudah saya sebutkan di artikel sebelumnya bahwa docker berbasis container oleh karena itu kita membutuhkan sebuah image untuk membuat virtualisasi. 

Docker Workflow


Untuk langkah pertama yang sobat harus lakukan adalah download docker image. Dimana kita mendapatkan docker image? docker sendiri sudah mempunyai repository untuk image yaitu docker hub, jadi kita hanya perlu koneksi internet dan sudah bisa terhubung ke docker hub.

Pada contoh kali ini saya akan mencoba membuat container ubuntu pada docker.
docker search ubuntu
Output :


Download docker image dengan perintah berikut.
docker pull ubuntu
Output :

Jalankan docker container.
docker run -it ubuntu
Output :

Options "-it" digunakan untuk menjalankan docker dengan mode interactive dari image. Sehingga ketika di run kita akan masuk pada shell container. Yang perlu kita ingat adalah id container yaitu 80b58a61e0d7 karena id tersebut yang kita gunakan jika ingin kita ingin build container baru dari container base.


Sebagai contoh saya akan install web server pada container ubuntu yang nantinya saya akan jadikan sebuah image baru dengan nama ubuntu-apache2.
apt-get update
apt-get install apache2
service apache2 restart
Setelah sobat melakukan install service http pada docker selanjutnya lakukan commit untuk membuat atau menyimpan konfigurasi  ke docker images. Perintah commit hanya bisa dijalankan pada os guest, artinya sobat harus logout terlebih dahulu shell container.
docker commit <id container> <repository>/<nama images>
Contoh :
 docker commit 80b58a61e0d7 dimasrio.com/ubuntu-apache2
Output :

Setelah images ubuntu apache2 di commit, Sobat sudah bisa menjalankan images nya sebagai container. Sebagai contoh disini saya akan mencoba membuat 2 buah container dengan nama web1 dan web2.
docker run -d -it --name web1 -p 8081:80 dimasrio.com/ubuntu-apache2
docker run -d -it --name web2 -p 8082:80 dimasrio.com/ubuntu-apache2
Selanjutnya jalankan docker container dengan perintah berikut.
docker start web1
docker start web2
Pastikan pada docker ps , container web1 dan web2 sudah running.

Output:


Nyalakan service apache2 pada masing-masing container.
docker exec web1 service apache2 start
docker exec web2 service apache2 start
Pastikan service apache sudah running pada container.


Sampai disini sobat sudah mempunyai 2 buah service apache.  Sekarang silahkan coba untuk mengakses localhost:8081 atau localhost:8082 pada browser.

Output:


Untuk mempermudah kita setup images pada docker, sobat bisa mencarinya langsung pada docker hub. Sobat bisa mencari image apa pun disana, tanpa harus membuat images terlebih dahulu.

Demikian tutorial docker indonesia kali ini, semoga bermanfaat bagi kita semua dan selamat mencoba.!!!

Install Docker di CentOS 7


Install Docker di CentOS 7 - Apa itu docker? Nah sobat, di era cloud computing sudah zamannya virtualisasi. Jika berbicara virtualisasi berbasis baremetal (Hypervisor) pastinya kita sudah sering mendengar seperti Vmware, proxmox, Xen, dll. Lalu apa sobat pernah mendengar dengan virtualisasi bebasis container? Sebenarnya teknologi ini sudah sangat lama ada tapi jarang sekali orang menggunakannya salah satu contohnya adalah OpenVZ pada tahun 2005. Berberapa tahun terakhir virtualisasi berbasis container mulai naik daun sejak munculnya docker. Lalu apa itu docker?

Docker merupakan sebuah teknologi virtualisasi berbasis container. Jika kita bandingkan virtualisasi vmware dengan docker, vmware akan membagi resource fisik kedalam vm guest sesuai yang kita tetapkan, sedangkan docker tidak membutuhkan vm geust dan resource yang digunakan adalah share dari OS utama (OS Host). 


Dari gambar diatas tentunya docker akan lebih ringan bukan.

Ok sobat, saya rasa cukup penjelasannya mengenai docker. Untuk selanjutnya www.dimasrio.com akan menjelaskan bagimana cara install docker di centos 7

Langkah pertama update repository.
yum update
Karena kita akan menginstall docker via official repository maka install yum utils.
yum install -y yum-utils

yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
Update cache repository.
yum makecache fast
Install docker engine.
yum install docker-ce

Selanjutnya jalankan docker engine dan jalankan sebagai start up.
systemctl restart docker

systemctl enable docker
Nah, sampai disini sobat sudah berhasil menginstall docker pada centos 7. Untuk artikel selanjutnya saya akan membahas bagaimana cara membuat container pada docker.

Demikitan tutorial docker indonesia  kali ini, semoga bermanfaat bagi kita semua dan selamat mencoba..!!!

Konfigurasi Bonding (Link Aggregation) Interface Mikrotik

Konfigurasi Bonding Interface Mikrotik - Bonding atau link aggregation interface merupakan suatu metode untuk menggabungkan 2 atau lebih interface untuk mendapatkan troughput bandwidth yang lebih besar. Selain itu, interface bonding dapat digunakan sebagai metode fail over interface. Biasanya bonding interface akan disambungkan ke switch sebagai backbone yang menghubungkan jaringan membutuhkan traffic besar.

Konfigurasi IPIP Tunnel di Mikrotik

Sebagai contoh lab kali ini, saya akan membuat interface bonding untuk meningkatkan troughput bandwidth point to point antar router mikrotik.


Ether1 dan ether2 akan dibuat sebagai interface bonding dengan nama LAG-Interface. Lakukan langkah di bawah ini di masing-masing router.


 


Selanjutnya kita tambahkan IP address di masing-masing interface, pada contoh kali ini saya akan menggunakan prefix 172.16.10.0/30.



Selanjutnya lakukan ping dan bandwidth test untuk melihat hasil bonding dari kedua interface tersebut.




Karena masing-masing interface memiliki kapasitas 100Mbps, maka sudah interface bonding akan menghasilkan troughput hingga 200Mbps seperti yang terlihat pada hasil bandwitdh test.

Demikian tutorial singkat mikrotik indonesia kali ini mengenai konfigurasi bonding pada mikrotik. Semoga bermanfaat bagi kita semua dan selamat mencoba..!!!

Internet Marketing

Linux