Lab 5.2: Como criar runners pelo Orquestrador BotCity e ativá-los utilizando Docker
O que é docker
O Docker é uma plataforma que permite criar, distribuir e executar aplicativos em contêineres.
Saiba mais
O que são contêineres?
Contêineres são como "caixinhas" que empacotam tudo o que um aplicativo precisa para rodar: código, bibliotecas, dependências, entre outros. Isso garante que o aplicativo funcione da mesma forma em qualquer ambiente, seja no seu computador, em um servidor ou na nuvem.
Principais utilidades do Docker:
a) Portabilidade: Você pode mover contêineres entre diferentes ambientes sem se preocupar com problemas de compatibilidade.
b) Isolamento: Cada contêiner é isolado, o que evita conflitos entre aplicativos, versionamento de dependências e afins.
c) Eficiência: Contêineres são leves e iniciam rapidamente, economizando recursos.
d) Facilidade de Deploy: Simplifica o processo de colocar aplicativos em produção.
O Docker é muito útil para desenvolvedores e equipes de TI que buscam agilidade e consistência no desenvolvimento e na implantação de software. Por ser Open Source, é fortemente utilizado na indústria e tem ampla comunidade de usuários.
Criando instancias de Runner no Orquestrador
Com o Docker podemos executar Runners em contêineres, o que nos permite ter alta disponibilidade e escalabilidade no processamento de tarefas.
Vamos criar três Runners no Orquestrador, que serão responsáveis por executar as tarefas de automação do projeto, os quais serão chamados de RUNNER_01, RUNNER_02 e RUNNER_03.
No menu lateral do Orquestrador, clique em Runners
para acessar a página de Runners. Crie um novo Runner clicando no botão + Novo Runner
no canto superior esquerdo.
Preencha o formulário com as informações necessárias e clique em Criar
.
- Label: ID do Runner
- Nome: Nome do Runner
- Acesso Remoto: Caso tenha algum IP específico para acesso remoto, informe aqui.
- Tipo: Selecione o tipo de Runner que deseja criar.
- Status: Selecione o status do Runner.
Aqui está um exemplo de como criar um Runner:
Repita o processo criando os Runners: RUNNER_01, RUNNER_02 e RUNNER_03.
Imagens disponíveis
A BotCity possui algumas imagens prontas para uso. Para este laboratório, utilizaremos a imagem botcity/botcity-python-web-firefox
, que contém o ambiente necessário para executar tarefas de automação web.
Saiba Mais
Veja na documentação da BotCity as imagens disponíveis e suas respectivas funcionalidades.
Utilizando uma imagem
Para utilizar uma das imagens disponíveis, vamos até o Docker Hub e procuramos pela imagem desejada.
Em seguida utilizamos o comando docker pull
para baixar a imagem:
docker pull botcity/botcity-python-web-firefox
Ativando Runner
O Runner pode executar tarefas de automação nesse contêiner, para isso vamos utilizar o Docker Compose para ativá-lo.
O que é Docker Compose?
Docker Compose é uma ferramenta que permite gerenciar múltiplos contêineres Docker de forma fácil e organizada. Ele usa um arquivo chamado docker-compose.yml
, onde se define todos os serviços, redes e volumes necessários para rodar sua aplicação.
As vantagens de utilizar o Docker compose são:
-
Simplificar o gerenciamento, pois, em vez de rodar vários comandos Docker manualmente, você usa um único comando
docker-compose up
para iniciar todos os contêineres, e centraliza as configurações dos contêineres em um único arquivo. -
Facilitar a configuração de aplicações com múltiplos serviços (ex.: banco de dados, backend, frontend) que precisam trabalhar juntos.
-
Ambientes consistentes: Garante que todos os desenvolvedores usem a mesma configuração, evitando problema de "funciona na minha máquina".
Criando Docker Compose
Para ativar os Runners criados, vamos criar o arquivo compose.yml
com as configurações necessárias para cada Runner.
Inicialmente, criaremos um arquivo para armazenar as credenciais que serão passadas como variáveis de ambiente no arquivo compose.yml. Crie um arquivo de nome .env, e coloque as seguintes informações:
SERVER=https://developers.botcity.dev/
LOGIN=<LOGIN>
KEY=<KEY>
Atenção
Lembre-se de substituir os valores de LOGIN e KEY para os respectivos valores de seu Workspace. Para obter o Login e a Key de seu orquestrador, acesse o Amb. de Desenvolvedor do seu Workspace.
Após configurar o arquivo .env
com as credenciais do seu workspace BotCity, iremos criar o arquivo compose.yml, no mesmo diretório que o arquivo .env está localizado.
O arquivo compose terá o seguinte conteúdo:
version: "3.0"
services:
docker-1:
image: botcity/botcity-python-web-firefox
command: BotRunner
env_file:
- .env
environment:
SERVER: ${SERVER}
LOGIN: ${LOGIN}
KEY: ${KEY}
MACHINE_ID: RUNNER_01
docker-2:
image: botcity/botcity-python-web-firefox
command: BotRunner
env_file:
- .env
environment:
SERVER: ${SERVER}
LOGIN: ${LOGIN}
KEY: ${KEY}
MACHINE_ID: RUNNER_02
docker-3:
image: botcity/botcity-python-web-firefox
command: BotRunner
env_file:
- .env
environment:
SERVER: ${SERVER}
LOGIN: ${LOGIN}
KEY: ${KEY}
MACHINE_ID: RUNNER_03
Atenção
Se você está utilziando o navegador Chrome em seu código, a imagem docker indicada no arquivo compose.yml deve ser modificada, correspondendo ao navegador que está configurado em seu bot. Para saber as imagens existentes, visite a documentação de contêiners docker- Imagens disponíveis.
Iniciando Runners
Com o arquivo compose devidamente configurado e a imagem pronta, abra o terminal no diretório onde o arquivo compose.yml
foi salvo e execute o seguinte comando:
docker-compose up
No terminal, aparecerá o log de cada um dos Runners configurados, indicando que estão prontos para receber tarefas.
Perceba que os itens destacados indicam que ambos os serviços criados no arquivo compose, chamados docker-1, docker-2 e docker-3, foram inicializados e os seus respectivos Runners estão ativos, aguardando tarefas para executarem, já que a mensagem "Waiting new tasks" foi exposta no terminal.
No orquestrador, podemos confirmar se os Runners criados estão ativos no menu lateral Runners e verificando o status com a esfera verde, semelhante a imagem abaixo:
Com os runners criados e ativados, podemos seguir com a implantação do projeto no Orquestrador.
Dica
Automações Web devem estar configuradas com o modo headless para funcionar corretamente.
Para automações que necessitam de interface gráfica, veja a imagem botcity-python-desktop
.