Prévia do material em texto
CI/CD (Continuous Integration/Continuous Delivery) Perguntas de Multipla Escolha sobre CI/CD (Continuous Integration/Continuous Delivery) O que significa CI/CD? a) Continuous Integration/Continuous Development b) Continuous Integration/Continuous Delivery c) Continuous Improvement/Continuous Delivery d) Continuous Iteration/Continuous Development Resposta correta: b) Continuous Integration/Continuous Delivery Explicacao: CI/CD e a abreviacao de Continuous Integration (Integracao Continua) e Continuous Delivery (Entrega Continua), dois principios fundamentais de automacao no desenvolvimento de software que visam melhorar a qualidade e a velocidade do processo de entrega de software. O que e Integracao Continua (CI)? a) Um processo para testar os aplicativos manualmente. b) A pratica de integrar codigo de diferentes desenvolvedores varias vezes ao dia em um repositorio central. c) A pratica de criar um backup do codigo-fonte diariamente. d) O processo de corrigir falhas de integracao uma vez por semana. Resposta correta: b) A pratica de integrar codigo de diferentes desenvolvedores varias vezes ao dia em um repositorio central. Explicacao: A Integracao Continua envolve a pratica de integrar as mudancas de codigo em um repositorio compartilhado com frequencia. Isso geralmente e feito varias vezes ao dia e cada integracao e automaticamente testada para detectar erros rapidamente. Qual e o principal beneficio da Integracao Continua? a) Aumenta a complexidade do codigo. b) Facilita a deteccao precoce de erros e falhas de integracao. c) Reduz o numero de testes no ciclo de desenvolvimento. d) Desacelera o processo de entrega de software. Resposta correta: b) Facilita a deteccao precoce de erros e falhas de integracao. Explicacao: O principal beneficio da Integracao Continua e detectar erros de integracao o mais cedo possivel, permitindo que problemas sejam corrigidos rapidamente. Isso reduz significativamente o risco de falhas de integracao em estagios posteriores do ciclo de desenvolvimento. O que e Entrega Continua (CD)? a) A pratica de entregar software aos clientes apenas uma vez por mes. b) A automacao do processo de entrega, garantindo que o software esteja sempre em um estado de producao pronto para ser liberado. c) A pratica de liberar todas as atualizacoes de software ao mesmo tempo. d) O processo manual de enviar software para os ambientes de producao. Resposta correta: b) A automacao do processo de entrega, garantindo que o software esteja sempre em um estado de producao pronto para ser liberado. Explicacao: A Entrega Continua se refere a pratica de manter o codigo sempre em um estado que possa ser liberado a qualquer momento. Isso envolve a automacao de testes, builds e deployment, garantindo que o software esteja sempre pronto para ser colocado em producao com um risco minimo. O que e uma pipeline de CI/CD? a) Um processo manual de teste e deployment de codigo. b) Uma sequencia automatizada de etapas que inclui testes, builds e deploys do codigo. c) Um sistema de backup de codigo. d) Um processo de revisao de codigo antes da entrega. Resposta correta: b) Uma sequencia automatizada de etapas que inclui testes, builds e deploys do codigo. Explicacao: Uma pipeline de CI/CD e um conjunto de etapas automatizadas que incluem testes, builds e deployments. Ela automatiza o fluxo de trabalho para garantir que o codigo esteja sempre em um estado funcional e pronto para ser liberado para producao. Qual e a principal diferenca entre Integracao Continua e Entrega Continua? a) A Integracao Continua envolve apenas testes automaticos, enquanto a Entrega Continua e focada em liberar software para o cliente. b) A Integracao Continua automatiza o deploy do software, enquanto a Entrega Continua nao. c) A Integracao Continua envolve a automacao do processo de teste, enquanto a Entrega Continua se concentra na liberacao do codigo. d) Nao ha diferenca entre as duas praticas. Resposta correta: c) A Integracao Continua envolve a automacao do processo de teste, enquanto a Entrega Continua se concentra na liberacao do codigo. Explicacao: A Integracao Continua foca em integrar frequentemente o codigo ao repositorio, garantindo que nao haja conflitos e que o codigo esteja funcionando corretamente com testes automaticos. Ja a Entrega Continua foca em preparar esse codigo para ser liberado de forma automatizada e frequente para producao. O que e o conceito de "rolling update" em CI/CD? a) A atualizacao do sistema de forma manual e sem interrupcoes. b) A liberacao de uma versao beta do software para os usuarios. c) A atualizacao gradual e sem interrupcao de servico do sistema, um pedaco de cada vez. d) A reinicializacao de todos os servidores ao mesmo tempo durante a atualizacao. Resposta correta: c) A atualizacao gradual e sem interrupcao de servico do sistema, um pedaco de cada vez. Explicacao: O "rolling update" e uma estrategia de deployment onde as novas versoes do aplicativo sao lancadas gradualmente, sem interrupcao total do servico. Isso permite que os usuarios ainda acessem o servico enquanto as atualizacoes estao sendo aplicadas. O que e o Continuous Testing em CI/CD? a) Um processo manual de testes realizados durante a integracao do codigo. b) A automacao de testes durante todo o ciclo de vida do desenvolvimento para garantir qualidade continua. c) Um conjunto de testes que so sao executados apos a entrega do software. d) Um tipo de teste especifico para os sistemas de producao. Resposta correta: b) A automacao de testes durante todo o ciclo de vida do desenvolvimento para garantir qualidade continua. Explicacao: Continuous Testing e a pratica de automatizar e executar testes de software continuamente ao longo do ciclo de desenvolvimento, desde a integracao ate a producao, garantindo que a qualidade seja mantida de forma consistente. Qual e a funcao do "build" em uma pipeline de CI/CD? a) Armazenar e gerenciar o codigo-fonte. b) Compilar o codigo-fonte em artefatos executaveis. c) Executar testes manuais de seguranca. d) Gerar um relatorio de erros para os desenvolvedores. Resposta correta: b) Compilar o codigo-fonte em artefatos executaveis. Explicacao: O "build" e a etapa onde o codigo-fonte e compilado e transformado em artefatos executaveis, como binarios ou pacotes de software. Este e um passo crucial em qualquer pipeline de CI/CD, pois garante que o codigo esteja pronto para ser testado e eventualmente implantado. O que e o conceito de "Blue-Green Deployment" em CI/CD? a) Uma tecnica para balancear a carga de trabalho entre servidores. b) Um metodo de deployment em que duas versoes do aplicativo (azul e verde) sao mantidas em producao ao mesmo tempo, e o trafego e alternado entre elas. c) Uma forma de automacao de testes de desempenho. d) Uma estrategia para impedir a entrada de novos commits enquanto o sistema esta em producao. Resposta correta: b) Um metodo de deployment em que duas versoes do aplicativo (azul e verde) sao mantidas em producao ao mesmo tempo, e o trafego e alternado entre elas. Explicacao: O Blue-Green Deployment e uma estrategia onde duas versoes identicas do ambiente de producao sao mantidas, mas apenas uma delas recebe o trafego de usuarios. Isso permite uma transicao suave entre versoes, sem causar tempo de inatividade, ja que a versao antiga pode ser mantida enquanto a nova e testada. Qual a vantagem de usar uma ferramenta de CI/CD, como o Jenkins? a) Reduz o tempo de desenvolvimento, mas aumenta o numero de erros. b) Facilita a automacao do processo de build, teste e deploy, aumentando a eficiencia e a qualidade do codigo. c) Substitui a necessidade de controle de versao no codigo. d) Faz com que o codigo seja implementado automaticamente em ambientes de producao sem revisao. Resposta correta: b) Facilita a automacao do processo de build, teste e deploy, aumentando a eficiencia e a qualidade do codigo. Explicacao: Ferramentas como o Jenkins automatizam o ciclode vida do software, realizando processos de build, teste e deployment de maneira repetivel e consistente. Isso nao so aumenta a eficiencia, mas tambem garante que o codigo seja de alta qualidade e livre de erros antes de ser liberado. O que significa o termo "artifact" em uma pipeline de CI/CD? a) A versao final do codigo apos ser testado e aprovado. b) O codigo-fonte que e gerado durante o processo de integracao continua. c) O resultado do processo de build, como um arquivo executavel ou pacote. d) O ambiente