Faaaaaala seus lindos!!! Tudo bem demais?
Hoje vamos comentar a discursiva do concurso do Banco Central do Brasil – Cargo 2 – Tecnologia da Informação, organizada pela banca Cebraspe. Essa questão trata de um tema que cada vez toma conta dos concursos públicos: DevOps
A questão trouxe uma situação problema e depois, com base no problema apresentado, apresentou várias questões.
Vamos ao enunciado da questão:
“Ao longo de uma avaliação em sua área de TIC, certa empresa de TI identificou, no fornecimento de serviços de desenvolvimento de software para os usuários, problemas relacionados à entrega de software de forma rápida e confiável, além de problemas de comunicação entre equipes de desenvolvimento e operações (infraestrutura). Com vistas a melhorar esse cenário, a diretoria-geral dessa empresa identificou os seguintes problemas:
1 atrasos frequentes na correção de erros e bugs novos que surgiam em funcionalidades já existentes, quando eram implantadas novas versões e(ou) releases dos softwares;
2 lacuna de comunicação entre as equipes de desenvolvimento e operações, o que resultava em problemas de implantação e instabilidade no ambiente de produção;
3 insatisfação dos clientes com a falta de segurança das aplicações, pois eram frequentes os relatos de vulnerabilidades;
4 dificuldade da equipe de TI de gerenciar o provisionamento e as configurações de infraestrutura de TIC;
5 necessidade de implantação de ferramenta de gerenciamento e compreensão de projetos de software embasada em Project Object Model (POM), para gerenciar compilação de programa em Java;
6 necessidade de implantação de solução para monitoramento de sistemas em seus servidores.
Diante disso, a diretoria-geral da empresa resolveu implantar o DevOps na sua área de TIC, a fim de aperfeiçoar a entrega dos serviços de software, bem como resolver os problemas identificados. Como a literatura não é unânime na descrição das etapas do DevOps, a diretoria adotou o fluxo com 8 etapas — planejar (plan); codificar (code); compilar (build); testar (test); lançar (release); liberar (deploy); operar (operate) e monitorar (monitor) —, conforme ilustrado na figura a seguir.

