Escolar Documentos
Profissional Documentos
Cultura Documentos
2
REVISÃO DE VÉSPERA
CÂMARA DOS DEPUTADOS
CARGO: ANALISTA LEGISLATIVO - INFORMÁTICA LEGISLATIVA
ARQUITETURA DE SISTEMAS DE
INFORMAÇÃO
Prof. Fernando Pedrosa
Língua Espanhola
Prof. Adinoél Sebastião
4
GESTÃO DE CONFIGURAÇÃO E
MUDANÇAS
Bibliografia
❏Pressman, Roger S. Software Engineering: A
Practiotioner’s Approach. Editora: McGraw-Hill.
❏Sommerville, Ian. Software Engineering. Editora:
Addison Wesley
❏RUP – Rational Unified Process
6
O que é Gestão de Configuração?
❏ Conjunto de processos, técnicas e ferramentas que ajudam a
gerenciar e controlar as alterações feitas durante o ciclo de vida
do desenvolvimento de software
❏ Inclui:
• Rastreamento de mudanças
• Controle de versões
• Auditoria de configurações
Benefícios
❏ Garantir a consistência do software
❏ Facilitar a comunicação e a coordenação entre a equipe de
desenvolvimento
❏ Prevenir a introdução de erros ou problemas devido a alterações
não controladas ou mal gerenciadas
❏ Reduzir os riscos associados com o desenvolvimento de software
8
Item de Configuração
❏ Partes individuais de um sistema gerenciadas durante o ciclo de
vida de um projeto
❏ Podem incluir:
• Código Fonte
• Artefatos de Design
• Documentação
• Dados de Configuração e Scripts
• Binários e Releases
• Testes e Dados de Teste, etc.
Processo de GCM
❏ Objetivos:
• (1) identificar todos os itens que coletivamente definem a configuração do
software
• (2) gerenciar mudanças em um ou mais itens
• (3) facilitar a construção de diferentes versões de uma aplicação, e
• (4) assegurar que a qualidade seja mantida à medida que a configuração
evolui
10
Processo de GCM (Pressman)
11
1. Identificação
❏ Aqui, os itens de configuração que precisam ser gerenciados são
identificados
• Código-fonte, documentação, artefatos de design, dados de configuração,
ferramentas de construção, binários, testes e dados de teste, etc.
❏ Cada item de configuração é então rotulado de forma única
para garantir a rastreabilidade
12
2. Controle de Mudanças
❏ Envolve o gerenciamento das alterações nos itens de configuração
❏ Inclui:
❏ Avaliação e aprovação (ou recusa) de propostas de mudança
❏ Implementação das mudanças
❏ Revisão pós-implementação
13
3. Controle de Versão
❏ Prática de gerenciar diferentes versões de itens de configuração
❏ Envolve o rastreamento e o controle de alterações nos itens de configuração ao
longo do tempo
❏ Permite que versões específicas possam ser recuperadas conforme necessário
❏ Aqui são utilizadas ferramentas de controle de versão como Git e SVN
❏ Inclui o conceito de BASELINE
• Marco ou ponto de referência estável no desenvolvimento de um projeto
14
(VUNESP - 2019 - Câmara de Piracicaba - SP - Analista de Sistemas)
15
Em um projeto de software, a equipe de desenvolvimento deve implantar o controle de versões do software, sendo
que esse tipo de controle
A) deve obedecer a um período mínimo entre registros de novas versões de um mesmo componente de
software.
B) deve acompanhar e registrar o desenvolvimento de diversas versões de componentes de software, decorrentes de
sua evolução.
C) não suporta o acompanhamento e registro referente a um desenvolvimento simultâneo de modificações em um
mesmo componente de software.
D) não se aplica a projetos de software que não tenham implantado o controle de versões desde seu início.
E) não suporta o registro de mais do que cinco versões de um mesmo componente de software.
16
4. Auditoria de Configuração
❏ Processo de verificar se a configuração atual do software está de
acordo com as informações documentadas sobre a configuração
❏ Verificação:
• Consistência
• Completude
• Cumprimento de políticas e procedimentos
17
5. Relatório de Status
❏ Envolve o fornecimento de informações atualizadas sobre o
estado dos itens de configuração e as mudanças que foram feitas
❏ Quais mudanças foram implementadas?
❏ Quais estão pendentes?
❏ Quais foram rejeitadas?
❏ Qual é o status atual de cada configuração?
18
(UFG / SANEAGO – 2017)
A Gerência de Configuração de Software (GCS) visa estabelecer e manter a integridade
dos itens ao longo de todo o ciclo de vida do software. A função se refere à preparação
em que são mostrados a situação e o histórico dos itens de software controlados. Essa
funcionalidade pode incluir, dentre outros, o número de alterações nos itens, as suas últimas
versões e os identificadores de liberação. Esta função da GCS compreende:
19
Tomando por base a figura anterior, assinale a alternativa que define, corretamente, cada
nível do Gerenciamento de Configuração de Software.
20
(IADES / EBSERH – 2013)
a) Controle de versão: identifica em qual versão está o software e quais as características de cada versão. Controle de mudanças:
identifica quais foram as mudanças, efetuadas na versão. Integração contínua: tem como características testar as mudanças, assim que são
realizadas.
b) Controle de versão: identifica em qual versão está o software e quais as características de cada versão. Controle de mudanças:
tem como característica testar as mudanças, assim que são realizadas. Integração contínua: identifica quais foram as mudanças, efetuadas
na versão.
c) Controle de versão: identifica quais foram as mudanças, efetuadas na versão. Controle de mudanças: tem como característica testar as
mudanças, assim que são realizadas. Integração contínua: identifica em qual versão está o software e quais as características de cada
versão.
d) Controle de versão: identifica os usuários dos sistemas. Controle de mudanças: tem como característica testar as mudanças, assim que
são realizadas. Integração contínua: identifica em qual versão está o software e quais as características de cada versão.
e) Controle de versão: identifica os usuários dos sistemas. Controle de mudanças: tem como característica testar as mudanças, assim que
são realizadas. Integração contínua: identifica as aplicações do software.
21
Ferramentas
Categoria Objetivo Ferramentas
22
Controle de Versão
❏ Rastreia e fornece controle sobre as mudanças nos códigos fonte
e outros tipos de informação de trabalho
• Facilita a colaboração
• Mantém um histórico de mudanças
• Permite a recuperação de versões anteriores
• Facilita a gestão de releases
❏ Existem dois principais tipos de sistemas de controle de versão:
centralizado (como SVN) e distribuído (como Git).
23
24
(CESPE / SERPRO – 2013)
Os sistemas de controle de versões permitem que os artefatos sejam obtidos do
repositório por meio da operação conhecida como check-in.
25
Modelo Distribuído
❏ Cada desenvolvedor tem uma cópia local do repositório inteiro,
incluindo todo o histórico de versões
❏ Desenvolvedores podem fazer muitas operações (como commits e
diffs) localmente, sem necessidade de conexão
❏ Quando for necessário publicar as alterações, basta fazer um
“push” para o repositório compartilhado
❏ Vantagens: desempenho e flexibilidade
❏ Desvantagens: complexidade e menos controle
26
Gerenciamento de Mudança
❏ Disciplina estruturada que visa garantir que as alterações sejam
implementadas de maneira suave e eficiente para minimizar o
impacto na estabilidade e na rotina da organização
❏ Inclui não apenas alterações no próprio código, mas também
alterações na arquitetura do sistema, no hardware subjacente,
na documentação e em outros aspectos do sistema
27
28
Auditoria e Controle
❏ O objetivo é verificar se os itens de configuração no sistema estão
em conformidade com a documentação e as especificações
❏ Envolve:
• Revisão de IC’s
• Verificação da presença de IC’s no repositório
• Comparações (planejado versus encontrado)
❏ O resultado da auditoria geralmente é um relatório detalhado
indicando quaisquer problemas encontrados
29
PADRÕES GRASP
30
Padrões GRASP
❏ GRASP é um acrônimo para General Responsibility Assignment
Software Patterns (Padrões Gerais de Atribuição de
Responsabilidades de Software)
❏ Foram desenvolvidos para fornecer respostas a problemas comuns
que surgem durante o processo de design de software orientado
a objetos
31
Padrões GRASP (cont.)
32
1. Especialista na Informação
❏ Delega responsabilidades à classe que tem as informações
necessárias para cumprir as responsabilidades
❏ Exemplo: Uma classe Pedido é responsável por calcular o valor
total de um pedido, já que ela contém as informações necessárias
(os itens do pedido)
33
Exemplo
34
2. Criador
❏ Atribui a responsabilidade de criar uma instância de uma classe a
outra classe que possui as informações necessárias para criar o
objeto
❏ Exemplo: Uma classe FabricaCarro é responsável por criar
instâncias de Carro.
35
Exemplo
36
3. Controlador
❏ Atribui a responsabilidade de lidar com mensagens de sistema ou
eventos a uma classe representando uma escolha geral de
coordenação ou controle
❏ Exemplo: Uma classe PedidoController é responsável por tratar
eventos relacionados a pedidos.
37
Exemplo
38
4. Baixo Acoplamento
❏ Promove a independência entre as classes e o encapsulamento,
com o objetivo de reduzir o impacto de mudanças no sistema
39
Exemplo
40
5. Alta coesão
❏ Mantém objetos focados, gerenciáveis e compreensíveis,
ajudando a reduzir a complexidade e aumentar o reuso
41
Código de
Apresentação
Código de
Negócio
Código de Acesso a
Dados
42
6. Polimorfismo
❏ Delega responsabilidades a classes abstratas ou interfaces para
proporcionar comportamentos polimórficos
43
Polimorfismo Dinâmico
44
7. Invenção Pura
❏ Inventa uma classe que não representa um conceito do problema
do domínio com o objetivo de alcançar baixo acoplamento e alta
coesão
❏ Exemplo: a classe GerenciadorDeBancoDeDados é uma
fabricação pura que gerencia operações de banco de dados.
45
Exemplo
46
8. Indireção
❏ Introduz um intermediário entre dois componentes para
desacoplar os componentes e permitir variação independente
❏ Exemplo: A classe PedidoService é um intermediário entre
PedidoController e Pedido, permitindo a variação independente.
47
Exemplo
48
9. Variações Protegidas
❏ Protege os elementos de variações e instabilidades encapsulando
o foco de instabilidade
❏ Por exemplo, podemos fazer a nossa aplicação utilizar uma
interface de “Serviço de Armazenamento” (abstração) em vez de
utilizar implementações específicas
49
Exemplo
50
Exercícios
(CESPE / CEBRASPE - 2022 – BANRISUL) Entre os padrões definidos pelo GRASP,
destacam-se baixa coesão e alto acoplamento.
(CESPE - 2017 – SEDF) No padrão GRASP, a alta coesão (high cohesion) serve para
mensurar quão fortemente uma classe está conectada a outras classes.
(CESPE – 2013 – SUFRAMA) Enquanto os padrões GRASP refletem práticas mais pontuais
da aplicação de técnicas orientadas a objetos, os padrões de projeto GoF (Gang of Four)
exploram soluções mais específicas. Dessa forma, não há, no GRASP, um padrão que ajude
a solucionar, por exemplo, a definição de qual classe deve ser a responsável por lidar com
um evento de determinada interface.
51
OBRIGADO!
Prof. Fernando Pedrosa
52
SEGURANÇA CIBERNÉTICA E
DA INFORMAÇÃO
Prof. André Castro
Língua Espanhola
Prof. Adinoél Sebastião
53
@ProfAndreCastro
/ProfAndreCastro
t.me/professorandrecastro
andrecastroprofessor@gmail.com
@estrategiaconcursosti
http://t.me/estrategia_ti
http://anchor.fm/estrategia-tech
54
NIST SP 800-53
Tem como foco o estabelecimento de controles e práticas de defesa e resposta. O
objetivo base é que esses controles, havendo ou não, sejam identificados para fazer
frente à gestão de riscos da organização e consequentemente os níveis de segurança e
privacidade estabelecidos.
55
NIST SP 800-53
Tem como foco o estabelecimento de controles e práticas de defesa e resposta. O
objetivo base é que esses controles, havendo ou não, sejam identificados para fazer
frente à gestão de riscos da organização e consequentemente os níveis de segurança e
privacidade estabelecidos.
56
NIST SP 800-53
Toda a parte de desenvolvimento, implantação, avaliação e autorização são considerados. Cada
abordagem traz uma forma de contribuição a depender do momento, estratégia e objetivos da
organização. São elas:
a) Abordagem de implantação comum – Traz uma visão ampla e completa do sistema, buscando
a integração e evolução completa dos diversos controles. É um processo mais lento e caro,
porém, traz a completude esperada de um sistema de segurança da informação.
a) Abordagem Híbrida – Traz uma visão de equilíbrio de esforço e tempo, buscando congregar
um conjunto de controles para um contexto organizacional relevante, com impacto em setores
específicos da organização.
57
NIST SP 800-53
Toda a parte de desenvolvimento, implantação, avaliação e autorização são considerados. Cada
abordagem traz uma forma de contribuição a depender do momento, estratégia e objetivos da
organização. São elas:
a) Abordagem de implantação comum – Traz uma visão ampla e completa do sistema, buscando
a integração e evolução completa dos diversos controles. É um processo mais lento e caro,
porém, traz a completude esperada de um sistema de segurança da informação.
a) Abordagem Híbrida – Traz uma visão de equilíbrio de esforço e tempo, buscando congregar
um conjunto de controles para um contexto organizacional relevante, com impacto em setores
específicos da organização.
58
NIST SP 800-53
1.Low (Baixo): Refere-se a informações cuja divulgação, alteração ou destruição não teria um
impacto substancial nos objetivos da organização, na sua reputação ou nas suas operações. A
exposição dessas informações pode resultar em algum inconveniente, mas não causaria danos
significativos.
3.High (Alto): Refere-se a informações cuja divulgação, alteração ou destruição teria um impacto
grave ou catastrófico nos objetivos da organização, na sua reputação ou nas suas operações.
Essas informações são críticas para a missão da organização, e a sua exposição pode resultar em
danos extremamente significativos.
59
- a organização consegue realizar suas funções primárias, mas com a eficiência delas notadamente reduzida.
A partir dessas caraterísticas, a empresa Y informou que o nível de impacto sobre a organização foi:
A baixo;
B alto;
C moderado;
D muito baixo;
E muito alto.
Prof. André Castro
60
NIST – RMF - Risk Management Framework
PREPARAR Atividades essenciais para preparar a organização para gerenciar riscos de
segurança e privacidade
CATEGORIZAR Categorizar o sistema e a informação processada, armazenada ou transmitida
com base em análise de impacto
SELECIONAR Selecionar o conjunto de controles do NIST SP 800-53 para proteger o sistema
com base na avaliação de risco
IMPLEMENTAR Implementar os controles e gerar a documentação de como os controles foram
implementados
AVALIAR Avaliar para determinar se os controles estão implantados, operacionais como
esperado e produzindo os resultados desejados
AUTORIZAR Gestores tomam decisões com base nos riscos para autorizar o sistema a
operar
MONITORAR Monitorar continuamente a implementação dos controles e riscos do sistema.
61
62
MITRE ATT&CK - Adversarial Tactics, Techniques, and
Common Knowledge
63
64
MITRE ATT&CK - Adversarial Tactics, Techniques, and
Common Knowledge
Com o MITRE ATT&CK® é possível:
Identificar vulnerabilidades: o MITRE ATT&CK® pode ser usado para
identificar vulnerabilidades que podem ser exploradas por atores de
ameaças.
Desenvolver defesas: o MITRE ATT&CK® pode ser usado para
desenvolver defesas que sejam eficazes contra as táticas e técnicas usadas
por atores de ameaças.
Investigar incidentes: o MITRE ATT&CK® pode ser usado para investigar
incidentes de segurança para identificar as táticas e técnicas usadas pelos
atores de ameaças.
65
66
MITRE ATT&CK - Adversarial Tactics, Techniques, and
Common Knowledge
Nome Descrição
Reconhecimento O adversário está tentando reunir informações que
possam usar para planejar operações futuras.
67
68
CyBOK – Cybersecurity Body of Knowledge
69
70
NIST SP 800-61 - Computer Security Incident
Handling Guide
71
72
NIST SP 800-61 - Computer Security Incident
Handling Guide
73
74
NIST SP 800-61 - Computer Security Incident
Handling Guide
Em uma outra perspectiva, há previsão dos modelos de times que podem ser desenhados:
I. Equipe Central de Resposta a Incidentes. Uma única equipe de resposta a incidentes lida com incidentes em toda a
organização. Este modelo é eficaz para pequenas organizações e para organizações com diversidade geográfica
em termos de recursos computacionais.
II. Equipes distribuídas de resposta a incidentes. A organização possui diversas equipes de resposta a incidentes,
cada uma responsável por um determinado segmento lógico ou físico da organização. Este modelo é eficaz para
grandes organizações (por exemplo, uma equipe por divisão) e para organizações com grandes recursos em locais
distantes (por exemplo, uma equipe por região geográfica, uma equipe por instalação principal). Contudo, as
equipes devem fazer parte de uma única entidade coordenada para que o processo de resposta a incidentes é
consistente em toda a organização e as informações são compartilhadas entre as equipes. Isto é particularmente
importante porque várias equipes podem ver componentes do mesmo incidente ou podem lidar com problemas
semelhantes. incidentes.
III. Equipe Coordenadora. Uma equipe de resposta a incidentes fornece aconselhamento a outras equipes em ter que
autoridade sobre essas equipes - por exemplo, uma equipe de todo o departamento pode ajudar agências
individuais equipes. Este modelo pode ser considerado um CSIRT para CSIRTs. Porque o foco deste documento é
CSIRTs centrais e distribuídas, o modelo da equipe de coordenação não é abordado em detalhes neste documento.
75
76
SANS Incident Handler’s Handbook
77
78
ISO 27005 - Estrutura
SEÇÕES:
1. Visão Geral do Processo de Gestão de Riscos de
Segurança da Informação – Seção 6;
2. Definição do contexto - Seção 7;
3. Processo de avaliação dos riscos - Seção 8;
4. Tratamento do risco - Seção 9;
5. Aceitação do risco - Seção 10;
6. Comunicação e consulta do risco - Seção 11;
7. Monitoramento e análise crítica de riscos - Seção 12;
Segurança da Informação
Prof. André Castro
79
Segurança da Informação
Prof. André Castro
80
Seção 8 - Processo de avaliação de
riscos de segurança da informação
2. Identificação de Riscos
1. Identificação dos Ativos;
2. Identificação das Ameaças;
3. Identificação dos Controles existentes;
4. Identificação das vulnerabilidades;
5. Identificação das consequências;
Segurança da Informação
Prof. André Castro
81
De acordo com a ABNT NBR ISO/IEC 27005:2019, para executar a primeira etapa da identificação de risco,
aquela que antecede todas as demais etapas, Pedro irá utilizar a lista fornecida para identificar os(as):
A ativos;
B ameaças;
C consequências;
D vulnerabilidades;
E controles existentes.
82
Seção 8 - Processo de avaliação de
riscos de segurança da informação
3. Análise de Riscos – Metodologias de Análise de Riscos
Segurança da Informação
Prof. André Castro
83
Segurança da Informação
Prof. André Castro
84
Seção 9 - Tratamento do risco de
segurança da informação
1. Descrição Geral do processo de tratamento do risco
Segurança da Informação
Prof. André Castro
85
FGV/CGU/2022
João foi contratado para fazer a gestão de risco em um órgão público de acordo com as
diretrizes para o processo de gestão de riscos de segurança da informação estabelecidas na
norma ABNT NBR ISO/IEC 27005:2019. João está trabalhando em sua tarefa incluindo,
excluindo e alterando alguns controles. Com isso poderá avaliar os riscos residuais e considerá-
los aceitáveis ou não. A etapa do processo de gestão de riscos de segurança da informação em
que João está trabalhando é:
A definição do contexto;
B processo de avaliação de riscos;
C tratamento de riscos;
D aceitação de riscos;
E monitoramento e análise crítica dos riscos.
86
FGV - 2023 - AL-MA - Técnico de Gestão Administrativa -
Analista de Sistemas
A norma NBR ISO/IEC 27005:2019 fornece diretrizes para a gestão de riscos de segurança da informação em
uma organização. De acordo com esta norma, é conveniente que
B seja dada atenção unicamente a incidentes que causem consequências de natureza permanente.
E sejam identificados somente os riscos cujas fontes estejam sob controle da organização.
87
OBRIGADO!
Prof. André Castro
88
ARQUITETURA DE INFRAESTRUTURA
DE TECNOLOGIA DA INFORMAÇÃO E
COMUNICAÇÃO
Prof. Thiago Cavalcanti
Língua Espanhola
Prof. Adinoél Sebastião
89
Ementa
Banco de Dados. Conhecimentos de Sistemas Gerenciadores de Banco de Dados
(SGBD) relacionais Oracle Database Server, Microsoft SQL Server e PostgreSQL.
Instalação e configuração. Administração (infraestrutura e aplicação). Backup e
recuperação. Ajuste de desempenho de banco de dados. Bancos de dados NoSQL.
Linguagem SQL e linguagem de programação para banco de dados. Ajuste de
desempenho de aplicação. Ajuste de desempenho de comandos de SQL. Tolerância
a falhas e continuidade de operação. Auditoria de banco de dados. Configuração
de auditoria de dados. Produção de relatórios de auditoria. SQL (Procedural
Language / Structured Query Language)
Ciência de Dados. Gestão e Análise de Dados. SGBDs SQL e NOSQL. Modelagens de
dados. Painéis de dados. Data warehouse. Data lake. Data mart. Data staging area.
Data mining. Big data. ETL. MOLAP. ROLAP. HOLAP. Análise exploratória de dados.
Governança de Dados. Inteligência Artificial. Aprendizado de máquina. Deep
learning. Treinamento de modelos de Inteligência Artificial. Processamento de
linguagem natural. Transfer Learning. Python.
90
BANCO DE DADOS
91
92
O que é SQL (Structured Query
Language )?
SQL é uma linguagem de programação reconhecida
internacionalmente usada para definição e manutenção de bancos de
dados relacionais
Não existe fora do universo relacional
– É fundamentada no modelo relacional
É declarativa:
– Os detalhes de implementação são deixados para os SGBDs
relacionais.
93
Questão 01.
FGV - 2023 - Analista (DPE RS)/Apoio Especializado (TI)/Banco de Dados
Na questão a seguir, considere a tabela R1, cuja instância é exibida a seguir.
Com referência à tabela R1, como descrita anteriormente, analise o comando SQL a seguir.
update R1
set B=0
where C in (31,32) or C = null
O conjunto completo de linhas afetadas pela execução desse comando é:
A a primeira e a terceira;
B a segunda e a quarta;
C a terceira e a quinta;
D a primeira, a segunda e a quarta;
E a segunda, a terceira e a quinta.
94
Questão 02.
FGV - 2023 - Auditor Fiscal da Receita Federal do Brasil/Geral
Os principais Sistemas Gerenciadores de Bancos de Dados oferecem total suporte à linguagem SQL; um
aspecto importante da implementação do SQL é o tratamento para valores nulos, quando a lógica admite
três estados.
T – true F – false ? – unknown
Nesse contexto, considere as expressões lógicas a seguir.
I. (T OR F) AND (? OR T)
II. T AND ((? OR F) OR ?)
III. NOT (? AND (? AND ?))
Com relação às expressões acima, está correto afirmar que o valor final é unknown (?) em
A I, apenas. B I e II, apenas.
C I e III, apenas. D II e III, apenas.
E I, II e III.
95
Questão 03.
FGV - 2023 - Analista Tributário da Receita Federal do Brasil/Geral
Os principais Sistemas Gerenciadores de Bancos de Dados oferecem total suporte à
linguagem SQL. Um aspecto importante da implementação do SQL é o tratamento para
valores nulos quando esses são considerados como unknown values.
Nesse contexto, considere uma tabela T com colunas A e B, que podem conter valores
nulos. T possui 100 registros e, em 50% das linhas, há pelo menos uma coluna preenchida
com o valor NULL.
Considere a consulta a seguir:
SELECT * FROM T t1
WHERE t1.A = NULL or t1.B = NULL
O número máximo de linhas de resultados que seriam retornadas pela consulta é igual a
A 0. B 25. C 50. D 75. E 100.
96
97
98
Restrições de integridade
São definidas nos comandos DDL (create e/ou alter)
– PRIMARY KEY
– UNIQUE
– CHECK
– NOT NULL
– DEFAULT
– FOREING KEY
99
100
CIÊNCIA DE DADOS
101
Data Lake
102
Ainda sobre as zonas
103
Treinamento de modelos
Alimente o conjunto de treinamento para o algoritmo, permitindo que
o modelo ajuste seus parâmetros internos para minimizar uma função
de perda.
Use técnicas como gradiente descendente para otimizar os
parâmetros do modelo.
Monitore o processo de treinamento para evitar problemas como
overfitting, em que o modelo tem um bom desempenho nos dados de
treinamento, mas um desempenho ruim em dados não vistos.
104
Processamento de Linguagem
Natural (PLN)
A PLN é uma abordagem baseada em princípios
para processar a linguagem humana.
Um subcampo da inteligência artificial (IA) que
se refere a abordagens computacionais para
processar, compreender e gerar a linguagem
humana.
A razão pela qual faz parte da IA é porque o
processamento da linguagem é considerado
uma característica da inteligência humana.
105
Qual a política de
devolução da loja? Processa o que está Determinar qual a Devolver a resposta em
sendo dito. resposta correta um formato adequado
106
Tokenização
Tokenização é um processo em que o texto de entrada é dividido em
unidades menores. Existem dois tipos de tokenização:
– A tokenização de palavras que divide uma frase em tokens
(equivalente a palavras e pontuação)
– A tokenização de frases que divide um trecho de texto incluindo
possivelmente mais de uma frase em frases individuais.
Se você ouvir falar em tokenização, geralmente trata-se de
tokenização de palavras em PLN.
107
Stemming
Stemming é um processo para identificar radicais de palavras.
Um radical de palavra é a parte principal de uma palavra após a
remoção de seus afixos (prefixos e sufixos).
Por exemplo, a palavra radical de “maçãs” (plural) é “maçã”.
108
Lemmatização
Um lema é a forma original de uma palavra que você costuma
encontrar como palavra-chave em um dicionário.
É também a forma básica da palavra antes da inflexão.
Por exemplo, o lema de "reuniões" (como um substantivo no plural) é
"reunião".
109
Stop-words
Uma palavra de parada é uma palavra comumente usada que um
mecanismo de pesquisa foi programado para ignorar, tanto ao indexar
entradas para pesquisa quanto ao recuperá-las como resultado de
uma consulta de pesquisa.
Essas palavras não devem ocupar espaço no banco de dados ou nem
gastar o tempo valioso de processamento.
Para isso, podemos removê-los facilmente, armazenando uma lista de
palavras que são consideradas Stop-Words.
110
Nuvem de palavras de StopWords
111
112
N-gramas
Um n-grama é uma sequência contígua de uma ou mais ocorrências
de unidades linguísticas, como caracteres e palavras.
Em uma frase um n-grama pode conter unidades linguisticamente
relevantes.
n-gramas de caracteres são usados quando queremos capturar
unidades de subpalavra que correspondem aproximadamente a
morfemas
113
N-grams
Usamos n-gramas e as probabilidades de ocorrências de certas
palavras em certas sequências pode melhorar as previsões dos
sistemas de autocompletar.
Da mesma forma, usamos PNL e n-gramas para treinar robôs
assistentes pessoais baseados em voz.
Por exemplo, usando um modelo de treinamento de 3 gramas ou
trigramas, um bot será capaz de entender a diferença entre frases
como "qual a temperatura?" e "definir a temperatura."
114
TF-IDF.
115
116
Redes Neurais Recorrentes
117
Boa prova!
118
OBRIGADO!
Prof. Thiago Cavalcanti
119
ARQUITETURA DE SISTEMAS DE
INFORMAÇÃO
Prof. Raphael Lacerda
https://www.instagram.com/p/B74PyOzj5V3/
Língua Espanhola https://www.estrategiaconcursos.com.br/blog/prazer-um-eterno-estudante/
Prof. Adinoél Sebastião
120
@canetas.pretas
@canetaspretas
https://www.youtube.com/@canetaspretas
DICAS E AGENDA!
121
122
@canetas.pretas
123
#SERVERLESS
124
Histórico
125
Motivação
● …
126
SOA - Same Old Architecture
127
128
Evolução
129
130
Serverless vs NoOPS
Serverless doesn’t mean "No Ops"—
though it might mean “No sysadmin”
depending on how far down the
Serverless rabbit hole you go.
131
Third-Party services
132
API Gateways
133
Atributos Principais
134
Passos
● …
135
Características
Knative Serving provides automatic scaling, or
● Zero pay autoscaling, for applications to match incoming
demand. This is provided by default, by using the
● Auto Scaling Knative Pod Autoscaler (KPA).
● Elasticidade For example, if an application is receiving no traffic
● Fast Startup and scale to zero is enabled, Knative Serving scales
the application down to zero replicas. If scaling to
zero is disabled, the application is scaled down to the
minimum number of replicas specified for
applications on the cluster. Replicas are scaled up to
meet demand if traffic to the application increases.
136
137
Exemplo
IBM/ibm-cloud-functions-rest-api-trigger: IBM
Design a serverless REST API - IBM cloud Cloud Functions building block - HTTP REST
functions and cloudant (dipankarmaikap.com) Trigger - This project provides a starting point
for handling events from REST API calls with
IBM Cloud Functions powered by Apache
OpenWhisk. (github.com)
138
OpenFaaS
139
OpenFaaS
140
Exemplo Knative
knative-sample/helloworld-go: Knative
helloworld-go (github.com)
141
Trade-offs
● Desvantagens
○ ColdStart
○ Segurança
○ Privacidade
○ Vendor Lock-in
○ long running process (código nativo x interpretado)
142
Cold Start
Understanding serverless cold start | Blog e Can We Solve Serverless Cold Starts? |
atualizações do Azure | Microsoft Azure Dashbird
143
@canetas.pretas
OBJECT STORE
144
O que é? You don’t have to worry about
provisioning drives or backups,
or the many other previous
issues with storing files. Sure, S3
may not serve all file-storage
purposes; it does have a
maximum file size of 5 GB. Or it
did until 2010, when this
maximum was updated to 5 TB.
How did they do it? AWS does
all the heavy lifting on your
behalf, splitting up files that are
above 5 GB into multiple chunks
in a way that is fully seamless to
the user.
Introduction to Serverless - Learning
Serverless [Book] (oreilly.com)
145
146
Versioning
147
WORM
148
How it Works?
https://min.io/docs/minio/kubernetes/upstream/administration/concepts.htm
149
Migrating from HDFS to Object Storage - Performance comparison between MinIO and
MinIO HDFS for MapReduce Workloads
150
HDFS vs MinIO vs S3
151
152
QUESTÕES
153
SEFAZ-MG/2023
Computação serverless é um modelo de execução de computação na nuvem no qual o provedor aloca recursos sob demanda,
cuidando dos servidores em nome de seus clientes.
A Os serviços de funções de nuvem também são chamados de Function-as-a-Service (FaaS), e computação serverless é atualmente
FaaS + BaaS (Back-end as a Service).
B As funções de nuvem usam programação stateless e stateful de estilo funcional na linguagem de sua escolha, geralmente JavaScript
ou Python.
C A computação serverless fornece uma abstração que oculta os servidores e a complexidade de programá-los e operá-los.
D A computação serverless oferece um modelo de custo pay-asyou-go, em vez de um modelo baseado em reserva, para que não haja
cobrança por recursos ociosos.
E A computação serverless tem a capacidade de escalonamento automático de recursos para corresponder à demanda, de zero a
praticamente infinito.
154
SEFAZ-MG/2023
Em computação serverless há um custo de latência para reatribuir recursos de um cliente para outro, o que, no contexto de função de nuvem, é conhecido como
cold start.
Alternativas
B Embora possa levar menos de um segundo para iniciar uma função de nuvem, pode levar dezenas de segundos para carregar todas as bibliotecas de aplicativos.
C Um obstáculo ao desempenho previsível é a variabilidade nos recursos de hardware resultante da flexibilidade do provedor de nuvem para escolher o servidor
subjacente.
D Embora as funções de nuvem tenham uma latência de inicialização muito menor do que as tradicionais VMs, os atrasos incorridos ao iniciar novas instâncias
podem ser altos para algumas aplicações.
E Há três fatores que afetam essa latência do cold start: o tempo que leva para iniciar uma função de nuvem; o tempo que leva para inicializar o ambiente de
software da função, por exemplo, carregar bibliotecas Python; e a inicialização específica da aplicação a partir do código do usuário.
155
SEFAZ-MG/2023
Várias plataformas FaaS de código aberto foram desenvolvidas como alternativa às soluções serverless dos provedores de nuvem pública. As plataformas FaaS de
código aberto são quase exclusivamente implementadas sobre o Kubernetes, como por exemplo o OpenFaaS.
Em relação às características que possuem em comum os sistemas FaaS de código aberto baseados em kubernetes, assinale a afirmativa incorreta.
A A invocações às funções são roteadas por um gateway, definido pelo sistema FaaS ou por uma instância Kubernetes Ingress.
B O balanceamento de carga das requisições entre instâncias de função é implementado aproveitando as instâncias de serviço Kubernetes.
C Para o autoescalonamento, a maioria dos sistemas FaaS usa o Horizontal Pod Autoscaling (HPA) integrado do Kubernetes, que implementa o
autoescalonamento baseado em recursos de computação das instâncias das funções.
D Para o autoescalonamento, mecanismos de escalonamento personalizados também podem ser implementados, como escalonamento automático com base no
número de solicitações simultâneas em andamento.
E Para monitorar as instâncias de função, a maioria dos sistemas FaaS de código aberto utiliza suas próprias soluções de captura de métricas e visualização.
156
MPE-MG/2023
Considerando que computação Serverless é um paradigma para computação em nuvem que permite funções
serem implementadas e executadas de modo escalável, são consideradas características desse paradigma,
EXCETO:
A O desenvolvedor apenas escreve e implanta o código (função), deixando o provedor responsável pela
infraestrutura.
B O desenvolvedor precisa subir novos contêineres, caso a demanda do uso de recursos aumente. Em caso de
baixa demanda, recursos são desperdiçados.
C Adota o modelo FaaS (Function as a Service), no qual serviços são escritos como funções individuais que podem
ser gerenciadas separadamente sobre contêineres.
D Baseia-se em eventos, ou seja, uma função implantada pelo desenvolvedor é executada apenas quando a
resposta de um evento ocorre no sistema (como por exemplo: triggers de banco de dados e requisições HTTP).
157
BNB/2023
Um serverless é definido como um modelo operacional cujos princípios
incluem a ausência de infraestrutura para gerenciar e o
dimensionamento automático por unidade de consumo.
158
SEGER-ES/2023
A AWS Lambda é uma plataforma Serverless da Amazon que faz parte do pacote de serviços
Amazon Web Services (AWS). Sobre a arquitetura AWS Lambda, marque V para as afirmativas
verdadeiras e F para as falsas.
( ) É uma arquitetura orientada a eventos, sendo as funções Lambdas executadas em resposta
a um determinado evento, por exemplo, uma requisição HTTP.
( ) Firecracker é um serviço personalizado disponível na arquitetura para criar máquinas
virtuais leves a partir de funções Lambda.
( ) Funções Lambda podem ser escritas apenas nas linguagens de programação Java e Python.
( ) É um serviço pago sem acesso gratuito limitado aos usuários.
159
SEFAZ-RR/2023
Trata-se de um modelo de execução de computação em nuvem que provisiona recursos sob demanda e
atribui toda a responsabilidade por tarefas comuns de gerenciamento de infraestrutura aos fornecedores
da nuvem e ferramentas, permitindo que os desenvolvedores concentrem seus esforços e seu tempo na
lógica de negócio específica para seus aplicativos e processos. O texto acima define:
A Autoscaling
B Failove
C High availability
D Serverless
E Downtime
160
CGU/2022
Uma empresa desenvolveu um sistema de votação em massa para milhares de usuários concorrentes e o implantou na nuvem do
provedor AWS. A API de cadastro e acesso à informação dos usuários foi disponibilizada por meio de um serviço ECS, que mantém de
10 a 100 instâncias registradas no balanceador de carga. O cadastro de um usuário consiste nas seguintes informações: nome, e-mail,
telefone e foto. As informações textuais são armazenadas em um banco de dados relacional, e os arquivos são armazenados no disco
da instância. Recentemente foi identificada uma falha intermitente, na qual usuários reportam que a sua foto raramente é exibida.
Considerando que os serviços estão corretamente dimensionados, a causa dessa falha é:
161
#DEVOPS
#CLOUD
#DOCKER
#KUBERNETES
Prof. Raphael Lacerda
162
The Complete Definitive Guide to DevOps
Management (project-management.com)
163
Em suma
● …
164
muito trabalho
● …
165
breaking silos
● …
166
Por que só automação salva?
● …
167
168
DevOps
https://www.atlassian.com/continuous-delivery/principles/continuous-
integration-vs-delivery-vs-deployment
169
Embasa/2017
Integração Contínua
Prof. Raphael Lacerda
170
Integração Contínua
https://www.exoscale.com/syslog/what-is-
continuous-integration/
https://www.geeksforgeeks.org/ci-cd-
continuous-integration-and-continuous-
delivery/
171
CI/CD pipeline
https://www.testingdocs.com/continuous-
integration-tools/
172
CI vs CD
173
174
DevOps
175
176
DevSecOps
177
Por que?
178
DevSecOps
179
DevSecOps
180
Tudo junto!
181
E automatizado!
182
pilares
DevOps
Prof. Raphael Lacerda
183
12 Fatores
184
12 Fatores
185
Containers vs VM
● …
186
Containers vs VM vs Serverless
● …
187
Kata Containers is an
open source community
working to build a secure
container runtime with
lightweight virtual
machines that feel and
perform like containers,
but provide stronger
workload isolation using
hardware virtualization
technology as a second
layer of defense.
188
Networks
189
● Overlay
○ habilita os serviços do Swarm
○ rede distribuída
○ https://docs.docker.com/network/drivers/overlay/
● ipvlan
○ dá ao usuário o controle do ipv4 e ipv6
○ https://docs.docker.com/network/drivers/ipvlan/
● macvlan
○ macaddress atribuído
● none
○ container isolado do host e dos outros
https://docs.docker.com/network/drivers/
190
Volumes vs Bind Mounts
● filesystem, tmpfs
○ https://docs.docker.com/storage/tmpfs/
● bind mount
○ absolute path no host
● volumes
○ docker gerencia o diretório
○ não precisa associar ao container
● -v –volume VS –mount
○ mount não cria diretorio https://docs.docker.com/storage/bind-mounts/
https://www.dltlabs.com/blog/bind-mounts-
volumes-indocker-133067
https://docs.docker.com/storage/volumes/
https://blog.logrocket.com/docker-volumes-
vs-bind-mounts/
191
Best practices
● read only layers
○ stacked
○ cached layers
○ Only the instructions RUN, COPY, and ADD create layers. Other instructions create
temporary intermediate images, and don’t increase the size of the build.
● ephemeral containers https://docs.docker.com/build/guide
/layers/
○ stateless process
○ https://12factor.net/processes
○ https://12factor.net/disposability
192
Best practices
● multi-stage builds
○ https://spring.io/guides/topicals/spring-boot-docker/
https://docs.docker.com/develop/develop-images/dockerfile_best-
practices/
193
Swarm
https://medium.com/tech-tajawal/create-
https://docs.docker.com/engine/swarm/
cluster-using-docker-swarm-94d7b2a10c43
194
Swarm
● Orquestração de containers
● clustering and scheduling
● scaling
● multi-host networking
● service discovery
● load balancing If you’re not planning on deploying with Swarm,
use Docker Compose instead. If you’re
● mutual TLS para comunicação developing for a Kubernetes deployment,
consider using theintegrated Kubernetes feature
● Secrets in Docker Desktop.
○ https://docs.docker.com/engine/swarm/secrets/
https://medium.com/tech-tajawal/create-
https://docs.docker.com/engine/swarm/
cluster-using-docker-swarm-94d7b2a10c43
195
Kubernetes Principle's
● Portável, extensível, open source, orquestrador de containers, configuração
declarativa, grande ecossistema.
● Google Open-sourced 2014 - Borg: The Predecessor to Kubernetes | Kubernetes
● Service Discovery
● Storage Orchestration
● Load Balancer
● Rollout and Rollbacks
● Automatic Bin Packing
● Self Healing
● Secret Managment
Overview | Kubernetes
196
https://kubernetes.io/docs/concepts/architect
ure/cloud-controller/
197
Master
198
Master Componentes
● Kube-APIServer
○ que atua como front-end para o cluster. Toda a comunicação externa para o cluster
é via API-Server.
● Kube-Controller-Manager
○ que executa um conjunto de controladores para o cluster em execução. O
controlador-gerente implementa a governança em todo o cluster.
● Etcd
○ o banco de dados de estado do cluster.
● Kube Scheduler
○ O scheduler descobre qual worker node hospedará um POD recém-agendado.
199
FCC/TRT-AC/2023
● …
200
HPA
201
FGV/SEFAZ-MG/2023
● …
202
QUESTÕES
203
Cespe/SEFIN/2023
O Ansible é uma ferramenta de integração contínua que permite
automatizar o processo de construção, teste e implantação de software e
pode ser integrado a outras ferramentas DevOps, como Git, Docker e
Kubernetes.
204
FUNDATEC/2023
O DevOps (desenvolvimento + operação) preza o estreitamento entre as áreas de desenvolvimento e infraestrutura através de
ferramentas e metodologias, de modo que seja possível automatizar, monitorar, observar, testar e metrificar todas as etapas de
desenvolvimento de software. Dentro dos processos de DevOps, que visam o aumento dessa qualidade e também a facilitação de
colocar um projeto em produção, há um que é uma prática em que os times de desenvolvimento lançam novas funcionalidades de
forma constante e automatizada. Quando uma nova funcionalidade é finalizada, automaticamente ela será disponibilizada no
ambiente de testes e, posteriormente, no ambiente de produção e, em alguns casos, pode ir direto para produção. Assinale a
alternativa que cita essa prática.
205
CONSUPLAN/MPE-MG/2023
Manifesto para o desenvolvimento ágil de software defende “indivíduos e interações acima de processos e ferramentas, software operacional acima de
documentação completa, colaboração dos clientes acima de negociação contratual e respostas a mudanças acima de seguir um plano”. (Pressman e Maxim,
2021. P. 37.)
I. Os princípios do Scrum são empregados para orientar as atividades de desenvolvimento dentro de um processo que incorpora as seguintes atividades
metodológicas: planejar; codificar; construir; testar; e, distribuir.
II. A Extreme Programming (programação extrema) envolve um conjunto de regras e práticas constantes no contexto de quatro atividades metodológicas:
planejamento; projeto; codificação; e, testes.
IV. As reuniões de equipe para o Kanban são semelhantes àquelas realizadas na metodologia XP.
V. O DevOps combina desenvolvimento (development) e operações (operations) e seu fluxo de trabalho envolve diversas etapas que formam ciclos contínuos até
que o produto desejado exista de fato.
206
FGV/SENADO/2022
Você foi contratado para liderar uma equipe de DevOps. Um dos objetivos da sua liderança é aumentar a
velocidade das entregas e a qualidade de novos recursos das aplicações utilizando o desenvolvimento orientado a
testes.
Assinale a opção que indica a ordem que descreve corretamente o ciclo de desenvolvimento orientado a testes.
207
TDD, lembra?
208
FGV/TRT-16/2022
Considerando o DevOps e suas boas práticas, analise os itens a seguir:
I. Testes integrados são uma parte importante do processo DevOps. Esses testes devem levar em consideração as práticas de Test-
Driven Development e Behavior-Driven Development, dessa forma a execução automática desses testes pode ser integrada ao
pipeline de CI. No entanto, é importante integrar outros tipos de testes, como testes funcionais ou testes de integração, que
permitem que o aplicativo seja testado funcionalmente do início ao fim com os outros componentes do seu ecossistema.
II. Recomenda-se automatizar apenas as tarefas críticas que envolvam poucas atualizações na implementação e nos testes dos
aplicativos nas infraestruturas. Essas tarefas devem ser automatizadas em scripts que podem ser facilmente integradas e executadas
em pipelines de CI/CD.
III. A construção de pipelines de CI/CD envolvem a escolha de ferramentas de DevOps adequadas pelas equipes considerando a
natureza da empresa. E necessário levar em conta aspectos financeiros, avaliar entre ferramentas de código aberto e gratuitas e as
proprietárias, que são mais ricas em recursos e suporte, mas exigem um investimento significativo.
209
FGV/TRT-16/2022
Considerando o DevOps e suas boas práticas, analise os itens a seguir:
I. Testes integrados são uma parte importante do processo DevOps. Esses testes devem levar em consideração as práticas de Test-
Driven Development e Behavior-Driven Development, dessa forma a execução automática desses testes pode ser integrada ao
pipeline de CI. No entanto, é importante integrar outros tipos de testes, como testes funcionais ou testes de integração, que
permitem que o aplicativo seja testado funcionalmente do início ao fim com os outros componentes do seu ecossistema.
II. Recomenda-se automatizar apenas as tarefas críticas que envolvam poucas atualizações na implementação e nos testes dos
aplicativos nas infraestruturas. Essas tarefas devem ser automatizadas em scripts que podem ser facilmente integradas e executadas
em pipelines de CI/CD.
III. A construção de pipelines de CI/CD envolvem a escolha de ferramentas de DevOps adequadas pelas equipes considerando a
natureza da empresa. E necessário levar em conta aspectos financeiros, avaliar entre ferramentas de código aberto e gratuitas e as
proprietárias, que são mais ricas em recursos e suporte, mas exigem um investimento significativo.
210
FGV/PGM/2023
Um Time de Desenvolvimento de Software (TDS) segue um protocolo automatizado para gerar, testar e
combinar pacotes de software gerados separadamente. Todo software combinado precisa passar por um
processo que inclui uma requisição formal ao Time de Operações (TO) de um Centro de Dados para
executar um conjunto de testes, com o intuito de verificar vulnerabilidades no software antes de entrar em
produção. Considerando os conceitos de DevOps e DevSecOps, o TDS e o TO estão falhando no princípio:
A automação;
B colaboração ágil;
C produção contínua;
D integração contínua;
E ação centrada no cliente.
211
FGV/PGM/2023
Um Time de Desenvolvimento de Software (TDS) segue um protocolo automatizado para gerar, testar e
combinar pacotes de software gerados separadamente. Todo software combinado precisa passar por um
processo que inclui uma requisição formal ao Time de Operações (TO) de um Centro de Dados para
executar um conjunto de testes, com o intuito de verificar vulnerabilidades no software antes de entrar em
produção. Considerando os conceitos de DevOps e DevSecOps, o TDS e o TO estão falhando no princípio:
A automação;
B colaboração ágil;
C produção contínua;
D integração contínua;
E ação centrada no cliente.
212
FGV/CGU/2022
A equipe de redes de um órgão público está trabalhando para auxiliar no cumprimento das metas da equipe de
desenvolvimento de sistemas do mesmo órgão e vislumbrou a possibilidade de utilização de DevOps. Para tal, a
equipe de redes indicou a contratação de uma API em uma nuvem. A API indicada permite que os desenvolvedores
e os administradores dos sistemas interajam com a infraestrutura de modo programático e em escala, evitando a
instalação e a configuração dos recursos manualmente todas as vezes que precisam recriar um ambiente de
desenvolvimento. Para essa atividade, a equipe de desenvolvimento utilizou a prática DevOps de:
A comunicação e colaboração;
B integração contínua;
C entrega contínua;
D microsserviços;
213
FGV/CGU/2022
A equipe de redes de um órgão público está trabalhando para auxiliar no cumprimento das metas da equipe de
desenvolvimento de sistemas do mesmo órgão e vislumbrou a possibilidade de utilização de DevOps. Para tal, a
equipe de redes indicou a contratação de uma API em uma nuvem. A API indicada permite que os desenvolvedores
e os administradores dos sistemas interajam com a infraestrutura de modo programático e em escala, evitando a
instalação e a configuração dos recursos manualmente todas as vezes que precisam recriar um ambiente de
desenvolvimento. Para essa atividade, a equipe de desenvolvimento utilizou a prática DevOps de:
A comunicação e colaboração;
B integração contínua;
C entrega contínua;
D microsserviços;
214
FGV/SEFAZ-MG/2023
Você precisa implementar uma arquitetura de cloud para um sistema que terá picos de uso sazonais, pensando em otimizar os custos com essa infraestrutura e
garantir que durante o pico de uso mais intenso, é necessário que o sistema tenha recursos suficientes para manter a estabilidade e performance e que isso seja
feito de forma automatizada.
A I e II, apenas.
B II e III, apenas.
D IV e V, apenas.
E I, II, III, IV e V.
215
FGV/SEFAZ-MG/2023
Você precisa implementar uma arquitetura de cloud para um sistema que terá picos de uso sazonais, pensando em otimizar os custos com essa infraestrutura e
garantir que durante o pico de uso mais intenso, é necessário que o sistema tenha recursos suficientes para manter a estabilidade e performance e que isso seja
feito de forma automatizada.
A I e II, apenas.
B II e III, apenas.
D IV e V, apenas.
E I, II, III, IV e V.
216
FGV/SENADO/2023
Nos últimos anos, a adoção de ambientes em nuvem cresceu expressivamente. Modelos de serviço em nuvem facilitam a criação de soluções tecnológicas
modernas de maneiras diferentes.
I. O provedor de nuvem fica responsável pelo gerenciamento da infraestrutura de servidores, sistemas operacionais, atualizações e outras tarefas administrativas.
III. Permite equipes de desenvolvimento colaborarem em todo o ciclo de vida de um aplicativo, incluindo codificação, integração, teste, entrega, implantação e
feedback.
A IAC.
B TaaS.
C SaaS.
D IaaS.
E PaaS.
217
FGV/SENADO/2023
Nos últimos anos, a adoção de ambientes em nuvem cresceu expressivamente. Modelos de serviço em nuvem facilitam a criação de soluções tecnológicas
modernas de maneiras diferentes.
I. O provedor de nuvem fica responsável pelo gerenciamento da infraestrutura de servidores, sistemas operacionais, atualizações e outras tarefas administrativas.
III. Permite equipes de desenvolvimento colaborarem em todo o ciclo de vida de um aplicativo, incluindo codificação, integração, teste, entrega, implantação e
feedback.
A IAC.
B TaaS.
C SaaS.
D IaaS.
E PaaS.
218
CESPE/AGER/2023
Assinale a opção que apresenta exemplo de ferramenta que permite realizar automação de código —
incluindo a execução de tarefas relacionadas à criação, ao teste e à entrega ou implantação de software —
e, assim, realizar, no DevOps, integração contínua e entrega contínua (CI/CD).
Alternativas
A jenkins
B maven
C ansible
D puppet
E docker
219
Cespe/Petrobras/2022
A arquitetura de microsserviços decompõe a aplicação em serviços e
pode ser criada e implantada de maneira independente, o que permite
executar no DevOps o continuous integration / continuous delivery
(CI/CD).
220
Questão INÉDITA - by: rafa!
I - Mudança de cultura, automação e monitoração são pilares para o DevOps.
Uma das variações do termo é o GitOps, que consiste em trabalhar o repositório
de configurações como single source of truth e sincronizar mudanças para
ambiente de produção.
II - CI/CD é um loop onde há a construção, testes, deploy e release. Nele, a cada
pull request, o produto vai diretamente para produção.
III - Uma equipe de software está praticando Continuous Delivery se qualquer
membro consegue rapidamente executar deploy de qualquer versão em
qualquer ambiente sob demanda.
221
FUNDATEC/2023
O DevOps (desenvolvimento + operação) preza o estreitamento entre as áreas de desenvolvimento e infraestrutura através de
ferramentas e metodologias, de modo que seja possível automatizar, monitorar, observar, testar e metrificar todas as etapas de
desenvolvimento de software. Dentro dos processos de DevOps, que visam o aumento dessa qualidade e também a facilitação de
colocar um projeto em produção, há um que é uma prática em que os times de desenvolvimento lançam novas funcionalidades de
forma constante e automatizada. Quando uma nova funcionalidade é finalizada, automaticamente ela será disponibilizada no
ambiente de testes e, posteriormente, no ambiente de produção e, em alguns casos, pode ir direto para produção. Assinale a
alternativa que cita essa prática.
222
CONSUPLAN/MPE-MG/2023
Manifesto para o desenvolvimento ágil de software defende “indivíduos e interações acima de processos e ferramentas, software operacional acima de
documentação completa, colaboração dos clientes acima de negociação contratual e respostas a mudanças acima de seguir um plano”. (Pressman e Maxim,
2021. P. 37.)
I. Os princípios do Scrum são empregados para orientar as atividades de desenvolvimento dentro de um processo que incorpora as seguintes atividades
metodológicas: planejar; codificar; construir; testar; e, distribuir.
II. A Extreme Programming (programação extrema) envolve um conjunto de regras e práticas constantes no contexto de quatro atividades metodológicas:
planejamento; projeto; codificação; e, testes.
IV. As reuniões de equipe para o Kanban são semelhantes àquelas realizadas na metodologia XP.
V. O DevOps combina desenvolvimento (development) e operações (operations) e seu fluxo de trabalho envolve diversas etapas que formam ciclos contínuos até
que o produto desejado exista de fato.
223
FGV/SENADO/2022
Você foi contratado para liderar uma equipe de DevOps. Um dos objetivos da sua liderança é aumentar a
velocidade das entregas e a qualidade de novos recursos das aplicações utilizando o desenvolvimento orientado a
testes.
Assinale a opção que indica a ordem que descreve corretamente o ciclo de desenvolvimento orientado a testes.
224
TDD, lembra?
225
FGV/CGE-SC/2023
Uma organização deseja aumentar a maturidade da organização utilizando DevOps.
As opções a seguir apresentam maneiras de ajudar o amadurecimento da organização com o uso do
DevOps, à exceção de uma. Assinale-a.
A Manter registros de todas as reuniões para que os membros do time tenham fácil acesso a todas as
comunicações.
B Definir claramente os processos e o apoio e permitir que os membros do time melhorem o processo
diariamente.
C Definir claramente metas como marcos para ajudar os membros de seu time a avaliar se suas atividades
diárias são valiosas.
D Monitorar e registrar as atividades diárias para ajudar a identificar pequenas áreas de progresso diário e
comemorá-las.
E Estabelecer um método eficaz de ponderação sobre a produtividade versus riscos, fazer mudanças
incrementais e criar locais seguros para experimentos.
226
FGV/TRT-16/2022
Considerando o DevOps e suas boas práticas, analise os itens a seguir:
I. Testes integrados são uma parte importante do processo DevOps. Esses testes devem levar em consideração as práticas de Test-
Driven Development e Behavior-Driven Development, dessa forma a execução automática desses testes pode ser integrada ao
pipeline de CI. No entanto, é importante integrar outros tipos de testes, como testes funcionais ou testes de integração, que
permitem que o aplicativo seja testado funcionalmente do início ao fim com os outros componentes do seu ecossistema.
II. Recomenda-se automatizar apenas as tarefas críticas que envolvam poucas atualizações na implementação e nos testes dos
aplicativos nas infraestruturas. Essas tarefas devem ser automatizadas em scripts que podem ser facilmente integradas e executadas
em pipelines de CI/CD.
III. A construção de pipelines de CI/CD envolvem a escolha de ferramentas de DevOps adequadas pelas equipes considerando a
natureza da empresa. E necessário levar em conta aspectos financeiros, avaliar entre ferramentas de código aberto e gratuitas e as
proprietárias, que são mais ricas em recursos e suporte, mas exigem um investimento significativo.
227
FGV/TRT-16/2022
Considerando o DevOps e suas boas práticas, analise os itens a seguir:
I. Testes integrados são uma parte importante do processo DevOps. Esses testes devem levar em consideração as práticas de Test-
Driven Development e Behavior-Driven Development, dessa forma a execução automática desses testes pode ser integrada ao
pipeline de CI. No entanto, é importante integrar outros tipos de testes, como testes funcionais ou testes de integração, que
permitem que o aplicativo seja testado funcionalmente do início ao fim com os outros componentes do seu ecossistema.
II. Recomenda-se automatizar apenas as tarefas críticas que envolvam poucas atualizações na implementação e nos testes dos
aplicativos nas infraestruturas. Essas tarefas devem ser automatizadas em scripts que podem ser facilmente integradas e executadas
em pipelines de CI/CD.
III. A construção de pipelines de CI/CD envolvem a escolha de ferramentas de DevOps adequadas pelas equipes considerando a
natureza da empresa. E necessário levar em conta aspectos financeiros, avaliar entre ferramentas de código aberto e gratuitas e as
proprietárias, que são mais ricas em recursos e suporte, mas exigem um investimento significativo.
228
FGV/PGM/2023
Um Time de Desenvolvimento de Software (TDS) segue um protocolo automatizado para gerar, testar e
combinar pacotes de software gerados separadamente. Todo software combinado precisa passar por um
processo que inclui uma requisição formal ao Time de Operações (TO) de um Centro de Dados para
executar um conjunto de testes, com o intuito de verificar vulnerabilidades no software antes de entrar em
produção. Considerando os conceitos de DevOps e DevSecOps, o TDS e o TO estão falhando no princípio:
A automação;
B colaboração ágil;
C produção contínua;
D integração contínua;
E ação centrada no cliente.
229
FGV/PGM/2023
Um Time de Desenvolvimento de Software (TDS) segue um protocolo automatizado para gerar, testar e
combinar pacotes de software gerados separadamente. Todo software combinado precisa passar por um
processo que inclui uma requisição formal ao Time de Operações (TO) de um Centro de Dados para
executar um conjunto de testes, com o intuito de verificar vulnerabilidades no software antes de entrar em
produção. Considerando os conceitos de DevOps e DevSecOps, o TDS e o TO estão falhando no princípio:
A automação;
B colaboração ágil;
C produção contínua;
D integração contínua;
E ação centrada no cliente.
230
FGV/CGU/2022
A equipe de redes de um órgão público está trabalhando para auxiliar no cumprimento das metas da equipe de
desenvolvimento de sistemas do mesmo órgão e vislumbrou a possibilidade de utilização de DevOps. Para tal, a
equipe de redes indicou a contratação de uma API em uma nuvem. A API indicada permite que os desenvolvedores
e os administradores dos sistemas interajam com a infraestrutura de modo programático e em escala, evitando a
instalação e a configuração dos recursos manualmente todas as vezes que precisam recriar um ambiente de
desenvolvimento. Para essa atividade, a equipe de desenvolvimento utilizou a prática DevOps de:
A comunicação e colaboração;
B integração contínua;
C entrega contínua;
D microsserviços;
231
FGV/CGU/2022
A equipe de redes de um órgão público está trabalhando para auxiliar no cumprimento das metas da equipe de
desenvolvimento de sistemas do mesmo órgão e vislumbrou a possibilidade de utilização de DevOps. Para tal, a
equipe de redes indicou a contratação de uma API em uma nuvem. A API indicada permite que os desenvolvedores
e os administradores dos sistemas interajam com a infraestrutura de modo programático e em escala, evitando a
instalação e a configuração dos recursos manualmente todas as vezes que precisam recriar um ambiente de
desenvolvimento. Para essa atividade, a equipe de desenvolvimento utilizou a prática DevOps de:
A comunicação e colaboração;
B integração contínua;
C entrega contínua;
D microsserviços;
232
FGV/SEFAZ-MG/2023
Você precisa implementar uma arquitetura de cloud para um sistema que terá picos de uso sazonais, pensando em otimizar os custos com essa infraestrutura e
garantir que durante o pico de uso mais intenso, é necessário que o sistema tenha recursos suficientes para manter a estabilidade e performance e que isso seja
feito de forma automatizada.
A I e II, apenas.
B II e III, apenas.
D IV e V, apenas.
E I, II, III, IV e V.
233
FGV/SEFAZ-MG/2023
Você precisa implementar uma arquitetura de cloud para um sistema que terá picos de uso sazonais, pensando em otimizar os custos com essa infraestrutura e
garantir que durante o pico de uso mais intenso, é necessário que o sistema tenha recursos suficientes para manter a estabilidade e performance e que isso seja
feito de forma automatizada.
A I e II, apenas.
B II e III, apenas.
D IV e V, apenas.
E I, II, III, IV e V.
234
FGV/SENADO/2023
Nos últimos anos, a adoção de ambientes em nuvem cresceu expressivamente. Modelos de serviço em nuvem facilitam a criação de soluções tecnológicas modernas de maneiras diferentes.
I. O provedor de nuvem fica responsável pelo gerenciamento da infraestrutura de servidores, sistemas operacionais, atualizações e outras tarefas administrativas.
III. Permite equipes de desenvolvimento colaborarem em todo o ciclo de vida de um aplicativo, incluindo codificação, integração, teste, entrega, implantação e feedback.
A IAC.
B TaaS.
C SaaS.
D IaaS.
E PaaS.
235
FGV/SENADO/2023
Nos últimos anos, a adoção de ambientes em nuvem cresceu expressivamente. Modelos de serviço em nuvem facilitam a criação de soluções tecnológicas modernas de maneiras diferentes.
I. O provedor de nuvem fica responsável pelo gerenciamento da infraestrutura de servidores, sistemas operacionais, atualizações e outras tarefas administrativas.
III. Permite equipes de desenvolvimento colaborarem em todo o ciclo de vida de um aplicativo, incluindo codificação, integração, teste, entrega, implantação e feedback.
A IAC.
B TaaS.
C SaaS.
D IaaS.
E PaaS.
236
CESPE/AGER/2023
Assinale a opção que apresenta exemplo de ferramenta que permite realizar automação de código —
incluindo a execução de tarefas relacionadas à criação, ao teste e à entrega ou implantação de software —
e, assim, realizar, no DevOps, integração contínua e entrega contínua (CI/CD).
Alternativas
A jenkins
B maven
C ansible
D puppet
E docker
237
CESPE/SERPRO/2023
Considere-se que, na figura a seguir, Deploys sejam ambientes onde os
códigos são disponibilizados, tais como ambiente de produção e de
desenvolvimento, e que Codebase se refere a um repositório único em
um sistema de controle de revisão descentralizado tal como o Git. Nesse
caso, segundo o que preconizam os 12 factories, vários aplicativos devem
compartilhar o mesmo código de modo que se tenha uma padronização
e não haja comprometimento com as dependências no repositório.
238
CESPE/SERPRO/2023
Considere-se que, na figura a seguir, Deploys sejam ambientes onde os
códigos são disponibilizados, tais como ambiente de produção e de
desenvolvimento, e que Codebase se refere a um repositório único em
um sistema de controle de revisão descentralizado tal como o Git. Nesse
caso, segundo o que preconizam os 12 factories, vários aplicativos devem
compartilhar o mesmo código de modo que se tenha uma padronização
e não haja comprometimento com as dependências no repositório.
errada
239
CESPE/SERPRO/2023
De acordo com o que preconizam os 12 factories, na situação da figura a
seguir, Release deve sempre ter um ID de Release exclusivo e, como
deve haver separação estrita entre os estágios de Build, Release e
execução, torna-se impossível fazer alterações no código em tempo de
execução, pois não há como propagar essas alterações de volta ao
estágio de Build.
240
CESPE/SERPRO/2023
De acordo com o que preconizam os 12 factories, na situação da figura a seguir,
Release deve sempre ter um ID de Release exclusivo e, como deve haver
separação estrita entre os estágios de Build, Release e execução, torna-se
impossível fazer alterações no código em tempo de execução, pois não há como
propagar essas alterações de volta ao estágio de Build.
certa
241
Cespe/Petrobras/2022
A arquitetura de microsserviços decompõe a aplicação em serviços e
pode ser criada e implantada de maneira independente, o que permite
executar no DevOps o continuous integration / continuous delivery
(CI/CD).
242
Cespe/Petrobras/2022
Do ponto de vista de framework de arquitetura, os microsserviços são
fortemente acoplados e distribuídos; os microsserviços são componentes
embutidos em contêineres que trabalham juntos para realizar tarefas
específicas.
243
Vunesp/TJRS/2023
Deseja-se executar um container Docker no qual um diretório específico
dentro do container seja mapea- do em um diretório específico da
máquina host. Esse diretório do host deve ser especificado pelo usuário
do Docker por meio de seu caminho absoluto no comando de execução
do container. A solução para esse proble- ma consiste em utilizar
(A) uma imagem. (B) um volume.
(C) um bind mount. (D) um tmpfs mount. (E) uma rede virtual.
244
FUNDATEC/2023
O que é um container Docker?
A Uma máquina virtual.
B Uma imagem.
C Uma instância executável de uma máquina virtual.
D Uma instância executável de uma imagem.
E Um pacote de código-fonte.
245
FUNDATEC/2023
Qual a finalidade do Docker no desenvolvimento com .NET 5 e .NET Core,
utilizando Kubernetes?
A Fornecer um ambiente de desenvolvimento isolado para aplicativos .NET.
B Facilitar o gerenciamento de contêineres em um ambiente Kubernetes.
C Automatizar a implantação e dimensionamento de aplicativos .NET.
D Gerar arquivos de manifesto para implantação de aplicativos .NET em
Kubernetes.
E Monitorar a saúde e desempenho de aplicativos .NET em tempo real.
246
UFPR/2023
O comando docker run cria e executa um novo contêiner a partir de uma
imagem. Para a criação desse contêiner em segundo plano, utiliza-se o
comando:
A docker container run -b
B docker container run -p
C docker container run -a
D docker container run -d
E docker container run -s
247
AOCP/IF-MA/2023
Assinale a alternativa que descreve corretamente o Docker, uma plataforma de conteinerização amplamente utilizada.
A Docker é um sistema de gerenciamento de pacotes que permite a instalação e atualização de software em sistemas operacionais
baseados em Linux.
B Docker é uma ferramenta de virtualização que permite a criação de máquinas virtuais completas com seus próprios sistemas
operacionais.
C Docker é uma plataforma de infraestrutura como serviço (IaaS) que fornece recursos computacionais e de armazenamento na
nuvem.
D Docker é uma plataforma de orquestração de contêineres que gerencia o ciclo de vida e a implantação de contêineres em clusters.
E Docker é uma plataforma de conteinerização que permite empacotar, distribuir e executar aplicações em contêineres isolados.
248
AOCP/IF-MA/2023
Suponha que você seja um analista de infraestrutura em uma empresa de tecnologia e esteja trabalhando
em um projeto que envolve o uso de Docker para executar aplicativos em contêineres. Sua equipe busca
garantir a segurança dos contêineres, sem comprometer a escalabilidade e a portabilidade. Nesse cenário,
qual é a maneira eficaz de melhorar a segurança ao executar aplicativos em contêineres com Docker?
A Executar todos os contêineres com privilégios de root.
B Utilizar imagens de base não oficiais para contêineres.
C Implementar políticas de segurança usando Docker Secrets e Docker Content Trust.
D Executar várias instâncias de aplicativos diferentes em um único contêiner.
E Ignorar as práticas de isolamento de recursos do Docker.
249
Cespe/SEFIN/2023
Um exemplo prático de conteinerização de aplicação é a utilização do
Docker para criar um ambiente consistente; nesse caso, é correto criar
um arquivo Dockerfile por meio do comando docker build.
250
Cespe/SEFIN/2023
Tendo em vista que, no atual cenário de desenvolvimento de aplicações
web, é essencial considerar princípios, como consistência e
escalabilidade, e práticas, como automação do processo de implantação
e integração do código-fonte, julgue o item subsequente.
A adoção de tecnologias de conteinerização, como o Docker, permite à
equipe orquestrar vários contêineres em conjunto, por exemplo, um
contêiner para a aplicação Node.js e outro, para o banco de dados
MongoDB.
251
FGV/TJDFT/2021
Considerando-se os conceitos de docker, é correto afirmar que se trata de:
252
FGV/TJDFT/2021
Considerando-se os conceitos de docker, é correto afirmar que se trata de:
253
254
CESPE/2021
A cadeia de valor do serviço, um dos componentes principais da ITIL,
pode ser adaptada para gerenciar serviços em organizações onde a
tecnologia da informação (TI) é centralizada ou que implementem a
abordagem DevOps.
255
CESPE/2021
Julgue o item a seguir, referentes ao conjunto de práticas de
desenvolvimento de software, operação e de apoio envolvidas (DevOps).
Para tornar a integração contínua mais efetiva no DevOps, é
recomendável centralizar todos os commits em uma máquina de
integração.
256
CESPE/2021
Na gestão da configuração em que se observa os valores do DevOps, é
importante implantar imediatamente as versões desenvolvidas no
ambiente de produção, cabendo, nesse contexto, à equipe de
desenvolvimento a criação de scripts automatizados para a garantia da
integração contínua.
257
FGV/CGE-SC/2023
Uma organização deseja aumentar a maturidade da organização utilizando DevOps.
As opções a seguir apresentam maneiras de ajudar o amadurecimento da organização com o uso do DevOps, à exceção de uma.
Assinale-a.
A Manter registros de todas as reuniões para que os membros do time tenham fácil acesso a todas as comunicações.
B Definir claramente os processos e o apoio e permitir que os membros do time melhorem o processo diariamente.
C Definir claramente metas como marcos para ajudar os membros de seu time a avaliar se suas atividades diárias são valiosas.
D Monitorar e registrar as atividades diárias para ajudar a identificar pequenas áreas de progresso diário e comemorá-las.
E Estabelecer um método eficaz de ponderação sobre a produtividade versus riscos, fazer mudanças incrementais e criar locais
seguros para experimentos.
258
Cespe/BNB/2023
A entrega contínua (CD) no DevOps é o processo de automatização que
inclui a configuração e implantação de um aplicativo em um pipeline de
produção, mas não abrange a compilação e o teste.
259
Cespe/BNB/2023
A ferramenta puppet permite escrever e executar um conjunto de
diretivas para gerenciar a configuração de um sistema, seja o
operacional, seja uma aplicação.
260
Cespe/BNB/2023
Situação hipotética: Alguns funcionários de determinada organização foram
encarregados de selecionar uma ferramenta para auxiliar os gestores na
execução das atividades relacionadas à fase build dos projetos da empresa.
Após se reunirem para debater o assunto, os funcionários optaram pela
ferramenta puppet.
261
Cespe/BNB/2023
A recomendação da integração é contínua quando prevê que cada
desenvolvedor faça, no mínimo, um commit por semana, atualizando o
repositório central a partir do repositório local.
262
Cespe/BNB/2023
Com base nas etapas do DevOps, é correto afirmar que a ferramenta
Jenkins está mais relacionada à etapa monitor que à etapa deploy.
263
Cespe/TRT-8/2023
No contexto de DevOps e DevSecOps, o Proxy reverso
A permite que diferentes servidores e serviços apareçam como se fossem uma única unidade,
ocultando servidores atrás do mesmo nome.
B não permite o balanceamento de carga para distribuir o tráfego de entrada, uma vez que
essa tarefa é realizada nativamente por um firewall.
C é um servidor que reside na frente de um ou mais clientes, interceptando solicitações
internas e externas de servidores web.
D garante que os clientes se comuniquem diretamente com um servidor de origem na Web.
E não permite criptografar e descriptografar comunicações SSL (ou TLS) para cada cliente.
264
O que é um proxy reverso?
https://www.infoq.com/br/news/2010/06/proxy-reverso/
265
Cespe/TCE-RJ/2022
Em DevOps, além das ferramentas do ambiente de desenvolvimento
integrado, são relevantes as ferramentas para gerenciamento de
controle de fontes, trabalho colaborativo e planejamento de projetos.
266
Cespe/TRT-8/2022
A respeito de testes automatizados, no contexto de DevOps e DevSecOps, assinale a opção correta.
A Em um teste unitário, os métodos da classe sendo testada e suas dependências podem ter relação com
recursos externos.
B Os bugs são detectados no final do ciclo de desenvolvimento, o que pode aumentar o tempo na criação
de novos produtos.
C Os testes unitários são testes de caixa preta com cada função que compõe o software.
D O TDD (Test Driven Development) eleva o nível dos testes unitários e tem como característica criar a
classe de testes antes da classe de produção, de forma que os testes guiem o código a ser implementado.
E Os testes de integração são caracterizados pela verificação de partes internas do sistema, que se inter-
relacionam entre si, conforme definido pelos clientes.
267
CESPE/TRT-8/2022
É(são) etapa(s) do DevOps
I Imersão.
II Ideação.
III Prototipação.
Assinale a opção correta.
A Nenhum item está certo.
B Apenas os itens I e II estão certos.
C Apenas os itens I e III estão certos.
D Apenas os itens II e III estão certos.
268
CESPE/TRT-8/2022
São tarefas do DevOps o(a)
I monitoramento (monitor).
II planejamento (plan).
269
pilares
DevOps
Prof. Raphael Lacerda
270
CESPE/BNB/2023
A organização que investir em DevOps deve estar preparada para
automatizar seus processos mediante a execução de scripts pré-
definidos.
271
CESPE/BANRISUL/2023
O repositório de artefatos armazena artefatos de construção produzidos
por integração contínua e os disponibiliza para implantação
automatizada em ambientes de teste, preparação e produção.
272
CESPE/BANRISUL/2023
O DevOps melhora a experiência do cliente ao dar atenção aos testes
manuais contínuos por membros da equipe de operações e de
desenvolvimento para garantir a adequação do produto às necessidades
dos usuários.
273
CESPE/BANRISUL/2023
A prática DevOps visa à entrega contínua e à automação de tarefas
repetitivas e tediosas, o que possibilita dedicar mais tempo à interação
humana.
274
CESPE/BANRISUL/2023
Testes automatizados locais, atualização local a partir do repositório
central, novos testes automatizados locais e atualização do repositório
central a partir do local são as etapas de integração contínua.
275
CESPE/APEX/2023
No DevOps, as mudanças feitas pelo desenvolvedor na solução de software, nas
quais são feitos testes contra erros para depois serem enviadas a um repositório
de versionamento de códigos, como o GitHub, representam a etapa de
A deploy.
B entrega contínua.
C integração contínua.
D operação.
276
Cespe/BANRISUL/2023
Em um ambiente de DevOps, o gerenciamento de liberação é geralmente
integrado à cadeia de ferramentas de integração contínua e implantação
contínua.
277
Cespe/BANRISUL/2023
Cada vez que uma alteração na base de código é detectada, é iniciada
uma compilação que testa a qualidade do código recém-enviado,
alcançando-se, assim, a integração contínua.
278
Cespe/PETROBRAS/2022
Uma das vantagens do modelo DevOps para desenvolvimento de
soluções em cloud computing é a possibilidade de automação de
atividades no fluxo de desenvolvimento, na qual se prescinde a fase de
teste, até a entrega para o cliente e o feedback da implementação.
279
Cespe/PETROBRAS/2022
Na situação em tela, a cultura DevOps permite simplificar a implantação
e o gerenciamento eficiente de containers.
280
Cespe/BANRISUL/2023
Colaboração multidisciplinar, teste manual no final do desenvolvimento e
implantação contínua são algumas das características marcantes da
cultura DevOps.
281
IBFC/MGS/2023
( ) Lança-se versões de software em ciclos periódicos, lineares, mas
longos.
( ) As equipes de desenvolvimento ficam separadas dos operadores de
software.
( ) DevOps é a combinação de filosofias culturais, práticas e ferramentas.
282
Cespe/PETRO/2022
No DevOps, a integração contínua possui como uma de suas atividades a
realização de testes; a fim de se obter os benefícios esperados convém
automatizar os testes para poder executá-los para cada alteração feita
no repositório principal.
283
Cespe/PETRO/2022
A integração e a entrega contínuas (CI/CD) devem ser implementadas na
etapa operar (operate), na qual de fato a solução de software é entregue
ao cliente.
284
Cespe/BANRISUL/2022
Os processos envolvidos no DevOps são denominados, respectivamente,
de planejar, construir, testar, codificar, operar, avaliar e relatar.
285
Cespe/PETRO/2022
No ciclo DevOps, a fase de implantação contínua visa criar um processo
de lançamento de software no ambiente de produção; nessa fase
convém realizar a gestão da configuração que implementa o código da
aplicação em todos os servidores.
286
Cesgrario/2021
No âmbito de DevOps, o termo “shift left testing” significa que os testes devem
A ser feitos junto com a entrada em operação do produto.
B ser feitos apenas no ambiente de desenvolvimento.
C ser feitos apenas por meio de ferramentas de automação de testes.
D ser feitos desde as fases iniciais do ciclo de vida do produto.
E dirigir o desenvolvimento do produto.
287
FGV/TJDFT/2021
A equipe de analista de sistemas Alfa aplica o DevSecOps ativamente em seu processo de desenvolvimento de software.
Todos os membros da equipe Alfa são incentivados a se preocuparem com a segurança do software de forma proativa desde o início
do processo de desenvolvimento, aplicando diretamente a prática DevSecOps:
A shift left;
B rastreabilidade;
C auditabilidade;
D visibilidade;
E bug bounty.
288
What is shift left testing?
289
Cespe/PETRO/2022
O método CI/CD refere-se a um processo de automação para os usuários
de um sistema que enviam, de forma contínua, feedbacks para os
desenvolvedores desse sistema.
290
Cesgranrio/2022
Em uma empresa, um administrador de uma rede com Red Hat OpenShift precisa implementar uma
integração contínua (continuous integration-CI) ou uma entrega contínua (continuous delivery-CD). Para
isso, utilizará uma aplicação para configurar essas ações, que funciona como um container certificado.
Nessa situação, a aplicação adequada é a
A ClusterCn
B Image
C Jenkins
D Podman
E Route
291
IBADE/2022
Em um modelo DevOps existe um método para entregar aplicações com
frequência aos clientes, visando integração, entrega e implantação contínuas.
Chamamos esse método de:
A git
B pipeline
C flowchart
D reentrante
E CI/CD
292
CESPE/ABIN/2018
Situação hipotética: Uma empresa possui um grande sistema com todas
as suas funcionalidades em uma aplicação que acessa um banco de
dados. A aplicação foi desmembrada em várias outras, em formatos de
contêineres que podem ser provisionados, iniciados e parados sob
demanda em ambientes de homologação e desenvolvimento, porém, em
produção, o deploy é feito manualmente. Assertiva: Nessa situação,
configura-se um ambiente que possui práticas de entrega contínua.
293
Cespe/PETRO/2022
Um contêiner é um conjunto de processos organizados isoladamente do
sistema; todos os arquivos necessários para executá-los são
disponibilizados por uma imagem distinta.
294
Cespe/DPE-RO/2022
A orquestração automatiza a implantação, o gerenciamento, a escala e a rede dos contêineres. As ferramentas de orquestração de
contêineres fornecem um framework para gerenciar arquiteturas de microsserviços e contêineres em escala, e muitas delas são
usadas no gerenciamento do ciclo de vida dos contêineres; entre elas, o Docker Swarm é uma plataforma
A que permite utilizar diversos recursos e ferramentas, como Apache e PHP, porém tudo rodando em um mesmo sistema operacional.
B de código aberto criada pelo Google para operações de implantação de contêiner, aumento e redução e automação em clusters de
hosts.
C de orquestração de contêiner de código aberto, sendo o mecanismo de clusterização nativo para e pelo Docker, utilizando sua
mesma linha de comando.
D que roda sobre o Kubernetes instalado em sistema operacional na versão Enterprise da Red Hat, agregando opções de
monitoramento, integração e entrega contínua.
E usada pela Amazon para fornecer outros serviços aos clientes, como DNS, balanceamento, segurança e monitoramento, se
integrando nativamente.
295
Cespe/DPE-RO/2022
Máquinas virtuais e contêineres são ambientes de computação que combinam diversos componentes de
tecnologia da informação isolando-os do restante do sistema computacional. Em alguns serviços, as
máquinas virtuais são mais apropriadas do que os contêineres, a exemplo
A do empacotamento de microsserviços.
B da transferências de projetos entre diversas infraestruturas de TI com o mesmo sistema operacional.
C da criação de aplicações nativas em nuvem.
D da adoção de práticas de integração contínua e entrega contínua.
E do armazenamento de cargas de trabalho monolíticas, legadas e tradicionais.
296
Container vs Virtual Machine
https://www.weave.works/blog/a-practical-guide-to-choosing-between-docker-containers-and-vms
297
Cespe/2020
Uma imagem de contêiner tem como característica a imutabilidade, ou
seja, ela não muda após a sua construção; no entanto, ela pode ser
configurada.
https://docs.docker.com/engine/refe
rence/commandline/commit/
298
Cespe/DPE-RO/2022
Em programação, os contêineres são utilizados em larga escala no desenvolvimento, testes e, principalmente, na
produção de softwares, permitindo rodar múltiplos sistemas isolados dentro de um sistema operacional real. A
esse respeito, julgue os itens a seguir.
I Em um contêiner, é possível utilizar diversos recursos e ferramentas, porém tudo roda em um mesmo sistema
operacional; em caso de pane, todas as funcionalidades serão afetadas.
II Ferramentas embasadas nos contêineres Linux oferecem aos usuários acesso sem precedentes a aplicações,
além da habilidade de implementar com rapidez e de ter total controle sobre as versões e distribuição.
III As ferramentas de contêiner, incluindo o Docker, fornecem um modelo de implantação com base em imagens,
facilitando o compartilhamento de uma aplicação ou conjunto de serviços, incluindo todas as dependências deles
em vários ambientes.
299
Cespe/TJ-RJ/2022
Os profissionais técnicos de aplicativos responsáveis por plataformas, arquitetura e integração devem racionalizar inovações recentes
para revitalizar seus portfólios de aplicativos. A modernização da arquitetura e da entrega de aplicativos e integração é necessária
para oferecer suporte à agilidade comercial sustentável. Nesse contexto, é correto
A tratar a arquitetura e a tecnologia isoladamente, de forma que processos, estrutura organizacional e plataformas somente sejam
acoplados quando finalizados.
B realizar a modernização para todos os produtos e cenários possíveis de uma vez, abrangendo todos os serviços, ainda que haja
maiores riscos.
C implantar as aplicações em multicloud na arquitetura de microsserviços e somente aplicar princípios de desenvolvimento ágil e
DevOps, se ambas implantações ocorrerem com sucesso.
D priorizar a liberação de atualizações para toda a organização (big bang), evitando os princípios de aplicativos de malha (mesh app) e
MASA (mesh app and service architecture).
E criar APIs (application programming interface) para que os aplicativos as usem de modo que não haja acesso direto ao banco de
dados, ou seja, tornar os aplicativos fracamente acoplados.
300
Cespe/SERPRO/2023
A prática de database migration é fundamental em DevOps para garantir
a consistência dos dados bem como sua disponibilidade e segurança.
301
O que é migrations?
https://www.martinfowler.com/articles/evodb.html
https://medium.com/knoldus/introduction-
to-database-migrations-using-flyway-
da62d3366c00
302
FEPESE/2023
Muitas organizações têm adotado práticas de DevOps no desenvolvimento de software.
A Baseado no modelo waterfall, DevOps é ideal para auxiliar equipes a manter um ritmo com modelos de desenvolvimento e entrega
acelerados, tais como integração contínua e entrega para produção contínua (CI/CD).
B Integração Contínua (Continuous integration - CI) é uma prática de desenvolvimento de software na qual desenvolvedores
regularmente atualizam o seu código (realiza um commit) em um repositório compartilhado.
C O uso de DevOps tem como objetivo criar uma cultura de colaboração entre as equipes de desenvolvimento e de operações que
permite aumentar o fluxo de trabalho completado, reduzindo a quantidade de deploys, ao mesmo tempo aumentando a estabilidade
e robustez do ambiente de produção.
D A integração contínua (Continuous Integration - CI) foca na disponibilização de blocos de código completos para um repositório em
intervalos regulares de tempo. Estes blocos de Código devem sempre estar em condições de serem executados para serem testados
ou colocados em produção.
E No uso de microservices, como uma arquitetura monolítica, CD permite aos desenvolvedores serem responsáveis por partes
maiores e gerenciáveis do código que implementam funcionalidades individuais e trabalhar nestas em paralelo.
303
VUNESP/TJRS/2023
Um arquivo YAML de configuração de um serviço Kubernetes possui o seguinte conteúdo:
apiVersion: v1
kind: Service
metadata:
name: my-service
spec:
TJRS2301/003-AnalistaTecInf-Suporte 14
Confidencial até o momento da aplicação.
75.
76.
Os (A)
(B)
(C) (D) (E)
selector:
app.kubernetes.io/name: MyApp
ports:
- protocol: TCP
port: 80
targetPort: 9376
pods que devem ser incluídos no serviço são aqueles que escutam (listen) em alguma porta do
protocolo TCP, em qualquer porta.
aqueles que escutam (listen) na porta 80 do proto- colo TCP.
aqueles que possuem a label spec. aqueles que possuem a label my-service.
aqueles que possuem a label app.kubernetes.io/ name: MyApp.
304
VUNESP/TJRS/2023
O seguinte comando do Kubernetes kubectl create ns conf
tem por objetivo
(A) aplicar no cluster as configurações contidas no
arquivo conf, após sua atualização.
(B) criar um job chamado conf com base na imagem ns.
(C) criar um cronjob chamado conf com base na imagem ns.
(D) criar um namespace chamado conf.
(E) criar uma priority class chamada conf com a des-
crição ns.
305
FUNDATEC/2023
Qual a vantagem de utilizar o Kubernetes no desenvolvimento com .NET 5 e .NET Core
utilizando Docker?
A Permitir a execução de aplicativos .NET em diferentes sistemas operacionais.
B Possibilitar a distribuição de cargas de trabalho de aplicativos .NET entre diferentes clusters
Kubernetes.
C Garantir a escalabilidade automática de aplicativos .NET de acordo com a demanda.
D Simplificar o processo de implantação de aplicativos .NET em contêineres Docker.
E Oferecer um ambiente de desenvolvimento padronizado para aplicativos .NET.
306
FCC/TRT/2023
Um Técnico está participando de um projeto de microsserviços distribuídos onde centenas de contêineres
são utilizados. Para fazer a orquestração destes contêineres, ou seja, a coordenação e o monitoramento,
ele precisa utilizar um recurso que possa permitir que a atualização da aplicação em um contêiner não
interrompa o serviço. O recurso sugerido corretamente por ele, nesse caso, foi o
A Qubes.
B VirtualBox.
C VMWare.
D Docker, em modo padrão.
E Kubernetes.
307
Cespe/SEFIN/2023
As ferramentas DevOps incluem o Kubernetes, uma plataforma de
orquestração de contêineres que permite gerenciar e escalonar
aplicativos em contêineres em diferentes ambientes e pode ser
integrada a outras ferramentas DevOps, como Docker e Jenkins.
308
Serpro/2023
O Kubernetes permite agrupar hosts executados em contêineres Linux
(LXC) em clusters Kubernetes, os quais podem conter um kubelet, que é
um grupo de um ou mais contêineres implantados em um nó,
suportando aplicações que realizam, por exemplo, a transmissão de
dados em tempo real pelo Apache Kafka.
309
CGE-SC/2023
O desenvolvimento de aplicações nativas em nuvem é uma abordagem voltada para a criação, execução e aprimoramento de
aplicações com base em tecnologias e técnicas reconhecidas de cloud computing. Uma aplicação nativa em nuvem
A traz benefícios somente se executado no modelo “Serverless”, em que os desenvolvedores não precisam provisionar servidores ou
gerenciar a escala das aplicações.
B é uma maneira de criar e executar aplicações responsivas, escaláveis e tolerantes a falhas, em qualquer ambiente, seja em nuvens
públicas, privadas ou híbridas.
C se concentra na modularidade da arquitetura, mas ainda apresenta grande acoplamento e dependência de outros serviços.
D é um conceito revolucionário que pode ajudar muitas empresas a acelerar a inovação, mas necessita de alto investimento financeiro
para seu desenvolvimento.
E é um conjunto de serviços fortemente acoplados na nuvem pública, grandes e independentes, projetadas para agregar valor
reconhecido aos negócios.
310
FCC/TRT-17/2022
Considere as seguintes definições:
I. Gerencia os containers em execução e, por isso, ele também é chamado de Orquestrador de Containers. Através dele se pode
definir o estado de um sistema completo, por exemplo, baseado em Microservices, seguindo boas práticas de infraestrutura como
código, permitindo balanceamento de carga, alta disponibilidade, atualizações em lote e rollbacks.
II. Refere-se a um grupo de servidores distribuídos geograficamente que trabalham em conjunto para oferecer uma rápida entrega de
conteúdo de internet. Permite uma transferência rápida dos ativos necessários para carregar o conteúdo da internet, incluindo
páginas HTML, arquivos em JavaScript, folhas de estilo, imagens e vídeos.
III. Projeto opensource escrito em Go, que torna a criação e o gerenciamento de containers Linux mais fácil. O container é construído
usando namepspaces, cgroups, chroot entre outras funcionalidades do kernel para criar uma área isolada para a aplicação. É
executado como um processo isolado no sistema operacional hospedeiro, compartilhando o kernel com outros recipientes.
311
FCC/TRT-17/2022
A Kubernetes, Docker e Content Delivery Network (CDN).
B Content Delivery Network (CDN), Kubernetes e Docker.
C Content Delivery Network (CDN), Docker e Kubernetes.
D Docker, Content Delivery Network (CDN) e Kubernetes.
E Kubernetes, Content Delivery Network (CDN) e Docker.
312
#WEB
313
314
FGV/CGE-SC/2023
Avalie se a maneira correta de lidar com erros em uma API RESTful inclui as seguintes ações:
I. Retornar um código de status 200 OK com uma mensagem de erro no corpo da resposta. II. Retornar um código de status 400 Bad
Request com uma mensagem de erro no corpo da resposta. III. Retornar um código de status 500 Internal Server Error com uma
mensagem de erro no corpo da resposta. IV. Retornar um código de status 200 OK com uma mensagem de erro no cabeçalho de
resposta. V. Retornar um código de status 202 Accepted com uma mensagem de erro no corpo da resposta.
A I e II, apenas.
B II e III, apenas.
D IV e V, apenas.
E I, II, III, IV e V.
315
FGV/SENADO/2023
Na implementação de uma API REST, se precisarmos fazer uma chamada
idempotente, o verbo mais adequado é
A POST.
B PATCH.
C PUT.
D DELETE.
rest - Why PATCH is neither safe nor
E OPTIONS. idempotent? - Stack Overflow
316
FGV/CGE-SC/2023
Assinale a opção que apresenta, se for o caso, a diferença entre os seletores CSS "div > p" e "div p".
A "div > p" seleciona todos os elementos <p> que são filhos diretos de um elemento <div>, enquanto "div p" seleciona todos os
elementos <p> que são descendentes de um elemento <div> independentemente do nível de "nesting".
B "div > p" seleciona todos os elementos <p> que são irmãos de um elemento <div>, enquanto "div p" seleciona todos os elementos
<p> que são descendentes de um elemento <div> independentemente do nível de "nesting".
C "div > p" seleciona todos os elementos <p> que são filhos diretos de um elemento <div>, enquanto "div p" seleciona todos os
elementos <p> que são filhos diretos de um elemento <div> independentemente do nível de "nesting".
D "div > p" seleciona todos os elementos <p> que são descendentes de um elemento <div>, enquanto "div p" seleciona todos os
elementos <p> que são filhos diretos de um elemento <div> independentemente do nível de "nesting".
E Tanto "div > p" quanto "div p" selecionam todos os elementos <p> que são descendentes de um elemento <div>
independentemente do nível de "nesting".
317
FGV/CGE-SC/2023
Assinale a opção que apresenta, se for o caso, a diferença entre os seletores CSS "div > p" e "div p".
A "div > p" seleciona todos os elementos <p> que são filhos diretos de um elemento <div>, enquanto "div p" seleciona todos os
elementos <p> que são descendentes de um elemento <div> independentemente do nível de "nesting".
B "div > p" seleciona todos os elementos <p> que são irmãos de um elemento <div>, enquanto "div p" seleciona todos os elementos
<p> que são descendentes de um elemento <div> independentemente do nível de "nesting".
C "div > p" seleciona todos os elementos <p> que são filhos diretos de um elemento <div>, enquanto "div p" seleciona todos os
elementos <p> que são filhos diretos de um elemento <div> independentemente do nível de "nesting".
D "div > p" seleciona todos os elementos <p> que são descendentes de um elemento <div>, enquanto "div p" seleciona todos os
elementos <p> que são filhos diretos de um elemento <div> independentemente do nível de "nesting".
E Tanto "div > p" quanto "div p" selecionam todos os elementos <p> que são descendentes de um elemento <div>
independentemente do nível de "nesting".
318
#TESTES
319
Tipos de Testes?
320
QUESTÕES
321
FGV/AL-MT/2023
Com relação ao desenvolvimento orientado (dirigido) a testes (do Inglês Test Driven Development - TDD), analise as afirmativas a seguir.
II. TDD implica escrever o código de teste antes do código de produção, um teste de cada vez, tendo certeza de que o teste falha antes de escrever o código que
irá fazê-lo passar.
III. TDD é uma técnica específica do processo XP (Extreme Programming), portanto, só pode ser utilizada em modelos de processo ágeis de desenvolvimento de
solftware.
322
FGV/AL-MT/2023
Com relação ao desenvolvimento orientado (dirigido) a testes (do Inglês Test Driven Development - TDD), analise as afirmativas a seguir.
II. TDD implica escrever o código de teste antes do código de produção, um teste de cada vez, tendo certeza de que o teste falha antes de escrever o código que
irá fazê-lo passar.
III. TDD é uma técnica específica do processo XP (Extreme Programming), portanto, só pode ser utilizada em modelos de processo ágeis de desenvolvimento de
solftware.
323
FGV/SEFAZ-MG/2023
Desenvolvimento guiado por testes (TDD) é uma técnica de desenvolvimento de software que
A incentiva a construção de um alto número de testes de unidades de modo a eliminar a necessidade dos
testes de integração e aceitação.
B requer que os desenvolvedores escrevam testes de unidades antes da codificação da aplicação.
C delimita o tempo máximo que o programador deve empenhar escrevendo testes para manter a
produtividade.
D testa unidades de ativos efêmeros que devem ser invalidados após o uso, pois repetir testes é um
desperdício de tempo.
E encoraja os desenvolvedores a escreverem testes apenas para verificação dos bugs detectados pelo
usuário final na etapa de aceitação.
324
FGV/SEFAZ-MG/2023
Desenvolvimento guiado por testes (TDD) é uma técnica de desenvolvimento de software que
A incentiva a construção de um alto número de testes de unidades de modo a eliminar a necessidade dos
testes de integração e aceitação.
B requer que os desenvolvedores escrevam testes de unidades antes da codificação da aplicação.
C delimita o tempo máximo que o programador deve empenhar escrevendo testes para manter a
produtividade.
D testa unidades de ativos efêmeros que devem ser invalidados após o uso, pois repetir testes é um
desperdício de tempo.
E encoraja os desenvolvedores a escreverem testes apenas para verificação dos bugs detectados pelo
usuário final na etapa de aceitação.
325
FGV/TRT-16/2022
JUnit é um framework que facilita o desenvolvimento e execução de testes unitários
em códigos Java. Ao contrário das versões anteriores, o JUnit 5 é composto por
muitos módulos oriundos de três subprojetos diferentes conhecidos como
A IntelliJ IDEA, Spring Boot e Ant.
B Plataforma JUnit, Maven e Eclipse.
C Gradle, Jupyter Notebook e Mockito.
D Plataforma JUnit, JUnit Jupiter e JUnit Vintage.
E Visual Studio Code, Gradle e Plataforma Vintage.
326
FGV/TRT-16/2022
JUnit é um framework que facilita o desenvolvimento e execução de testes unitários
em códigos Java. Ao contrário das versões anteriores, o JUnit 5 é composto por
muitos módulos oriundos de três subprojetos diferentes conhecidos como
A IntelliJ IDEA, Spring Boot e Ant.
B Plataforma JUnit, Maven e Eclipse.
C Gradle, Jupyter Notebook e Mockito.
D Plataforma JUnit, JUnit Jupiter e JUnit Vintage.
E Visual Studio Code, Gradle e Plataforma Vintage.
327
FGV/CGE-SC/2023
O tipo de teste de software que serve para garantir que todas ou algumas partes
de um sistema estão dialogando e funcionando corretamente em conjunto é o
teste
A de regressão.
B de aceitação.
C de integração.
D de validação.
E unitário.
328
FGV/CGE-SC/2023
O tipo de teste de software que serve para garantir que todas ou algumas partes
de um sistema estão dialogando e funcionando corretamente em conjunto é o
teste
A de regressão.
B de aceitação.
C de integração.
D de validação.
E unitário.
329
FGV/SENADO/2023
Você foi contratado para liderar uma equipe de DevOps. Um dos objetivos da sua liderança é aumentar a
velocidade das entregas e a qualidade de novos recursos das aplicações utilizando o desenvolvimento
orientado a testes.
Assinale a opção que apresenta a ordem que descreve o ciclo de desenvolvimento orientado a testes.
A Refatorar - > Escrever um código funcional
B Escrever um caso de teste -> Refatorar
C Refatorar - > Escrever um código funcional - > Escrever um caso de teste
D Escrever um caso de teste -> Escrever um código funcional -> Refatorar
E Escrever um código funcional -> Escrever um caso de teste -> Refatorar
330
FGV/SENADO/2023
Você foi contratado para liderar uma equipe de DevOps. Um dos objetivos da sua liderança é aumentar a
velocidade das entregas e a qualidade de novos recursos das aplicações utilizando o desenvolvimento
orientado a testes.
Assinale a opção que apresenta a ordem que descreve o ciclo de desenvolvimento orientado a testes.
A Refatorar - > Escrever um código funcional
B Escrever um caso de teste -> Refatorar
C Refatorar - > Escrever um código funcional - > Escrever um caso de teste
D Escrever um caso de teste -> Escrever um código funcional -> Refatorar
E Escrever um código funcional -> Escrever um caso de teste -> Refatorar
331
FGV/SENADO/2023
Durante o processo de construção de software, a metodologia de Desenvolvimento Orientado a Testes é
muito aplicada.
A ordem utilizada na prática do TDD é
A escrever a funcionalidade após escrever os testes unitários e, por fim, refatorar o código implementado.
B escrever os testes unitários após escrever a funcionalidade e, por fim, refatorar o código implementado.
C escrever a funcionalidade após refatorar o código implementado e por fim escrever os testes unitários.
D escrever os testes unitários após escrever a funcionalidade e, por fim, escrever os testes de integração.
E escrever os testes de integração após escrever a funcionalidade e, por fim, refatorar o código.
332
FGV/SENADO/2023
Durante o processo de construção de software, a metodologia de Desenvolvimento Orientado a Testes é
muito aplicada.
A ordem utilizada na prática do TDD é
A escrever a funcionalidade após escrever os testes unitários e, por fim, refatorar o código implementado.
B escrever os testes unitários após escrever a funcionalidade e, por fim, refatorar o código implementado.
C escrever a funcionalidade após refatorar o código implementado e por fim escrever os testes unitários.
D escrever os testes unitários após escrever a funcionalidade e, por fim, escrever os testes de integração.
E escrever os testes de integração após escrever a funcionalidade e, por fim, refatorar o código.
333
FGV/TRT-13/2022
Mockito 4.8.0 é um framework que tem como objetivo fazer testes unitários em aplicações
Java.
O pacote nativo de verificação de erros é o
A org.mockito.configuration.stacktrace.
B org.mockito.exceptions.verification.
C org.mockito.invocation.listeners.
D org.mkt.failures.checking.
E org.mkt.errors.verifing.
334
FGV/TRT-13/2022
Mockito 4.8.0 é um framework que tem como objetivo fazer testes unitários em aplicações
Java.
O pacote nativo de verificação de erros é o
A org.mockito.configuration.stacktrace.
B org.mockito.exceptions.verification.
C org.mockito.invocation.listeners.
D org.mkt.failures.checking.
E org.mkt.errors.verifing.
335
#PYTHON
336
Quais métodos devo
saber?
https://www.w3schools.com/python/python_ref_string.asp
Prof. Raphael Lacerda
337
e mais
https://www.w3schools.com/python/python_ref_string.asp
Prof. Raphael Lacerda
338
Prof. Raphael Lacerda
339
Condições! (IF)
340
Loops
341
LISTAS
342
Quais devo saber?
343
344
Set
345
Dict métodos
346
Built-in functions
https://www.w3schools.com/python/python_ref_functions.asp
Prof. Raphael Lacerda
347
QUESTÕES
348
FGV/SEAP-AP/2022
Analise o código Python a seguir.
L=["Um","Dois","Três","Quatro","Cinco","Seis"]
print(L[4][2])
349
FGV/SEAP-AP/2022
Analise o código Python a seguir.
L=["Um","Dois","Três","Quatro","Cinco","Seis"]
print(L[4][2])
350
FGV/MPE-SC/2022
Analise o código Python a seguir.
x = 0 y = 20 try: print (y/x) except: print("Deu erro!") else: print("Ok") finally: print ("The end")
A saída produzida pela execução desse trecho é:
A None The end
B Deu erro! The end
C Deu erro! Ok
D Ok The end
E None Ok The end
351
FGV/MPE-SC/2022
Analise o código Python a seguir.
x = 0 y = 20 try: print (y/x) except: print("Deu erro!") else: print("Ok") finally: print ("The end")
A saída produzida pela execução desse trecho é:
A None The end
B Deu erro! The end
C Deu erro! Ok
D Ok The end
E None Ok The end
352
FGV/TJDFT/2023
No contexto do Python 3.9, analise o trecho a seguir.
import json
s1 = "{\"nome\": \"Ciro\", \"cep\": \"99999-999\"}"
s2 = "[\"um\", \"dois\"]"
s3 = "true"
s4 = "null"
print(json.loads(s1)) print(json.loads(s2)) print(json.loads(s3)) print(json.loads(s4))
Dado que “\” funciona como escape character, o resultado exibido pela execução desse trecho é:
353
FGV/TJDFT/2023
No contexto do Python 3.9, analise o trecho a seguir.
import json
{'nome': 'Ciro', 'cep': '99999-999'}
s1 = "{\"nome\": \"Ciro\", \"cep\": \"99999-999\"}"
['um', 'dois']
s2 = "[\"um\", \"dois\"]"
True
s3 = "true"
None
s4 = "null"
print(json.loads(s1)) print(json.loads(s2)) print(json.loads(s3)) print(json.loads(s4))
Dado que “\” funciona como escape character, o resultado exibido pela execução desse trecho é:
354
FGV/TJDFT/2023
Analise o código Python 3.9 a seguir.
o trecho tracejado na segunda linha deve ser substituído por:
A __init__(self, xaltura, xlargura):
B __init__(xaltura, xlargura):
C init (xaltura, xlargura):
D new (self, args[xaltura, xlargura]):
E new (self, xaltura, xlargura):
355
FGV/TJDFT/2023
Analise o código Python 3.9 a seguir.
o trecho tracejado na segunda linha deve ser substituído por:
A __init__(self, xaltura, xlargura):
B __init__(xaltura, xlargura):
C init (xaltura, xlargura):
D new (self, args[xaltura, xlargura]):
E new (self, xaltura, xlargura):
356
FGV/PGM/2023
Considere o código Python a seguir.
357
FGV/PGM/2023
Considere o código Python a seguir.
358
FGV/PGM/2023
Analise o código Python a seguir.
print(num)
Dado que a execução desse código exibe 10 números inteiros, a formulação correta para a função enigma é:
359
FGV/PGM/2023
Analise o código Python a seguir.
print(num)
Dado que a execução desse código exibe 10 números inteiros, a formulação correta para a função enigma é:
Quando usar o yield no Python. 1. Introdução How to Use Generators and yield in Python –
| by Bernardo Costa | Medium Real Python
360
FGV/TCU/2022
Considere o código Python a seguir.
def xpto(S):
for k in range(0,len(S)):
if k%2 == 0:
yield(S[k]);
S=[1,2,3,4,5,6]
for x in xpto(S[::-1]):
print (x)
361
FGV/TCU/2022
Considere o código Python a seguir.
def xpto(S):
for k in range(0,len(S)):
if k%2 == 0:
yield(S[k]);
S=[1,2,3,4,5,6]
for x in xpto(S[::-1]):
print (x)
362
FGV/TCE-RO/2022
Analise o código Python 2.7 a seguir.
O valor exibido pelo comando print é:
A0
B1
C5
D 10
E 50
363
FGV/TCE-RO/2022
Analise o código Python 2.7 a seguir.
O valor exibido pelo comando print é:
A0
B1
C5
D 10
E 50
364
FGV/CGE-SC/2023
Analise o código em Python a seguir.
def foo(x):
return x + 1
def bar(x):
return foo(x) * 2
print(bar(2))
O resultado exibido será
365
FGV/CGE-SC/2023
Analise o código em Python a seguir.
def foo(x):
return x + 1
def bar(x):
return foo(x) * 2
print(bar(2))
O resultado exibido será: 6
366
FGV/CGU/2022
Analise o código Python a seguir.
x = lambda a, b: a + [a[-1] + a[-2] + b] y=[-1,0] for i in range(7): y = x(y, i) print (y)
O resultado produzido pela execução desse código na IDLE Shell 3.9.9 é:
A [-1, 0, -1, -1, -2, -3, -5, -8, -13]
B [0, -1, 4, 9, 18, 33, 51, 84]
C [-1, 0, -1, -2, -3, -5, -8, -13, -21]
D [-1, 0, -1, 0, 1, 4, 9, 18, 33]
E [-1, 0, -1, 4, 9, 18, 33, 51]
367
FGV/CGU/2022
Analise o código Python a seguir.
x = lambda a, b: a + [a[-1] + a[-2] + b] y=[-1,0] for i in range(7): y = x(y, i) print (y)
O resultado produzido pela execução desse código na IDLE Shell 3.9.9 é:
A [-1, 0, -1, -1, -2, -3, -5, -8, -13]
B [0, -1, 4, 9, 18, 33, 51, 84]
C [-1, 0, -1, -2, -3, -5, -8, -13, -21]
D [-1, 0, -1, 0, 1, 4, 9, 18, 33]
E [-1, 0, -1, 4, 9, 18, 33, 51]
368
@canetas.pretas
OBRIGADO!
FOCO NA
@canetaspretas
@canetaspretas
APROVAÇÃO
Prof. Raphael Lacerda
@canetaspretas
369
ARQUITETURA DE INFRAESTRUTURA
DE TECNOLOGIA DA INFORMAÇÃO
E COMUNICAÇÃO
Prof. Evandro Dalla Vecchia
@peritoevandro Prof. Evandro Dalla
@canetas.pretas
370
LINUX E SHELL SCRIPT
371
372
Sistema Multitarefa e Multiusuário
Vários processos podem ser executados ao mesmo tempo
(multitarefa), mesmo com apenas um processador
▪ Escalonamento dos processos no processador, dando a ilusão de um
paralelismo (pseudoparalelismo);
Criação de um processo: o processo novo passa a ser filho de
outro e a chamada de sistema utilizada é a fork();
373
374
Kernel e Shell
Kernel (núcleo) monolítico: todo o conjunto de instruções de
controle do hardware é executado no espaço de núcleo no
modo de supervisão
▪ Um único executável que possui todos os códigos de suporte
necessários agregados;
Aplicativos utilizam alguma interface (shell ou servidor de
janelas) para fazer a "ligação" com o kernel;
Somente o kernel faz a comunicação com o hardware (disco,
teclado etc.).
Prof. Evandro Dalla Vecchia
@peritoevandro
375
Kernel e Shell
Shell: interpretador de comandos com a função de ler o
comando, interpretar seu significado, executar e devolver o
resultado
▪ Exs.: sh (Bourne shell), bash (Bourne again shell), csh (C shell) etc.
376
Kernel e Shell
Compilação do kernel: adiciona suporte a novos dispositivos
etc.;
Módulos: partes do kernel que são carregadas somente
quando solicitadas por algum aplicativo ou dispositivo e
descarregadas da memória quando não são mais utilizadas
▪ Evita-se a construção de um kernel grande (estático) que ocupe grande
parte da memória com todos os drivers compilados.
377
Kernel e Shell
Localização padrão dos módulos:
/lib/modules/versão_do_kernel/
Comando que permite obter informações acerca do servidor:
"uname" - com o argumento "-a" é possível obter todas as
informações, incluindo a versão do kernel.
378
Execução em Background
jobs: mostra a lista dos processos executados em background;
Se o usuário quiser interagir novamente com o processo, deve
utilizar o comando "fg" seguido de % número_job. Exemplo:
estrategia:~$ jobs
[1] - Running script.sh
[2] + Suspended (tty output) teste.sh
estrategia:~$ fg %2
379
Execução em Background
daemons: processos que tipicamente só são executados em
background (sem interação com o usuário)
▪ Geralmente possuem um nome que termina com a letra "d", ex:
syslogd (daemon que gerencia o log do sistema);
▪ O processo pai de um daemon é normalmente o processo init (PID=1);
▪ De forma geral, os sistemas operacionais iniciam daemons durante o
processo de boot.
380
Agendamento de Tarefas
Cron e suas implementações atuais (Vixie Cron, ISC Cron, BCron
etc.): ideal para sistemas que não são interrompidos;
Independente da implementação utilizada, a configuração é muito
parecida, realizada no arquivo Crontab;
Estrutura do Crontab:
min horas dias do mês mês dias da semana comando
crontab -l: lista a crontab. Exemplo:
crontab -l
381
Agendamento de Tarefas
Alguns exemplos comentados:
# executa cinco minutos depois da meia-noite, todos os dias (* = tudo)
50*** $HOME/bin/script.sh
# executa às 14h15min no dia 1º de cada mês
15 14 1 * * $HOME/bin/script.sh
382
Sistemas de Arquivos
Sistema de arquivos: gerencia os arquivos (estrutura, nome,
como acessar etc.);
Journal: diário das alterações realizadas, permite que o
sistema de arquivos seja reparado de forma muito rápida após
o desligamento incorreto;
EXT (EXTended File System): EXT2, EXT3, EXT4 (versões 3 e 4
com journaling) – o mais conhecido!
383
Sistemas de Arquivos
O Ext3 possui três modos de operação:
▪ ordered (default): o journal é atualizado no final de cada operação;
▪ writeback: o journal armazena apenas informações referentes à
estrutura do sistema de arquivos (metadados) e não em relação aos
arquivos propriamente ditos, é gravado de forma mais ocasional;
▪ journal: é o mais seguro e mais lento. O journal armazena não apenas
informações sobre as alterações, mas também uma cópia de segurança
de todos os arquivos modificados.
384
Estrutura dos Diretórios
FHS (File Hierarchy Standard): padrão para que softwares e
usuários possam prever a localização de arquivos e diretórios
instalados. Estrutura padrão:
▪ /etc: dados de configuração (scripts de inicialização, tabela de sistemas
de arquivo, configurações de login, configuração da fila de impressão,
entre outros);
▪ /usr: maior parte dos aplicativos e bibliotecas do sistema;
▪ /usr/bin: executáveis dos programas;
▪ /usr/lib: bibliotecas e arquivos compartilhados;
Prof. Evandro Dalla Vecchia
@peritoevandro
385
386
Estrutura dos Diretórios
▪ /opt: arquivos de aplicativos adicionais (opcionais, ou "optionals"), que
não são essenciais para o sistema. Cada aplicativo tem uma subpasta
com seu respectivo nome;
▪ /proc: informações de depuração do Kernel, configurações que
habilitam e desabilitam o suporte à algum elemento no Kernel;
▪ /tmp: arquivos temporários.
387
Permissões de Acesso
Cada arquivo/diretório possui um conjunto de permissões e
propriedades;
Níveis de permissão
▪ Usuário dono (“owner”): proprietário do arquivo/diretório;
▪ Grupo dono: grupo proprietário do arquivo/diretório;
▪ Outros: qualquer outro usuário que não se encaixe nos níveis
anteriores.
388
Permissões de Acesso
Tipos de permissão
▪ Leitura (r): permissão para visualizar o conteúdo do arquivo;
▪ Escrita (w): permissão para alterar o conteúdo do arquivo;
▪ Execução (x): permissão para executar o arquivo.
U G O
r w x r w x r w x
389
390
Modificação das Permissões
chmod: modifica permissões de acesso
▪ -R: modifica arquivos/diretórios recursivamente.
chmod u=rwx,g=rx,o=x nome_arquivo
391
chmod +x teste
392
Shell script - criando um arquivo
Há dois modos de realizar essa ação: via modo gráfico ou via
terminal;
vi script.sh: será criado e aberto um arquivo de leitura e
escrita;
touch script.sh: cria um arquivo sem abri-lo;
“.sh” geralmente é utilizado como extensão, mas não é uma
obrigação!
393
Permissão ao arquivo
Para começar a editar o arquivo, é necessário conceder a
permissão de escrita (w) a ele;
chmod 777 script.sh: permissões “totais” a qualquer usuário;
chmod 700 script.sh: permissão completa apenas para o dono
do arquivo;
Pensando mais em segurança, pode-se, pode exemplo, liberar
apenas a execução (x):
▪ chmod +x script.sh
394
Editar e executar o arquivo
vi script.sh: após aberto o vi, é necessário digitar "i" para
colocar o vi no modo "inserção";
Definição de qual shell será utilizado (primeira linha do
arquivo):
#!/bin/bash
395
Comentários
Deve-se utilizar o caractere "#" para iniciar o comentário:
# A linha abaixo serve para bla bla bla
396
Definição de variáveis
Variáveis: utilizadas para armazenar dados e valores
temporários ou resultados intermediários para
processamento;
nome_da_variavel=valor
nome_da_variavel: deve começar com uma letra e não pode
conter espaços ou caracteres especiais, exceto o sublinhado
("_");
valor: conteúdo que se deseja atribuir à variável.
397
Definição de variáveis
Exemplos de definição de variáveis:
nome="Maria"
idade=40
preco=50.30
398
Acesso ao conteúdo das variáveis
# O comando echo exibe o valor da variável
echo "Oi, $nome!"
# Realizando uma operação matemática com a variável "idade"
idade_prox_ano=$((idade + 1))
echo "No próximo ano você terá $idade_prox_ano anos!"
# Acessando elementos da variável "frutas"
echo "A primeira fruta é ${frutas[0]}"
echo " A segunda fruta é ${frutas[1]}"
Prof. Evandro Dalla Vecchia
@peritoevandro
399
Comando de seleção
Condicional "if“
if [ CONDIÇÃO ] ;
then
AÇÕES
fi
400
Laço "while"
Executa o laço enquanto uma condição for verdadeira.
while [ CONDIÇÃO ]; do
AÇÕES
done
401
Laço "until"
Executa o laço enquanto uma condição for falsa (um "while
invertido").
until [ CONDIÇÃO ];
do
AÇÕES
done
402
Operadores de comparação
-eq (is equal to - "igual a")
if [ "$a" -eq "$b" ]
-ne (is not equal to - "não igual a", ou "diferente de")
if [ "$a" -ne "$b" ]
-gt (is greater than - "maior que")
if [ "$a" -gt "$b" ]
403
Operadores de comparação
-ge (is greater than or equal to - "maior ou igual a")
if [ "$a" -ge "$b" ]
-lt (is less than - "menor que")
if [ "$a" -lt "$b" ]
-le (is less than or equal to - "menor ou igual a")
if [ "$a" -le "$b" ]
404
Operadores de comparação
<
(("$a" < "$b"))
<=
(("$a" <= "$b"))
>
(("$a" > "$b"))
>=
(("$a" >= "$b"))
Prof. Evandro Dalla Vecchia
@peritoevandro
405
Strings
#!/bin/bash
frase="ESTA É APENAS UMA FRASE!!!"
subStringA=${frase:7:6}
subStringB=${frase:14:3}
StringFinal="${subStringA} {subStringB}"
echo $StringFinal
O que será impresso?
Resposta: APENAS UMA
406
Inserção de argumentos
Dados fornecidos por outro programa ou por um usuário com a
finalidade de produzir saídas
▪ $# : total de argumentos que foram passados;
▪ $@ : uma lista de todos os argumentos passados;
▪ $* : retorno aos argumentos;
▪ $0 : nome do script executado;
▪ $1 : o primeiro argumento enviado ao script;
▪ $2 : o segundo argumento enviado ao script;
▪ $3 : o segundo argumento, e assim por diante...
Prof. Evandro Dalla Vecchia
@peritoevandro
407
Inserção de argumentos
408
Contador
Exemplo de um contador que imprime o valor na tela de 0 a 9;
O comando "let" permite designar valores a variáveis e
realizar operações aritméticas e lógicas.
409
OBRIGADO!
Prof. Evandro Dalla Vecchia
@peritoevandro
@canetas.pretas
410
411