Guia Prático: Instalação e Funcionamento do Kong API e Kong-Dashboard
Estive envolvido num projeto de migração, algumas aplicações internas para o modelo de micro serviço. No caso, cada parte do código se tornaria um projeto independente, dessa forma, agilizando os deploys e facilitando o debug dos mesmos. Mesmo assim, um problema acabou ocorrendo. Como gerenciar de forma fácil, milhares de micro apis, tornando o meu ambiente o mais transparente possível, para as aplicações que iriam se beneficiar? Então… eis que surge o Kong API, um gateway de api que se provou uma escolha interessante para uso nesse projeto e, em outros vindouros.
Esse post tem o intuito de explicar o processo de instalação do Kong e seu funcionamento, criando uma entrada de teste.
Instalação do Kong API
Para essa instalação, utilizaremos uma única instância para toda a suíte (API Gateway, Database, e Dashboard), porém é possível separar todas as partes, em máquinas diferentes e, montar um cluster de Kong. Dependendo da quantidade de acessos, talvez essa seja uma escolha mais sensata para seu ambiente. Outra escolha que tomei liberdade de fazer, foi substituir o banco de dados PostgreSQL pelo Cassandra. Contudo, essa escolha se deu mais pelo prazer de testar novas ferramentas, do que por algum motivo especial. O Kong oferece suporte a ambos os bancos de dados, concedendo portanto liberdade para testar o Cassandra e verificar como funciona. Num post futuro, voltarei a falar desse banco de dados não relacional e, como foi seu comportamento armazenando os dados do Kong.
Primeiramente, atualize sua distribuição para que todos os pacotes estejam na última versão:
# apt update && apt dist-upgrade -y
Inclua o repositório do Cassandra na máquina. Você conseguirá a versão mais recente através do site oficial do produto. Em minha experiência usei a versão 3.11.2, a mais atual neste momento em que escrevo o artigo:
# echo "deb http://www.apache.org/dist/cassandra/debian 311x main" | sudo tee -a /etc/apt/sources.list.d/cassandra.sources.list # curl https://www.apache.org/dist/cassandra/KEYS | sudo apt-key add -
Atualize a lista de pacotes e instale o Cassandra em seu servidor. Vale ressaltar que será necessário pelo menos 1GB de memória, para que o banco de dados inicialize após a instalação:
# apt update && apt install cassandra -y
Instale o Kong na máquina. Faça download do pacote .deb através do site oficial. Utilizei a versão 0.12.3. Por se tratar de uma aplicação recente, novas versões devem ser lançadas rapidamente.
# wget -O kong.deb https://bintray.com/kong/kong-community-edition-deb/download_file?file_path=dists/kong-community-edition-0.12.3.xenial.all.deb # dpkg -i kong.deb
Com o Kong instalado, crie uma cópia do arquivo kong.conf.default e renomeie para kong.conf.
# cp /etc/kong/kong.conf.default /etc/kong/kong.conf
Abra o arquivo kong.conf, procure pela sessão DATASTORE e descomente a linha database, altere informando o uso do Cassandra para armazenar os dados do Kong. Por padrão, não serão necessárias outras mudanças, pois o Kong buscará uma instância local de Cassandra para trabalhar.
# vim /etc/kong/kong.conf ... database = cassandra ...
Agora, basta carregar a base do Kong e sua instalação estará concluída. Para carregar a base do kong, use seu cliente de linha de comando, kong migrations, conforme abaixo:
# kong migrations up
Inicie o kong. Após a base ser importada para dentro do Cassandra, basta rodar o comando kong start. Por padrão o Kong iniciará nas portas 8000 e 8443 para usuário e, 8001 e 8444 para gerência das APIs.
# kong start
Instalando Kong-Dashboard
Como descrito anteriormente, toda a gerência do Kong é feita através da porta 8001 (HTTP) e 8444 (HTTPS), enquanto a 8000 (HTTP) e a 8443 (HTTPS) fica exposta para o usuário comum. Outro aspecto a realçar, toda a gerência é feita através de requisições para API REST, ou seja, não existe interface web na versão gratuita da ferramenta. Entretanto, ainda é possível obter métricas e outras informações através de consultas via REST API, a parte de cadastro pode ser feita através do Kong-Dashboard.
O Kong-Dashboard é uma aplicação desenvolvida por PGBI (Pierre), não sendo suportada pela Kong Inc.. No entanto, supre a nossa necessidade como um meio de cadastrar nossas micro aplicações de forma fácil e rápida.
Instale, incluindo o repositório no NodeJS. Será necessária a versão mais recente, pois a aplicação é desenvolvida e entregue sempre nessa versão. Para todos os fins, esse post foi produzido empregando a versão 8 da ferramenta.
# curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
Atualize sua lista de pacotes e instale o NodeJS na máquina:
# apt update && apt install nodejs -y
Instale o kong-dashboard através do npm:
# npm install -g kong-dashboard
Inicie o Kong-Dashboard, basta rodar o comando, passando como parâmetro o seu servidor kong. Infelizmente, após rodar esse comando o processo ficará travado no seu terminal, não permitindo fazer mais nada durante o processo.
Para facilitar, criei uma unit do Systemd. Poderá ser utilizada para iniciar e parar o dashboard, sem que o terminal permaneça travado. Para instalar essa unit, crie um arquivo chamado kong-dashboard.service dentro de /etc/systemd/system, em seguida, recarregue a lista de units do Systemd.
# vim /etc/systemd/system/kong-dashboard.service [Unit] Description=Kong-Dashboard - Open-Source Scalable API Layer Wants=kong.service cassandra.service After=kong.service cassandra.service [Service] Type=simple ExecStart=/usr/bin/kong-dashboard start --kong-url http://kong-gateway.4linux.com.br:8001 [Install] WantedBy=multi-user.target # systemctl daemon-reload # systemctl start kong-dashboard
Abra o browser no endereço http://<ip_da_maquina_do_dashboard>:8080 para validar. Verifique o carregamento da página conforme a imagem:
Bom… esse post fica por aqui, no próximo abordarei como cadastrar uma API e ativar sistema de autenticação através desse dashboard. Seguem os links para a documentação do processo de instalação de cada ferramenta apresentada no artigo.
- https://getkong.org/install/ubuntu/?_ga=2.6937969.233753989.1522207247-414182853.1522207247
- http://cassandra.apache.org/doc/latest/getting_started/installing.html
- https://github.com/PGBI/kong-dashboard
About author
Você pode gostar também
Guia Completo: Gerenciamento de Disco e Partições Linux
Neste artigo, vamos falar sobre o gerenciamento de disco, uma das partes mais importantes da sua infraestrutura para que você não perca ou corrompa aqueles arquivos que guarda com carinho
Acelere seus algoritmos de Machine Learning com CUDA no Linux
Se você deseja trabalhar com algoritmos de Machine Learning, provavelmente precisará usar processamento paralelo para acelerar os resultados dos seus algoritmos. Muitos frameworks como por exemplo, o TensorFlow, já possuem
Terraform: Aprenda a gerenciar dependências entre recursos na GCP
Esta é o terceiro capítulo da nossa série de postagens sobre Terraform, neste post iremos falar sobre as dependências entre recursos. Caso tenha perdido o início da nossa série, recomendo