Fonte: Cebraspe – Discursiva Cargo 2, questão 2.
Ato contínuo, a diretoria-geral criou um setor, diretamente associado a essa diretoria, denominado Seção de Desenvolvimento e Implantação de Serviços e Aplicações (SDISA), e nomeou Fábio como gerente da nova seção. Após análise, Fábio decidiu que, nesse caso, a fim de resolver os problemas citados, não seria correto aplicar a prática de entrega contínua (continuous delivery), uma vez que os programas desenvolvidos nessa empresa eram escritos em linguagem orientada a objetos e compilada. Fábio definiu, também, que a implantação em produção deveria ser realizada frequentemente de forma manual, ou seja, por meio de um profissional de TI que atuasse no papel de auditor de versões (release auditor). Por fim, Fábio decidiu pela implementação do Ansible como solução para o problema número 5.
A partir das informações apresentadas na situação hipotética precedente, responda, justificadamente, aos seguintes questionamentos, bem como atenda ao que se pede.
1 A escolha da diretoria-geral de implementar o DevOps foi correta, diante dos problemas elencados [valor: 2,00 pontos]? Complemente sua resposta descrevendo resumidamente qual o principal objetivo de cada uma das 8 etapas do DevOps. [valor: 5,00 pontos]
2 Além da aplicação do DevOps, seria necessário, para solucionar os problemas apresentados, aplicar a integração contínua [valor: 2,00 pontos]? Complemente sua resposta descrevendo como essa prática está relacionada com o DevOps e qual(is) etapa(s) do DevOps ela abrange. [valor: 4,80 pontos]
3 A decisão de Fábio de não aplicar a prática de entrega contínua foi acertada, em relação ao cenário posto [valor: 2,00 pontos]? Complemente sua resposta citando o objetivo dessa prática. [valor: 4,80 pontos]
4 No que se refere à decisão de Fábio de realizar a implantação em produção de forma majoritariamente manual, seria correto aplicar a prática de implantação contínua (continuous deployment), uma vez que ela exige a validação humana antes da implantação de uma versão do software? [valor: 6,80 pontos]
5 Foi acertada a decisão de implementar o Ansible como solução para o problema número 5 [valor: 3,00 pontos]? Complemente sua resposta descrevendo os objetivos dessa ferramenta. [valor: 3,70 pontos]
6 Caso Fábio opte por implementar a solução Prometheus, qual(is) do(s) problema(s) elencado(s) seria(m) solucionado(s) por meio dela? Complemente sua resposta exemplificando possíveis aplicações do Prometheus e suas principais funções. [valor: 6,70 pontos]
7 Uma vez implantado o DevOps na empresa, qual(is) do(s) problema(s) descrito(s) poderia(m) ser solucionado(s) por meio do shift-left e quais as vantagens e os objetivos dessa abordagem? [valor: 6,70 pontos]
Já é possível ver com um enunciado desses, o candidato não teria moleza, não é? Mas você sabe que nós trabalhamos com técnicas, evidências e o nosso DNA da resposta correta, que são termos importantes para você incluir na sua resposta, que ajuda muito o examinador a encontrar o que ele precisa para atribuir o seu valioso ponto.
Resumindo, a questão abordou a realidade de uma equipe DevOps que identificou baixo índice de aprovação nos testes automatizados do pipeline de integração contínua. Diante disso, a equipe decidiu adotar uma abordagem mais estruturada de testes.
A banca exigia que fossem discutidos:
- A importância dos testes no ciclo DevOps;
- As principais práticas de testes no ciclo;
- A relação entre automação de testes e entrega contínua.
1. Importância dos testes no ciclo DevOps
A banca iniciou reconhecendo que a adoção do DevOps foi uma boa decisão, pois ele resolve lacunas entre desenvolvimento e operações e reduz instabilidades em produção.
É muito importante deixar claro que essa adoção foi uma decisão correta, pois esse posicionamento validará o restante dos argumentos.
Ainda, o item pede para descrever descrevendo resumidamente qual o principal objetivo de cada uma das 8 etapas do DevOps.
Cuidado! Se você conhece bem esse conteúdo, pode gastar todas as linhas aqui! Por isso é importante planejar a sua resposta (já falamos isso em uma live).
Não esqueça de mencionar os termos importantes de cada uma das práticas – O DNA da resposta correta:
- Plan (planejar): planejamento de entregas curtas e com base em feedback;
- Code (codificar): transformação das regras de negócio em código;
- Build (compilar): construção e empacotamento do código com validação de sintaxe;
- Test (testar): testes automatizados e contínuos para validação de confiabilidade;
- Release (lançar): liberação de versões aprovadas;
- Deploy (liberar): implantação da nova versão com aprovações necessárias;
- Operate (operar): gestão da infraestrutura;
- Monitor (monitorar): uso de métricas e ferramentas para prever gargalos e agir rapidamente.
Já o item 2 tenta extrair do candidato o conhecimento sobre integração contínua.
Nesse item é muito importante mencionar que aplicar a integração contínua (CI – continuous integration) é necessário pois corresponde ao processo de criar e testar automaticamente o código sempre que um membro da equipe confirmar alterações de código no controle de versão. Em todas as questões sobre DevOps, incluir o termo Automação e Testes Automatizados é fundamental!!
Também é importante mencionar que a CI se relaciona com as etapas code (2), build (3) e test (4).
Em continuidade, o item 3 cobra do candidato o conhecimento sobre entrega contínua e no item 4 cobra o conhecimento sobre implantação contínua.
Mais uma vez é importante se posicionar dizendo que a decisão de não aplicar a entrega contínua NÃO foi acertada!!
Para complementar, o candidato deve mencionar que a entrega contínua é uma prática de desenvolvimento de software na qual as alterações de código são automaticamente preparadas para uma liberação para produção, sendo quase uma implantação automática em produção, enquanto a implantação contínua implica em, automaticamente, lançar atualizações no ambiente de produção.
Por fim, nos itens subsequentes temos a cobrança sobre as ferramentas e abordagens adotadas no DevOps.
Vejamos então:
- Ansible: não resolve o problema central da questão. É uma ferramenta para automação de infraestrutura e configuração, mas não atua na qualidade de testes diretamente.
- Prometheus: excelente escolha para monitoramento por métricas. Ajuda a identificar gargalos, problemas de desempenho e a antecipar falhas.
- Shift-left: abordagem que antecipa a execução de testes e verificações de segurança para o início do ciclo de desenvolvimento. Quanto antes os testes forem aplicados, menor o custo de correção e maior a qualidade do software!
Essa questão foi um verdadeiro festival de boas práticas DevOps! Testes, CI/CD, monitoramento e segurança integrados ao ciclo de desenvolvimento, e esse tema foi escolhido pois DevOps, como os outros métodos ágeis, compartilham o objetivo de acelerar entregas com qualidade, promovendo colaboração e resposta rápida a mudanças. Ambos valorizam feedback contínuo, automação e foco na entrega de valor ao usuário.
Mais um tema pra conta!! Esse já caiu várias vezes, e vai continuar caindo… E se as bancas gostam… A gente AMA!!
Bora estudar
Um grande abraço,
Professor Darlan Venturelli
@professordarlanventurelli
Quer ficar por dentro dos concursos públicos abertos e previstos pelo Brasil? Clique nos links abaixo:
Receba gratuitamente no seu celular as principais notícias do mundo dos concursos. Clique no link abaixo e inscreva-se:
Participe da conversa