Llego Konga

En el post anterior, mencioné a Kong, un API Gateway opensource con muy buenas referencias, dentro de las que destacaria:

implemetacion en cualquier infraestructura

Escalable/Modular

Y sobre todo “dockerizanble”

Obvio que tiene mas bondades, pero son las que mas rescato, bueno, ahora, por si mismo sería un poco tedioso su administracion (pero no imposible ojo!) asi que, como complemento, les comparto la instalación de Konga, una interfaz web (FrontEnd) que nos permitirá

la configuracion de Kong.

Veamos ahora como lo podemos instalar en Docker.

Lo unico que necesitamos es crear el archivo docker-compose.yml con el siguiente contenido:

version: “3”

networks:
kong-net:
driver: bridge

services:

#######################################
# Postgres: The database used by Kong
#######################################
kong-database:
image: postgres:9.6
restart: always
networks:
– kong-net
environment:
POSTGRES_USER: kong
POSTGRES_DB: kong
POSTGRES_HOST_AUTH_METHOD: trust
ports:
– “5432:5432”
healthcheck:
test: [“CMD”, “pg_isready”, “-U”, “kong”]
interval: 5s
timeout: 5s
retries: 5

#######################################
# Kong database Migration !!!
#######################################
kong-migration:
image: kong:latest
command: “kong migrations bootstrap”
networks:
– kong-net
restart: on-failure
environment:
KONG_PG_HOST: kong-database
links:
– kong-database
depends_on:
– kong-database

#######################################
# Kong: The API Gateway
#######################################
kong:
image: kong:latest
restart: always
networks:
– kong-net
environment:
KONG_PG_HOST: kong-database
KONG_PROXY_LISTEN: 0.0.0.0:8000
KONG_PROXY_LISTEN_SSL: 0.0.0.0:8443
KONG_ADMIN_LISTEN: 0.0.0.0:8001
depends_on:
– kong-migration
– kong-database
healthcheck:
test: [“CMD”, “curl”, “-f”, “http://kong:8001”]
interval: 5s
timeout: 2s
retries: 15
ports:
– “8001:8001”
– “8000:8000”

#######################################
# Konga database prepare
#######################################
konga-prepare:
image: pantsel/konga:next
command: “-c prepare -a postgres -u postgresql://kong@kong-database:5432/konga_db”
networks:
– kong-net
restart: on-failure
links:
– kong-database
depends_on:
– kong-database

################
# Konga: Install
#################
konga:
image: pantsel/konga:next
restart: always
networks:
– kong-net
environment:
DB_ADAPTER: postgres
DB_HOST: kong-database
DB_USER: kong
TOKEN_SECRET: km1GUr4RkcQD7DewhJPNXrCuZwcKmqjb
DB_DATABASE: konga_db
NODE_ENV: production
depends_on:
– kong-database
ports:
– “1337:1337”

 

El archivo docker-compose lo que tiene son 4 bloques:

  • primero: la creacion de la base de datos postgres
  • segundo: Migracion de datos (prepar la base de datos postgres)
  • tercero: instalacion de Kong
  • cuarto: creacion de base de datos Konga (acceso a la base de datos de Kong ojo!)
  • quinto: instalacion de Konga

Cons estos puntos claro, ya podemos crear todo: kong y konga

docker-compose up -d

Abrimos un browser, digitamos lo sgt:

http://ip_servidor:1337

Creamos un usuario y tendremos acceso a Kong via Konga 😀

Espero que les sea de ayuda, en un proximo post, veremos un poco mas de acción, creando un api en Flask + Kong