Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

...

Translator

Escrito por: L. H.

Translator
Translator
Translator
Translator
Translator
Translator
Translator
Translator
Escrito por: Lucas Almeida

...

borderColorgrey
borderStylesolid
Image Removed  

Implantação de APIs

...

Estado
colourBlue
titleCOMERCIAL
Estado
colourYellow
titleCONTROLADORIA
Estado
colourRed
titleASSISTENCIAL
Estado
colourGreen
titlePTU/CONTAS

Âncora
objetivo
objetivo

🎯 Objetivo

O documento tem como objetivo demonstrar como implantar as APIs em servidores Linux,

...

utilizaremos o Putty e WinSCP para gerenciar o Docker.

...

 

...

📝 Sumário

...

▪️ Objetivo

...


Instruções
Âncora
instrucoes
instrucoes

Para darmos inicio, na implantação de uma API primeiramente precisamos ter o Docker instalado, caso não tenha instalado  para acessar o manual de instalação. Será utilizado o Putty e o WinSCP para gerenciar o Docker.

Putty: é um software para se conectar com servidores remotos através de protocolos de rede SSH

WinSCP: é um cliente de FTP, para Windows, utilizado para transferências de arquivos com protocolo de segurança SSL

SSH: é um protocolo de rede com criptografia para operação de serviços de rede

FTP: é um protocolo padrão independente de hardware sobre um modo de transferir arquivos.

SSL: é um protocolo que assegura que os dados transferidos entre um cliente e um servidor permaneçam privados.

Expandir
titleCriando o diretório para as API's

Logar no WinSCP, inserindo suas credenciais, no host colocar o ip do servidor Linux, na porta devemos inserir a porta configurada, e inserir o usuário e senha

...

Image Added

No WinSCP vamos acessar o diretório do docker e criar a pasta backend

...

Image Added

Dentro do diretório backend, inserir a pasta config, disponível para baixar no link www.solus.inf.br/SolusUpdate/docker/config.rar 

...

Image Added

Criar o arquivo .env, no diretório /backend. Dentro do arquivo inserir a variável de ambiente COMPOSE_PROJECT_NAME=, podendo colocar o nome que desejar, exemplo 202208. Dessa forma podemos realizar a busca por containers de homologação ou produção. Esse arquivo tem como objetivo setar um nome para os containers, possibilitando realizar a busca por todos os containers que possuam o mesmo nome.

...

Image Added

Comando para pesquisar pelo nome que foi inserido no arquivo; 

Bloco de código

docker ps -f name=202208

...

Image Added

O arquivo solus.ini ficará dentro do diretório config, sendo necessário configura-lo

...

image-20241219-165922.pngImage Added

Usuário/senha:  Indicar a conexão do banco de dados

Server: Indicar o ip, porta e service_name do banco de dados

...

image-20241219-165933.pngImage Added

Algumas versões de Linux reconhecem a conexão do server apenas utilizando a string de conexão completa, podendo ser copiada do tns_names

...

image-20241219-165954.pngImage Added

Expandir
titleConfigurando o docker-compose

Para baixar o docker-compose,

...

acesse esse link. Devemos incluir no arquivo docker-compose, todas as API's que serão executadas. O arquivo deve ficar dentro do diretório backend.

Cada API possui sua pré configuração no arquivo docker-compose baixado, sendo necessário alterar:

container_name: nome do container

image: colocar qual a versão da api será utilizada. Exemplo 2021.11

porta: cada api já possui sua porta padrão.

Por padrão a Solus fornecerá o arquivo docker-compose pré configurado com as API's. Tendo a necessidade de subir uma nova API que não está no arquivo docker-compose, será necessário inclui-la manualmente no arquivo. Para realizar essa inclusão, basta copiar uma API já existente dentro do arquivo e alterar o nome. No arquivo docker-compose.override ficará a porta da API.

Image ModifiedNo arquivo docker-compose.override ficará as portas das API's

...

Image Added
Expandir
titlePutty - Acessando o docker

Logar no Putty, inserindo no host o ip do servidor Linux, na porta devemos inserir a porta configurada e clicar em open.

...

Image Added

Sempre acessar como root, caso não esteja logado como root, utilizar o comando “sudo -i” e digitar a senha

...

Image Added

Após logar, o usuário ficará como root, conforme a imagem abaixo

...

Image Added

Navegar até o diretório onde foi criado o docker pelo comando abaixo:

cd /docker

Containers:

  •  Para verificar quais estão em execução, utilize o comando: “docker ps”. Assim irá listar todos os containers que contenham as APIs. Para filtrar a busca pode-se usar o comando:     

    Bloco de código
     docker ps -f name=202208

    . Retornará todos os containers que possuem esse nome.

