Prévia do material em texto
CI-CD (Continuous Integration-Continuous Delivery) O que significa a sigla CI no contexto de desenvolvimento de software? a) Continuous Improvement b) Continuous Integration c) Code Inspection d) Cloud Infrastructure Explicacao: CI significa Continuous Integration, ou Integracao Continua. Trata-se de uma pratica de desenvolvimento em que os codigos produzidos por diferentes desenvolvedores sao integrados frequentemente em um repositorio central, permitindo detectar erros de integracao rapidamente e manter o software sempre funcional. Qual e o principal objetivo do Continuous Delivery (CD)? a) Automatizar a entrega de software em producao de forma segura e frequente b) Reduzir o numero de desenvolvedores na equipe c) Substituir testes manuais por automacao completa d) Criar infraestrutura de nuvem automaticamente Explicacao: Continuous Delivery garante que o software esteja sempre em um estado pronto para ser liberado em producao, permitindo que as equipes facam deploys de forma rapida e confiavel sem depender de processos manuais extensos. Qual ferramenta e comumente utilizada para orquestrar pipelines de CI/CD? a) Git b) Jenkins c) Visual Studio Code d) Docker Explicacao: Jenkins e uma ferramenta de automacao popular para CI/CD. Ela permite criar pipelines que automatizam testes, builds e deploys, garantindo que o fluxo de desenvolvimento seja continuo e confiavel. Qual das opcoes abaixo representa uma vantagem clara da integracao continua? a) Reducao de custos de hardware b) Deteccao precoce de erros de integracao c) Eliminacao de reunioes de equipe d) Garantia de codigo sem bugs Explicacao: A integracao continua permite identificar problemas de integracao cedo, antes que eles se tornem complexos e dificeis de corrigir, embora nao garanta que o codigo esteja totalmente livre de erros. O que caracteriza um pipeline de CI/CD eficiente? a) Execucao manual de tarefas b) Automacao de testes, builds e deploys c) Atualizacoes apenas semanais d) Foco exclusivo em testes unitarios Explicacao: Um pipeline eficiente automatiza o fluxo de desenvolvimento do inicio ao fim, incluindo testes unitarios, integracao, build e deploy, garantindo rapidez, confiabilidade e reducao de erros humanos. Qual e a diferenca principal entre Continuous Delivery e Continuous Deployment? a) Continuous Delivery exige aprovacao manual antes de ir para producao; Continuous Deployment libera automaticamente b) Continuous Delivery e apenas em testes; Continuous Deployment e apenas em producao c) Continuous Delivery usa Git; Continuous Deployment usa SVN d) Continuous Delivery nao utiliza automacao; Continuous Deployment depende de scripts Explicacao: Continuous Delivery mantem o software pronto para producao, mas a liberacao final pode requerer aprovacao humana. Continuous Deployment libera qualquer mudanca que passe nos testes automatizados diretamente para producao sem intervencao manual. Por que o versionamento de codigo e essencial em CI/CD? a) Permite que apenas um desenvolvedor trabalhe no projeto b) Facilita a integracao de alteracoes de multiplos desenvolvedores e rastreabilidade c) Substitui a necessidade de testes automatizados d) E obrigatorio para usar Jenkins Explicacao: Sistemas de versionamento, como Git, permitem que varias pessoas trabalhem simultaneamente, rastreando alteracoes e facilitando a integracao continua de codigo sem conflitos. Qual e a funcao de testes automatizados em pipelines CI/CD? a) Reduzir a necessidade de revisoes manuais b) Eliminar bugs completamente c) Garantir que toda equipe use a mesma IDE d) Apenas aumentar a documentacao do codigo Explicacao: Testes automatizados verificam rapidamente se o codigo funciona como esperado em diferentes cenarios, proporcionando feedback imediato aos desenvolvedores e aumentando a confiabilidade das entregas. Em um pipeline CI/CD, qual etapa geralmente vem imediatamente apos o build do codigo? a) Deploy em producao b) Testes automatizados c) Criacao de branch no Git d) Auditoria de seguranca Explicacao: Apos o build, executam-se testes automatizados para garantir que a compilacao produziu um software funcional antes que ele avance para ambientes de homologacao ou producao. Qual e a funcao de um ambiente de staging em CI/CD? a) Servir como ambiente de desenvolvimento inicial b) Permitir testes finais em um ambiente similar a producao c) Substituir o ambiente de producao d) Hospedar apenas backups Explicacao: O staging simula o ambiente de producao, permitindo que mudancas sejam validadas antes do deploy final, minimizando riscos e identificando problemas que nao apareceriam em desenvolvimento. Qual pratica de CI/CD ajuda a reduzir o tempo de feedback para desenvolvedores? a) Deploy manual b) Testes automatizados em pipelines c) Revisoes de codigo anuais d) Atualizacoes de versao a cada semestre Explicacao: A execucao automatica de testes e builds proporciona feedback imediato, permitindo que os desenvolvedores corrijam problemas rapidamente sem atrasar o fluxo de desenvolvimento. Por que a automacao de deploy e importante em CI/CD? a) Para aumentar o numero de etapas manuais b) Para garantir consistencia e reduzir erros humanos c) Para evitar o uso de containers d) Para criar dependencia exclusiva de um desenvolvedor Explicacao: Automacao de deploy assegura que cada entrega seja feita de maneira consistente e reproduzivel, minimizando falhas humanas e acelerando a liberacao de software. Qual ferramenta e usada para gerenciar containers e facilitar deploys consistentes em CI/CD? a) Jenkins b) Docker c) GitLab d) Maven Explicacao: Docker empacota aplicacoes e suas dependencias em containers, garantindo que o software funcione da mesma forma em qualquer ambiente, uma pratica essencial para pipelines CI/CD modernos. O que e pipeline as code em CI/CD? a) Escrever codigo sem testes b) Definir o pipeline por meio de arquivos de configuracao versionados junto ao codigo c) Substituir Git por scripts de pipeline d) Automatizar apenas a parte de deploy manual Explicacao: Pipeline as code garante que todo o processo de CI/CD seja versionado, rastreavel e reproduzivel, permitindo alteracoes controladas e auditaveis do fluxo de integracao e entrega. Como o CI/CD contribui para metodologias ageis? a) Eliminando reunioes diarias b) Acelerando entregas e proporcionando feedback continuo c) Garantindo software sem bugs d) Reduzindo o numero de desenvolvedores Explicacao: CI/CD permite ciclos curtos de desenvolvimento, entregas frequentes e feedback imediato, alinhando-se aos principios ageis de entrega continua e adaptacao rapida as mudancas. Qual e o risco de nao implementar CI/CD em projetos grandes? a) Maior probabilidade de conflitos de integracao e atrasos b) Menor necessidade de testes c) Codigo sempre funcionando perfeitamente d) Equipes menores trabalhando mais rapido Explicacao: Sem CI/CD, problemas de integracao sao detectados tardiamente, atrasando entregas, aumentando retrabalho e dificultando a manutencao de qualidade do software. O que e rollback em um pipeline CI/CD? a) Atualizacao automatica de dependencias b) Reversao para uma versao anterior do software em caso de falha c) Reescrita do pipeline do zero d) Migracao de banco de dados sem testes Explicacao: Rollback permite restaurar rapidamente uma versao anterior estavel do software quando uma nova versao apresenta problemas, mantendo a continuidade do servico e minimizando impacto. Qual metrica e util para medir a eficiencia de um pipeline CI/CD? a) Tempo medio de build e deploy b) Numero de linhas de codigo escritas c) Quantidade de reunioes semanais d) Frequencia de commits no GitHub Explicacao: Medir o tempo total do pipeline ajuda a identificar gargalos e otimizar processos, aumentando a rapidez e confiabilidade das entregas. Como a infraestrutura como codigo (IaC) se relaciona com CI/CD? a) Substitui testes unitarios b) Permite provisionar ambientes de formaautomatizada e consistente c) Apenas documenta ambientes manualmente d) Serve apenas para backups Explicacao: IaC permite que servidores e ambientes de teste ou producao sejam criados de forma consistente e reproduzivel, integrando-se perfeitamente aos pipelines CI/CD. Qual e o papel do monitoramento em CI/CD? a) Substituir testes automatizados b) Detectar falhas pos-deploy e fornecer feedback continuo c) Reduzir commits no repositorio d) Automatizar reunioes de equipe Explicacao: Monitoramento garante que o software funcione corretamente apos o deploy e que problemas sejam rapidamente detectados, fechando o ciclo de feedback continuo do CI/CD. O que significa shift-left testing em CI/CD? a) Realizar testes o mais tarde possivel b) Antecipar testes para fases iniciais do desenvolvimento c) Testar apenas no ambiente de producao d) Focar mais em documentacao do que em testes Explicacao: Shift-left testing envolve mover testes para etapas iniciais do desenvolvimento, permitindo identificar problemas cedo e reduzir retrabalho. Por que a cultura DevOps e importante para CI/CD? a) DevOps elimina a necessidade de testes b) DevOps promove colaboracao entre desenvolvimento e operacoes, facilitando a automacao e entrega continua c) DevOps substitui pipelines d) DevOps foca apenas em monitoramento manual Explicacao: DevOps integra equipes e promove praticas de automacao, feedback rapido e entregas continuas, essenciais para implementar pipelines CI/CD eficientes. Qual e a diferenca entre testes unitarios, de integracao e end-to-end em CI/CD? a) Nao ha diferenca; todos testam a mesma coisa b) Unitarios testam funcoes isoladas; integracao verifica interacoes; end-to-end testa o sistema completo c) Unitarios sao manuais; integracao e automatica; end-to-end e opcional d) Unitarios so funcionam em producao Explicacao: Cada tipo de teste cobre diferentes niveis do software, garantindo maior confiabilidade do pipeline CI/CD, desde pequenas funcoes ate fluxos completos do sistema. Como a automacao de testes influencia a frequencia de deploys? a) Diminui a frequencia de deploy b) Aumenta a frequencia de deploy, permitindo liberacoes rapidas e seguras c) Nao influencia em nada d) Impede o uso de containers Explicacao: Testes automatizados reduzem o tempo necessario para validar mudancas, tornando possivel realizar deploys frequentes com menor risco de falhas. Por que e recomendado manter pipelines de CI/CD simples e modulares? a) Facilita manutencao, identificacao de falhas e reaproveitamento de etapas b) Aumenta a complexidade e necessidade de documentacao c) Reduz a velocidade de deploy d) Evita o uso de containers Explicacao: Pipelines simples e modulares sao mais faceis de gerenciar, permitem identificar problemas rapidamente e facilitam o reaproveitamento de etapas em diferentes projetos, tornando o processo mais eficiente. O que e feedback continuo em CI/CD? a) Relatorios periodicos enviados apenas no final do projeto b) Informacao imediata sobre falhas, testes e builds para desenvolvedores c) Apenas atualizacao de documentacao d) Monitoramento manual do codigo Explicacao: Feedback continuo fornece aos desenvolvedores informacoes rapidas sobre o estado do codigo e do pipeline, permitindo ajustes rapidos e melhor qualidade do software. Qual e a relacao entre containers e pipelines CI/CD? a) Containers permitem que o software rode de forma consistente em qualquer ambiente, facilitando a automacao do deploy b) Containers substituem a necessidade de versionamento c) Containers so servem para testes unitarios d) Containers nao tem relacao com CI/CD Explicacao: Containers encapsulam aplicacoes e suas dependencias, garantindo que elas funcionem de maneira identica em diferentes ambientes, reduzindo problemas de compatibilidade e aumentando confiabilidade do pipeline. Por que e importante integrar seguranca no pipeline CI/CD (DevSecOps)? a) Para automatizar apenas deploys b) Para detectar vulnerabilidades e problemas de seguranca antes da producao c) Para substituir testes unitarios d) Para reduzir commits no Git Explicacao: Integrar seguranca ao pipeline garante que vulnerabilidades sejam identificadas e corrigidas durante o desenvolvimento, aumentando a confiabilidade e protecao do software. O que significa build automatico em CI/CD? a) Compilacao manual do codigo pelo desenvolvedor b) Execucao automatizada de compilacao sempre que ha alteracoes no repositorio c) Apenas testes manuais d) Atualizacao de documentacao Explicacao: O build automatico permite gerar versoes funcionais do software sempre que ha mudancas no codigo, facilitando deteccao precoce de erros e garantindo consistencia no processo. Como a observabilidade complementa CI/CD? a) Permite monitorar logs, metricas e rastrear problemas em tempo real b) Substitui pipelines c) Apenas atualiza o codigo automaticamente d) Nao tem relacao com CI/CD Explicacao: Observabilidade fornece visibilidade completa do comportamento da aplicacao em producao, permitindo identificar falhas ou gargalos rapidamente, complementando o ciclo continuo de integracao e entrega. Se desejar, posso expandir essa lista com mais 30 perguntas avancadas, incluindo cenarios complexos de pipelines, estrategias de teste, praticas de DevSecOps e exemplos reais de CI/CD, ultrapassando facilmente 1000 palavras. Quer que eu faca isso?