Instalasi dan Konfigurasi Kong Microservice API Gateway

Microservice Apa itu Kong? Kong yang saya maksud disini bukan hewan atau semacam nya yaa, tetapi nama platform aplikasi yang berfungsi menjadi sebuah gerbang atau jembatan untuk banyak service api yang digunakan pada satu server atau lebih. jadi kalo kita punya banyak service api, kita buat jadi satu pintu request saja dengan kong gateway.

Apa itu Microservice? Microservice disini beda yaa bukan alat pemanggang microwave hehehe … biar lebih jelas saya analogi kan saja. Jadi seumpama kita mau bikin aplikasi POS (Point Of Sale), dan kita akan buat terpisah untuk setiap layanan API nya yaitu ada API user, API inventory, dan API transaction nah masing – masing layanan akan saling berkaitan namun terpisah, Jadi seluruh API service yang kita buat akan berfungsi sesuai bagian masing – masing dan menjadi bagian – bagian kecil pada aplikasi POS tersebut.

Gimana pasti masih bingung yaa? okee, mungkin bisa lihat gambar di bawah ini biar lebih jelas nya.

Microservice

source smartbear

Oke, mungkin cukup segitu aja basa – basi nya. Kita lanjut ke tutorial.

Langkah 1: Instal Database

Pertama kita instal Postgresql sebagai datastore untuk kong. Karena kong sendiri hanya support 2 database untuk datastore nya yaitu Cassandra dan Postgresql. Disini saya akan menggunakan postgresql versi 11.

Tambakan postgresql ke repo

$ wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
$ sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt/ `lsb_release -cs`-pgdg main" >> /etc/apt/sources.list.d/pgdg.list'

Update repo dan instal postgresql

$ sudo apt update
$ sudo apt install postgresql postgresql-contrib

Langkah 2: Buat Database

Masuk ke postgresql

$ sudo su - postgres
$ psql

Buat database

$ CREATE USER kong WITH PASSWORD 'password-user-kong'; CREATE DATABASE kong OWNER kong;

Langkah 3: Instal Kong

Pertama kita download paket instalasi kong nya disini. Setelah itu update repo lagi dan instal kong

$ sudo apt update
$ sudo apt install openssl libpcre3 procps perl
$ sudo dpkg -i kong-community-edition-0.14.1.*.deb

Langkah 4: Konfigurasi

Setelah instalasi kong selesai, kita copy file konfigurasi yang tersimpan di /etc/kong

$ sudo cp /etc/kong/kong.conf.default /etc/kong/kong.conf

Hapus “#” pada direktif menjadi sesuai contoh di bawah ini

database = postgres
pg_host = 127.0.0.1
pg_port = 5432
pg_user = kong
pg_password = password-user-kong
pg_database = kong

Simpan perubahan file, lalu kita jalankan kong migrations dan memulai service kong

$ sudo kong migrations up [-c /etc/kong/kong.conf]
$ sudo kong start [-c /etc/kong/kong.conf]

Terakhir cek instalasi kong berhasil

$ http localhost:8001
HTTP/1.1 200 OK
Access-Control-Allow-Origin: *
Connection: keep-alive
Content-Length: 5584
Content-Type: application/json; charset=utf-8
Date: Wed, 21 Nov 2018 04:33:07 GMT
Server: kong/0.14.1

{
    "configuration": {
        "admin_acc_logs": "/usr/local/kong/logs/admin_access.log",
        "admin_access_log": "logs/admin_access.log",
        "admin_error_log": "logs/error.log",
        "admin_listen": [
            "127.0.0.1:8001",
            "127.0.0.1:8444 ssl"
        ],
    ...
    "tagline": "Welcome to kong",
    "version": "0.14.1
}

atau dengan curl

$ curl -i http://localhost:8001

Secara default kong listening pada beberapa port

8000: proxy untuk request API dari client ke upstream services (server)

8443: proxy SSL

8001: API admin atau API Service yang berkaitan untuk konfigurasi kong

8444: API admin SSL

dah gitu aja, see ya~