Bem-vindo(a) ao case de avaliação de conhecimentos na área de DevOps. O objetivo deste exercício é avaliar suas habilidades em Docker, automação de deployment e integração de serviços, utilizando um banco de dados e compondo uma aplicação full stack (backend e frontend).
Você deverá:
- Integrar a aplicação backend em Ruby fornecida neste repositório com a aplicação frontend existente no outro repositório.
- Instanciar um banco de dados utilizando Docker Compose.
- Criar um arquivo Docker Compose que orquestre os containers para o backend, frontend e banco de dados.
- Garantir que toda a aplicação seja acessível e funcional após a integração.
-
Integração Backend-Frontend:
- Integre a aplicação backend (este repositório) com a aplicação frontend disponível no outro repositório fornecido.
- Certifique-se de que o frontend consuma as APIs fornecidas pelo backend corretamente.
-
Configuração do Banco de Dados:
- Instancie um banco de dados.
- Garanta que o backend Ruby se conecte corretamente ao banco de dados, configurando as variáveis de ambiente necessárias.
-
Docker Compose:
- Crie um arquivo `docker-compose.yml` que orquestre:
- O backend em Ruby.
- O frontend da aplicação.
- O banco de dados.
- Certifique-se de que todos os containers possam se comunicar entre si de maneira eficiente e segura.
- Crie um arquivo `docker-compose.yml` que orquestre:
-
Acessibilidade:
- A aplicação completa (frontend e backend) deve ser acessível através de um navegador e funcionar corretamente, realizando todas as interações necessárias com o banco de dados.
- Docker e Docker Compose: A aplicação deve rodar em containers Docker sem erros, e o Docker Compose deve orquestrar os serviços.
- Banco de Dados: O banco de dados deve ser configurado e acessado pela aplicação backend sem problemas.
- Integração: A comunicação entre frontend, backend e banco de dados deve ser totalmente funcional.
Serão avaliados os seguintes aspectos:
- Configuração correta do Docker Compose: A orquestração dos containers deve ser funcional e bem configurada.
- Integração backend-frontend: O frontend deve consumir as APIs do backend corretamente.
- Funcionamento do banco de dados: O backend deve conseguir acessar corretamente o banco de dados.
- Clareza e Organização: O código e as configurações devem ser claros e bem organizados.
- Otimização: A eficiência e simplicidade da implementação e da orquestração serão valorizadas.
- Link para o repositório no GitHub com o Dockerfile, o arquivo `docker-compose.yml` e a documentação.
- Documentação no README.md explicando como rodar os containers localmente, como funciona a integração e como acessar a aplicação completa.
- Utilize apenas serviços gratuitos durante o case.
- Fique à vontade para otimizar ou melhorar a estrutura da aplicação e o pipeline, caso necessário.
- Certifique-se de que a aplicação seja acessível a partir de um navegador após a integração.
Boa sorte!