Buscar

1632950604550

Prévia do material em texto

20/09/2021
1
Infraestrutura Ágil
Infraestrutura de Containers
Ma. Patrícia Valério Martinez
• Unidade de Ensino: 03.
• Competência da Unidade: Infraestrutura de Containers, 
Monitoramento de Containers, Ferramentas de Orquestração, 
Infraestrutura como Código, Infraestrutura Ágil em Cloud e 
Infraestrutura em Plataforma PaaS.
• Resumo: A infraestrutura de Containers, monitoramento e 
Orquestração.
• Palavras-chave: Containers, Monitoramento, Orquestração, Cloud
e PaaS.
• Título da Teleaula: Infraestrutura de Containers.
• Teleaula nº: 03
Contextualizando
• Infraestrutura de Containers;
• Monitoramento de Containers;
• Ferramentas de Orquestração;
• Infraestrutura como Código;
• Infraestrutura Ágil em Cloud;
• Infraestrutura em PaaS.
Infraestrutura de 
Containers
• O uso dos containers na produção de software facilita a 
integração entre as equipes de desenvolvimento e operação, 
e é uma prática considerada indispensável na cultura 
DevOps. 
• O Container possibilita o isolamento, compartilhamento, 
portabilidade de aplicações e facilita a homologação e 
entrega do software.
Infraestrutura de Containers
• Um container consegue encapsular uma aplicação usando 
apenas alguns recursos necessários e conta com 
orquestradores que gerenciam arquiteturas de 
microsserviços e containers em escala. 
Infraestrutura de Containers
1 2
3 4
5 6
20/09/2021
2
• A containerização permite o trabalho em ambientes 
separados com uma integração na esteira da produção, esse 
isolamento facilita o escalonamento, o que é muito útil para 
sistemas que precisam mudar constantemente sua carga de 
trabalho.
Infraestrutura de Containers
• Para trilhar com propriedade no mundo DevOps é 
imprescindível o entendimento sobre o funcionamento dos 
Containers.
• Sempre que ouvimos a expressão containers já associamos 
aos containers de transporte dos navios cargueiros. A 
expressão, inclusive veio dessa associação. Na cultura 
DevOps, os containers são muito usados no 
desenvolvimento, testes e no ambiente de produção de 
softwares. 
Infraestrutura de Containers
• Muitos confundem os containers com máquinas virtuais, no 
entanto, eles não funcionam tal qual a virtualização que 
conhecemos, uma das diferenças é que o container 
compartilha o mesmo Kernel do Sistema Operacional. 
• Num sistema como o Linux, por exemplo, a modularidade 
característica de seu Kernel, permite provisionamentos de 
sistemas mais enxutos e com economia de recursos. 
Infraestrutura de Containers
• Os containers têm recursos isolados de CPU, memória e 
rede enquanto compartilham o kernel do sistema 
operacional. Eles hospedam código-fonte, ferramentas de 
sistema e bibliotecas. Diferem-se de formas específicas das 
máquinas virtuais (VMs), mas podemos pensar neles como 
iterações leves de VMs. 
Infraestrutura de Containers
• Uma outra diferença é a forma como ele pode ser 
provisionado. Em uma máquina virtual você pode criar um 
ambiente que pode se valer de várias ferramentas (PHP, 
MSQL e Apache), tudo rodando no mesmo Sistema 
Operacional, já os containers assumem apenas uma função, 
isolando os processos de cada ferramenta. 
• A vantagem é que facilita bastante a escalabilidade, 
consequentemente, a performance e flexibilidade dos 
processos. 
Infraestrutura de Containers
• Os containers agrupam tudo de uma aplicação e suas 
dependências, compartilhando o mesmo Kernel do Sistema 
Operacional de uma máquina (hardware ou VM) onde esteja 
rodando.
Infraestrutura de Containers
7 8
9 10
11 12
20/09/2021
3
• Quando estamos utilizando máquinas virtuais, emulamos um 
novo sistema operacional e todo o seu hardware utilizando 
mais recursos da máquina host, o que não ocorre quando 
utilizamos containers, pois os recursos são compartilhados. 
O ganho disso é a capacidade de rodar mais containers em 
um único host, se comparado com a quantidade que se 
conseguiria com máquinas virtuais. 
Infraestrutura de Containers
• Uma outra característica importantíssima dos containers é a 
portabilidade. O programador pode criar ambientes em 
qualquer host que tenha o Docker instalado. 
• Será possível executar em qualquer sistema operacional, 
bastando que o Docker esteja instalado. 
Infraestrutura de Containers
• Um outro exemplo é como desenvolvedor, pode criar uma 
aplicação na sua própria máquina e depois levar para um 
servidor de produção. Portanto, enquanto que uma máquina 
virtual emula sistema operacionais dentro de um host, o 
container emula somente as aplicações e dependências, 
tornando-as portáteis.
Infraestrutura de Containers
• Para simplificar o entendimento, os containers com o 
conceito da penseira presente na saga do bruxo. A penseira
do mundo Harry Potter é uma bacia grande e rasa na qual 
as memórias são recriadas de forma fiel ao ambiente 
original, em todos os detalhes e podem ser experienciadas
por qualquer pessoa exatamente como ocorreu 
originalmente. 
Infraestrutura de Containers
• Uma memória é tirada do armazenamento e colocada na 
penseira. Quando um bruxo coloca o rosto na penseira, ele é 
empurrado para a memória como se a estivesse vivendo 
fisicamente. Podemos comparar uma imagem de container a 
memória armazenada sem degradação até que esteja pronta 
para ser experienciada por outro bruxo por intermédio da 
penseira. O container seria o reviver da experiência, uma 
instância dessa memória.
Infraestrutura de Containers
• A tecnologia dos containers apresenta um cenário perfeito 
para o desenvolvimento de microsserviços, prática 
característica da cultura DevOps. 
• Os microsserviços dividem a arquitetura da aplicação em 
partes distintas que se integrarão na aplicação final.
Infraestrutura de Containers
13 14
15 16
17 18
20/09/2021
4
• Com o isolamento característico dos containers, cada função 
fica separada, caso necessite fazer o reparo em alguma 
dessas partes, não comprometerá a disponibilidade do 
sistema como um todo. 
• Um exemplo prático é um aplicativo de banco. Você está 
consultando seu saldo, vendo limites no cartão de crédito, e 
resolve fazer um PIX.
Infraestrutura de Containers
• Mas essa função está em manutenção, ou seja, você está 
operando toda uma aplicação, mas uma parte isolada dela, 
no caso o uso do PIX, está indisponível sem comprometer o 
restante do funcionamento do sistema.
• Essa centralização traz inúmeros benefícios para a cultura 
DevOps. O uso de um orquestrador como o Kubernetes, 
ajudará a gerenciar esses processos de microsserviços, 
tornando a aplicação escalável e automatizada.
Infraestrutura de Containers
• As máquinas virtuais (VMs) passaram a emular o hardware, 
executando software em servidores físicos, ou seja, uma VM 
executa um sistema operacional exclusivo (kernel, 
bibliotecas, aplicativos, arquivos de configuração) dentro de 
um servidor físico e no mesmo servidor é possível projetar 
VMs com sistemas diferentes. 
Infraestrutura de Containers
• Os containers oferecem uma maneira de executar esses 
sistemas de forma isolada, sem a necessidade de virtualizar 
todo o Hardware e Sistema Operacional, fornecendo apenas 
o básico para os aplicativos serem executados, ou seja, é 
instalado apenas o suficiente para a implantação de uma 
aplicação.
Infraestrutura de Containers
• Os containers já eram usados há décadas no sistema Unix 
através do comando chroot (embora de forma simplória, 
sem os recursos que temos hoje, já era possível fazer 
isolamentos), em seguida o conceito foi usado nos jails do 
FreeBSD, teve também o OpenVZ, o CGgroups da Google, o 
projeto LXC, mas foi em 2013 que os containers se 
popularizaram e passaram a ser utilizados de forma massiva 
pelas grandes empresas.
Infraestrutura de Containers
Monitoramento de 
containers
19 20
21 22
23 24
20/09/2021
5
• O uso dos containers já é uma realidade na indústria de 
desenvolvimento de software, tornando o seu 
monitoramento essencial para garantir que tudo esteja 
funcionando da melhor forma possível, com disponibilidade 
e eficiência, afinalquando se trata de desenvolvimento de 
software já sabemos por certo que em algum momento algo 
não vai funcionar como deveria e o monitoramento é capaz 
de se anteceder ao problema. 
Monitoramento de containers
• Com o monitoramento é possível visualizar os containers 
que estão operando e onde estão sendo executados, exibir 
uma auditoria que detalhe os comandos de containers 
usados, identificar ruídos, consumo excessivo de recursos, 
ter ciência do uso da CPU, da memória, armazenamento e 
outras informações de desempenho.
Monitoramento de containers
• Dentre as ferramentas de monitoramento de containers 
podemos destacar: Docker Stats, CAdvisor, Scout, Data Dog, 
Sensu Monitoring Framework, Prometheus, Sysdic Cloud.
Monitoramento de containers
• Os containers transformaram a forma como as aplicações 
são desenvolvidas. Os ambientes criados por eles dão 
velocidade ao desenvolvimento e a entrega das aplicações. 
• A evolução tecnológica nos proporciona uma infraestrutura 
que agrega várias ferramentas com o objetivo de criar, 
implantar, configurar, automatizar e gerenciar containers.
Monitoramento de containers
• O container é simplesmente uma maneira inovadora de 
abstrair um ou mais processos do restante do sistema. Os 
containers deixam a carga "mais leve", possibilitando o 
trabalho em pequenos subconjuntos de código sem impactar 
o ambiente de execução geral. Eles também fornecem uma 
forma padrão de empacotar e isolar dependências, 
configurações e código da aplicação em um objeto.
Monitoramento de containers
• O monitoramento de containers não é uma das tarefas mais 
fáceis, isso porque a partir do momento em que aumenta a 
quantidade de containers implantados, aumenta também a 
dificuldade em os monitorar. 
• Quando levamos essa problemática para as nuvens, nuvens 
híbridas, por exemplo, onde os containers aparecem tanto 
em nuvens públicas como privadas, o monitoramento fica 
ainda mais comprometido. 
Monitoramento de containers
25 26
27 28
29 30
20/09/2021
6
• O monitoramento de containers não deve ser 
menosprezado, é imprescindível que se crie formas de 
analisar, localizar erros e tomar decisões a partir de eventos 
gerados pelos containers.
Monitoramento de containers
• O monitoramento de containers, consiste em identificar em 
quais hosts os containers estão executando, isolar 
containers que apresentam problemas para corrigi-los, 
detalhar e controlar o consumo de memória do servidor, 
quantificar o número total de containers e os que estão 
ativos, investigar os detalhes de cada container afim de 
analisar o seu desempenho, Acompanhar, distribuir ou 
restringir a quantidade usada de CPU, apurar problemas de 
comunicação e troca de recursos, analisando o tráfego de 
rede.
Monitoramento de containers
• Várias abordagens e ferramentas podem ser usadas para 
monitoramento de containers, é preciso que se analise o 
ambiente da infraestrutura de containers para que se 
escolha a ferramenta ou o conjunto de ferramentas 
adequado. 
Monitoramento de containers
• Numa abordagem geral de monitoramento, o ideal é que se 
busque uma solução que dê suporte a toda a infraestrutura. 
Quando focamos nos containers, que são implementados de 
forma dinâmica, em movimento constante, IPs instáveis e 
não confiáveis, é preciso que o monitoramento acompanhe 
essas características já que é necessário que se detecte 
automaticamente as modificações que ocorrem no 
ambiente. 
Monitoramento de containers
• O Elastic Stack (ELK Stack) se apresenta como uma solução 
para o monitoramento de toda a estrutura, com visibilidade 
de todo o ecossistema e garante que suas ferramentas 
integradas, Metricbeat e o Filebeat (que enviam dados de 
logs e métricas) têm recursos de descoberta automática que 
controlam essas alterações, com controle de implantação e 
processos adaptáveis a qualquer nova configuração. 
Monitoramento de containers
• Para coleta de métricas Docker Swarm (orquestrador de 
containers em cluster) uma solução pode ser a junção de 
ferramentas como o cAdvisor, InfluxDB e o Grafana. 
• Essa solução daria uma ideia geral da carga de trabalho de 
cada container, embora o Docker tenha a solução docker
stats, quando se têm vários hosts em cluster e não há uma 
definição de quais containers estão em cada host, por 
exemplo, é preciso que se tenha uma forma de analisar 
todas as informações de consumo desse cluster. 
Monitoramento de containers
31 32
33 34
35 36
20/09/2021
7
• Nesse contexto, o cAdvisor (Container Advisor) é um 
daemon, serviço que roda no background de um sistema em 
execução que coletará os processos agregados e exportará 
informações sobre todos os containers ativos.
Monitoramento de containers
• Existe a possibilidade de integrar com uma API e enviar 
dados para diversos backends, estendendo assim o seu uso. 
Nessa abordagem com o InfluxDB é possível fazer com que 
cada host de seu cluster tenha um container do tipo 
CAdvisor que envia dados para o InfluxDB e após subir o 
serviço Grafana visualizar as informações que foram 
coletadas. 
• Com o Grafana é possível criar, exibir gráficos e até montar 
um dashboard unindo todas as informações.
Monitoramento de containers
• Uma outra ferramenta que também pode ser usada para 
monitoramento de containers é o Netdata Agent. Ele é 
totalmente escalonável, pois suas métricas são armazenadas 
em nós individuais e é capaz de coletar e visualizar métricas 
de utilização de recursos para cada contêiner naquele nó. 
Ele também descobre automaticamente o aplicativo 
específico em execução dentro de cada contêiner e aplica 
imediatamente uma de suas várias integrações para coletar 
dezenas de métricas relevantes por segundo.
Monitoramento de containers
• Com ele é possível visualizar o comportamento da CPU, 
Memória RAM, uso de rede, coletar métricas por segundo 
dos serviços ou aplicativos de cada container e ainda 
monitorar infraestruturas orquestradas como Docker, Docker
Swarm e Kubernetes.
Monitoramento de containers
• Uma outra solução é integrar o Prometheus com o Node-
Exporter e o cAdvisor e o usar o Grafana para visualizar os 
dados. 
• O Prometheus apresenta um conjunto de ferramentas de 
monitoramento e alerta de sistemas de código aberto. Ele 
extrai métricas diretamente ou por meio de um gateway, 
armazena localmente os dados coletados e pode usar outras 
ferramentas incorporadas para visualizar esses dados, como 
o Grafana.
Monitoramento de containers
• Um dos pontos fortes do Prometheus é que ele tanto pode 
fazer o monitoramento centrado na máquina como o faz em 
arquiteturas dinâmicas, como as orientadas a serviços. 
Monitoramento de containers
37 38
39 40
41 42
20/09/2021
8
• Na proporção que você vai conhecendo as ferramentas, 
percebe também o poder de integração delas. Algumas 
soluções, podem suprir toda a sua necessidade, em outros 
casos será necessário um conjunto de ferramentas, seja 
qual for a solução encontrada é importante que o 
monitoramento seja incorporado nas suas boas práticas de 
desenvolvimento. 
Monitoramento de containers
Ferramentas de 
Orquestração
• Para automatizar a implantação, fazer o gerenciamento e 
garantir a escalabilidade com o uso dos containers é feito o 
que chamamos de orquestração. Com a orquestração é 
possível, usar uma mesma aplicação, reportando-a em 
ambientes diferentes. 
Orquestração
• Sendo assim é possível usar a orquestração de containers 
para automatizar e gerenciar tarefas como provisionamento 
e implantação, configuração e programação, alocação de 
recursos, disponibilidade dos containers, escala ou remoção 
de containers com base no balanceamento de cargas de 
trabalho na infraestrutura, balanceamento de carga e 
roteamento de tráfego, monitoramento de integridade do 
container, configuração da aplicação com base no container 
em que ela será executada e proteção das interações entre 
os containers.
Orquestração
• As ferramentas de orquestração mais populares são: 
Kubernetes, Openshift e a Docker tem seusorquestradores 
próprios: o Docker Swarm e o Docker EE (Enterprise 
Edition).
Ferramentas de Orquestração
• Kubernetes(K8S) é um sistema open source de 
orquestração de containers que automatiza deploy, facilita o 
escalonamento e gerencia aplicações. Dentre as suas muitas 
características destaca-se a capacidade de trabalhar com 
atualizações diversas nas aplicações. Ele permite que se 
altere novos releases da aplicação com muito mais frequência 
e de forma automática. Com o Kubernetes é possível agendar 
a implantação de uma versão nova e se der problema 
reverter tudo de forma automática sem comprometer a 
disponibilidade da aplicação. 
Orquestração – Kubernetes
43 44
45 46
47 48
20/09/2021
9
• No Kubernetes, vários containers rodam em uma única 
aplicação balanceando de acordo com as requisições, na 
prática, uma aplicação pode aumentar rapidamente e 
exponencialmente a sua capacidade. 
Orquestração – Kubernetes
• Vamos supor que você tenha projetado um sistema de 
vendas de ingressos para um dado festival de música. No 
começo das vendas as requisições de compras serão 
menores, mas a partir do momento em que se aproximar o 
dia do festival, as compras aumentarão vertiginosamente. 
• O Kubernetes cria e remove containers no cluster de forma 
programada. A partir do momento em que a aplicação requer 
mais recursos o orquestrador adicionará novos containers e 
os removerá quando não precisar mais deles. 
Orquestração – Kubernetes
• Esse é um conceito conhecido como autoscaling
(escalonamento automático) uma solução presente no Google 
Compute Engine (GCE), no Google Container Engine (GKE) e 
no Elastic Kubernetes Service (EKS) da AWS.
Orquestração – Kubernetes
• Com o Kubernetes é possível que se faça implantações e 
atualizações de forma rápida e a todo instante. Passar de um 
container para vários rapidamente, o que chamamos de 
escalonamento dinâmico. Também conta com uma busca de 
dispositivos e serviços de forma automática (Service 
Discovery), faz o balanceamento de carga e se associado a 
uma malha de serviço no cluster, como o Istio, pode 
interromper a comunicação entre front-end e back-end se 
uma falha for detectada no back-end.
Orquestração – Kubernetes
• Dentre os principais benefícios de se usar o kubernetes
destaca-se a automatização de implantações e atualizações 
de aplicações, a facilidade para escalonar aplicativos em 
containers, a capacidade de operar containers em diferentes 
hosts, a otimização do uso do hardware, reduzindo custos e o 
suporte de carga para diversas aplicações.
Orquestração – Kubernetes
• OpenShift é uma plataforma de gerenciamento e 
orquestração de containers que faz monitoramento, 
automação, gera relatórios e integração com outras 
ferramentas. Foi desenvolvida pela Red Hat, uma empresa 
especialista neste mercado, que oferece também a versão 
Enterprise do produto, o Red Hat OpenShift Container 
Platform, que tem as mesmas funções só que para grande 
escala e maior segurança. 
Orquestração – Openshift
49 50
51 52
53 54
20/09/2021
10
• Dentre as suas características estão: desenvolvimento, 
hospedagem, escalonamento e entrega de aplicações ágeis 
na nuvem, redução de burocracia, criação de ambientes de 
testes, elevação do poder de processamento dos servidores 
da empresa, melhor aproveitamento dos recursos 
computacionais, redução de custos, flexibilidade aos 
sistemas. 
Orquestração – Openshift
• O projeto Docker começou em meados 2008, Solomon
Hykes fundou a dotCLoud. Em março de 2013 decidiram 
tornar o projeto Open Source e mudar o nome para Docker. 
A partir daí, quando desenvolvedores do mundo inteiro 
passaram a poder visualizar o código e contribuir com 
melhorias, fazer correções de bugs e lançar melhorias de 
forma colaborativa, foi quando o Docker ganhou força e se 
tornou quase que um sinônimo quando falamos de 
containers 
Orquestração – Docker
• O Docker é uma das tecnologias mais conhecidas e usadas. 
É uma plataforma de código aberto que se destaca em 
implementações de isolamento de recursos e bibliotecas do 
Kernel em um container do sistema operacional em um 
único ambiente.
Orquestração – Docker
• O Docker é uma plataforma de implementação de containers 
que usa um esquema de camadas, montadas a partir das 
técnicas de Copy-On-Write. Que é um procedimento que 
permite compartilhar dados entre camadas, mas só é 
possível alocar um novo recurso a partir do momento em 
que esteja modificado. Na prática funciona assim: a cópia de 
um arquivo é mandada para uma camada superior, só são 
visualizadas as informações modificadas dessa camada, no 
entanto, o arquivo original permanece em uma camada 
inferior e pode ser visualizado caso se exclua a camada 
sobreposta.
Orquestração – Docker
• Docker Swarm, este orquestrador já vem instalado com o 
Docker e permite a construção de clusters de containers de 
forma nativa, usando balanceamento de carga e failover. 
• Você cria clusters facilmente indicando os hosts que serão 
supervisionados, quando criar um novo container, por conta 
do balanceamento de carga, ele direcionará ao host que 
possuir a menor carga. 
Orquestração – Docker Swarm
• A estrutura se resume em um manager e diversos workers. O 
manager orquestra os containeres e distribui em hosts 
workers, os workers hospedam o container.
• Docker Swarm é uma outra forma de orquestrar seus 
containers através da criação de um cluster com alta 
disponibilidade, balanceamento de carga e comunicação 
criptografada, tudo isso nativo, sem esforço e dificuldade.
Orquestração – Docker Swarm
55 56
57 58
59 60
20/09/2021
11
• Docker EE (Enterprise Edition) atenderá melhor a 
demanda do mundo cooporativo com mais eficiência e 
velocidade. Isso acontece por conta da solução Docker
Universal Control Plane (UCP), que auxiliar no gerenciamento 
de inúmeros clusters e aplicativos por meio de uma interface 
simples. 
Orquestração – Docker EE
• Dentre as tarefas do Docker EE estão: análise das imagens 
nos repositórios para verificar se estão livres de 
vulnerabilidades, conecta os containers a volumes, administra 
a maneira com os containers se comunicam entre si e 
externamente, controla a autenticidade dos usuários, faz 
registros das imagens.
Orquestração – Docker EE
Infográfico –
Segurança dos 
Containers
• Embora exista a possibilidade de criar stacks com várias 
ferramentas de monitoramento, sua equipe também se 
preocupa com a segurança e quer conhecer soluções que 
monitorem os containers de forma satisfatória e tenha o 
critério de segurança como um ponto importante. 
• Pesquise e traga sugestões de ferramentas que auxiliem na 
segurança dos containers, mostre as vantagens das 
ferramentas.
Descrição da Situação Problema
• Em 2016, revelada a importância da segurança dos 
containers, houve uma mudança no longo do ciclo de vida 
de desenvolvimento do software, também conhecido 
como DevSecOps. A ideia é desenvolver a mentalidade de 
que todos são responsáveis pela segurança, com ações que 
devem garantir a velocidade e escala dos containers. O 
objetivo é construir containers seguros desde sua 
concepção, sem impactar o tempo de lançamento no 
mercado.
Solução da Situação Problema
• Dentre as várias opções pode se deparar com ferramentas 
como: 
• Dynatrace: supervisiona automaticamente e 
profundamente as infraestruturas, sobretudo, 
hiperescalares com o uso de inteligência artificial.
Solução da Situação Problema
61 62
63 64
65 66
20/09/2021
12
• Qualys Cloud: Faz gerenciamento de risco e conformidade.
• Sysdig Secure: Promete a segurança de containers, 
kubernetes e toda a infraestrutura de nuvens.
• Lacework: fornece informações sobre os riscos em 
infraestruturas de nuvens, containers e kubernetes.
Solução da Situação Problema
• Threat Stack: segurança e conformidade em infraestrutura 
de nuvens.
• CloudPassage Halo: automatiza segurança e conformidade 
para estruturas de nuvem híbrida.
• StackRox: segurança em containers para detecção de 
ameaças e gerenciamentode vulnerabilidade.
Solução da Situação Problema
• Anchore: faz varredura, correção, conformidade e 
integração protegendo aplicativos em containers.
Solução da Situação Problema
Infraestrutura como 
Código
• A transformação digital pressionou as empresas a encararem 
mudanças em sua infraestrutura. Passou-se a tratar a 
infraestrutura como código, o que possibilitou a redução de 
gastos e velocidade na entrega dos produtos. Um ambiente 
gerido de forma correta possibilita a testagem de softwares 
com mais facilidade e implantações estáveis e que podem ser 
reaproveitadas. Por conta dessa nova infraestrutura o 
monitoramento passou a ser mais complexo. 
Infraestrutura como Código
• Diante do exposto é preciso entender as características 
desses ambientes e como prepará-los para um 
monitoramento eficiente. Essas mudanças impactaram tanto 
o hardware como o software.
• Alguns fatores que impactaram o hardware com o software:
Infraestrutura como Código
67 68
69 70
71 72
20/09/2021
13
• No hardware as infraestruturas modernas passaram a 
virtualizar as máquinas físicas, tendo reduções consideráveis 
com gastos na compra de equipamentos, com a infraestrutura 
de nuvem pública, passou-se a terceirizar a manutenção e o 
provisionamento de servidores e redes, um ganho de tempo 
incomparável com o que se tinha antes, quando precisava-se 
esperar semanas para um novo servidor ser provisionado 
para continuar um projeto e as plataformas de containers 
permitem o escalonamento, dão flexibilidade a infraestrutura 
para que sejam adicionados novos recursos conforme a 
necessidade dos negócios. 
Infraestrutura como Código
• No software evidencia-se uma transição de construções 
monolíticas para o desmembramento em camadas, o que 
impulsionou arquiteturas orientadas por serviços (SOAs), tipo 
de design que permite que seus componentes sejam 
reutilizáveis através de uma interface de compartilhamento 
em rede.
Infraestrutura como Código
• As SOAs, por sua vez, evoluíram para serviços Web, 
arquiteturas orientadas por eventos e para os microsserviços.
• Os microsserviços dominam as estratégias de implementação 
para aplicações no mercado de desenvolvimento de software 
atualmente.
Infraestrutura como Código
• Um outro comportamento que a tecnologia digital trouxe para 
a forma como tratamos o software é a possibilidade de 
comercializá-lo como um serviço Web. Esses serviços são 
conhecidos como SaaS, ou seja são aplicações que oferecem 
uma maneira via internet para o consumo de um determinado 
software com pagamentos, geralmente de mensalidades.
Infraestrutura como Código
• Com essa abordagem o usuário usa as funcionalidades de um 
sistema com fins específicos não precisando se preocupar 
com instalações, infraestrutura para a execução, atualizações 
e manutenções.
Infraestrutura como Código
• Todas essas características tornam um ambiente de 
implantação atual bem dinâmico e vários aspectos precisam 
ser considerados. Então é preciso que se tenha uma ideia se 
a infraestrutura é um datacenter local, uma infraestrutura de 
nuvem pública ou uma combinação híbrida, saber se é usada 
uma orquestração de containers, como o Kubernetes, por 
exemplo, identificar se as aplicações serão executadas em 
containers, VMS ou bare metal (servidor de computador 
físico), identificar os componentes externos, como banco de 
dados e ter gerenciamento de nossas próprias aplicações.
Infraestrutura como Código
73 74
75 76
77 78
20/09/2021
14
• Esses aspectos reforçam a necessidade do monitoramento já 
que cada componente desse gera vários dados de logs, 
métricas e APM. 
• Os endpoints de métricas dos containers não são estáticos. O 
uso de um serviço Kubernetes não forneceria endpoints
eficientes, pois é necessário estatísticas mais concentradas 
em containers separados, em vez de agrupados.
Métricas de Integridade 
• O Prometheus é uma ferramenta que se adequa bem a essa 
realidade, muito usado em monitoramento de microsserviços, 
inclui componentes para coleta e exibição de métricas, 
bibliotecas de instrumentação, com o Prometheus JMX 
Exporter, por exemplo, é possível se conectar ao sistema de 
coleta de métricas nativo do Java, O Java Management 
Extensions (JMX) e converte-las em um formato que o 
Prometheus possa entender.
Métricas de Integridade 
• Um outro problema de monitoramento de containers são as 
verificações de integridade, os endpoints de integridade 
implantados de maneira tradicional costumam ter endereços 
de rede estáticos, quando que os containers são programados 
para execuções dinâmicas nos nós.
• Uma solução poderia ser o Kubernetes, que monitora todos 
os containers no cluster e responde as verificações de 
integridade implantadas, excluindo e reiniciando os pods. 
Métricas de Integridade 
• Pode-se precisar de uma verificação de integridade que 
detalhe melhor o status de todos os componentes e conexões 
para a aplicação. Nesse caso, uma solução como o Sping
Boot Actuator pode ser usada. Esse tipo de verificação de 
integridade mais detalhado é muito recomendado para 
aplicações em containers, isso porque o Sping Boot Actuator
é uma biblioteca de verificação de integridade que sonda as 
aplicações Spring e aponta o status do ambiente de execução 
de cada componente encontrado. É importante frisar que 
essa ferramenta é usada apenas em aplicações escritas na 
linguagem Java.
Métricas de Integridade 
Infraestrutura Ágil 
em Cloud
• Atividades do nosso dia-a-dia como assistir filmes por meio 
de streamings, pedir um carro para se deslocar na cidade, 
pagar uma conta através de um aplicativo, postar fotos nas 
redes sociais são processos feitos nas nuvens. 
• Além dessas tarefas cotidianas, o emprego das nuvens pode 
facilitar nosso trabalho como desenvolvedor de softwares.
Infraestrutura Ágil em Cloud
79 80
81 82
83 84
20/09/2021
15
• Cientes da importância dos containers nas infraestruturas 
ágeis e do monitoramento de suas aplicações, o Cloud
Computing apoia os desenvolvedores fazendo uso dos 
recursos de provisionamento e automatizações escalonáveis. 
Infraestrutura Ágil em Cloud
• Como podem caminhar junto os conceitos de Cloud
Computing e DevOps? 
• O DevOps está ligado a pessoas e processos e a Cloud aos 
recursos disponíveis para facilitar as práticas.
Infraestrutura Ágil em Cloud
• Muitos processos usados em DevOps mesclam ferramentas 
de nuvens públicas com ferramentas locais, mas é possível 
usar toda a infraestrutura das nuvens para implementação de 
aplicações diretamente na rede, fazendo jus de Plataformas 
PaaS.
Infraestrutura Ágil em Cloud
• Esses entendimentos farão com que você tenha 
conhecimento das melhores práticas e ferramentas para 
operar em ambientes Cloud e desenvolver de forma ágil suas 
aplicações. 
Infraestrutura Ágil em Cloud
• A infraestrutura Cloud Computing (computação em nuvens) é 
uma realidade nos sistemas computacionais. Tem como 
principal característica evitar a dependência de um único 
recurso de hardware (que pode ficar obsoleto), facilitando a 
prospecção de recursos computacionais que podem ser 
acessados de forma online através da Internet. 
Infraestrutura Ágil em Cloud
• A Computação em Nuvens surge a partir dos estudos sobre 
virtualização de servidores, softwares orientados a serviços, 
gestões de grandes instalações como Data Centers. 
• Esse modelo eficaz utiliza-se de softwares, acessos, 
armazenamentos e processos de dados em meio a diferentes 
dispositivos e tecnologias Web.
Infraestrutura Ágil em Cloud
85 86
87 88
89 90
20/09/2021
16
• A Computação em Nuvens traz diversos benefícios: a redução 
de custos, maior produtividade, competitividade, mobilidade, 
disponibilidade e escalabilidade. Essas são também 
características das infraestruturas ágeis. 
Infraestrutura Ágil em Cloud
• Gradativamente as grandes empresas passam a substituir os 
seus servidores on-premises (instalações próprias das 
empresas) e suas infraestruturas físicas por nuvens públicas e 
privadas. 
• Os softwaresde aplicações monolíticas passam a ser 
baseados em microsserviços. Usando a nuvem para facilitar 
as atualizações diárias ou semanais e melhorar a entrega.
Infraestrutura Ágil em Cloud
• Os serviços de computação na nuvem são divididos em três 
classes, que levam em consideração o nível de abstração do 
recurso provido e o modelo de serviço do provedor. 
• As três classes de serviço são: 
o Infraestrutura como Serviço (IaaS), camada inferior;
o Plataforma como Serviço (PaaS), camada intermediária;
o Software como Serviço (SaaS), camada superior.
Infraestrutura Ágil em Cloud
• Infraestrutura como um serviço IasS é um modelo onde 
as partes referentes aos servidores, processamentos e 
memórias são oferecidas por um provedor que possibilita ao 
cliente um mecanismo de virtualização, onde o mesmo tem 
controle sobre máquinas virtuais, armazenamento, aplicações 
instaladas e um controle limitado dos recursos de rede. Assim 
o usuário não precisa adquirir hardware e softwares básicos, 
ele passa a usar uma infraestrutura virtualizada para 
desenvolver suas aplicações pagando como se fosse um 
serviço. 
Infraestrutura Ágil em Cloud
• Plataforma como Serviço (PaaS) é uma plataforma que 
possibilita o uso de ferramentas de desenvolvimento de 
softwares que são oferecidos por um provedor de serviços. 
Utilizando a Internet como meio de acesso, os 
desenvolvedores criam aplicações e armazenam dados de 
forma compartilhada através de uma plataforma.
Infraestrutura Ágil em Cloud
• Software como Serviço (SaaS) é a classe mais comum. 
Nesse modelo o usuário usa todas as funcionalidades de um 
sistema de forma remota sem a necessidade de instalação, 
ambiente para execução, manutenção e upgrades. A 
aplicação completa é ofertada e acessível ao cliente por um 
determinado preço.
Infraestrutura Ágil em Cloud
91 92
93 94
95 96
20/09/2021
17
• Além das classes é importante enfatizar que as nuvens 
podem ser classificadas em privadas quando opera para uma 
única instituição, comunitária, ou seja, pode ser dividida entre 
várias organizações e pública é de responsabilidade de uma 
organização que vende os serviços, mas é disponível para o 
público e híbrida, quando usa mais de um tipo de nuvem.
Infraestrutura Ágil em Cloud
Infraestrutura em 
PaaS
• As PaaS são uma estratégia muito usada no desenvolvimento 
ágil de softwares. A economia com as abstrações de SO, o 
uso middleware (softwares que fornecem serviços e recursos 
comuns em aplicações) e Data Centers, trazem agilidade e 
possibilitam uma modernização nos trabalhos desenvolvidos.
• Usa uma plataforma como serviço (PaaS) quando quer 
desenvolver e rodar a sua aplicação na Internet, no Cloud, 
sem se preocupar com infraestrutura, servidores, instalações 
de softwares, linguagem, bibliotecas.
Infraestrutura em PaaS
• Além da estrutura de desenvolvimento onde o desenvolvedor 
pode compilar, desenvolver e personalizar aplicações 
baseadas nas nuvens, a outra vantagem é poder usar os 
recursos das nuvens como escalabilidade, disponibilidade, 
redução de codificação. Um outro uso muito comum de PaaS
é a análise ou business intelligence, ou seja, algumas 
plataformas permitem análise e mineração de dados.
Infraestrutura em PaaS
• As vantagens do PaaS temos a redução do tempo de 
codificação, já que existem componentes pré-codificados que 
podem ser inseridos no projeto, facilita o desenvolvimento em 
diferentes plataformas, permite ao usuário o uso de 
ferramentas sofisticadas, facilita o trabalho remoto já que 
tudo é feito na Internet e gerencia o ciclo de vida do 
aplicativo dando suporte a todas as fases do 
desenvolvimento.
Infraestrutura em PaaS
• Um exemplo bem conhecido de PaaS é a Heroku, uma 
plataforma baseada em containers gerenciados, com serviços 
de dados integrados e um poderoso ambiente para 
implantações e execuções de aplicativos modernos. 
• Os desenvolvedores podem implantar códigos inscritos em 
Java, PHP, Python em um sistema de construção próprio para 
execução. 
Infraestrutura em PaaS
97 98
99 100
101 102
20/09/2021
18
• Usam ferramentas como Git, GitHub ou sistemas de 
integração contínua (CI) para gerenciamento da aplicação e 
maior visibilidade do desempenho e dispõem de 
complementos que são serviços de nuvens de terceiros que 
aprimoram ainda mais os trabalhos dos desenvolvedores.
Infraestrutura em PaaS
• Um outro exemplo é o serviço PaaS do Google Cloud
Platform: O App Engine. 
• Ele tem como principal objetivo permitir a publicação de 
aplicativos com o mínimo de configuração possível. 
Infraestrutura em PaaS
• O desenvolvedor escolhe o conjunto de ferramentas 
necessárias para a aplicação rodar em uma linguagem 
específica de programação que pode ser: PHP, Java, Python, 
e o App Engine cuida do ambiente onde o software rodará, da 
segurança, de manter um sistema operacional e hardware 
onde o serviço será alocado. 
Infraestrutura em PaaS
• O OpenShift é uma plataforma de aplicações em container da 
Red Hat que disponibiliza um sistema operacional Linux para 
empresas, um ambiente de execução em container, rede, 
monitoramento, registros e soluções de autenticação e 
autorização. 
• É possível automatizar o ciclo das aplicações com segurança, 
personalização e portabilidade, otimizar as entregas e oferece 
suporte, consultoria e treinamento. 
Infraestrutura em PaaS
• Outros exemplos de ofertas corporativas de PaaS são: 
Amazon Elastic Beanstalk, Plataforma Salesforce1, IBM 
Bluemix, Plataforma de nuvem da Oracle, Websites Windows 
Azure e Getup.
Infraestrutura em PaaS
• O PaaS da Amazon, o Elastic Compute Coud (Amazon EC2) 
usa um o Amazon Auto Scaling para oferecer computação 
escalável, eliminando a necessidade de investir inicialmente 
em hardware e oferecendo uma plataforma para 
desenvolvimento e implantação de aplicativos com rapidez.
• Através do Amazon Auto Scaling as disponibilidades da 
aplicação são mantidas e pode-se fazer adição e remoção de 
instâncias automaticamente de acordo com condições pré-
definidas. 
Infraestrutura em PaaS
103 104
105 106
107 108
20/09/2021
19
• Podendo também usar os recursos de escalabilidade dinâmica 
que respondem às mudanças de acordo a demanda ou 
escalabilidade preditiva onde é possível agendar o número 
certo de instâncias com base na demanda prevista.
Infraestrutura em PaaS
• Um outro exemplo de ferramenta de escalonamento 
automático é o Autoescala do Azure. O dimensionamento 
automático da Azure ajuda no desempenho das aplicações de 
acordo com a demanda. O escalonamento pode ser definido 
por métricas personalizadas, com autoescala agendada, 
pagando apenas pelas máquinas virtuais que estão sendo 
usadas, além de monitorar as métricas-chave de desempenho 
e alertá-lo. 
Infraestrutura em PaaS
• O Heroku usa um recurso de containers, o Dyno, para 
executar e dimensionar aplicativos. Com base nos requisitos 
dos usuários os aplicativos são escalonados para aumentar 
um número específico de Dynos. O uso dos containers facilita 
o gerenciamento de tamanho, tipo e número de 
dinamômetro.
Infraestrutura em PaaS
• O Google Cloud Platform usa o Cloud Monitoring para 
monitorar métricas dos grupos de instâncias do Compute 
Engine, essas métricas personalizadas são usadas para 
escalonar o grupo de instâncias de acordo com os requisitos 
do usuário.
Infraestrutura em PaaS
• O Openshift usa um complemento, o cluster-autoscaler, para 
redimensionar os pools (recurso de expansão para um 
cluster) com base nas necessidades de dimensionamento de 
suas cargas de trabalho programadas. 
• Ele usa Pods pendentes para escalonamento vertical e 
percebe os nós que estão subutilizados para redução de nós 
de trabalho. 
Infraestrutura em PaaS
Infográfico –
Escalonamento
109 110
111 112
113 114
20/09/2021
20
• Embora o escalonamento de modo reativo esteja 
funcionando, você percebeu atrasos, com longos tempos de 
inicialização em sua aplicação e percebeu que isso sempre 
ocorre em um determinado período ao longo do dia. Qual 
soluçãopoderia usar para otimizar a sua aplicação de posse 
dessa constatação?
Descrição da Situação Problema
• O escalonamento automático é feito de maneira reativa, ou 
seja, com base nas alterações da carga de trabalho 
instâncias são aumentadas ou diminuídas. 
• Mas caso tenha observado que em um determinado período 
do dia, sempre no mesmo horário ou dia, existe uma 
demanda maior de requisitos do serviço e os clientes 
enfrentam problemas de espera para a atualização e você 
pode configurar o escalonamento de forma preditiva.
Solução da Situação Problema
• Com base em históricos do grupo de instâncias gerenciadas, 
é possível saber em qual período o uso da CPU é mais 
sobrecarregado (esse tipo de escalonamento só trabalha com 
métricas do uso da CPU). 
• Definindo um escalonamento preditivo é feito um 
escalonamento horizontal das instâncias antes da carga 
chegar.
Solução da Situação Problema
• A análise preditiva inclui uma variedade de técnicas 
estatísticas que analisam fatos atuais e históricos para fazer 
previsões sobre o futuro. Com a ajuda de ferramentas 
sofisticadas, as organizações podem usar dados históricos e 
atuais para prever com precisão as tendências e os 
comportamentos nos próximos segundos, dias ou anos.
Solução da Situação Problema
Recapitulando
Recapitulando
• Infraestrutura de Containers;
• Monitoramento de Containers;
• Ferramentas de Orquestração;
• Infraestrutura como Código;
• Infraestrutura Ágil em Cloud;
• Infraestrutura em PaaS.
115 116
117 118
119 120
20/09/2021
21
 Siga em frente e bons estudos! Obrigada!
121

Continue navegando