Image Modified
  • Podemos recuperar logs de execução de uma API, para verificar, executar o comando abaixo. O id do container é indicado na primeira coluna, pelo nome 'CONTAINER ID'

Bloco de código
 docker logs IdDoContainer
Image Modified
Expandir
titleSubindo um container

Dentro do diretório do docker, acessar o diretório onde esta a API através do caminho abaixo:

Bloco de código
cd backend

...

Image Added
  • Subir todas as APIs que estão dentro do docker-compose, ( recomendado utilizar apenas se todas as APIs que estão no docker-compose não estiverem sendo executadas, ou no caso de parar todos os containers) utilizando o comando abaixo:       

Bloco de código
docker-compose up --build -d

...

Image Added

Âncora
docker
docker

  •  Parar todas as APIs que estão no docker-compose, utilizamos o comando abaixo:

Bloco de código
docker-compose stop

...

Image Added

  • Iniciar apenas um único container(api) que está dentro do docker-compose utilizamos o comando abaixo:

Bloco de código
 docker-compose up --build -d  ‘nomeDaApi’
  • Parar a execução de apenas um container(api), utilizamos os comandos abaixo:
    docker ps (para visualizar o id do container)

Bloco de código
docker stop ‘IdDoContainer’
Expandir
titleAtualizando as API's

Para alteramos uma única API ou todas, seguir os passos. 

Acessar o diretório backend, onde está o docker-compose das API's.

  • Alterando uma única API:

...

  1. Listar os containers com o comando: 'docker ps', ou com o filtro name 'docker ps -f name=NomeDaApi', para encontrar o idContainer.

...

  1. Parar o container da API e remove-lo, com o comando:                                                                                                       

Bloco de código
docker stop 'idContainer' && docker rm -f 'idContainer'. 

...

Image Added

...

  1. Segundo passo será remover a image, para listar as images utilizadas, usar o comando:

Bloco de código
docker images -a | grep "VERSÃO"

...

Image Added

    ...

    1. Remover a image com o comando:                                                                                                                                                     

    Bloco de código
    docker rmi 'idImage'

    ...

    Image Added

      ...

      1. Agora subir a nova API com o comando:                                                                                                                                           

      Bloco de código
      docker-compose up --build -d  ‘nomeDaApi’

      ...

      Image Added

      • Alterando todas as API's:

      1. Parar todos os containers e remove-los, com o comando:                                                                                            

        Bloco de código
        docker-compose stop && docker-compose rm -f

      2. Remover todas as images, nesse exemplo estamos removendo todas as images da versão 2020.11. Alterar a variável "VERSÃO" para a versão das API's utilizadas.                                                                                                                      

        Bloco de código
         docker images -a | grep "VERSÃO" | awk '{print $3}' | xargs docker rmi -f

      ...

      1. Image Added
      2. Agora subir todas as novas API's, com o comando:                                                                                                                 

        Bloco de código
         docker-compose up --build -d
      Expandir
      titleCadastrando as API's

      As APIs possuem seu cadastro no módulo ADM, podendo ser acessado pelo seguinte caminho ADM> configurações > cadastro de APIs.

      Incluir na url o ip do servidor que está rodando a API.

      A partir da versão 02/2022 no cadastro de api's, possui a coluna Situação, permitindo Ativar ou Inativar a api

      Image Modified

      Deixando a api como Inativo, o docker apresentará a mensagem "Api não localizada ativa na base de dados." 

      Image Modified

      Expandir
      titleTestando o endpoint

      Verificar se a api está ativa, utilize a rota statusapi http://127.0.0.1:15212/v1/statusapi .Irá retornar a Versão, revisão e o modo de compilação Release ou Debug

      Image Modified

      Para saber as rotas que a api possui, acessar o Swagger da api, no exemplo abaixo é a api_beneficiario,

      ...

      substituir o ip ‘127.0.0.1’ pelo ip do servidor onde a API se encontra e sua porta:

      http://127.0.0.1:15010/swagger/doc/html#/

      Image Modified

      No postman, substituir o ip pelo do servidor, e os parâmetros  informando os que serão usados

      Image Modified
      Expandir
      titleLog API

      Podemos recuperar logs de execução de uma API,

      ...

      para acessar o log gerado ao executar uma rota, primeiro execute o comando para visualizar o id do container, "docker ps", após executar o comando;

      docker logs 'idContainer'

      Expandir
      titleConexão Banco de dados

      Para acessar os arquivos, utilizar o Winscp

      • API's: A configuração para acessar o banco é realizada através do solus.ini. O arquivo se encontra dentro do diretório /docker/backend/config. Ao alterar a conexão, deve-se parar as api's e subi-las novamente, para que se conecte no banco indicado

      ...

      Aviso
      titleAtenção

      Documentação elaborada com base na versão vigente do sistema.

      ...

      • .