Buscar

1632863960091

Prévia do material em texto

Infraestrutura Ágil
Mudanças na Infraestrutura Ágil
Ma. Patrícia Valério Martinez
• Unidade de Ensino: 02.
• Competência da Unidade: Infraestrutura com Código, Conceito 
Pipeline, Hospedagem de Código-Fonte, Ferramenta da 
Infraestrutura Ágil, Gestão de Configuração e Monitoramento de 
Serviço.
• Resumo: O conceito de mudanças para a Infraestrutura Ágil.
• Palavras-chave: Infraestrutura, Pipeline, Código-Fonte, Ágil e 
Serviço.
• Título da Teleaula: Infraestrutura Ágil.
• Teleaula nº: 02.
Contextualizando
• Infraestrutura com Código;
• Conceito Pipeline;
• Hospedagem de Código-Fonte;
• Ferramenta da Infraestrutura Ágil;
• Gestão de Configuração;
• Monitoramento de Serviço.
Conceitos
Infraestrutura com 
Código
• O mundo da tecnologia está em constante evolução e 
justamente por isso, os processos de como entregamos essa 
tecnologia também evolui, se transforma. 
• Devops engloba toda a forma como produzimos software e 
como podemos atender a demanda dos clientes de maneira 
mais assertiva e fazendo entregas mais ligeiras do que como 
o método tradicional fazia.
Cultura DevOps
• A forma tradicional, planejava grandes entregas que tinha 
prazos e escopo definidos no momento da criação do 
projeto. 
• Isso não está mais atendendo a demanda, que passou a 
pressionar o mercado por uma agilidade de desenvolvimento 
e um escopo mais aberto, exigindo entregas cada vez mais 
rápidas. 
Cultura DevOps
• Essa exigência do mercado, acabou por culminar no que 
chamamos de metodologias ágeis, que visavam substituir as 
metodologias tradicionais de desenvolvimento de software. 
O mercado já vinha tentando utilizar métodos mais ágeis de 
desenvolvimento há algum tempo, mas somente em 2001, 
que foi batizado o termo como metodologias ágeis, quando 
um grupo de especialistas se juntaram nos EUA para discutir 
como poderiam agilizar os processos de desenvolvimento, e 
desse encontro nasceu o manifesto para Desenvolvimento 
Ágil de Software.
Cultura DevOps
• Nesse manifesto, basicamente foram determinados que o 
foco do desenvolvimento do software, deveria ser os 
indivíduos e interações, o software estar executável, a 
colaboração do cliente e as respostas rápidas a mudanças e 
alterações. 
Cultura DevOps
• Essa foi a pedra fundamental para a mudança de paradigma 
de toda a indústria de software, porém enquanto o mundo 
do desenvolvimento estava trabalhando dessa forma, a 
forma como se entregava e operava a infraestrutura, ainda 
seguia um processo engessado que exigia uma série de 
controles, para garantir que nada fosse alterado que 
pudesse gerar problemas e indisponibilidades as aplicações 
em produção.
Infraestrutura
• Começou a criar barreiras para a agilidade que se propunha 
com o método ágil, se não temos a infraestrutura disponível 
também de maneira ágil, perdemos um tempo precioso para 
as entregas do software.
• Existiam assim duas abordagens diferentes e conflitantes, o 
desenvolvimento precisando fazer entregas cada vez mais 
ágeis e a operação de TI que tinha por objetivo manter toda 
a infraestrutura ativa e disponível e para isso precisava 
manter o mínimo de alterações no ambiente como um todo.
Infraestrutura
• Com isso, ocorre o surgimento de um movimento chamado 
de Devops, afim de remover as barreiras entre as equipes 
do desenvolvimento e de operações, propondo uma 
abordagem de colaboração e interação entre os times, 
desde a concepção da aplicação até sua entrega em 
produção.
Cultura DevOps
• Para se atingir este objetivo, algumas ferramentas e técnicas 
foram criadas. Em especial a ideia de criar esteiras de 
entrega de software, conhecidas como pipelines de entrega, 
que automatizam uma série de testes e implantações para 
tornar a disponibilização, configuração e os retornos da 
infraestrutura um processo automatizado e prático.
Infraestrutura com Código
• Quando você pensa em automação, o que vem à sua 
cabeça? 
• Se pensar como a indústria, a automação é desde os robôs 
que montam veículos até aqueles que montam pequenas 
peças eletrônicas que seriam impossíveis de serem feitas 
manualmente, a automação veio para ficar. 
Automação
• Por exemplo, um robô construindo um veículo, tem que ter a 
capacidade de perceber diferenças para poder se 
autocorrigir e não agir igual em todos os casos. 
Automação
• A automação na parte de tecnologia, não é simplesmente 
criar scripts para tornar automático um processo que faria 
manualmente. Isso já era feito enchendo os servidores de 
scripts. O problema era que ao fazer isso, apenas quem 
tinha criado o script, sabia de fato o que ele fazia e para 
qual propósito ele tinha sido feito. Tornando as manutenções 
e migrações um verdadeiro caos.
Infraestrutura com Código
• A automação vem ligada a ideia que é de tornar a 
infraestrutura como um código sigla IaC - NFRASTRUCTURE 
AS CODE, ou seja, Infraestrutura com Código.
• Não basta apenas encher seu servidor de scripts para ter 
automação, você deve transformar sua infra em código, a 
ponto de poder simplesmente destruir seu servidor em 
produção e subir um igualzinho em poucos minutos.
Infraestrutura com Código
• Com uma automação ligada a ideia de infra como um 
código, você consegue criar ambientes inteiros 
automaticamente e já configurados para uso. 
Infraestrutura com Código
• Na Infraestrutura com Código, você pode criar ambiente de 
homologação idênticos ao de produção, rodar testes de 
todos os tipos nesse ambiente para simular o 
comportamento em produção, se recuperar rapidamente de 
desastres e incidentes, ao ponto de ter o mínimo de 
indisponibilidade, o compartilhamento e agrupamento das 
configurações em um único repositório de código, 
possibilitando a revisão e avaliação do que é feito no 
ambiente e diversas outras possibilidades.
Infraestrutura com Código
• A principal vantagem dessa utilização estará ligada a 
preparação dos ambientes.
• A infraestrutura como código trará codificações que são mais 
simples e ao mesmo tempo conseguem ser seguras. Sempre 
fazendo o uso das soluções disponíveis no mercado, ou seja, 
facilita a gestão dos times de operações.
Vantagem da Infraestrutura com Código
Conceitos
Conceito de Pipeline
• O pipeline é um conceito que tem ligação com a automação, 
a ideia é criar uma forma de empacotar softwares desde sua 
concepção até a sua entrega no ambiente de produção de 
maneira automática.
Conceito de Pipeline
• O conceito de pipelines vão vir ligados aos termos resumidos 
na abreviação (CI/CD), que significam Continuos Integration
e Continuos Delivery, ou, Integração Contínua e Entrega 
Contínua.
Conceito de Pipeline
• Nasce diretamente do conceito de metodologias ágeis.
• A integração contínua é uma prática de desenvolvimento de 
software em que os membros de uma equipe integram seu 
trabalho com frequência, geralmente cada pessoa se integra 
pelo menos diariamente, levando a várias integrações por 
dia. Cada integração é verificada por um build automatizado 
(incluindo teste) para detectar erros de integração o mais 
rápido possível.
Conceito de Pipeline
• Para que exista integração contínua entre os 
desenvolvedores e não ter conflitos no código, podemos 
utilizar ferramentas de controle de versões como o Git.
• A integração contínua é a etapa onde várias pessoas 
diferentes, geram códigos que depois são mesclados em um 
código único.
Conceito de Pipeline
• Mas o que isso tem a ver com a infraestrutura? 
• A infraestrutura ágil trata como um código e seriam vários 
analistas Devops criando códigos da infra, como redes, 
servidores, discos e integrando tudo em repositórios de 
código, unificando e compartilhando as informações entre si.
Conceito de Pipeline
• A entrega contínua, seria quando o código está integrado o 
suficiente, maduro, testado e é liberado uma versão 
(release) segura, para implantação do software para a 
produção, mas necessita de uma aprovação para que isso 
ocorra. 
• A implantação contínua, seria a automação detodo o 
processo de entrega desse software em produção, sem 
interação ou aprovação. 
Conceito de Pipeline
Conceito de Pipeline
• Quando juntamos os processos, temos:
Desenvolvimento Ágil
• A metodologia ágil é um modelo e uma filosofia que
propõe alternativas a gestão de projetos tradicional e
tem a função de aprimorar o processo de
desenvolvimento de um produto ou serviço. O objetivo
final é fazer entregas com rapidez e com maior
frequência, conforme surgem as necessidades do cliente.
• O desenvolvimento ágil é uma abordagem em que
softwares são desenvolvidos de forma colaborativa, com
equipes multidisciplinares que têm um bom nível de
autonomia na execução de seus trabalhos.
Integração Contínua
• É uma prática de desenvolvimento de software que visa
tornar a integração de código mais eficiente, através de
testes automatizados.
• O objetivo é sempre entregar atualizações e features
para o usuário final, mais rápido.
Integração Contínua
• Os integrantes do time integram o trabalho
continuamente, podendo haver uma ou múltiplas
integrações por dia.
• Na CI, partes de um código são construídas ou
alteradas por diferentes desenvolvedores ao mesmo
tempo.
Integração Contínua
• É fundamental utilizar ferramentas de controle de versões,
como o Git ou Github.
• Soluções como Jenkins também são importantes para
coordenar os builds, testes e integrações de código.
• O Jenkins, ajuda a automatizar as partes do
desenvolvimento de software relacionadas a construção,
implementação e teste.
• O Git foi o criador do Kernel do Linux, o desenvolvedor 
finlandês Linus Torvalds, que não encontrava uma solução 
no mercado para o problema de controle de versão no 
desenvolvimento do Kernel.
• O Git gera um controle de todas as alterações que são feitas 
em um código e consegue mesclar as alterações feitas por 
outras pessoas, permitindo assim que cada um trabalhe 
descentralizado na sua própria alteração.
Integração Contínua
• O objetivo da Entrega Contínua é sempre levar novos
códigos ao ambiente de produção.
• Para isso é preciso que esses códigos sejam gerados,
através da integração do trabalho dos desenvolvedores,
validados e testados.
Entrega Contínua
• Quando você entrega seu código em partes é muito mais 
fácil identificar um possível bug.
• A concepção de que o erro nas fases iniciais representa
custos mais baixos do que na fase de homologação ou
produção.
Entrega Contínua
Implantação Contínua
• A entrega da versão, só ocorre quando a versão passa por
todos os testes necessários.
• As atualizações, por serem menores, passam a ser menos
arriscadas e fáceis de corrigir.
Conceitos
Hospedagem de 
Código-Fonte
• Um serviço de hospedagem de repositório é uma 
ferramenta de gestão organizacional que oferece uma visão 
transparente do processo, tradicionalmente opaco, do fluxo 
de trabalho do desenvolvimento de software.
• Se testar o código com frequência, já estará fazendo a parte 
da integração contínua que ajuda a integrar as equipes de 
Devops, já que testando sempre o código, pode provar para a 
área de operações que seu código é funcional.
Hospedagem de Código-Fonte
• Existem diversos serviços que podem servir de hospedagem 
centralizada de código para o seu CI, entre os mais 
conhecidos, podemos citar o GitHub e o GitLab. 
Hospedagem de Código-Fonte
• Temos algumas diferenças entre os serviços e é importante 
entender para fazer a melhor escolha possível.
• O GitHub é um repositório e ao mesmo tempo uma rede 
social, permitindo que qualquer pessoa possa enviar seu 
código para ele, usando o Git, que ficarão disponíveis para 
toda a comunidade. 
Hospedagem GitHub
• O GitHub foi concebido seguindo os princípios do Open 
Source ou código aberto, que basicamente enfatiza a 
colaboração da comunidade e a liberdade de compartilhar o 
código com todos. 
• Quando você não pode compartilhar o código da sua 
aplicação e precisa de um repositório privado, para isso o 
GitHub tem um serviço pago, que permite que você crie seus 
códigos e controle o acesso a eles.
Hospedagem GitHub
• O GitLab é um gerenciador de repositório de software 
baseado em git, com suporte a Wiki, gerenciamento de 
tarefas e CI/CD. 
• O GitLab é similar ao GitHub, mas o GitLab permite que os 
desenvolvedores armazenem o código em seus próprios 
servidores, ao invés de servidores de terceiros.
• Na figura a seguir é apresentado um projeto no GitLab.
Hospedagem GitLab
Hospedagem GitLab
• Depois de criar o projeto, você irá receber instruções de como 
adicionar o repositório local para ser enviado para o GitLab:
Hospedagem GitLab
• Na figura abaixo é realizado um comando push (empurrar), 
para enviar o código local para o GitLab:
Hospedagem GitLab
• Podemos ver o código da aplicação no GitLab:
Hospedagem GitLab
• Devemos definir o que queremos que a integração faça, neste 
momento uma reunião entre as equipes de desenvolvimento 
e operações para definir o que a aplicação tem que possuir 
para ser considerada integrada, qual infra que ela vai usar e a 
qual tecnologia.
Hospedagem de Código-Fonte
Resolução da SP
Infográfico –
Contexto DevOps
• Imagine que as equipes de desenvolvimento e operações 
estão com dois problemas. O primeiro é que eles ainda 
estão criando intrigas internas atrapalhando o bom 
andamento das entregas e o segundo é que alguns estão 
relutantes em utilizar as novas ferramentas por estarem 
habituados a fazer do modo antigo. 
• Como você faria para solucioná-los?
Descrição da Situação Problema
• Em todo o contexto do DevOps, o mais difícil sem dúvidas 
é a mudança dos paradigmas dos colaboradores, culturas 
não são alteradas facilmente. As ferramentas são mais 
fáceis. 
• Para resolver a relutância de alguns em utilizar novas 
ferramentas é muito mais fácil e você deve começar por 
elas. 
Solução da Situação Problema
• Primeiro trazendo workshops e palestras explicando como 
usá-las e como elas podem auxiliá-los no dia a dia. Isso já 
vai resolver 95% dos problemas, pois quando as pessoas 
percebem que a ferramenta é um auxílio e melhora sua 
produtividade, a maioria aceita. A relutância em trocar, está 
muito mais ligada ao desconhecimento de como usá-la.
Solução da Situação Problema
• No caso da cultura é um pouco mais problemático, grande 
parte do desafio do DevOps é conseguir que as equipes 
não fiquem em lados opostos, apontando o dedo uns para 
os outros. E para atingir esse objetivo, deve-se procurar 
mapear os pontos de desgaste entre eles e trabalhá-los 
muito bem, existem empresa inclusive que trocam um 
membro da equipe durante um tempo com a outra, para 
que cada um sinta como é estar do outro lado e assim 
entendendo os problemas diários que cada um enfrenta. 
Solução da Situação Problema
• Procure incentivá-los a sempre interagir, conversar e 
procurar solução para esses pontos de desgaste, coloque-
os para dar sugestões uns aos outros e faça reuniões de 
brainstorm entre eles, colocando como meta para todos, 
mais entregas em produção da aplicação e conceda 
prêmios aos que melhor interagirem entre eles, 
incentivando assim uma mudança de cultura.
Solução da Situação Problema
• O brainstorming é uma técnica usada para levantar 
ideias de soluções de problemas ou para criar coisas novas. 
Solução da Situação Problema
Conceitos
Ferramenta da 
Infraestrutura Ágil
• A Infraestrutura ágil é poder fazer as alterações demandadas 
de forma rápida e eficiente e com isso responder rápido as 
novas necessidades trazidas pelo mercado.
• A Infraestrutura como Código, move para a etapa de 
codificação a configuração dos ambientes. Tratando a 
infraestrutura como uma etapa no desenvolvimento de 
software, acarreta na incorporação dos famosos scripts de 
automatização dos processos de TI.
Infraestrutura Ágil
• O surgimento das técnicas de Infraestrutura como Código 
tem bastante relação com o surgimento do DevOps e dos 
conceitos de CI/CD, principalmente por envolver os 
desenvolvedores na configuraçãodos ambientes onde as suas 
aplicações irão operar. 
• Tratar a Infraestrutura como Código permite que as entregas 
aconteçam com muito mais agilidade e eficiência, sendo uma 
das principais motivações para o seu surgimento.
Infraestrutura Ágil
• As vantagens de se utilizar a Infraestrutura como Código:
o Rapidez nas entregas de valor.
o Automatização dos processos.
o Menor taxa de retrabalho.
o Eficiência operacional. 
o Ganhos financeiros.
Vantagem da Infraestrutura Ágil
Pilares da Infraestrutura Ágil
• A Infra Ágil é um movimento que visa tornar a infraestrutura 
automatizada, orquestrada, sendo tudo provisionado como 
código para ser possível falar de DevOps.
• Algumas ferramentas usadas por grande corporações na 
infraestrutura ágil, como: Jenkins, Ansible, Git, GitLab e 
Docker.
Infraestrutura Ágil
• Vamos usar uma tecnologia Docker, para criar um container 
da aplicação e com isso poder padronizar como a aplicação 
vai ser entregue ao usuário final. Na Figura a seguir existe 
um botão chamado Setup CI/CD, que cria um script para 
configurar um pipeline padrão, usando o padrão do Docker. 
• Assim que ativar o CI/CD, vai criar um arquivo chamado 
gitlab-ci.yml e esse arquivo é escrito em formato YAML que é 
um formato de serialização de dados legível por humanos e 
modelos de processamento.
DOCKER
GitLab – CI/CD 
• Com o arquivo gitlab-ci.yml, podemos descrever os passos 
que queremos que o nosso pipeline tem que fazer:
o Primeiro fazemos login na plataforma DockerHub, um 
repositório público de imagens, que permite que envie as 
imagens Docker para lá. 
o Depois pegamos a aplicação e construímos uma imagem 
dockerizada, usando o DockerFile presente no projeto, 
que diz quais passos ele tem que instalar dentro da 
imagem para que a aplicação funcione.
GitLab – DockerHub
• Depois é aplicado uma Tag (etiqueta), item obrigatório do 
Docker, para que ele possa diferenciar as imagens umas das 
outras. 
• Enviamos essa imagem para o dockerhub e a aplicação está 
pronta para ser usada em produção.
DOCKER
• Segue abaixo, o resultado final:
GITLAB
• O importante é alterar um trecho do código, o pipeline vai 
receber essa alteração, vai criar a imagem Docker e deixar 
preparada para a nova versão da aplicação.
• Lembrando que esse pipeline não é um CI/CD completo, pois 
falta ainda alguns passos para isso. Como: testes, replicar 
isso em ambiente de homologação e por fim em produção.
GITLAB
• Na figura abaixo será apresentado o histórico das pipelines 
executadas: 
GITLAB
• Os logs da pipeline para entender o que foi feito:
GITLAB
• Na figura abaixo é apresentado os passos que a pipeline 
executou sozinha.
GITLAB
• O Gitlab proporciona, nativamente, ferramentas de integração 
e entrega contínua, além de métricas para acompanhamento 
de qualidade de código, performance e teste de usabilidade. 
GITLAB
Conceitos
Gestão de 
Configuração e 
Infraestrutura 
Versionada
• Uma infraestrutura versionada possibilita e facilita a 
recuperação de um ambiente com ganhos de consistência e 
disponibilidade. Em caso de erro, recupera a infraestrutura, 
pois mantem um histórico das modificações feitas que podem 
ser auditáveis e reversíveis. 
Infraestrutura Versionada
• Para manter uma Infraestrutura Versionada é preciso que se 
tenha um sistema de controle de versões que são 
mecanismos que armazenam múltiplas versões de arquivos, 
sendo que quando modificado algum deles, ainda pode-se ter 
acesso as versões anteriores. Essa característica é 
fundamental, pois na prática é o que garante que várias 
pessoas possam trabalhar de maneira contínua e colaborativa 
para a entrega de um software.
Infraestrutura Versionada
• O controle de versão não se refere apenas a código, embora 
os desenvolvedores devam usá-los em códigos, qualquer 
componente da criação da aplicação deve estar no controle 
de versão, ou seja, testes, scripts de bancos de dados, 
arquivos de compilação e implantação, documentação, 
bibliotecas e arquivos de configuração para sua aplicação, 
para seu compilador e todas as ferramentas relacionadas, de 
modo que um novo membro da equipe possa começar do 
zero.
Infraestrutura Versionada
• Toda vez que uma versão é modificada ela se torna pública 
para os outros integrantes do time de desenvolvimento e se 
estiver usando integração contínua, essa versão pode ser 
visualizada, testada e até mesmo ser produzida. 
• Antes de fazer o check-in é importante garantir que o código 
esteja pronto para o nível de visibilidade que se propõe, 
muitos desenvolvedores demoram fazer o versionamento, o 
que pode atrapalhar a produção. 
Infraestrutura Versionada
• Para resolver esse problema algumas equipes apostam em 
um branch (apartar código do principal) separado somente 
para novas funcionalidades. Quando vêm que a mudança é 
satisfatória é que se lança para o branch principal.
Infraestrutura Versionada
Infraestrutura Versionada
Fonte: Cronapp, ANDRADE (2021, n.p)
• A Gestão de Configuração e a Infraestrutura Versionada
podem ser usados como sinônimos, a Gestão de Configuração 
é bem mais ampla, pois se refere a todos os processos do 
projeto, as relações entre si, como armazenamentos, 
recuperações, modificações e identificações, já o controle de 
versões é uma ferramenta tida como indispensável da gestão 
de configuração. 
Gestão de Configuração e Infraestrutura Versionada
• A Gestão de Configuração permite a reprodução de 
ambientes, versões de sistemas operacionais, configurações 
de rede, aplicações instaladas e suas configurações permite 
verificar as mudanças que acontecem em um dado ambiente 
e descobrir quem a fez, quando e porque contentar os 
requisitos de acordo com as regulamentações impostas, 
disponibilizar as informações para qualquer membro da 
equipe e assim proporcionar uma integra eficiente e melhor 
feedback.
Gestão de Configuração
• A Gestão de Configuração de software engloba todos os 
processos do projeto, como o gerenciamento de repositórios, 
o controle das versões, modelagem dos produtos e a gestão 
de outros objetos mais complexos, mas também ajudando os 
desenvolvedores em suas atividades rotineiras e fornecendo 
suporte e controle ao processo de desenvolvimento. 
Gestão de Configuração
• As práticas de Gestão de Configuração:
1. Identificar itens de configuração: serve para planejar as 
baselines do projeto. As baselines representam o conjunto de 
itens de configuração que foram validados e servirão de base 
para as etapas seguintes do desenvolvimento. Estes itens 
representam um artefato do projeto que deve ter 
características definidas e que serão controlados formalmente 
a partir do momento em que entram na baseline.
Práticas de Gestão de Configuração
2. Estabelecer o sistema de configuração: a gerência 
prepara e ajusta a infraestrutura definindo os repositórios 
(que devem viabilizar a flexibilidade requerida) e os sistemas 
de mudanças (que tem como ponto principal a visibilidade).
Práticas de Gestão de Configuração
3. Criar e liberar baselines: passa pelas etapas de baseline
de planejamento, onde são analisados o projeto, definida a 
gerência de configuração e garantia da qualidade, baseline
de requisitos que contemplam os requisitos funcionais, casos 
de uso e demais documentos e a baseline de código que 
contempla o código-fonte que atenderá os requisitos. 
Práticas de Gestão de Configuração
4. Rastrear solicitações de mudanças ou Change
Request (CR): demanda alterações do projeto e 
compreendem ações especificas como registro de CR, análise 
da solicitação registrada, alteração nos artefatos necessários, 
verificação das alterações e fechamento do registro da 
solicitação. 
Práticas de Gestão de Configuração
5. Controlar itens de configuração: deve ser capaz de 
rastrear as alterações feitas nos itens de configuração 
durante uma solicitação de mudança, essa atividade envolve 
o registro do histórico de alterações dos itens.
6. Estabelecer registros da gerênciade configuração: 
são documentos que precisam ser levantados afim de 
acessar as características dos itens de configuração, 
identificar o controle de acesso aos itens, o conteúdo das 
baselines e o histórico de mudanças de cada item. 
Práticas de Gestão de Configuração
7. Realizar auditorias de configuração: é necessário que 
se faça auditorias de configuração periódicas como forma de 
garantir a execução correta das atividades de gerência de 
configuração. 
Práticas de Gestão de Configuração
• A infraestrutura ágil baseia-se no manifesto ágil para sugerir 
mais objetividade, agilidade, feedback imediato, comunicação 
direta, simplicidade e vários outros conceitos que estão 
implícitos em seus processos de automatização, 
provisionamento e entrega contínua. 
• Entender os recursos que a infraestrutura ágil empresta para 
a indústria de desenvolvimento de software é ter ciência de 
que uma nova cultura surge desses preceitos. 
Infraestrutura Ágil
Conceitos
Monitoramento do 
Serviço
• O monitoramento é um assunto que tem tido cada vez mais 
atenção nas equipes DevOps, pois está sempre sendo 
aprimorada com novas técnicas e ferramentas, para 
acompanhar a mesma evolução que as implantações 
contínuas tem tido.
Monitoramento do Serviço
• O monitoramento é negligenciado, causando falhas em 
ambientes produtivos, que podem levar a perdas financeiras, 
e até a falência, dependendo do tamanho do negócio, seu 
espaço no mercado e o tempo de resolução do incidente. 
• Um dos itens que englobam todo o ciclo do DevOps é um 
monitoramento bem configurado e que consiga trazer o 
feedback necessário, não só para prever falhas, como 
também servir de base para melhorias de todo o processo.
Monitoramento do Serviço
• Existem diversos tipos de monitoramento, para diversos tipos 
de abordagens e ambientes, precisamos verificar quais são 
ideais para cada tipo de infraestrutura e arquitetura de 
sistemas utilizada.
• É importante escolher o que monitorar, já que existem 
diversos itens como métricas, devemos saber quais utilizar, 
tendo em mente como fazer uma separação inteligente, que 
traga assertividade ao monitoramento.
Monitoramento do Serviço
• Aliada ao monitoramento, devemos pensar em criar alertas, 
que irão nos avisar em caso de falhas e definir as políticas, 
para que possamos atingir os objetivos de sermos avisados 
somente se um item crítico ao funcionamento das aplicações 
estiver com problema. E evitar o envio excessivo de alertas, 
com coisas banais misturadas a informações críticas, 
causando um efeito indesejado de recebermos alertas demais 
e não conseguirmos diferenciar o que é crítico do que não é.
Monitoramento do Serviço
• O surgimento do DevOps está ligado ao advento da 
computação em nuvem (Cloud Computing), porém uma 
empresa pode possuir a infraestrutura interna, conhecida 
como on-premises e utilizar a cultura DevOps. 
Monitoramento do Serviço
• Quando monitoramos infra on-premises, ficamos preocupados 
com a parte física de cada equipamento e servidor: 
o Uso de CPU e memória: não devemos deixar que os 
aplicativos esgotem todo o recurso computacional dos 
servidores antes de tomarmos uma ação. 
o Espaço disponível em disco: temos que saber 
preventivamente se um disco está ficando cheio, pois 
disco cheio pode causar a parada de todo o ambiente.
Monitoramento do Serviço
o Disponibilidade de componentes de rede: Switches, 
firewalls podem falhar e se acontecer, temos que ter uma 
forma de contornar o problema rapidamente. 
o Já no caso de infra em cloud, boa parte dos itens são 
responsabilidade do provedor, como a disponibilidade dos 
servidores e os recursos de CPU e Memória, que podem 
ser escaláveis a medida que forem necessários.
Monitoração
• Outro conceito que alterou a maneira como o monitoramento 
é feito é a arquitetura de microsserviço.
• Antigamente, os sistemas eram construídos de maneira única, 
provendo todos um único serviço no final. 
• Hoje o conceito mais utilizado é o de separar a aplicação em 
pequenos serviços, cada um com uma função e esses 
serviços, vão se falar internamente para prover a resposta ao 
usuário.
Monitoramento do Serviço
Monólito e Microsserviços
• Por mudar a arquitetura, não é mais possível simplesmente 
monitorar a saída única do serviço principal que o usuário 
acessa, mas sim todo o ecossistema dos microsserviços para 
verifica-los individualmente.
• Por exemplo: imagine que sua aplicação foi construída 
usando uma arquitetura monólito e quando está funcionando 
perfeitamente, abre uma página http e o status dela é 200 
(código do protocolo http para respostas). 
Monitoramento do Serviço
• Bastava adicionar um monitoramento para testar de tempos 
em tempos se a resposta http era 200 e em caso de 
diferença, alertava o time de operações para verificar. 
• Esta era a forma padrão de monitorar uma aplicação 
monólito, mas no caso da arquitetura microsserviços, não 
basta a página inicial retornar 200, você precisa confirmar se 
todos os microsserviços estão funcionando e se eles estão 
retomando os itens necessários.
Monitoramento do Serviço
• Todo e qualquer sistema gera informações sobre seu 
funcionamento que são utilizadas pelos times de operações 
os chamados Logs. 
• Os Logs, fornecem pistas sobre um possível problema com 
algum sistema inoperante. Para isso, geralmente fornecem 
uma saída padrão, em arquivo de texto, com tudo que o 
sistema fez, ao iniciar, seja de sucesso ou erro. Esse arquivo é 
consultado como uma forma de encontrar pistas sobre os 
problemas.
Monitorando Logs
• Um bom sistema de monitoramento inclui gerenciar esses 
logs em um local único para centralizar a análise e fazer 
correlações de problemas com outros sistemas e possibilitar 
encontrar falhas relacionadas.
• Podemos mencionar ferramentas amplamente usadas como o 
Elastic Stack, que faz uma indexação de logs vindos de 
diversas fontes, tanto de infraestrutura como de aplicações.
Monitorando Logs
• A aplicação tem que ter uma atenção especial, pois é para ela 
que a infraestrutura toda é configurada. Portanto, monitorar a 
aplicação corretamente é fundamental.
• As aplicações rodam com arquitetura de microsserviços, que 
fazem com o que a monitoração tradicional seja alterada para 
uma que consiga analisar traços e relacionamentos internos 
que a aplicação faz.
Monitorando Aplicações
• Surgiram ferramentas chamadas de APM (Application
Performance Monitoring) ou Monitoramento de Performance 
de Aplicação. Elas fornecem uma gama de visualizações e 
interações entre as aplicações internas, capazes de monitorar 
quanto tempo uma determinada ação dentro de sistema está 
levando, quais classes e itens são chamados internamente.
• Os APMs são o que há de mais avançado dentro do conceito 
de monitoramento. 
Monitorando Aplicações
• Podemos citar a ferramenta Elastic APM.
• O Elastic APM é uma ferramenta da Elastic que possibilita a 
coleta de dados de performance de aplicações.
Monitorando Aplicações
• Todo o sistema de monitoramento é na verdade um processo 
contínuo, que deve ser calibrado para alertar itens 
importantes e dispensar itens irrelevantes. 
• Um monitoramento bem configurado, ajudará sempre estar a 
frente de um incidente e diminuir as perdas e pode trazer 
ganhos ao negócio, melhorando o tempo de resposta de uma 
aplicação e a experiência do usuário. 
Monitoramento do Serviço
Resolução da SP
Infográfico –
Metodologia Ágil
• Depois de feita toda a transição de uma metodologia de 
cascata para uma metodologia ágil, a equipe ficou muito 
mais motivada, as equipes passaram a trabalhar juntas e 
apesar dos problemas que toda mudança trás, todos 
avaliaram como positivas as inserções feitas e o uso das 
ferramentas escolhidas.
Descrição da Situação Problema
• Embora a satisfação da equipe torne o trabalho mais 
motivador e consequentemente melhore a qualidade do 
produto final, o objetivo maior de todas essas mudanças foi 
trazer para o cliente uma melhorexperiência de uso.
• Simule um estudo de caso de uma aplicação de software 
para mostrar como a inserção da metodologia ágil impactou, 
a experiência do cliente final.
Descrição da Situação Problema
• Vamos pensar na satisfação do cliente com as práticas ágeis, 
lembre-se que ele não tem total ciência de como são feitos 
os processos de produção, a única métrica que ele tem são 
as entregas a ele feitas.
• O impacto para o cliente sempre será referente a entrega do 
produto esperado, já que o produto é pensado na 
perspectiva do usuário. 
Solução da Situação Problema
• Podemos pensar em um estudo de caso de um pedido feito 
por um determinado cliente que passou por várias versões 
até sua fase de maturação. 
• Detalhar como cada versão contribuiu positivamente ou 
negativamente para o objeto final. 
• Enfatizar como o feedback do cliente contribuiu. 
Solução da Situação Problema
• Detalhar a história do usuário desde o problema que 
precisava ser solucionado até a gerência dos requisitos e a 
avaliação final do produto. Traga tudo para um contexto de 
experiência do usuário. 
• Se for uma história real traga estatísticas e dados que 
provem o sucesso da implementação.
Solução da Situação Problema
• As metodologias ágeis são conjuntos de práticas que visam à
entrega rápida e de alta qualidade do produto ou serviço e
que promovem um processo de gerenciamento de
projetos que incentiva a inspeção e adaptação frequente.
• Esse método busca integrar a comunicação entre equipes
seguindo um único objetivo, de forma a otimizar os
processos e aumentar a eficiência do seu negócio.
Solução da Situação Problema
• SCRUM é o tipo de metodologia ágil mais utilizado.
• O projeto se divide em ciclos que duram entre uma e quatro
semanas (chamados sprints).
Solução da Situação Problema
Solução da Situação Problema
Recapitulando
Recapitulando
• Infraestrutura com Código;
• Conceito Pipeline;
• Hospedagem de Código-Fonte;
• Ferramenta da Infraestrutura Ágil;
• Gestão de Configuração;
• Monitoramento do Serviço.
 Siga em frente e bons estudos! Obrigada!

Continue navegando