Blog Implantando API Horse no EC2 Linux como Serviço

Implantando API Horse no EC2 Linux como Serviço

Implantando API Horse no EC2 Linux como Serviço post thumbnail image

A publicação de uma API Delphi construída com Horse em um servidor Linux EC2 na Amazon utilizando o DAEMON como gerenciador de serviços oferece uma solução robusta e escalável para desenvolvedores que desejam fornecer serviços de alta qualidade aos seus usuários. Neste guia passo a passo, vamos explorar cada etapa desse processo, desde a configuração do ambiente até o gerenciamento do serviço implantado.

O que é EC2?

Amazon Elastic Compute Cloud (EC2) é um serviço web que fornece capacidade computacional redimensionável na nuvem. Ele facilita a execução de servidores virtuais, conhecidos como instâncias, em uma variedade de sistemas operacionais, incluindo Linux. EC2 oferece escalabilidade sob demanda, permitindo que os usuários aumentem ou diminuam sua capacidade de computação conforme necessário. Além disso o EC2 tem vantagem em relação a simples contratação de uma VPS (Virtual Private Server), pois com EC2 você usufrui de todos os serviços de segurança e escalabilidade da Amazon.

O que é DAEMON?

DAEMON é um termo usado para descrever um processo em segundo plano que executa uma determinada função ou serviço em um sistema operacional Unix-like, como Linux. No contexto deste guia, DAEMON refere-se ao gerenciador de serviços do sistema, responsável por iniciar, parar e monitorar serviços no Linux. Nesse, como dito, podemos colocar pra ser executando em segundo plano qualquer binário, isso inclui API’s construídas em Delphi com Horse, ou ainda DataSnap, DMVC, entre outros.

Compilando API Horse para Linux

Antes de implantar sua API Delphi, você precisa compilar o projeto para Linux. Felizmente, o Delphi é capaz de compilar para Linux de forma muito simples. O único contratempo é que você precisa da versão Enterprise do Delphi, já que as versões menores Community Edition e Professional não possuem esse recurso.

Uma vez criado o projeto console Horse, a compilação é relativamente simples. Mas antes disso precisamos preparar o Delphi para possibilitar essa compilação.

Confir as versões do Delphi/Linux compatíveis antes de iniciar o processo de preparação do ambiente e compilação. Esse link é fundamental, tenha sempre a mão.

Assista nossa live sobre WSL, Linux e Horse

Preparar o ambiente Delphi para compilação para Linux é um processo crucial para garantir uma transição suave do desenvolvimento para essa plataforma. Aqui está um resumo dos passos envolvidos:

  1. Instalação do PAServer no Linux:
    • O PAServer é um utilitário necessário para a compilação e depuração remota de aplicativos Delphi no Linux.
    • Para instalá-lo, copie o arquivo do PAServer para o seu servidor Linux e descompacte-o. O PAServer encontra-se no diretório de mesmo nome na pasta de instalação Delphi referente a versão instalada no seu computador.

A instalação se dá compiando o arquivo LinuxPAServer22.0.tar.gz referente a versão do Delphi instalada. Nesse caso 22.0 refer-se ao Delphi 11.3. Encontre uma maneira de copiar esse arquivo para o seu equipamento Linux.

O equipamento Linux não precisa ser físico, bastando uma versão virtualizada com VirtualBox, VMWare ou Hyper-V. Também é possível usar uma versão do Linux instalada no WSL no Windows 10 ou 11.

Nese vídeo mostro como você trabalhar com WSL no Windows 10 e 11.

Uma vez copiado o arquivo para Linux, execute o comando a seguir para descompactar o arquivo tar.gz. Será criado um diretório PAServer-22.0.

Para executar o PAServer basta chamar:

Antes de iniciar o PAServer é importante também instalar os pacotes necessários para a compilação.

  1. Instalação dos pacotes necessários para compilação no Linux:
    • Antes de compilar aplicativos Delphi para Linux, é importante garantir que todas as dependências necessárias estejam instaladas.
    • Use os comandos abaixo para instalar os pacotes essenciais no seu sistema Linux.

Esses pacote são essenciais para compilar o projeto Horse no Linux.

  1. Adicionando o servidor do PAServer no Delphi:
    • No ambiente de desenvolvimento Delphi, é necessário configurar o servidor do PAServer para se comunicar com o seu servidor Linux.
    • Isso envolve adicionar o endereço IP do seu servidor Linux e a porta do PAServer nas configurações do Delphi.

Para isso, abra o Delphi e vá em Tools > Options > Deployment > Connection Profile Manager. Em seguida clique no botão Add.

Dê um nome a configuração e escolha Linux 64 no combox. Na tela seguinte digite o IP do Linux onde o PAServer está rodando. Caso não saiba o IP, vá até o Linux no prompt do PAServer e digite “i” (sem áspas) e pressione enter. Segue um print de tela para entender melhor.

O PAserver exibirá o IP onde ele está escutando. A porta é sempre 64211. Entre com essas informações no Delphi e siga em frente. Após clicar em Finish sua configuração estará correta.

Agora clique em SDK Manager e em seguida em Add. Escolha a plataforma Linux e preencha os demais detalhes conforme a tela.

