Aumente suas chances de aprovação AGORA Acelere sua aprovação!
Assinatura Ilimitada por R$ 
/mês.
Ver planos Assinar agora
Imagem de fundo

Considere a seguinte situação hipotética:Uma equipe de engenharia DevOps está implement...

Considere a seguinte situação hipotética:


Uma equipe de engenharia DevOps está implementando o processo de implantação automatizada de uma aplicação web como parte de um pipeline de entrega contínua. A aplicação é executada em um ambiente “conteinerizado”, composto por uma stack de serviços formada por um servidor NGINX, responsável pelo atendimento das requisições HTTP, um serviço PHP-FPM, que executa a lógica da aplicação, bem como por um banco de dados MySQL, responsável pela persistência das informações.


A orquestração desses componentes está sendo realizada por meio de um arquivo docker-compose.yml, no qual cada serviço é executado em um contêiner distinto.


Durante testes de inicialização do ambiente, a equipe observou que, em algumas execuções do comando docker compose up, o contêiner da aplicação tenta estabelecer conexão com o banco de dados antes que o serviço MySQL esteja completamente pronto para aceitar conexões, ocasionando falhas temporárias durante o bootstrap da aplicação.


Considere o trecho do arquivo docker-compose.yml utilizado pela equipe:


Imagem associada para resolução da questão

Fonte: dados do elaborador


Considerando o funcionamento do Docker Compose, bem como as boas práticas relacionadas à inicialização de serviços, resiliência de contêineres e gerenciamento seguro de credenciais, analise as afirmativas a seguir.


I. A diretiva depends_on presente no serviço app garante a ordem de inicialização dos contêineres, mas não assegura que o banco de dados esteja completamente pronto para aceitar conexões.

II. A utilização da variável ${MYSQL_ROOT_PASSWORD} no arquivo docker-compose.yml elimina os riscos de exposição de credenciais, sendo considerada equivalente ao uso de Docker Secrets em termos de segurança.

III. A política restart: on-failure definida no serviço app permite que o contêiner seja reiniciado automaticamente caso o processo principal termine com erro, contribuindo para a resiliência da aplicação em cenários de falhas transitórias.

IV. O uso de Docker Secrets é geralmente considerado mais seguro que variáveis de ambiente para armazenamento de credenciais sensíveis, pois os segredos podem ser gerenciados separadamente da configuração da aplicação e não ficam expostos diretamente no ambiente do contêiner.

V. A definição de um healthcheck no serviço db permite verificar periodicamente se o banco MySQL está operacional e possibilita identificar quando o serviço está efetivamente pronto para receber conexões.


Assinale a alternativa CORRETA:


A

Apenas as afirmativas I, II e IV estão corretas.


B

Apenas as afirmativas I, III e IV estão corretas


C

Apenas as afirmativas I, III, IV e V estão corretas.


D

Apenas as afirmativas II e V estão corretas