O Delphi irá baixar do Linux para seus diretórios locais todo o SDK do Linux.

  1. Instalando o SDK do Linux no Delphi:
    • Uma vez o SDK estando instalado, estamos prontos para compilar nosso projeto.

Compilando o Horse para Linux

Abra seu projeto Horse. Adicione a plataforma Linux clicando com o botão direito do sobre sobre Target Platforms no Project Manager e então escolha Linux. Acesse Project > Options > Delphi Compiler e então selecione o Linux64 no combobox Target. Em conditional defines, inclua a diretiva HORSE_DAEMON. Conforme print abaixo.

Agora basta buildar sua aplicação. Será gerado um arquivo sem extensão com o mesmo nome do projeto.

Criando o arquivo de configuração

Para configurar o serviço que executará sua API no Linux, você precisa criar um arquivo de configuração .service. Este arquivo informará ao DAEMON como iniciar e gerenciar sua aplicação. Aqui está um exemplo de como esse arquivo pode ser estruturado:

Perceba que é relativamente simples o arquivo. Em Description escrevemos uma descrição para o serviço. Em ExecStart devemos indicar o caminho completo do binário da api Horse. E é só. Recomendo fazer uma pesquisa para entender os demais parâmetros ou consular um especialista em Linux caso seja necessária alguma configuração especial.

Envie esse arquivo para o Linux juntamente do binário da sua API. Recomendo dar um nome intuitivo para o arquivo .service, por exemplo: digamos que sua api se chame apierp, portanto crie o arquivo com apierp.service.

Logando-se no EC2

Para isso, deverá se conectar com sua instância do EC2. Para se conectar ao seu servidor EC2, você pode usar o SSH (Secure Shell). O comando para se conectar ao seu EC2 seria algo assim:

Você com certeza criou uma chave com a extensão .PEM quando criou sua máquina EC2, por isso precisará dela para se conectar. Outro ponto importante, talvez precise liberar a porta 22 no Security Group na Amazon, para poder se conectar por ssh. Não entraremos em detalhe sobre isos.

Subindo o arquivo para o EC2 via terminal

Para transferir o arquivo de configuração .service para o servidor EC2 a partir de um terminal no Windows, você pode usar o SCP (Secure Copy Protocol). O comando para fazer isso seria semelhante ao seguinte:

Confira nossos treinamentos clicando no banner abaixo:

Substitua “arquivo.service” pelo caminho do seu arquivo de configuração .service, “chave.pem” pela chave de acesso, “usuario@endereco_do_ec2” pelo usuário e endereço IP do seu servidor EC2, e “/caminho/destino” pelo local onde deseja colocar o arquivo no servidor.

Copiando o arquivo .service

Após transferir o arquivo de configuração .service para o servidor EC2, mova-o para o diretório adequado no sistema. Normalmente, os arquivos .service são colocados na pasta “/etc/systemd/system/” no Linux.

O arquivo .service fica sempre no caminho /etc/systemd/system para que o Linux o inicie sempre que a instância subir.

Iniciando, Parando e mostrando o status do serviço

Depois de copiar o arquivo .service para o local apropriado, você pode iniciar, parar e verificar o status do serviço usando os seguintes comandos:

  • Para iniciar o serviço:
  • Para parar o serviço:
  • Para reiniciar o serviço:
  • Para verificar o status do serviço:

Substitua “nome_do_serviço” pelo nome do arquivo .service que você criou.

Com esses passos, você conseguirá publicar com sucesso sua API Delphi com Horse em um servidor Linux EC2 na Amazon, usando o DAEMON como gerenciador de serviços. Este processo permite que você forneça seus serviços de forma escalável e confiável para seus usuários, aproveitando a infraestrutura robusta da AWS.

Conclusão

Em conclusão, preparar o ambiente Delphi para compilação e implantação em plataformas Linux é um processo essencial para os desenvolvedores que desejam expandir sua base de usuários e aproveitar os benefícios dessa plataforma robusta. Ao seguir os passos descritos neste guia, incluindo a instalação e configuração do PAServer no Linux, a instalação dos pacotes necessários para compilação, a adição do servidor do PAServer no Delphi e a instalação do SDK do Linux, os desenvolvedores podem garantir uma transição suave e eficiente para o desenvolvimento de aplicativos Delphi no ambiente Linux.

Com a capacidade de compilar e implantar aplicativos Delphi no Linux, os desenvolvedores podem alcançar novos mercados, oferecer soluções multiplataforma e aproveitar as vantagens de desempenho e estabilidade oferecidas por essa plataforma. Além disso, a integração contínua entre o Delphi e o ambiente Linux permite que os desenvolvedores aproveitem ao máximo as ferramentas e recursos disponíveis, garantindo uma experiência de desenvolvimento fluida e eficaz.

Em última análise, ao investir na preparação adequada do ambiente Delphi para compilação no Linux, os desenvolvedores estão posicionando suas aplicações para o sucesso em um mercado cada vez mais diversificado e exigente, enquanto ampliam as possibilidades de inovação e crescimento contínuo.

Comunidade no Telegram

🚀Comente no campo abaixo 👇👇👇 o que achou e qual sua dúvida.

Te vejo na próxima

Te vejo na próxima

Adriano Santos

Deixe sua resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Posts Relacionados