0% acharam este documento útil (0 voto)
14 visualizações151 páginas

Anhanguera

Aula Pratica

Enviado por

jessejma2022
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
14 visualizações151 páginas

Anhanguera

Aula Pratica

Enviado por

jessejma2022
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
Você está na página 1/ 151

Disciplina

COMPUTAÇÃO EM NUVEM

Unidade 1
Fundamentos de Computação em Nuvem

Aula 1
Conceitos básicos em Computação em Nuvem

Conceitos em Computação em Nuvem

Este conteúdo é um vídeo!


Para assistir este conteúdo é necessário que você acesse o AVA pelo
computador ou pelo aplicativo. Você pode baixar os vídeos direto no aplicativo
para assistir mesmo sem conexão à internet.
Dica para você
Aproveite o acesso para baixar os slides do vídeo, isso pode deixar sua
aprendizagem ainda mais completa.

Olá estudante! Nesta videoaula, você irá conhecer conceitos básicos em computação em nuvem.
A computação em nuvem refere-se ao uso de recursos computacionais, como armazenamento,
processamento de dados e redes, que são fornecidos pela Internet. A ideia principal é fornecer
acesso a recursos de computação sob demanda pela Internet, em vez de depender de recursos
locais ou de servidores físicos.
Esse conteúdo é importante para a sua prática profissional, devido a uma série de benefícios e
transformações que ela proporciona, como, por exemplo:

Escalabilidade e elasticidade: permite escalar recursos de computação de acordo com as


necessidades, evitando a necessidade de investir em hardware adicional.
Custo-eficiência: elimina a necessidade de investir em infraestrutura física, reduzindo
custos iniciais e permitindo que as organizações paguem apenas pelos recursos que
consomem.
Acessibilidade remota: facilita o acesso a recursos computacionais de qualquer lugar com
conexão à Internet, promovendo a flexibilidade e o trabalho remoto.
Inovação rápida: permite o rápido desenvolvimento, teste e implantação de aplicativos,
acelerando os ciclos de inovação e reduzindo o tempo de chegada ao mercado.
Disciplina

COMPUTAÇÃO EM NUVEM

A computação em nuvem oferece oportunidades para otimizar operações, impulsionar a


inovação e fornecer soluções eficientes. É fundamental que os profissionais estejam
familiarizados com os conceitos e práticas relacionados à nuvem para tirar o máximo proveito
desses benefícios.
Prepare-se para esta jornada de conhecimento! Vamos lá!!!

Ponto de Partida
Caro estudante! Nesta unidade, veremos os conceitos de computação em nuvem.

Atualmente, no mercado de Tecnologia da Informação (TI), o modelo de computação em nuvem


é muito utilizado para a disponibilização de soluções de software escaláveis na internet.
Portanto, é imprescindível conhecer as características e as tecnologias envolvidas. O conceito de
nuvem é uma metáfora para um cenário no qual as aplicações podem ser acessadas
remotamente, de qualquer lugar e dispositivo com conexão à Internet. O paradigma de
computação em nuvem revolucionou a maneira como as organizações alocam e gerenciam
recursos de Tecnologia da Informação (TI).

Nesse novo modelo, recursos computacionais, como capacidade de processamento e


armazenamento de dados disponíveis em provedores, podem ser alocados sob demanda, com
pagamento de acordo com a quantidade e o tempo de uso. A possibilidade de redução de custos
e flexibilidade no uso dos recursos de TI motivaram uma rápida migração de servidores e
aplicações para provedores de computação em nuvem.

Nesse contexto, é essencial o entendimento sobre como os serviços de computação em nuvem


são provisionados, suas características e benefícios.

Bons estudos!

Vamos Começar!

Definição de computação em nuvem


A computação em nuvem é um modelo de entrega de serviços de computação pela internet,
permitindo o acesso sob demanda a recursos computacionais, como armazenamento,
processamento, redes, software e outros, sem a necessidade de que o usuário tenha
conhecimento ou controle direto sobre a infraestrutura subjacente.

Computação em nuvem é um modelo para possibilitar acesso remoto, de modo ubíquo,


conveniente e sob demanda, a um conjunto compartilhado de recursos computacionais
configuráveis (por exemplo, redes, servidores, armazenamento, aplicações e serviços) que
Disciplina

COMPUTAÇÃO EM NUVEM

podem ser rapidamente alocados e liberados com mínimo esforço gerencial ou interação com o
provedor de serviços (Mell; Grance, 2011, p. 2).

Observe que os recursos computacionais disponíveis na nuvem podem ser os mais diversos e a
alocação ou liberação dos recursos deve ser dinâmica. Isso foi possível, principalmente, em
decorrência dos avanços nas tecnologias de virtualização e de redes de comunicação de dados.
O conceito de virtualização permite que, em um mesmo computador, sejam criadas uma ou mais
máquinas virtuais. Uma máquina virtual é um software que emula o funcionamento de um
computador, ou seja, ela é capaz de executar programas como um computador real emulando,
inclusive os componentes de uma máquina física, como disco, processador, monitor e placa de
rede.

A Figura 1 ilustra um provedor de serviços de computação em nuvem com diversas máquinas


virtuais (VMs – virtual machines) instanciadas na infraestrutura de máquinas físicas. O uso de
virtualização permite o compartilhamento da infraestrutura entre vários clientes e também
viabiliza a alocação dinâmica. Não seria possível instanciar rapidamente um servidor físico, mas
isso pode ser feito em instantes para uma máquina virtual. Os avanços nas tecnologias de rede e
de serviços Web resultaram em um modelo de amplo acesso aos serviços. Os clientes podem
usar os recursos computacionais remotamente a qualquer momento.

Figura 1 | Máquinas Virtuais.

Sousa, Moreira e Machado (2009) apresentam uma perspectiva interessante, que mostra a
computação em nuvem como uma evolução do conceito de Utility Computing. Um serviço de
Disciplina

COMPUTAÇÃO EM NUVEM

utilidade é aquele distribuído amplamente ao público geral com pagamento baseado no uso, por
exemplo, a distribuição de energia elétrica e outros serviços de utilidade pública. Assim, a Utility
Computing é uma visão da TI como um serviço de utilidade pago de acordo com a quantidade de
recursos utilizados. Nesse contexto, temos serviços de TI sob demanda com pagamento
baseado no uso. Esses serviços abrangem vários níveis, desde aplicações para usuários finais,
até grandes infraestruturas computacionais para empresas.

Existem vários modelos de serviço na computação em nuvem, sendo os três principais:

Infraestrutura como Serviço (IaaS): fornece acesso virtualizado a recursos de hardware,


como capacidade de processamento, armazenamento e redes. Os usuários podem
controlar e gerenciar sistemas operacionais, aplicativos e, em alguns casos, configurações
de rede.
Plataforma como Serviço (PaaS): oferece uma plataforma de desenvolvimento completa,
na qual os desenvolvedores podem criar, implantar e gerenciar aplicativos sem se
preocupar com a infraestrutura subjacente. Essa abordagem simplifica o processo de
desenvolvimento.
Software como Serviço (SaaS): fornece aplicativos baseados na web que são acessados
por meio de um navegador da web. Os usuários não precisam se preocupar com a
manutenção, atualização ou gerenciamento do software, já que isso é tratado pelo
provedor de serviços em nuvem.

A computação em nuvem oferece uma série de benefícios, incluindo escalabilidade, flexibilidade,


eficiência de custos, acesso remoto e maior facilidade de gerenciamento. Empresas e usuários
podem aproveitar esses recursos sem a necessidade de investir em hardware e infraestrutura
física significativos. Além disso, a nuvem permite o pagamento com base no uso real,
proporcionando maior eficiência financeira.

Principais características da computação em nuvem


(elasticidade, escalabilidade, provisionamento sob demanda,
etc.)
Os serviços em nuvem podem ser acessados e gerenciados por uma aplicação Web. No entanto,
não podemos afirmar que toda aplicação disponível na Web é uma aplicação em nuvem. A
seguir, algumas das características essenciais de serviços de computação em nuvem, conforme
explicado em (Sousa; Moreira; Machado, 2009):

Self-service: o próprio cliente gerencia a alocação dos recursos, com mínima interação com
o provedor, na verdade, a alocação e uso dos serviços pode ser automatizada.
Amplo acesso: os recursos podem ser acessados remotamente, de qualquer lugar, por
meio de tecnologias baseadas em padrões abertos, consequentemente, têm soluções
multiplataforma, ou seja, soluções que não dependem do tipo do dispositivo ou sistema
operacional, por exemplo.
Disciplina

COMPUTAÇÃO EM NUVEM

Pooling de recursos: o provedor mantém um robusto conjunto de recursos que são


compartilhados entre os clientes, de forma que a localização e a manutenção dos
equipamentos é transparente para os clientes.
Elasticidade rápida: os clientes podem alocar mais recursos diante de um aumento de
demanda ou liberar recursos em uso no caso de diminuição da demanda; a alocação ou
liberação de recursos deve ser feita rapidamente, inclusive de forma automatizada, por
exemplo, por meio de um script que monitora a demanda e reage de acordo com as
mudanças.
Serviço medido: o uso dos recursos pelos clientes é detalhadamente contabilizado para
fins de tarifação e também para monitoramento da qualidade do serviço.

Conforme Coutinho (2013), a elasticidade é uma das principais características dos serviços
disponibilizados em ambientes de computação em nuvem. Essa caraterística cria a ilusão de que
os recursos na nuvem são ilimitados, uma vez que é possível aumentar ou diminuir a quantidade
de recursos sob demanda.

A elasticidade rápida depende das tecnologias de virtualização. Por exemplo, devido a um


aumento brusco nas requisições a um serviço, diversas máquinas virtuais podem ser
rapidamente instanciadas para atender ao aumento na carga de trabalho. Essa facilidade de
alterar dinamicamente a quantidade de recursos alocados facilita o planejamento de capacidade
computacional para o cliente, o que representa um dos principais benefícios que fomentaram o
rápido desenvolvimento de soluções de computação em nuvem. Além disso, existe uma série de
outros benefícios, entre os quais pode-se destacar a redução de custos e a abstração da
complexidade (Erl, Puttini, Mahmood; 2013).

A redução de custos pode ser observada de várias formas. Uma delas é que o uso de recursos
computacionais na nuvem sob demanda evita a necessidade do investimento inicial para montar
uma infraestrutura de TI. A flexibilidade da alocação dinâmica de recursos permite que os
investimentos em TI sejam realizados de acordo com o crescimento do negócio do cliente. Além
disso, o compartilhamento de recursos entre os vários clientes de um provedor diminui os custos
relacionados com a manutenção dos equipamentos e com equipe de profissionais
especializados. Outro ponto importante que você não pode esquecer é que componentes de
software e hardware ficam obsoletos rapidamente. Quando um cliente acessa os recursos na
forma de serviço em nuvem, os custos de atualização ficam por conta do provedor.

De fato, a gestão de infraestrutura de equipamentos e profissionais de TI é complexa e tem alto


custo. As soluções em nuvem permitem que um cliente tenha acesso aos recursos
computacionais com pagamento de acordo com o uso, em vez de ter que implantar sua própria
infraestrutura de TI.

Siga em Frente...

Benefícios e desafios da computação em nuvem


Disciplina

COMPUTAÇÃO EM NUVEM

A computação em nuvem oferece diversos benefícios para organizações e usuários,


impulsionando a eficiência operacional, a flexibilidade e a inovação:

Economia de custos: a computação em nuvem permite que as organizações reduzam


custos significativos, eliminando a necessidade de investir em hardware, instalações físicas
e equipes especializadas para gerenciar a infraestrutura.
Escalabilidade: a capacidade de escalar recursos de maneira rápida e eficiente permite que
as organizações atendam às flutuações na demanda sem a necessidade de investir
antecipadamente em infraestrutura adicional.
Agilidade e velocidade: a nuvem permite o provisionamento rápido de recursos, acelerando
o tempo de implementação de aplicativos e serviços. Isso é particularmente vantajoso para
desenvolvimento e lançamento de produtos mais rápidos.
Flexibilidade e acessibilidade: os usuários podem acessar recursos da nuvem de qualquer
lugar com uma conexão à internet, proporcionando flexibilidade no trabalho remoto e
facilitando a colaboração entre equipes distribuídas.
Atualizações automáticas: muitos serviços em nuvem oferecem atualizações automáticas
de software, garantindo que os usuários tenham acesso às últimas funcionalidades e
correções de segurança sem a necessidade de intervenção manual.
Modelo de pagamento por uso: o pagamento por uso permite que as organizações paguem
apenas pelos recursos que consomem, proporcionando eficiência financeira e eliminando
custos fixos.

Entre os benefícios da computação em nuvem, a redução de custos é um dos destaques. Por


exemplo, em vez de investir na instalação de sua própria infraestrutura de TI, um cliente pode
“alugar” servidores em um provedor.

Desafios da computação em nuvem


Vamos então discutir eventuais barreiras que podem dificultar a adoção de soluções em nuvem.
Entre os principais desafios da computação em nuvem, podemos citar:

Segurança: a segurança dos dados ainda é uma preocupação significativa. Embora os


provedores de nuvem invistam em medidas de segurança robustas, os usuários também
têm a responsabilidade de implementar práticas adequadas de segurança.
Disponibilidade e confiabilidade: a dependência de serviços em nuvem significa que a
disponibilidade está fora do controle direto da organização. Interrupções nos serviços do
provedor podem impactar as operações dos usuários.
Privacidade e conformidade: em alguns casos, regulamentações e requisitos de
conformidade podem restringir o armazenamento e o processamento de dados em nuvem.
Garantir a conformidade é crucial, especialmente em setores altamente regulamentados.
Integração de sistemas: migrar sistemas existentes para a nuvem e garantir uma
integração eficiente pode ser um desafio. A interoperabilidade entre sistemas locais e
serviços em nuvem pode exigir esforço adicional.
Latência e desempenho: dependendo da localização dos centros de dados do provedor de
nuvem, pode haver latência na comunicação, afetando o desempenho em tempo real de
Disciplina

COMPUTAÇÃO EM NUVEM

certas aplicações.
Gestão de custos: embora a nuvem ofereça eficiência de custos, a gestão adequada dos
custos pode ser desafiadora. Sem monitoramento cuidadoso, os custos podem aumentar à
medida que os recursos são consumidos.
Dependência de fornecedores: as organizações que dependem exclusivamente de um
provedor de nuvem podem enfrentar desafios em termos de flexibilidade e portabilidade.
Evitar um bloqueio de fornecedor é uma consideração importante.

Vimos que há algumas preocupações relevantes que precisam ser consideradas quando da
migração de uma aplicação para uma nuvem ou da contratação de um serviço. Por outro lado,
esses desafios podem ser vistos como oportunidades (Armbrust, 2010). O mercado de
computação em nuvem continua crescendo e novas tecnologias e modelos têm sido utilizados
para atenuar essas barreiras. Depois da apresentação dos conceitos básicos nesta seção, nas
próximas, vamos aprofundar nosso estudo e descrever os principais modelos de serviço em
nuvem, assim como as abordagens para implantação da infraestrutura dos provedores.

Em geral, a computação em nuvem oferece muitos benefícios, mas é importante que as


organizações considerem e gerenciem cuidadosamente esses desafios para garantir uma
implementação bem-sucedida e segura.

Vamos Exercitar?

Desafios para sistema de prontuário eletrônico na nuvem


Descrição da situação-problema

Considere uma rede pública de hospitais que faz uso de um sistema de prontuário eletrônico
para atender os pacientes de forma mais ágil e eficiente. A rede conta com profissionais de TI e
infraestrutura própria na qual está implantado o sistema há alguns anos. O sistema inclui uma
base com grande volume de dados sobre o histórico médico dos pacientes.

A fim de reduzir os gastos com os recursos de TI, a rede hospitalar decidiu migrar o sistema para
um provedor de computação em nuvem. No entanto, como analista de TI da rede hospitalar, você
sugere a necessidade de especificar um plano de contingência para o caso de ocorrer algum
problema, pois os hospitais não podem interromper o atendimento aos pacientes. Dessa forma,
um dos diretores do hospital lhe faz o seguinte questionamento: quais são os riscos envolvidos
na migração para o ambiente de nuvem?

Resolução da situação-problema

Existem diversos riscos, entre os quais podemos destacar:

Risco de violação de privacidade dos dados médicos dos pacientes. Como os dados serão
transmitidos pela rede dos dispositivos de acesso para o provedor, existe a possibilidade de
Disciplina

COMPUTAÇÃO EM NUVEM

que eles sejam interceptados por agentes maliciosos, o que seria um problema crítico.
Outra possibilidade ligada à segurança é o eventual compartilhamento de recursos no
provedor, por exemplo, se as máquinas virtuais alocadas para a rede hospitalar estiverem
no mesmo servidor físico no qual estejam também máquinas virtuais de outros clientes.
Caso não haja isolamento e proteção dos dados de forma adequada, os dados médicos
podem ser violados.
Risco de os dados serem armazenados fora de região permitida. Em geral, os provedores
de computação em nuvem possuem vários centros de dados em diferentes regiões,
inclusive em países diferentes. Como se trata de uma rede pública e de dados médicos,
pode haver restrições legais sobre os dados armazenados em outras regiões. Por exemplo,
existem dados de órgãos públicos federais que não podem ser armazenados em outros
países. Mesmo que a rede hospitalar escolha um centro de dados em uma região
permitida, é preciso estar atento para que réplicas dos dados não sejam criadas em outras
regiões.
Risco de indisponibilidade do serviço: se houver falha no provedor ou nos enlaces de
comunicação, o sistema não poderá ser acessado remotamente. O desempenho da rede e
a confiabilidade do provedor são críticos para operação do sistema.

Saiba mais

Para saber mais sobre a definição de computação em nuvem, acesse o material O que é
computação na nuvem? da Google Cloud.

Referências

ERL, T.; PUTTINI, R.; MAHMOOD, Z. Cloud Computing: Concepts, Technology & Architecture. [S.l.]
Prentice Hall, 2013.

MELL, P.; GRANCE, T. The NIST definition of cloud computing. [s.L.] National Institute of
Standards and Technology, 2011. Disponível em: https://doi.org/10.6028/NIST.SP.800-145
Acesso em: 18 jan. 2024.

SOUSA, F. R. C.; MOREIRA, L. O.; MACHADO, J. C. Gerenciamento de dados em nuvem: conceitos,


sistemas e desafios. Disponível em:
https://sol.sbc.org.br/livros/index.php/sbc/catalog/download/18/81/167-1?inline=1 Acesso em:
18 jan. 2024.

Aula 2
Modelos de Serviço em Computação em Nuvem
Disciplina

COMPUTAÇÃO EM NUVEM

Modelos de Serviço em Computação em Nuvem

Este conteúdo é um vídeo!


Para assistir este conteúdo é necessário que você acesse o AVA pelo
computador ou pelo aplicativo. Você pode baixar os vídeos direto no aplicativo
para assistir mesmo sem conexão à internet.
Dica para você
Aproveite o acesso para baixar os slides do vídeo, isso pode deixar sua
aprendizagem ainda mais completa.

Olá estudante! Nesta videoaula, você irá conhecer sobre os modelos de serviço em Computação
em Nuvem.
Existem três principais modelos: IaaS (Infraestrutura como Serviço), PaaS (Plataforma como
Serviço) e SaaS (Software como Serviço). Esses modelos representam diferentes níveis de
abstração e responsabilidade, proporcionando flexibilidade aos usuários, dependendo de suas
necessidades e capacidades técnicas. A escolha entre esses modelos depende dos requisitos
específicos do projeto e das preferências de gerenciamento de infraestrutura.
Esse conteúdo é importante para a sua prática profissional, pois a compreensão dos modelos de
serviço em computação em nuvem é essencial para otimizar a utilização de recursos, garantir
segurança e conformidade, e impulsionar a inovação nas organizações. Ela desempenha um
papel central na tomada de decisões estratégicas e na eficácia operacional em um ambiente de
nuvem.
Prepare-se para essa jornada de conhecimento! Vamos lá!!!

Ponto de Partida

Caro, estudante. Nesta unidade, veremos os modelos de serviço em computação em nuvem.

Vamos descrever os principais modelos de serviço no contexto de computação em nuvem:


Infraestrutura como Serviço (IaaS), Plataforma como Serviço (PaaS) e Software como Serviço
(SaaS). O modelo de serviço define o nível de controle que o cliente tem sobre os recursos
alocados no provedor. No modelo IaaS, o cliente pode alocar capacidade computacional na
forma de recursos computacionais virtualizados. Assim, o cliente pode alocar, no provedor, uma
infraestrutura, por exemplo, com a capacidade desejada de processamento e armazenamento de
dados. A alocação desses recursos possibilita que o cliente tenha controle da escolha do
sistema operacional que será utilizado nos servidores alocados. No modelo PaaS, o cliente não
tem controle sobre a infraestrutura, mas ele recebe do provedor um ambiente já configurado,
pronto para o desenvolvimento de aplicações. O cliente escolhe apenas a plataforma de
desenvolvimento, tal como linguagem de programação e banco de dados. No modelo SaaS, o
cliente acessa aplicações e não tem nenhum controle sobre os recursos computacionais
Disciplina

COMPUTAÇÃO EM NUVEM

disponíveis no provedor. Um dos aspectos importantes para escolher o modelo de serviço é


entender a relação entre nível de abstração e de controle, conforme os requisitos do cliente. Uma
das principais características da computação em nuvem é a abstração da complexidade dos
recursos computacionais alocados. O nível de abstração da complexidade está relacionado ao
nível de controle do cliente. Por exemplo, ao escolher um modelo de serviço com menor controle
do cliente sobre a infraestrutura subjacente, maior é o nível de abstração da complexidade.

Para alcançar esse objetivo, nesta aula, você vai aprender os conceitos dos modelos de serviços
de computação em nuvem. Vamos discutir, também, alguns modelos de serviços especializados.
Assim, com sua capacidade de análise crítica, como poderá escolher o modelo de serviço.

Bons estudos!

Vamos Começar!

Conceito de modelos de serviços (IaaS, SaaS e PaaS)


A computação em nuvem oferece diversos benefícios para organizações e usuários,
impulsionando a eficiência operacional, a flexibilidade e a inovação.

Vamos descrever os principais modelos de serviço no contexto de computação em nuvem:


Infraestrutura como Serviço (IaaS), Plataforma como Serviço (PaaS) e Software como Serviço
(SaaS). O modelo de serviço define o nível de controle que o cliente tem sobre os recursos
alocados no provedor. No modelo IaaS, o cliente pode alocar capacidade computacional na
forma de recursos computacionais virtualizados. Assim, o cliente pode alocar, no provedor, uma
infraestrutura, por exemplo, com a capacidade desejada de processamento e armazenamento de
dados. A alocação desses recursos possibilita que o cliente tenha controle da escolha do
sistema operacional que será utilizado nos servidores alocados. Os provedores de computação
em nuvem são as empresas responsáveis por manter a infraestrutura necessária para processar
e armazenar dados. Os provedores oferecem vários tipos de serviço, que, em geral, são
organizados em modelos de acordo com o nível de controle oferecido aos clientes em relação à
gestão e configuração dos recursos. Por exemplo, um provedor pode provisionar servidores nos
quais um cliente pode instalar um banco de dados ou um servidor web. Outros provedores
oferecem aplicações para usuários finais.

A taxonomia mais amplamente aceita, como apresentada em (MELL, 2011), define três modelos
de serviço:

Infraestrutura como Serviço (IaaS – Infrastructure as a Service).


Plataforma como Serviço (PaaS – Platform as a Service).
Software como Serviço (SaaS – Software as a Service).

No modelo IaaS, os clientes podem alocar dinamicamente recursos computacionais, como


capacidade de processamento, armazenamento ou rede (Erl; Puttini; Mahmood, 2013). Para
Disciplina

COMPUTAÇÃO EM NUVEM

tanto, os provedores fazem uso de técnicas sofisticadas de virtualização. Em geral, os


provedores mantêm centros de dados com um grande número de servidores interligados por
redes de alto desempenho. Em cada servidor (máquina física), podem ser criadas várias
máquinas virtuais. O modelo IaaS permite que o cliente possa alocar essas máquinas virtuais a
fim de montar uma infraestrutura completa de TI de acordo com suas necessidades de
processamento e armazenamento de dados. O cliente pode determinar o sistema operacional
das máquinas virtuais, sobre as quais ele tem privilégios administrativos para configurar o
ambiente como quiser. Além disso, os clientes podem configurar serviços de rede (como firewall
e DNS). Dessa forma, o cliente tem um maior controle sobre os recursos, em comparação aos
demais modelos de serviço.

A gestão dos recursos virtualizados pelo cliente pode ser feita por uma aplicação Web ou por
meio de uma API (Application Programming Interface) (Sousa; Moreira; Machado, 2009).
Utilizando a API fornecida pelo provedor, os clientes podem desenvolver programas para
automatizar a alocação e a customização dos recursos disponíveis. Assim, os clientes se
beneficiam de flexibilidade e da agilidade para ajustar a quantidade e a configuração dos
recursos de acordo com suas necessidades. Nesse contexto, o modelo IaaS viabiliza o
fornecimento de recursos de infraestrutura para o cliente montar um ambiente de TI virtualizado
sob demanda.

No modelo PaaS, o cliente se beneficia do provisionamento dinâmico de um ambiente completo


para desenvolvimento, teste e implantação de aplicações em nuvem (Sousa; Moreira; Machado,
2009). O provisionamento dinâmico significa que o provedor aloca os recursos computacionais
necessários de forma automática. Nesse caso, o cliente não precisa se preocupar com criação e
gerenciamento de máquinas virtuais. O ambiente provisionado já é uma plataforma completa
para a implementação de aplicações, com sistema operacional, servidores de aplicação,
sistemas de gerenciamento de banco de dados (SGBD), compiladores, entre outros. Além disso,
a plataforma pode oferecer também ferramentas de colaboração e gerenciamento de projetos.

Os grandes provedores no mercado oferecem plataformas customizadas para as principais


tecnologias usadas no desenvolvimento de aplicações, como Java, NodeJS e Python. A
customização da plataforma significa que o provedor é o responsável pela alocação da
infraestrutura subjacente, a instalação das tecnologias e as ferramentas necessárias para cada
ambiente de desenvolvimento oferecido. Em outras palavras, o cliente não tem controle sobre a
infraestrutura subjacente. Assim, esse modelo de serviço tem um nível de abstração maior que o
modelo IaaS, ou seja, os detalhes da infraestrutura são transparentes para o cliente. No entanto,
a infraestrutura ainda é necessária, pois a plataforma é configurada em instâncias virtuais, mas
de forma automática e dinâmica pelo provedor. Assim, o cliente pode se concentrar no
desenvolvimento de aplicações sem ter que se preocupar com o gerenciamento de servidores.
Por outro lado, o cliente corre o risco de enfrentar problemas para migrar suas aplicações, caso
ele faça uso de plataformas com tecnologias proprietárias. Por exemplo, se a aplicação
desenvolvida pelo cliente faz uso de um SGBD proprietário do provedor, ele corre o risco de não
encontrar um SGBD compatível no provedor destino para o qual ele deseja migrar. Nesse caso, o
cliente teria o trabalho de portar sua base de dados para outro SGBD, o que pode ser uma tarefa
complexa e lenta.
Disciplina

COMPUTAÇÃO EM NUVEM

O modelo com maior nível de abstração é o SaaS, que consiste em sistemas de software com
propósitos específicos, que estão disponíveis para usuários finais por meio de acesso remoto
(Internet) (Sousa; Moreira; Machado, 2009). Em geral, o provedor oferece o software na forma de
uma aplicação Web. Exemplos típicos desse modelo são aplicações office, como o Google Docs
e o Microsoft Office 365, e aplicações de gestão corporativa, como o CRM (Customer
Relationship Management) da Salesforce, que foi uma das soluções pioneiras em software como
serviço, levando a empresa a ser uma das líderes em soluções corporativas no mundo.

No modelo SaaS, o cliente não tem controle sobre a infraestrutura ou a plataforma. Em geral, ele
configura apenas as suas preferências e customiza a aplicação. A evolução das aplicações é
transparente para os clientes, que não precisam se preocupar com instalar atualizações (pois o
acesso é remoto), nem com espaço de armazenamento dos seus dados. A capacidade
computacional necessária é gerenciada pelo provedor de acordo com a demanda dos clientes.
Por exemplo, você, em algum momento, se preocupa com o backup dos documentos que você já
criou usando o Google Docs? Não, pois, no modelo SaaS, os recursos para processamento,
armazenamento de dados, backup, entre outros, são responsabilidade do provedor.

A Figura 1 ilustra a relação entre os modelos, além da opção do cliente de criar e manter um
ambiente completo de TI em suas próprias instalações (on-premise). O nível de controle
administrativo sobre os recursos é completo no modelo IaaS e limitado no modelo PaaS, e
diminui mais ainda no modelo SaaS (ERL; PUTTINI; MAHMOOD, 2013). Por outro lado, com mais
controle, o cliente também tem mais responsabilidade. Por exemplo, no modelo IaaS, o cliente é
responsável por configurações do Sistema Operacional (SO) da máquina virtual, o que tem
implicações no desempenho e na segurança do ambiente computacional.

Pode-se observar na Figura 1 que o cliente tem a responsabilidade de gerenciar todos os


elementos do seu ambiente de TI quando ele escolhe manter sua própria infraestrutura. Ao optar
por um serviço em nuvem no modelo IaaS, o cliente deixa de se preocupar com a aquisição e
manutenção de equipamentos para se atentar apenas à plataforma e aplicações. Se quiser se
concentrar apenas no desenvolvimento de software, o cliente pode, ainda, optar pelo modelo
PaaS. No último nível de abstração, estão os clientes de aplicações em nuvem que usam
software como serviço.
Disciplina

COMPUTAÇÃO EM NUVEM

Figura 1 | Modelos de serviço em computação em nuvem.

O modelo com maior nível de abstração é o SaaS, que consiste em sistemas de software com
propósitos específicos, que estão disponíveis para usuários finais por meio de acesso remoto
(Internet) (Sousa; Moreira; Machado, 2009). Em geral, o provedor oferece o software na forma de
uma aplicação Web. Exemplos típicos desse modelo são aplicações office, como o Google Docs
e o Microsoft Office 365, e aplicações de gestão corporativa, como o CRM (Customer
Relationship Management) da Salesforce, que foi uma das soluções pioneiras em software como
serviço, levando a empresa a ser uma das líderes em soluções corporativas no mundo.

Outro aspecto importante é a caracterização dos clientes típicos de cada modelo, o que nos
permite especificar “papéis” na nuvem (Souza, 2009). Em geral, serviços no modelo IaaS são
utilizados por clientes que precisam manter uma robusta infraestrutura de TI em ambiente de
nuvem. Esse é o caso de organizações que lidam com grandes volumes de dados ou que
precisam de recursos computacionais de alto desempenho e preferem realizar isso junto a um
provedor em nuvem, devido aos benefícios de redução de custos e flexibilidade administrativa.
Existe também o cenário no qual um provedor PaaS oferece seus serviços usando infraestrutura
no modelo IaaS alocada de outro provedor. Como o pagamento é pelo uso, sem custos iniciais
fixos, é comum que, mesmo empresas de pequeno porte e até desenvolvedores independentes,
usem serviços IaaS como, por exemplo, uma máquina virtual para hospedar uma aplicação ainda
em desenvolvimento com a confiabilidade e flexibilidade do ambiente de nuvem.

Por outro lado, os clientes de serviços no modelo PaaS são aqueles que necessitam de um
ambiente de desenvolvimento gerenciado, para não se preocupar com detalhes da infraestrutura
e focar na implementação de aplicações. Um exemplo são as empresas de desenvolvimento de
aplicações Web e aplicativos para dispositivos móveis. Por fim, temos que os serviços no
Disciplina

COMPUTAÇÃO EM NUVEM

modelo SaaS são direcionados para usuários finais que apenas precisam fazer uso de softwares
diversos sem qualquer interesse em lidar com as tecnologias ou equipamentos envolvidos.

Siga em Frente...

Modelos de serviço especializados: DBaaS, BaaS e BPaaS


Com o crescimento da computação em nuvem, foram criados vários modelos de serviços
especializados. Fala-se até em XaaS (Everything as a Service), que poderia ser entendido como
“qualquer coisa como serviço” ou “tudo como serviço” (Duan et al., 2015, [s.p.]).

Como não seria possível descrever tantos modelos especializados, por isso vamos discutir
alguns dos mais importantes no mercado atualmente. Não poderíamos deixar de falar do
modelo denominado Banco de Dados como Serviço (DBaaS – Database as a Service) (Sousa et
al., 2010). Esse é um caso de especialização do modelo PaaS, no qual o cliente pode criar um
banco de dados sem ter que instalar e configurar o SGBD. A infraestrutura computacional
necessária e o gerenciamento do SGBD são responsabilidades do provedor. O gerenciamento de
dados na nuvem envolve grandes desafios, por exemplo, em termos de segurança dos dados,
escalabilidade e qualidade de serviço (Sousa et al., 2010). Nesse contexto, um problema comum
é quando uma aplicação em um provedor precisa acessar um banco de dados que está em outro
provedor. Nesse caso, a latência de acesso aos dados pode comprometer o desempenho do
sistema caso a aplicação precise consultar o banco com muita frequência. O ideal é que a
aplicação e o banco de dados sejam implantados em máquinas virtuais hospedadas na mesma
máquina física ou, pelo menos, na mesma rede local, de forma que a latência seja mínima.

Os provedores de serviços no modelo DBaaS oferecem recursos avançados como suporte a


replicação e balanceamento de carga automático (Sousa, 2010). Dessa forma, os provedores são
capazes de, automaticamente, criar réplicas do banco de dados a fim de atender ao eventual
aumento no número de consultas ao banco. Assim, as requisições de acesso aos dados são
divididas entre as réplicas do banco, o que permite melhorar o desempenho do sistema. Além
disso, os serviços incluem suporte tanto para bancos relacionais como para bancos não
relacionais (NoSQL). Um exemplo do primeiro caso é o Azure SQL Server da Microsoft. Entre os
bancos não relacionais, podemos destacar o MongoDB, que também é oferecido como
plataforma na nuvem por vários provedores, como o MongoDB Atlas. Em geral, o cálculo de
tarifas relacionadas a serviços de suporte a banco de dados não é uma tarefa simples, pois os
custos envolvem os volumes de dados armazenados, a quantidade de transações no banco e o
tempo de uso das máquinas virtuais utilizadas para executar uma ou mais instâncias do SGBD.

Outro importante modelo especializado é o Backend como Serviço (BaaS – Backend as a


Service) (LANE, 2015). Esse tipo de plataforma é importante para agilizar e aprimorar o
desenvolvimento de aplicações Web e aplicativos para dispositivos móveis (Batschinski, 2016).
Nesse sentido, o serviço do provedor inclui o provisionamento de diversos recursos, tais como
armazenamento de dados e objetos, mecanismos de autenticação, etc. Esses recursos são
comuns no backend de sistemas para usuários finais. Com isso, o cliente pode focar no
Disciplina

COMPUTAÇÃO EM NUVEM

desenvolvimento do frontend, ou seja, a parte da aplicação com a qual os usuários interagem


diretamente. Essa abordagem reduz o tempo de desenvolvimento dos sistemas. Um exemplo
bastante representativo desse modelo é a plataforma Firebase da Google (Firebase, 2019). O
Firebase inclui bancos de dados com sincronização em tempo real, serviços de armazenamento
de objetos (como imagens e vídeos), soluções de autenticação baseadas em e-mail ou número
de telefone dos usuários e recursos para hospedagem de aplicações web.

Por fim, vamos destacar um último exemplo de modelo de serviço especializado: Processos de
Negócio como Serviço (BPaaS – Business Process as a Service). Esse modelo de serviço
consiste no provisionamento de ferramentas para modelagem de fluxos de trabalho, integração
de dados e aplicações corporativas em vários segmentos (Lynn, 2014). Isso permite às grandes
organizações implementar soluções de gestão coorporativa que são flexíveis e capazes de
responder prontamente a mudanças nos ambientes de negócios, sem que essas organizações
tenham que se preocupar com o gerenciamento da infraestrutura de TI necessária para operar
tais soluções.

Como escolher o modelo de serviço


A escolha do modelo de serviço na computação em nuvem depende das necessidades
específicas de sua aplicação, do controle que você deseja ter sobre a infraestrutura e dos
recursos e habilidades disponíveis em sua organização.

Ao tomar a decisão, considere fatores como complexidade do projeto, requisitos de controle,


habilidades internas, escalabilidade, custos e a rapidez com que deseja implantar e iterar em
seus serviços. Muitas vezes, uma abordagem híbrida que combina vários modelos de serviço
pode ser a mais adequada, dependendo das necessidades específicas de cada parte do seu
ambiente de TI.

Chegamos ao final de mais uma aula, na qual descrevemos os modelos de serviços básicos e
também alguns modelos especializados. É importante entender os benefícios de cada modelo e
o nível de abstração oferecido por cada um. Assim, o cliente pode fazer a escolha certa de
acordo com sua demanda e considerando o nível de controle necessários sobre os serviços e os
custos para operar e também migrar aplicações.

Vamos Exercitar?

Desenvolvimento de software na nuvem para empresas de


pequeno porte
Descrição da situação-problema

Foi solicitada a uma pequena empresa de desenvolvimento de software a criação de um sistema


de gestão de eventos. O sistema deve ter uma aplicação Web e um aplicativo para dispositivos
Disciplina

COMPUTAÇÃO EM NUVEM

móveis. A aplicação deve ter funcionalidades, como: criar um evento, verificar a programação de
um evento e fazer inscrição em uma atividade. Deve incluir, ainda, funcionalidades adicionais
para organizadores de evento, tais como validar a inscrição e registrar a presença dos
participantes por meio de QR code. Como se trata de uma empresa nova e pequena, não há
grande disponibilidade de recursos computacionais e o número de funcionários é pequeno. A
empresa, então, vai optar por um ambiente de nuvem para desenvolvimento do sistema. Nesse
caso, qual seria o modelo de serviço mais adequado: SaaS, PaaS ou IaaS?

Resolução da situação-problema

Primeiramente, já podemos descartar a opção de SaaS, pois a empresa não precisa usar um
software específico disponível na nuvem, mas desenvolver a solução conforme requisitado.

Precisamos, então, fazer uma escolha entre IaaS e PaaS. Pode-se perceber que, pela demanda
apresentada, não há necessidade do nível de controle oferecido no modelo IaaS. Portanto, pode-
se fazer uma opção por um modelo com maior nível de abstração. Além disso, se a empresa
escolhesse o modelo IaaS, ela teria que se preocupar com a instalação e configuração de todo o
ambiente necessário para desenvolvimento, teste e implantação do sistema. Essas tarefas
demandam um tempo considerável e profissionais habilitados, o que representaria um alto
investimento inicial para uma empresa pequena.

Podemos concluir que o modelo PaaS é a melhor opção. Os provedores de PaaS oferecem
ambientes para desenvolvimento e hospedagem de sistemas e bancos de dados com as
tecnologias e ferramentas mais importantes para desenvolvimento de aplicação web e
aplicativos. O ambiente é rapidamente provisionado e dispensa gerenciamento da infraestrutura,
o que agiliza e reduz os custos para desenvolvimento das soluções. Além disso, os provedores
de PaaS oferecem mecanismos de replicação e balanceamento de carga automáticos para
facilitar o trabalho de garantir a escalabilidade e desempenho da solução desenvolvida. Essas
facilidades são muito importantes, principalmente para empresas menores que não dispõem de
equipes especializadas para lidar com esses desafios.

Saiba mais

Para saber mais sobre o modelo PaaS, acesse o material O que é PaaS? da Microsoft.

Referências
DUAN, Y. et al. Everything as a Service (XaaS) on the Cloud: origins, current and future trends. In:
The IEEE 8th International Conference on Cloud Computing, 2015.

ERL, T.; PUTTINI, R.; MAHMOOD, Z. Cloud Computing: Concepts, Technology & Architecture. [S.l.]
Prentice Hall, 2013.
Disciplina

COMPUTAÇÃO EM NUVEM

LYNN, T. et al. Towards a framework for defining and categorising business Process-As-A- Service
(BPaaS). In: 21st International Product Development Management Conference, 2014.

MELL, P.; GRANCE, T. The NIST definition of cloud computing. [s.l.] National Institute of Standards
and Technology, 2011. Disponível em: https://doi.org/10.6028/NIST.SP.800-145 Acesso em: 19
jan. 2024.

SOUSA, F. R. C.; MOREIRA, L. O.; MACHADO, J. C. Gerenciamento de dados em nuvem: conceitos,


sistemas e desafios. Disponível em:
https://sol.sbc.org.br/livros/index.php/sbc/catalog/download/18/81/167-1?inline=1 Acesso em:
19 jan. 2024.

Aula 3
Modelos de Implantação em Computação em Nuvem

Modelos de Implantação em Computação em Nuvem

Este conteúdo é um vídeo!


Para assistir este conteúdo é necessário que você acesse o AVA pelo
computador ou pelo aplicativo. Você pode baixar os vídeos direto no aplicativo
para assistir mesmo sem conexão à internet.
Dica para você
Aproveite o acesso para baixar os slides do vídeo, isso pode deixar sua
aprendizagem ainda mais completa.

Olá estudante! Nesta videoaula, vamos explorar os modelos de implantação em computação em


nuvem, que se referem à forma como os serviços em nuvem são disponibilizados e acessados.
Existem três modelos principais de implantação: nuvem pública, nuvem privada e nuvem híbrida.
Entender esses modelos é fundamental para tomar decisões informadas ao implementar
soluções em nuvem, considerando os requisitos específicos de cada organização.
Esse conteúdo é importante para a sua prática profissional, para gerenciar eficientemente a
infraestrutura de TI, alinhar tecnologia com os objetivos de negócios e garantir a segurança e
eficiência operacional em ambientes de nuvem.
Prepare-se para essa jornada de conhecimento! Vamos lá!!!

Ponto de Partida
Disciplina

COMPUTAÇÃO EM NUVEM

Caro, estudante. Nesta unidade, veremos modelos de implantação em Computação em Nuvem.

Existem diversas abordagens e tecnologias que podem ser utilizadas pelos provedores no
provisionamento de serviços de computação em nuvem. Nesta aula, vamos estudar os principais
modelos e plataformas para implantação da infraestrutura de ambientes de computação em
nuvem, que são: nuvem privada e nuvem pública. No modelo de nuvem privada, o ambiente é de
uso exclusivo dos usuários de uma única organização, por exemplo, uma empresa ou uma
faculdade. Por outro lado, no modelo de nuvem pública, a infraestrutura gerenciada por um
provedor é compartilhada entre diversas organizações clientes, que podem ser empresas,
instituições ou até mesmo indivíduos. É importante entender como os modelos de implantação
impactam os usuários de serviços em nuvem em termos, principalmente de custo, controle de
acesso aos recursos e nível de segurança.

Bons estudos!

Vamos Começar!

Software de servidor para implantação de nuvens


Existem vários softwares de servidor e plataformas amplamente utilizados para a implantação e
gerenciamento de ambientes em nuvem. Esses softwares oferecem recursos para provisionar,
gerenciar, orquestrar e monitorar recursos de computação em nuvem. Aqui estão alguns dos
principais:

OpenStack: é uma plataforma de código aberto que oferece serviços de computação em


nuvem. Ele fornece componentes modulares para gerenciamento de máquinas virtuais,
armazenamento, rede, identidade e outros serviços essenciais.
VMware vSphere: é uma solução líder em virtualização que oferece recursos de
infraestrutura para criar e gerenciar ambientes de nuvem privada. Ele suporta virtualização
de servidores, armazenamento e redes.
Microsoft Hyper-V: é a plataforma de virtualização da Microsoft. Ele permite a criação e
gerenciamento de máquinas virtuais em ambientes Windows, sendo frequentemente
utilizado em implantações de nuvem privada.
KVM (Kernel-based Virtual Machine): é uma solução de virtualização de código aberto
incorporada ao kernel do Linux. Ele fornece suporte para a criação e gestão de máquinas
virtuais e é utilizado em muitas implementações de nuvem.
Docker: é uma plataforma de contêineres que simplifica a implantação de aplicativos em
nuvens e ambientes locais. Oferece uma abordagem leve e eficiente para a virtualização de
aplicativos.
Red Hat Virtualization: é uma solução de virtualização de código aberto baseada no Kernel
do Linux e no projeto oVirt. Ele oferece recursos avançados para implantação e
gerenciamento de máquinas virtuais.
Apache CloudStack: é uma plataforma de código aberto para a implementação de
infraestruturas em nuvem. Ele oferece recursos para gerenciar máquinas virtuais, redes,
Disciplina

COMPUTAÇÃO EM NUVEM

armazenamento e usuários em um ambiente de nuvem.


Ansible: é uma ferramenta de automação que pode ser usada para implantação e gestão de
infraestruturas em nuvem. Ele permite a automação de tarefas repetitivas e complexas.
HashiCorp Terraform: é uma ferramenta de código aberto da HashiCorp que permite a
criação, atualização e versionamento de infraestruturas de forma declarativa. Suporta
vários provedores de nuvem.
AWS Elastic Beanstalk: é um serviço gerenciado da Amazon Web Services (AWS) que
facilita a implantação e escalabilidade de aplicativos na nuvem sem se preocupar com a
infraestrutura subjacente.

A escolha do software dependerá das necessidades específicas da sua organização, dos


requisitos de implantação e das preferências tecnológicas. Cada uma dessas ferramentas
oferece recursos distintos para atender a diferentes cenários de implementação em nuvem.

Conceito de nuvem híbrida, nuvem privada e pública


Vamos estudar as principais soluções para implantação de uma infraestrutura de recursos de TI
a fim de viabilizar o provisionamento de serviços de computação em nuvem.

Um fator extremamente relevante no uso de serviços de computação em nuvem é escolher o


modelo de implantação adequado. Esse modelo determina como será o gerenciamento da
infraestrutura de TI. Consequentemente, os modelos de implantação definem aspectos de
controle de acesso, segurança e disponibilidade dos recursos computacionais ofertados como
serviços no ambiente de computação em nuvem. Existem quatro modelos de implantação:
nuvem privada, nuvem comunitária, nuvem pública e nuvem híbrida (Mell; Grance, 2011).

Uma nuvem privada é um ambiente de nuvem de propriedade de uma única organização (Erl;
Puttini; Mahmood, 2013). Assim, os recursos computacionais são utilizados exclusivamente pela
organização que é proprietária da infraestrutura. O modelo de implantação nuvem privada
permite que uma empresa ou instituição utilize tecnologias de computação em nuvem para
gerenciar uma infraestrutura de TI própria. Dessa forma, os recursos computacionais de uma
organização podem ser compartilhados como serviços sob demanda entre diversas unidades e
usuários internos à organização. Nesse caso, é necessário implementar políticas que restringem
o acesso aos recursos disponíveis para os membros da organização, de acordo com os
privilégios de cada um. Para isso, são necessárias tecnologias de autenticação e controle de
acesso e também a configuração adequada dos serviços de rede. Um exemplo de nuvem privada
é o caso de uma empresa que adquire uma ampla infraestrutura de TI e usa tecnologias de
computação em nuvem para gerenciar essa infraestrutura de forma centralizada. A empresa,
então, permite que seus diversos setores ou filiais aloquem recursos computacionais sob
demanda. Os níveis de acesso aos serviços e a quantidade de recursos permitidos para cada
setor da empresa podem ser diferentes.

Uma organização pode ter uma nuvem privada administrada por terceiros, nesse caso, uma
empresa especializada no provisionamento de serviços de computação em nuvem (Sousa;
Moreira; Machado, 2009). O que caracteriza a nuvem privada é o uso exclusivo dos recursos por
Disciplina

COMPUTAÇÃO EM NUVEM

uma determinada organização. Nesse caso, não importa quem é o responsável pela
administração da infraestrutura, além disso, a infraestrutura não precisa, necessariamente, ser
implantada nas instalações da própria organização. Os equipamentos podem estar instalados
em espaço geográfico fora da organização com o acesso aos serviços realizados remotamente
pela Internet.

O modelo de nuvem privada é mais apropriado para organizações que querem se beneficiar de
tecnologias de nuvem para ter flexibilidade e eficiência no compartilhamento de recursos de TI,
sem abrir mão do controle administrativo de uma infraestrutura dedicada. Porém, esse modelo
de implantação pode exigir custos altos relacionados à propriedade e exclusividade da
infraestrutura. Uma alternativa para isso é o modelo de implantação denominado nuvem
comunitária, no qual um conjunto de organizações compartilham um mesmo ambiente de
computação em nuvem (Sousa; Moreira; Machado, 2009). Assim, a infraestrutura é dedicada
para um conjunto de organizações.

Essa operação conjunta da infraestrutura pode ser motivada por interesses comuns e requer um
alinhamento em termos de requisitos de segurança e políticas de acesso. Empresas com
políticas ou interesses conflitantes poderiam ter problemas para compartilhar um ambiente de
nuvem. Em geral, a administração do ambiente é responsabilidade de um consórcio ou empresa
especializada e o acesso aos recursos é remoto. Um exemplo típico de nuvem comunitária é o
caso de um grupo de universidades que podem cooperar com recursos financeiros e
profissionais especializados para implantar um ambiente de nuvem para um projeto de pesquisa
que exige uma infraestrutura computacional de alto desempenho.

Outro modelo de implantação é a nuvem pública, em que os recursos do ambiente de


computação em nuvem são mantidos por um provedor e disponibilizados sob demanda para
qualquer empresa cliente (Sousa; Moreira; Machado, 2009). Isso representa um modelo de
negócio no qual um provedor faz o investimento na infraestrutura e assume a operação com o
intuito de faturar com a oferta de serviços de computação em nuvem ao público em geral.

O modelo de nuvem pública estabelece uma clara distinção entre o provedor e o cliente. Os
clientes podem alocar recursos computacionais sob demanda de diversos provedores sem ter
que assumir a responsabilidade e os custos associados com a gestão da infraestrutura. Além
disso, os clientes se beneficiam de escalabilidade “ilimitada”, pois eles podem alocar ou liberar
recursos dos provedores de forma rápida conforme a necessidade de suas aplicações.

É importante salientar que não é necessário optar por um modelo de implantação específico. Se
for conveniente, uma organização pode, por exemplo, fazer uso de uma nuvem privada e de uma
nuvem pública ao mesmo tempo. Esse modelo caracteriza o que se denomina uma nuvem
híbrida, ou seja, um ambiente de computação em nuvem que é a combinação de modelos de
implantação diferentes (Erl; Puttini; Mahmood, 2013). Mesmo havendo a composição de duas ou
mais infraestruturas de nuvem com modelos de implantação diferentes, a nuvem híbrida é vista
como um sistema único. Por exemplo, uma empresa pode manter diversos componentes de uma
mesma aplicação em ambientes diferentes da nuvem híbrida. Componentes que envolvem
manipulação de dados críticos ou sigilosos podem ficar em uma nuvem privada. Os demais
Disciplina

COMPUTAÇÃO EM NUVEM

componentes da aplicação podem ser hospedados em provedor de nuvem pública para fins de
escalabilidade.

Para Erl, Puttini e Mahmood (2013), nuvens híbridas representam cenários complexos, uma vez
que envolvem a divisão de responsabilidades administrativas entre os responsáveis por cada
ambiente e também devido a eventuais problemas de compatibilidade, pois cada ambiente da
nuvem híbrida pode ter configurações e tecnologias específicas. A Figura 1 ilustra um cenário no
qual a Empresa A aloca recursos do Provedor X (nuvem pública) para ampliar a capacidade de
sua nuvem privada, formando, então, uma nuvem híbrida. Parte da aplicação da Empresa A está
na nuvem privada e outra parte está na nuvem pública, compartilhada com aplicações de outras
empresas clientes do provedor. Esse cenário é interessante para o suporte a aplicações ou
serviços suscetíveis a sazonalidade, ou seja, quando a quantidade de acessos (carga de
trabalho) aumenta significativamente em determinados períodos. Por exemplo, como ocorre com
aplicações de comércio eletrônico em datas comemorativas ou na Black Friday. Nesse caso,
recursos de nuvem pública podem ser temporariamente alocados para atender ao aumento
repentino na demanda, evitando-se lentidão ou indisponibilidade dos sistemas devido à grande
quantidade de acessos dos clientes (sobrecarga).

Figura 1 | Cenário de caracterização de nuvem híbrida.

Nesse contexto de heterogeneidade, no qual um cliente pode alocar recursos computacionais em


diferentes ambientes de computação em nuvem, um aspecto muito importante é a gerência de
identidades federadas (Feliciano, 2011). Nuvens federadas são ambientes de computação em
nuvem que, mesmo administradas por provedores diferentes, compartilham recursos entre si
(Moreno-Vozmediano; Montero; Llorente, 2012). Esse compartilhamento pode se dar em vários
Disciplina

COMPUTAÇÃO EM NUVEM

níveis, mas sempre é necessário um mecanismo comum para autenticação e controle de acesso
aos recursos. Dessa forma, um cliente pode usar um mesmo identificador para acessar recursos
de diferentes provedores.

Siga em Frente...

Plataforma de computação em nuvem Open Source


Você aprendeu sobre os principais modelos conceituais para implantação de nuvens, mas uma
questão ainda não explicada é a seguinte: como gerenciar a infraestrutura de ambientes de
computação em nuvem? A resposta é: utilizando uma plataforma de computação em nuvem
(Carissimi, 2015).

Existem várias plataformas de computação em nuvem de código aberto que permitem criar e
gerenciar ambientes de nuvem.

Essa plataforma consiste no conjunto de ferramentas de software utilizado para gerenciar os


servidores e equipamentos de rede que compõem a infraestrutura sobre a qual serão
provisionados os serviços de computação em nuvem. Para dar suporte a esses serviços, a
plataforma tem que oferecer tecnologias de virtualização dos recursos computacionais de
processamento, armazenamento e transmissão de dados, assim como mecanismos para
alocação desses recursos virtualizados de forma remota, ou seja, por meio de acesso via
Internet. Em geral, os mecanismos de acesso remoto utilizam o protocolo SSH (Secure Shell) ou
o protocolo HTTP (Hypertext Transfer Protocol). O protocolo SSH oferece uma conexão por
terminal de linha de comando. Com o uso do HTTP, o gerenciamento e a alocação dos recursos
podem ser feitos por meio de uma aplicação Web.

As plataformas de computação em nuvem são também conhecidas como software de servidor


para nuvem ou sistema operacional de nuvem. Os provedores de nuvem pública muitas vezes
utilizam plataformas proprietárias para gerenciamento de sua infraestrutura, no entanto, existem
muitas plataformas de computação em nuvem distribuídas como softwares livres, que podem
ser utilizadas para a implantação de nuvens públicas ou privadas. Entre as principais
plataformas, pode-se destacar as seguintes: OpenStack, CloudStack, Eucalyptus e OpenNebula
(Thomé; Hentges; Griebler, 2013).

A plataforma OpenStack pode ser definida como “uma combinação de ferramentas open source
(conhecidas como projetos) que usam um pool de recursos virtuais para criar e gerenciar nuvens
privadas e públicas” (Redhat, 2019). O OpenStack funciona como um sistema operacional para
nuvem que permite controlar recursos de processamento, armazenamento e rede (Openstack,
2019).

A plataforma OpenStack foi criada a partir de uma colaboração entre a NASA e a empresa
Rackspace, a partir de 2010. As principais funcionalidades da plataforma incluem gerenciamento
de máquinas virtuais, orquestração de contêineres, balanceamento de carga, virtualização de
Disciplina

COMPUTAÇÃO EM NUVEM

funções de redes e controle de acesso aos recursos. Com uma arquitetura modular, a plataforma
OpenStack combina diversos módulos funcionais (chamados de projetos) (Redhat, 2019). Os
projetos básicos do OpenStack são:

Nova: gerenciamento de instâncias computacionais (por exemplo, criação de máquinas


virtuais).
Nêutron: gerenciamento de conectividade e virtualização de serviços de rede.
Swift: armazenamento distribuído de alta disponibilidade para objetos e dados não
estruturados como vídeos, backups, imagens, etc.
Cinder: gerenciamento de armazenamento em bloco (discos virtuais), por exemplo, para
criar dispositivo lógico de armazenamento persistente para máquinas virtuais.
Keystone: gerenciamento de identidades, autenticação e controle de acesso.
Glance: gerenciamento de imagens de máquinas virtuais.

Essas e outras ferramentas combinadas na plataforma OpenStack são disponibilizadas por meio
de um painel de bordo que oferece controle administrativo e funcionalidades para
provisionamento dos recursos, por meio de uma interface Web. Além da aplicação Web, as
funcionalidades podem ser acessadas por terminal de comando, SDK (Software Development
Kit) para linguagem python ou API (Application Programming Interface). O OpenStack provê um
conjunto consistente de API para abstrair os recursos virtuais e viabilizar mecanismos de
gerenciamento da infraestrutura do ambiente de computação em nuvem (Redhat, 2019).

Outra plataforma relevante é a CloudStack da Fundação Apache (Apache, 2019). Essa plataforma
pode ser usada para implantação de Nuvens privadas, públicas e híbridas. Ela foi projetada para
conseguir gerenciar redes de máquinas virtuais em larga escala e criar um ambiente de
computação em nuvem de alta disponibilidade e alta escalabilidade. Uma característica
interessante é que as tecnologias usadas nessa plataforma são compatíveis com serviços de
provedores comerciais de computação em nuvem, como o AWS EC2, o que permite a integração
de serviços para implantação de nuvens híbridas. A CloudStack permite o gerenciamento dos
recursos por meio de interface Web, ferramentas de linha de comando e API Web.

Outra solução para gerenciamento de infraestrutura de nuvem é a plataforma Eucalyptus


(Eucalyptus, 2019). Ela também oferece compatibilidade com os serviços de nuvem públicas,
como a AWS, de forma que é possível criar nuvens privadas ou híbridas. Essa plataforma suporta
diferentes tecnologias de virtualização e o gerenciamento dos recursos pode ser feito
remotamente via ferramentas de linha de comando ou interface Web. A arquitetura dessa
plataforma inclui os controladores que reúnem informações de monitoramento da infraestrutura
e permitem o acesso aos recursos da nuvem (Carissimi, 2015).

A plataforma OpenNebula é direcionada ao gerenciamento de nuvens privadas (Opennebula,


2019), mas também permite a criação de ambientes híbridos com nuvens públicas AWS e
Microsoft Azure. O foco dessa plataforma é prover uma solução leve, simples e flexível para o
uso de virtualização no gerenciamento da infraestrutura. Uma característica de destaque dessa
plataforma é o suporte para criação de nuvens federadas.
Disciplina

COMPUTAÇÃO EM NUVEM

Ao escolher uma plataforma de computação em nuvem de código aberto, é importante


considerar os requisitos específicos da sua organização, a facilidade de uso, a comunidade de
suporte, a documentação disponível e a integração com outras ferramentas e tecnologias que
você pode usar.

Vamos Exercitar?

Cloud Bursting
Descrição da situação-problema

Uma rede de ensino superior com faculdades em várias cidades deseja criar uma aplicação web
na qual os estudantes podem consultar a matriz curricular dos cursos e a oferta de disciplinas
obrigatórias e eletivas, bem como realizar a matrícula em disciplinas a cada semestre. Como o
número de estudantes nessa rede é muito grande, a escalabilidade da aplicação é um fator
relevante. A instituição decidiu utilizar uma infraestrutura em nuvem para hospedar a aplicação.
Sua tarefa, como analista de TI da rede, é avaliar qual modelo de implantação de ambiente de
nuvem deve ser utilizado para o cenário apresentado.

Resolução da situação-problema

A solução mais adequada seria o modelo de nuvem híbrida. Dessa forma, a rede de faculdades
poderia manter a base de dados da aplicação em uma nuvem privada, em suas próprias
instalações. Com o controle completo sobre os recursos dedicados, não haveria o risco de
manter os dados dos alunos em um provedor público, com recursos compartilhados com outros
clientes. Além disso, essa nuvem privada poderia ter uma capacidade reduzida, para se evitarem
altos custos com implantação e operação da infraestrutura. Porém, essa nuvem privada, com
poucos recursos, poderia não ser suficiente para manter a escalabilidade do sistema com o
aumento de carga de trabalho nos períodos de matrícula a cada semestre. Para isso, a rede de
ensino poderia alocar servidores em uma nuvem pública para hospedar apenas réplicas da
interface web do sistema, a base de dados continuaria na nuvem privada. Os servidores no
provedor de nuvem pública seriam mantidos somente durante os períodos de matrícula, a fim de
evitar eventual degradação de desempenho da aplicação. Fora dos períodos de matrícula,
quando as consultas ao sistema são reduzidas, os recursos na nuvem pública poderiam ser
liberados para redução de custos. Esse procedimento, característico de nuvem híbrida, que
consiste em usar recursos adicionais de uma nuvem pública para aumentar temporariamente a
capacidade de uma aplicação inicialmente hospedada em nuvem privada, é denominado Cloud
Bursting.

Saiba mais
Disciplina

COMPUTAÇÃO EM NUVEM

Além da nuvem híbrida, a Nuvem Privada Virtual (VPC – Virtual Private Cloud) é outro modelo
que busca aproveitar as vantagens tanto de nuvens públicas quanto privadas (Wood, 2009). Uma
VPC consiste na alocação de recursos computacionais em um provedor de nuvem pública de
forma dedicada para uma organização. Dessa forma, é como se uma nuvem privada fosse criada
em um provedor de nuvem pública. Para isso, são usados mecanismos de autenticação e
criptografia para isolar os recursos alocados dos demais clientes da nuvem pública. Assim, a
VPC envolve também virtualização de recursos de rede para criar uma rede privada virtual no
ambiente de nuvem pública. Esse modelo de nuvem privada virtual também é considerado uma
forma menos complexa de migração para ambiente de nuvem (Zhang, 2010).

Referências

ERL, T.; PUTTINI, R.; MAHMOOD, Z. Cloud Computing: Concepts, Technology & Architecture. [S.l.]
Prentice Hall, 2013.

FELICIANO, G. et al. Gerência de identidades federadas em nuvens: Enfoque na utilização de


soluções abertas. In: XI Simpósio Brasileiro de Segurança da Informação e de Sistemas
Computacionais (SBSeg), 2011.

MELL, P.; GRANCE, T. The NIST definition of cloud computing. [s.l.] National Institute of Standards
and Technology, 2011. Disponível em:
https://nvlpubs.nist.gov/nistpubs/Legacy/SP/nistspecialpublication800-145.pdf Acesso em: 20
jan. 2024.

MORENO-VOZMEDIANO, R.; MONTERO, R. S.; LLORENTE, I. M. IaaS Cloud Architecture: From


Virtualized Datacenters to Federated Cloud Infrastructures. Computer, 2012.

OPENSTACK. What is OpenStack? Disponível em: https://www.openstack.org/software/ Acesso


em: 20 jan. 2024.

REDHAT. Introdução ao OpenStack. Disponível em: https://www.redhat.com/pt-


br/topics/openstack Acesso em: 20 jan. 2024.

Aula 4
Elasticidade e Escalabilidade

Elasticidade e Escalabilidade

Este conteúdo é um vídeo!


Disciplina

COMPUTAÇÃO EM NUVEM

Para assistir este conteúdo é necessário que você acesse o AVA pelo
computador ou pelo aplicativo. Você pode baixar os vídeos direto no aplicativo
para assistir mesmo sem conexão à internet.
Dica para você
Aproveite o acesso para baixar os slides do vídeo, isso pode deixar sua
aprendizagem ainda mais completa.

Olá estudante! Nesta videoaula, vamos explorar os conceitos de elasticidade e escalabilidade,


fundamentais em ambientes de computação em nuvem. Ao entender e aplicar a elasticidade e
escalabilidade, os profissionais podem criar e gerenciar infraestruturas mais eficientes, flexíveis e
capazes de lidar com as demandas dinâmicas dos ambientes de computação em nuvem.
Para a aplicação efetiva de elasticidade e escalabilidade é vital para a eficiência operacional a
economia de custos e a capacidade de resposta rápida às mudanças no cenário tecnológico e de
negócios. Profissionais que dominam esses conceitos estão melhor preparados para enfrentar
os desafios dinâmicos dos ambientes de computação em nuvem e para contribuir para o
sucesso organizacional.
Prepare-se para essa jornada de conhecimento! Vamos lá!!!

Ponto de Partida

Caro, estudante. Nesta aula, veremos elasticidade e escalabilidade, dois conceitos relacionados
na computação, especialmente quando se trata de infraestrutura em nuvem. Ambos se referem à
capacidade de um sistema ou serviço de se adaptar às demandas variáveis.

Vamos começar a estudar o universo de escalabilidade e elasticidade, pois ela oferece


vantagens significativas e permite que as organizações ajustem dinamicamente seus recursos
de computação para lidar com picos de demanda ou períodos de baixa atividade, resultando em
uma utilização eficiente dos recursos.

Bons estudos!

Vamos Começar!

Conceito de elasticidade e como os recursos podem ser


dimensionados automaticamente para atender à demanda
A elasticidade é a capacidade de um sistema ou aplicação ajustar dinamicamente seus recursos
de computação de acordo com as demandas variáveis da carga de trabalho. Isso envolve a
capacidade de escalar para cima (aumentar recursos) ou para baixo (diminuir recursos)
Disciplina

COMPUTAÇÃO EM NUVEM

conforme necessário, permitindo que o sistema mantenha o desempenho e a eficiência


operacional sob condições de demanda flutuante.

Os recursos podem ser dimensionados automaticamente:

Máquinas Virtuais (VM) e Contêineres são unidades isoladas de computação que podem
ser rapidamente provisionadas ou desativadas conforme necessário. Sistemas de
gerenciamento de contêineres, como Kubernetes, facilitam a orquestração dinâmica
dessas instâncias, ajustando automaticamente o número de VM ou contêineres em
execução para atender à carga de trabalho.
Autoescalonamento automático: os serviços em nuvem frequentemente oferecem recursos
de autoescalonamento automático. Com base em métricas como utilização de CPU,
tráfego de rede ou outras métricas personalizadas, os recursos são escalados
automaticamente para cima ou para baixo. Por exemplo, se a utilização de CPU atingir um
determinado limiar, mais instâncias podem ser provisionadas automaticamente.
Balanceamento de Carga Dinâmico: distribui automaticamente o tráfego entre várias
instâncias para otimizar o desempenho. Se a carga aumentar, novas instâncias podem ser
adicionadas ao pool e, se a carga diminuir, instâncias podem ser removidas.
Políticas de Dimensionamento Automático: permitem que os administradores definam
regras específicas para escalar recursos automaticamente. Essas políticas podem ser
baseadas em horários específicos, métricas de desempenho ou outras condições
predefinidas.
Funções de Serviço sem Estado (Serverless): são Arquiteturas serverless, como AWS
Lambda ou Azure Functions, eliminam a necessidade de provisionar e gerenciar
diretamente servidores. Recursos são provisionados automaticamente para atender às
demandas conforme as funções de serviço são acionadas.
Redimensionamento Dinâmico de Armazenamento: além do redimensionamento de
recursos computacionais, a elasticidade também pode envolver o redimensionamento
dinâmico de armazenamento. Isso permite que a capacidade de armazenamento seja
ajustada automaticamente com base nas necessidades.
Monitoramento em Tempo Real com ferramentas, como Prometheus ou AWS CloudWatch,
são essenciais para fornecer informações contínuas sobre o desempenho do sistema.
Esses dados são usados para acionar ações automáticas de escalabilidade.

A automação desempenha um papel crucial na implementação bem-sucedida da elasticidade,


permitindo que os sistemas respondam rapidamente às mudanças nas condições operacionais.
Ao utilizar essas práticas, as organizações podem garantir que seus recursos de nuvem se
adaptem de maneira eficiente às demandas variáveis, otimizando custos e desempenho.

Diferentes métodos de escalabilidade (horizontal e vertical)


A escalabilidade pode ser alcançada de duas maneiras principais: escalabilidade horizontal e
escalabilidade vertical. Cada método tem suas características distintas e é aplicado em
diferentes cenários, dependendo das necessidades específicas do sistema.
Disciplina

COMPUTAÇÃO EM NUVEM

Escalabilidade horizontal

A escalabilidade horizontal envolve adicionar mais instâncias idênticas (máquinas virtuais,


contêineres, servidores) ao sistema para distribuir a carga de trabalho.

Características:

Distribuição de carga: a carga é distribuída entre várias instâncias, permitindo uma melhor
distribuição do tráfego e evitando gargalos em uma única máquina.

Facilidade de adição/remoção: novas instâncias podem ser adicionadas ou removidas


conforme necessário, proporcionando flexibilidade dinâmica.
Escalabilidade horizontal na nuvem: ambientes de nuvem são particularmente adequados
para escalabilidade horizontal, permitindo adicionar ou remover recursos conforme a
demanda.

Exemplo: se um aplicativo web está experimentando um aumento repentino no tráfego, mais


instâncias de servidores web podem ser provisionadas automaticamente para lidar com a carga
adicional.

Escalabilidade vertical

A escalabilidade vertical envolve aumentar ou diminuir a capacidade de uma única instância,


adicionando mais recursos à mesma máquina.

Características:

Aumento de recursos: adição de CPU, memória, armazenamento ou outros recursos a uma


máquina existente para atender às demandas crescentes.
Complexidade e Downtime: pode envolver períodos de inatividade e é geralmente mais
complexa do que a escalabilidade horizontal.
Limites físicos: existe um limite para o quanto uma única máquina pode ser escalada
verticalmente devido a limitações físicas.

Exemplo: se um banco de dados em um servidor único está sobrecarregado, pode-se escalá-lo


verticalmente adicionando mais CPU ou RAM à mesma máquina para melhorar o desempenho.

Custo

Escalabilidade horizontal: geralmente mais econômica, pois envolve a adição de instâncias


menos dispendiosas.
Escalabilidade vertical: pode ser mais cara, pois muitas vezes requer hardware mais
potente.

Complexidade
Disciplina

COMPUTAÇÃO EM NUVEM

Escalabilidade horizontal: geralmente é mais fácil de implementar e manter, pois não requer
ajustes na configuração de uma única instância.
Escalabilidade vertical: pode ser mais complexa e pode exigir períodos de inatividade
durante o processo de escalonamento.

Limitações

Escalabilidade horizontal: pode haver limitações no número de instâncias que podem ser
gerenciadas eficientemente.
Escalabilidade vertical: limitada pelos recursos físicos disponíveis em uma única máquina.

Em muitos casos, uma combinação de escalabilidade horizontal e vertical é usada para atender
às demandas variáveis dos sistemas na nuvem, proporcionando flexibilidade e eficiência
operacional.

Siga em Frente...

Como a elasticidade e a escalabilidade contribuem para a


otimização do uso de recursos e a redução de custos
Elasticidade e escalabilidade são conceitos-chave na otimização do uso de recursos e na
redução de custos na computação em nuvem. Ambos permitem que as organizações ajustem
dinamicamente seus ambientes de TI para atender à demanda flutuante, resultando em eficiência
operacional e financeira. Aqui estão algumas maneiras pelas quais esses conceitos contribuem
para a otimização de recursos e redução de custos:

Uso eficiente de recursos:

Elasticidade: permite a alocação dinâmica e automática de recursos conforme a demanda,


evitando subutilização durante períodos de baixa demanda e provisionando
automaticamente mais recursos quando necessário.
Escalabilidade: permite adicionar ou remover recursos de maneira eficiente, distribuindo a
carga de trabalho de maneira equitativa entre instâncias ou ajustando verticalmente as
instâncias conforme a necessidade.

Pagamento por uso:

Elasticidade: os modelos de elasticidade geralmente são baseados em pagamento por uso,


em que os recursos consumidos são proporcionais à demanda real. Isso evita gastos
desnecessários em recursos não utilizados.
Escalabilidade: a escalabilidade permite ajustar os recursos de acordo com as
necessidades específicas, evitando a necessidade de investimentos antecipados em
infraestrutura que podem não ser totalmente utilizados.
Disciplina

COMPUTAÇÃO EM NUVEM

Resposta dinâmica a mudanças de carga:

Elasticidade: a resposta automática às mudanças na carga de trabalho garante que os


recursos estejam sempre alinhados com a demanda real, otimizando a eficiência
operacional.
Escalabilidade: permite que os sistemas respondam proativamente a picos de tráfego,
garantindo que os recursos estejam disponíveis quando necessário e evitando interrupções
ou degradação de desempenho.

Redução de custos operacionais:

Elasticidade: ao ajustar dinamicamente os recursos, as operações manuais de


provisionamento e desaprovisionamento são reduzidas, resultando em menor carga
operacional e menor probabilidade de erros humanos.
Escalabilidade: a automação e a capacidade de escalonamento horizontal reduzem a
necessidade de intervenção manual, tornando as operações mais eficientes.

Otimização de infraestrutura subutilizada:

Elasticidade: evita a subutilização de recursos durante períodos de baixa demanda,


garantindo que apenas os recursos necessários estejam em operação.
Escalabilidade: permite a expansão ou redução rápida e eficiente de recursos, otimizando a
infraestrutura para atender às necessidades atuais.

Flexibilidade e agilidade:

Elasticidade: proporciona flexibilidade para adaptar rapidamente os recursos à medida que


os requisitos do negócio mudam.
Escalabilidade: oferece agilidade na expansão ou contratação de recursos, permitindo que
as organizações respondam rapidamente às mudanças nas condições do mercado.

Ao implementar estratégias eficazes de elasticidade e escalabilidade, as organizações podem


garantir que estão utilizando seus recursos de maneira eficiente, otimizando os custos
operacionais e proporcionando uma infraestrutura ágil e adaptável às demandas do ambiente de
negócios.

Vamos Exercitar?

Venda de produtos online


Descrição da situação-problema
Disciplina

COMPUTAÇÃO EM NUVEM

Imagine uma empresa de comércio eletrônico que vende produtos online. Durante a Black Friday,
a demanda por seus produtos aumenta significativamente, resultando em picos de tráfego no
site. A infraestrutura atual não é dimensionada para lidar com esses picos, e a equipe de TI está
preocupada com a possibilidade de a experiência do usuário ser prejudicada devido à lentidão ou
falhas no site.

Resolução da situação-problema

A ideia é implementar uma estratégia de elasticidade para ajustar dinamicamente os recursos


com base na demanda. A infraestrutura existente não é facilmente escalável devido à falta de
automação. Utilizar serviços de nuvem que oferecem recursos de elasticidade automática, por
exemplo, adotar instâncias autoescaláveis em uma plataforma de nuvem como AWS, Azure ou
Google Cloud. Fazer um monitoramento em tempo real: a equipe precisa estar ciente dos picos
de tráfego para acionar a elasticidade e implementar ferramentas de monitoramento que
rastreiem métricas como utilização de CPU, tráfego de rede e desempenho do site. Configurar
alertas para acionar automaticamente o provisionamento adicional de recursos.

Saiba mais
Para saber mais, leia sobre elasticidade em computação em nuvem: o que é, qual a sua função?

Referências

CARVALHO, A. C. P. L. F.; LORENA, A. C. Introdução à Computação, 2017.

ERL, T.; PUTTINI, R.; MAHMOOD, Z. Cloud Computing: Concepts, Technology & Architecture. [S.l.]
Prentice Hall, 2013.

MEIRELES A.; OLIVEIRA, H. S.; PICHETTI, R. F. Cloud Computing, 2020.

Aula 5
Encerramento da Unidade

Videoaula de Encerramento

Este conteúdo é um vídeo!


Disciplina

COMPUTAÇÃO EM NUVEM

Para assistir este conteúdo é necessário que você acesse o AVA pelo
computador ou pelo aplicativo. Você pode baixar os vídeos direto no aplicativo
para assistir mesmo sem conexão à internet.
Dica para você
Aproveite o acesso para baixar os slides do vídeo, isso pode deixar sua
aprendizagem ainda mais completa.

Olá, estudante! Nesta videoaula, exploraremos os diversos modelos de serviços em nuvem,


destacando suas características distintas, benefícios e desafios associados. Compreender esses
modelos é essencial para tomar decisões informadas ao escolher a abordagem de nuvem mais
adequada para atender às necessidades específicas de uma organização. Vamos mergulhar nos
três principais modelos: Infraestrutura como Serviço (IaaS), Plataforma como Serviço (PaaS) e
Software como Serviço (SaaS).
1. Infraestrutura como Serviço (IaaS):
Características:

Fornece recursos de infraestrutura virtualizados, como máquinas virtuais, armazenamento


e redes.
Os usuários têm controle total sobre o sistema operacional, aplicativos e configurações.

Benefícios:

Escalabilidade e flexibilidade para provisionar recursos conforme necessário.


Controle granular sobre a infraestrutura, adequado para cargas de trabalho personalizadas.

Desvantagens:

Requer habilidades técnicas para gerenciar e configurar a infraestrutura.


Maior responsabilidade do usuário em termos de manutenção e atualizações.

2. Plataforma como Serviço (PaaS):


Características:

Oferece uma plataforma completa para desenvolvimento e implantação de aplicativos.


Abstrai a complexidade da infraestrutura subjacente, permitindo que os desenvolvedores
foquem no código.

Benefícios:

Acelera o desenvolvimento de aplicativos, reduzindo a complexidade operacional.


Menos preocupações com configurações de infraestrutura, permitindo foco no código e na
lógica do aplicativo.

Desvantagens:

Menos controle sobre a infraestrutura comparado ao IaaS.


Disciplina

COMPUTAÇÃO EM NUVEM

Restrições nas tecnologias e ferramentas disponíveis podem ser limitantes.

3. Software como Serviço (SaaS):


Características:

Oferece aplicativos prontos para uso através da internet, sem a necessidade de instalação
local.
A manutenção e atualizações são gerenciadas pelo provedor de serviços.

Benefícios:

Acesso imediato a aplicativos sem a necessidade de instalação ou configuração.


Menor carga de gerenciamento para os usuários, pois as atualizações são automáticas.

Desvantagens:

Personalização limitada em comparação com soluções locais.


Dependência da conectividade com a internet para acessar os serviços.

Ao entender as nuances de cada modelo de serviço em nuvem, os profissionais podem tomar


decisões informadas ao planejar a transição para a nuvem. A escolha entre IaaS, PaaS ou SaaS
dependerá das necessidades específicas de uma organização em termos de controle,
flexibilidade e complexidade operacional. Esses modelos oferecem um panorama abrangente
das opções disponíveis, capacitando as organizações a alavancar os benefícios da computação
em nuvem de maneira eficaz.
Prepare-se para essa jornada de conhecimento! Vamos lá!!!

Ponto de Chegada

Olá, estudante! Para desenvolver a competência desta Unidade, que é conhecer e exemplificar os
fundamentos, os modelos e as características essenciais da oferta de serviços em um ambiente
de computação nuvem, você deverá primeiramente conhecer os conceitos fundamentais de
computação em nuvem, modelos de serviços, modelos de implantação e elasticidade e
escalabilidade.

Vamos explorar cada componente:

Fundamentos da computação em nuvem:

A computação em nuvem refere-se à entrega de serviços de computação, como armazenamento,


processamento, rede e software, pela internet. Características essenciais:

Autoatendimento sob demanda: os usuários podem provisionar recursos conforme


necessário, sem a necessidade de intervenção humana.
Disciplina

COMPUTAÇÃO EM NUVEM

Acesso amplo à rede: os serviços são acessíveis pela internet, proporcionando


disponibilidade global.
Agrupamento de recursos: os recursos em nuvem são agrupados e compartilhados para
atender a múltiplos clientes.

Modelos de serviço em computação em nuvem:

IaaS (Infraestrutura como Serviço): fornece recursos de infraestrutura, como servidores


virtuais e armazenamento, permitindo que os usuários construam e gerenciem suas
próprias plataformas.
PaaS (Plataforma como Serviço): oferece uma plataforma completa para desenvolvimento
e execução de aplicativos, eliminando a necessidade de gerenciar a infraestrutura
subjacente.
SaaS (Software como Serviço): oferece aplicativos prontos para uso por meio da internet,
sem a necessidade de instalação local.

Modelos de implantação em computação em nuvem:

Nuvem pública: recursos são oferecidos por provedores de serviços em nuvem e


compartilhados por múltiplos clientes.
Nuvem privada: recursos são dedicados a uma única organização, oferecendo maior
controle e privacidade.
Nuvem híbrida: combina elementos de nuvens públicas e privadas, permitindo a
transferência de dados e aplicativos entre os ambientes.

Características essenciais da oferta de serviços em nuvem:

Elasticidade: a capacidade de dimensionar recursos para cima ou para baixo conforme a


demanda, proporcionando flexibilidade.
Escalabilidade: a capacidade de lidar com aumentos ou diminuições na demanda
mantendo o desempenho.
Automação: a utilização de recursos automatizados para provisionamento, gerenciamento
e otimização.
Medição de serviços: a capacidade de medir e monitorar o uso de recursos, permitindo a
cobrança com base no consumo.

É Hora de Praticar!
Disciplina

COMPUTAÇÃO EM NUVEM

Este conteúdo é um vídeo!


Para assistir este conteúdo é necessário que você acesse o AVA pelo
computador ou pelo aplicativo. Você pode baixar os vídeos direto no aplicativo
para assistir mesmo sem conexão à internet.

Utilizando a Computação em Nuvem na Empresa Alfa LTDA.


Descrição da situação-problema
A Empresa Alfa Ltda., uma empresa de consultoria de pequeno porte, enfrenta desafios
relacionados à sua infraestrutura de TI desatualizada. Com a crescente demanda por
flexibilidade, escalabilidade e inovação, a liderança da empresa reconhece a necessidade de
explorar soluções de computação em nuvem. No entanto, eles estão incertos sobre como iniciar
essa transição de maneira eficaz.
Desafios identificados:

Infraestrutura desatualizada: a infraestrutura atual da Empresa Alfa é composta por


servidores locais e sistemas herdados, tornando-a menos adaptável às demandas
dinâmicas do mercado.
Limitações de escalabilidade: a capacidade limitada de escalabilidade da infraestrutura
existente impede a empresa de atender eficientemente a picos de demanda ou expandir
suas operações.
Dificuldades em inovar rapidamente: a infraestrutura legada dificulta a implementação
rápida de novas tecnologias, impedindo a empresa de se manter competitiva e inovadora.

Diante desses desafios, a liderança da Empresa Alfa se pergunta: como a adoção da


computação em nuvem pode ajudar a modernizar nossa infraestrutura de TI, promover a
escalabilidade e permitir uma inovação mais ágil?

Como a computação em nuvem transformou a abordagem tradicional de provisionamento


de recursos de TI e quais são os impactos dessa transformação nas organizações?
Quais são os desafios éticos e de segurança associados ao armazenamento e
processamento de dados sensíveis em ambientes de computação em nuvem, e como as
organizações podem abordar essas preocupações de maneira eficaz?
Considere as implicações éticas e de segurança relacionadas à confiança e privacidade
dos dados em nuvem, destacando estratégias e práticas recomendadas para mitigar esses
desafios. De que forma a computação em nuvem está moldando a inovação tecnológica e
possibilitando o desenvolvimento de novas aplicações e serviços?

Resolução da situação-problema
Estratégia de adoção da computação em nuvem:
Disciplina

COMPUTAÇÃO EM NUVEM

1. Avaliação da infraestrutura atual: realizar uma análise abrangente da infraestrutura atual


para identificar sistemas críticos e requisitos específicos.
2. Planejamento de migração gradual: desenvolver um plano de migração gradual, começando
por transferir cargas de trabalho menos críticas para a nuvem. Isso permite testar a
viabilidade da nuvem antes de migrar a sistemas mais sensíveis.
3. Escolha de serviços adequados: avaliar os modelos de serviço em nuvem (IaaS, PaaS,
SaaS) para determinar qual se alinha melhor com as necessidades específicas da Empresa
Alfa.
4. Controle de custos e otimização: implementar ferramentas de monitoramento de custos
para garantir que a migração para a nuvem seja economicamente viável e otimizada.
5. Capacitação da equipe: oferecer treinamento à equipe de TI para adquirir as habilidades
necessárias para gerenciar efetivamente a infraestrutura em nuvem.

A Empresa Alfa Ltda. espera modernizar sua infraestrutura de TI, ganhando flexibilidade e
escalabilidade, permitindo uma resposta mais rápida às demandas do mercado e promovendo
uma cultura de inovação contínua.

Os conceitos fundamentais fornecem uma base sólida para compreender a computação em


nuvem. A Figura a seguir, mostra os conceitos de computação em nuvem.
Disciplina

COMPUTAÇÃO EM NUVEM

CARVALHO, A. C. P. L. F.; LORENA, A. C. Introdução à Computação, 2017.


Disciplina

COMPUTAÇÃO EM NUVEM

ERL, T.; PUTTINI, R.; MAHMOOD, Z. Cloud Computing: Concepts, Technology & Architecture. [S.l.]
Prentice Hall, 2013.
MEIRELES, A.; OLIVEIRA, H. S.; PICHETTI, R. F. Cloud Computing, 2020.
,

Unidade 2
Ofertas de Serviço em Computação em Nuvem

Aula 1
Serviços de Processamento de Dados

Serviços de Processamento de Dados

Este conteúdo é um vídeo!


Para assistir este conteúdo é necessário que você acesse o AVA pelo
computador ou pelo aplicativo. Você pode baixar os vídeos direto no aplicativo
para assistir mesmo sem conexão à internet.
Dica para você
Aproveite o acesso para baixar os slides do vídeo, isso pode deixar sua
aprendizagem ainda mais completa.

Olá, estudante! Nesta videoaula, exploraremos os serviços de processamento de dados


oferecidos pela computação em nuvem. Vamos abordar os principais conceitos, benefícios e
cenários de uso desses serviços, fornecendo uma visão abrangente das capacidades que a
nuvem oferece para o processamento eficiente e escalável de dados.
Esse conteúdo é importante para a sua prática profissional, pois a adoção de serviços de
processamento de dados em nuvem pode trazer eficiência, flexibilidade e poder computacional
para sua prática profissional, independentemente do campo em que você atua. Esses serviços
são uma parte essencial da infraestrutura tecnológica moderna.
Prepare-se para essa jornada de conhecimento! Vamos lá!!!

Ponto de Partida
Disciplina

COMPUTAÇÃO EM NUVEM

Caro estudante, nosso foco é compreender os serviços de processamento de dados que se


referem a um conjunto de recursos e ferramentas oferecidos por provedores de serviços em
nuvem para processar, transformar e analisar dados de maneira eficiente e escalável. Esses
serviços são projetados para lidar com grandes volumes de informações, executar tarefas de
processamento distribuído e fornecer soluções para análise de dados. Ao migrar um sistema
computacional para a nuvem, temos que escolher os serviços adequados para implantar cada
um dos componentes do sistema. Vamos começar a nossa abordagem com a descrição de
serviços de processamentos de dados, ou seja, instâncias que podem ser alocadas para
execução de aplicações ou serviços web.

Bons estudos!

Vamos Começar!

Serviços de rede em provedores de computação em nuvem


Os provedores de computação em nuvem oferecem uma variedade de serviços de rede que
permitem a criação, gerenciamento e otimização de infraestruturas de rede em ambientes de
nuvem. Esses serviços são projetados para atender às necessidades de conectividade,
segurança, desempenho e escalabilidade.

Alguns dos principais serviços de rede oferecidos pelos provedores de nuvem:

Virtual Private Cloud (VPC): é um serviço que permite aos usuários criar redes virtuais
isoladas em uma nuvem pública. Ela fornece controle total sobre a configuração da rede,
como definição de sub-redes, criação de gateways e configuração de regras de firewall.
Route 53 (Serviço de DNS): fornece registro de domínio, resolução de DNS e serviços de
saúde para garantir alta disponibilidade e confiabilidade para aplicativos na nuvem.
Virtual Private Network (VPN): permite a criação de conexões seguras entre a infraestrutura
na nuvem e recursos locais. Isso é útil para estabelecer redes híbridas, conectando
ambientes locais e em nuvem.
Firewall de Rede: em nuvem, permite a definição de regras de segurança para controlar o
tráfego de entrada e saída da rede, protegendo as instâncias e os recursos na nuvem.
Serviço de Logs e Monitoramento: permite aos usuários rastrear e analisar o desempenho e
a segurança de suas infraestruturas de rede.

Esses são apenas alguns exemplos de serviços de rede disponíveis em provedores de nuvem, e a
gama de ofertas pode variar de acordo com o provedor específico. A escolha dos serviços
depende das necessidades específicas de conectividade, segurança e desempenho de uma
aplicação ou sistema implantado na nuvem.

Serviços para instanciar e gerenciar containers


Disciplina

COMPUTAÇÃO EM NUVEM

Outro tipo importante de serviço para execução de aplicações é a instanciação de contêineres.


Assim, quando uma empresa cliente precisa executar uma aplicação em um provedor, ela pode
criar um contêiner para executar essa aplicação, em vez de criar uma máquina virtual. Além de
escalonamento automático, os serviços de contêineres facilitam a replicação das instâncias de
execução pois eles exigem menos recursos que as máquinas virtuais. Isso também implica em
custos mais baixos.

Quando uma empresa precisa executar uma aplicação em um provedor, ela pode criar um
contêiner para executar essa aplicação, em vez de criar uma máquina virtual. Apesar de oferecer
um nível mais baixo de isolamento e proteção se comprada às máquinas virtuais, a instanciação
por contêineres oferece:

Escalonamento automático.
Exigência de menos recursos.
Facilidade na replicação das instâncias de execução.
Custos mais baixos.

Para instanciar e gerenciar containers, diversos provedores de computação em nuvem oferecem


serviços específicos que facilitam a orquestração, a implantação e o gerenciamento eficientes
desses ambientes isolados. A seguir, veja exemplos de serviços para gerenciamento de
contêineres em provedores de nuvem pública:

Amazon Elastic Container Service (Amazon ECS) (AWS, 2019b).


Azure Container Instances (MICROSOFT, 2019a).
Google Kubernetes Engine (GOOGLE, 2019d).
IBM Cloud Kubernetes Service (IBM, 2019b).

Em geral, as aplicações de TI são sistemas complexos, compostos por vários componentes,


como bancos de dados, front-end web, entre outros. Cada um deles pode ser encapsulado em
um contêiner e, para isso, são necessárias ferramentas para o gerenciamento. A partir disso,
surgiu o conceito de orquestração de contêineres que corresponde ao processo de automatizar a
implantação, o escalonamento e o gerenciamento dessas aplicações (Yegulalp, 2019).

Ao escolher um serviço de nuvem para instanciar e gerenciar containers, é importante considerar


os requisitos específicos do projeto, a familiaridade da equipe com a tecnologia e a integração
com outros serviços do provedor de nuvem. Cada serviço tem suas próprias características e
vantagens, e a escolha dependerá das necessidades específicas de cada aplicativo ou sistema.

Siga em Frente...

Instâncias de servidores virtuais na nuvem


As instâncias de servidores virtuais na nuvem são máquinas virtuais (VM) provisionadas em
ambientes de computação em nuvem. Essas instâncias oferecem poder computacional,
Disciplina

COMPUTAÇÃO EM NUVEM

memória, armazenamento e outros recursos necessários para executar aplicativos e serviços.


Cada provedor de nuvem tem seus próprios termos para essas instâncias.

Por exemplo, se uma empresa precisa executar uma aplicação, ela deve alocar um servidor com
capacidade computacional para isso, podendo criar uma máquina virtual na nuvem em que essa
aplicação será executada.

Para provisionamento de serviços em nuvem, os provedores fazem uso de sistemas de


gerenciamento dos recursos computacionais. Um dos mecanismos mais importantes de tais
sistemas é o Gerenciador de Infraestrutura Virtual (VIM – Virtual Infrastructure Manager), que
coordena a criação de instâncias de máquinas virtuais a partir dos recursos computacionais
disponíveis no provedor (Erl; Puttini; Mahmood, 2013). Em geral, o VIM mantém um repositório
com imagens de máquinas virtuais, que são modelos pré-configurados a partir dos quais são
criadas as instâncias solicitadas pelos clientes. Cada imagem possui uma determinada
capacidade, em termos do número de núcleos de processamento e da quantidade de memória, e
um sistema operacional específico já instalado e configurado. Alguns provedores permitem
também a customização de VM, isto é, em vez de usar em um modelo predefinido, o cliente pode
configurar sua própria VM.

Com a finalidade de dar suporte a aplicações com diferentes requisitos, cada provedor oferece
vários modelos de máquinas virtuais, além de especificar o preço de cada um deles. Dessa
forma, o cliente pode criar quantas instâncias forem necessárias para atender a sua demanda de
TI. Um fator que influencia muito os preços é o tipo de alocação, sendo os dois principais:
alocação de instâncias sob demanda e alocação de instâncias reservadas (Erl; Puttini; Mahmood,
2013). A alocação sob demanda é caracterizada pelo provisionamento dinâmico da máquina
virtual no instante da solicitação, caso existam recursos disponíveis. Já a alocação de instâncias
reservadas exige que o cliente especifique previamente um compromisso de uso dos recursos.
Os provedores cobram um preço menor para as instâncias reservadas, pois a solicitação
antecipada permite melhor planejamento e otimização do uso da infraestrutura. Além disso, as
instâncias sob demanda podem ser liberadas a qualquer momento, enquanto as reservadas têm
o tempo de uso previamente especificado. Assim, é oferecido um preço menor para as instâncias
reservadas com o objetivo de que os clientes as utilizem por um período de tempo maior, o que
resulta em menos recursos ociosos no provedor. Nesse caso, o pagamento é feito de acordo
com o tempo reservado e não pelo tempo efetivo de uso.

Suponha que você precise de uma máquina com sistema Linux para executar um servidor de e-
mail ou uma máquina com sistema Windows para executar uma aplicação web. Você conhece os
serviços de computação disponíveis no mercado para alocação de máquinas virtuais? Entre eles,
podemos citar:

Amazon Elastic Compute Cloud (Amazon EC2) (AWS, 2019): é o serviço de instâncias de
máquinas virtuais da AWS. Os usuários podem escolher entre uma variedade de tipos de
instâncias, cada uma otimizada para diferentes casos de uso, como computação de
propósito geral, otimização para CPU, otimização para memória, etc.
Google Cloud Compute Enginte (Google, 2019a): fornece instâncias de máquinas virtuais
como parte de seu serviço de computação em nuvem. Os usuários podem selecionar
Disciplina

COMPUTAÇÃO EM NUVEM

instâncias otimizadas para computação, memória, armazenamento etc.


IBM Cloud Virtual Servers (IBM, 2019c): oferece servidores virtuais que os usuários podem
provisionar de acordo com suas necessidades de carga de trabalho. Eles podem ser
dimensionados vertical ou horizontalmente, conforme necessário.
Azure Virtual Machines (Microsoft, 2019): oferece máquinas VM que podem ser
dimensionadas conforme a demanda. Os usuários podem escolher entre diferentes séries
de VM, como Séries Básicas, Gerais, de Memória Otimizada, etc.

Essas instâncias de servidores virtuais na nuvem oferecem várias vantagens, incluindo


escalabilidade, flexibilidade, pagamento por uso, provisionamento rápido e a capacidade de
adaptar recursos de acordo com as demandas da carga de trabalho. Os usuários podem
escolher o tipo de instância que melhor atende às necessidades específicas de seus aplicativos,
levando em consideração requisitos de desempenho, memória, armazenamento e outros fatores.

As empresas podem usar esses serviços para alocar máquinas virtuais e, assim, construir uma
infraestrutura virtualizada na nuvem de acordo com sua demanda de capacidade computacional.
Os serviços de instanciação de máquinas virtuais oferecem mecanismos de autoescalonamento.
Isso significa que é possível habilitar a alocação automática de mais instâncias quando a
demanda aumentar ou diminuir.

Vamos Exercitar?

Desafios com a Infraestrutura de Servidores Locais


Descrição da situação-problema

Uma empresa de e-commerce está enfrentando desafios com sua infraestrutura de servidores
locais devido a picos imprevisíveis de tráfego durante promoções sazonais. A infraestrutura
existente não é escalável e não consegue lidar eficientemente com os aumentos repentinos de
demanda, resultando em tempo de inatividade, experiência do usuário prejudicada e perda de
receita. A equipe de TI busca uma solução para melhorar a escalabilidade, flexibilidade e
confiabilidade de sua infraestrutura de servidores.

Resolução da situação-problema:

Para melhorar a escalabilidade, flexibilidade e confiabilidade, algumas ações são necessárias,


como:

Escolha do provedor de nuvem: analisar os serviços de instâncias de servidores virtuais


oferecidos por provedores líderes, como AWS, Azure ou Google Cloud, levando em
consideração requisitos específicos de desempenho, segurança e custo.
Migração para instâncias de servidores virtuais: planejar e executar uma migração gradual,
transferindo cargas de trabalho para instâncias de servidores virtuais na nuvem. Utilizar
ferramentas e serviços oferecidos pelos provedores para facilitar a migração.
Disciplina

COMPUTAÇÃO EM NUVEM

Dimensionamento automático: configurar instâncias de servidores virtuais com


escalabilidade automática, permitindo que a infraestrutura seja expandida ou reduzida
dinamicamente com base na demanda.
Monitoramento e otimização: implementar ferramentas de monitoramento em tempo real
para avaliar o desempenho das instâncias de servidores virtuais. Otimizar recursos
conforme necessário para garantir eficiência e reduzir custos.
Backup e recuperação: configurar procedimentos robustos de backup e recuperação,
usando serviços disponíveis na nuvem para garantir a integridade dos dados e a rápida
recuperação em caso de falhas.
Testes de resiliência: realizar testes regulares de resiliência, como simulações de falhas e
recuperações, para garantir a confiabilidade e disponibilidade contínua do ambiente de
instâncias de servidores virtuais.

A migração para instâncias de servidores virtuais na nuvem permite à empresa de e-commerce


melhorar significativamente sua escalabilidade, flexibilidade e confiabilidade. A infraestrutura
agora é capaz de lidar eficientemente com picos de tráfego, garantindo uma experiência do
usuário consistente durante promoções sazonais. Além disso, a empresa se beneficia da
flexibilidade de pagamento por uso e da capacidade de ajustar recursos conforme necessário
para otimizar custos operacionais.

Saiba mais
Com a alocação dinâmica de máquinas virtuais, o provedor pode chegar a um cenário no qual há
servidores físicos sobrecarregados (com muitas máquinas virtuais), enquanto outros servidores
permanecem subutilizados (com poucas máquinas virtuais). Então, pode ser necessário realizar
a migração de máquinas virtuais entre servidores físicos, a fim de otimizar desempenho e
economizar energia. Para saber mais sobre migração de máquinas virtuais para economia de
energia, acesse o artigo Migração de máquinas virtuais para economia de energia.

Referências

CARVALHO, A. C. P. L. F.; LORENA, A. C. Introdução à computação. São Paulo: GEN, 2017.

ERL, T.; PUTTINI, R.; MAHMOOD, Z. Cloud Computing: Concepts, Technology & Architecture. Rio
de Janeiro: Prentice Hall, 2013.

MEIRELES, A.; OLIVEIRA, H. S.; PICHETTI, R. F. Cloud computing. Porto Alegre: SAGAH, 2020.

Aula 2
Serviços de Armazenamento e Análise de Dados
Disciplina

COMPUTAÇÃO EM NUVEM

Serviços de Armazenamento e Análise de Dados

Este conteúdo é um vídeo!


Para assistir este conteúdo é necessário que você acesse o AVA pelo
computador ou pelo aplicativo. Você pode baixar os vídeos direto no aplicativo
para assistir mesmo sem conexão à internet.
Dica para você
Aproveite o acesso para baixar os slides do vídeo, isso pode deixar sua
aprendizagem ainda mais completa.

Olá, estudante! Nesta videoaula, exploraremos os serviços de armazenamento e análise de


dados oferecidos na computação em nuvem. Vamos abordar os fundamentos dos serviços de
banco de dados em nuvem, serviços em nuvem para análise de dados e serviços em nuvem de
armazenamento de blocos e objetos.
A importância dos serviços de armazenamento e análise de dados na nuvem impulsiona a
inovação, a tomada de decisões e a eficiência operacional em diversos setores.
Esse conteúdo é importante para a sua prática profissional, pois a adoção de serviços de
armazenamento e análise de dados na nuvem é fundamental para profissionais que buscam
eficiência, inovação e tomada de decisões baseadas em dados em um ambiente de trabalho
cada vez mais orientado por informações.
Prepare-se para essa jornada de conhecimento! Vamos lá!!!

Ponto de Partida

Caro estudante, vamos continuar nossos estudos explorando novos tipos de serviços de
computação em nuvem. Nosso objetivo é conhecer serviços de armazenamento e análise de
dados para empresas e profissionais que desejam aproveitar ao máximo a capacidade da
computação em nuvem. Esses serviços fornecem soluções escaláveis, eficientes e seguras para
lidar com grandes volumes de dados, permitindo armazenamento, processamento e análise de
informações críticas para os negócios.

Esse é um grande desafio e, para tomar a decisão correta sobre a melhor solução para os dados
em nuvem, é preciso conhecer serviços de banco de dados, análise de dados e armazenamento
em nuvem. Ao final, você será capaz de identificar os cenários de uso para os principais tipos de
serviços de processamento e armazenamento de dados na nuvem.

Bons estudos!
Disciplina

COMPUTAÇÃO EM NUVEM

Vamos Começar!

Serviços de banco de dados em nuvem


Os serviços de banco de dados em nuvem oferecem opções flexíveis e escaláveis para
armazenar, gerenciar e acessar dados em ambientes de computação em nuvem. Esses serviços
eliminam a necessidade de gerenciamento de infraestrutura física e simplificam tarefas como
backup, recuperação, escalabilidade e manutenção.

A utilização de serviços de armazenamento de dados em nuvem traz uma série de vantagens,


como redução de custos; delegação (para o provedor) das tarefas de gerenciamento e
otimização dos bancos de dados e escalabilidade (Sousa et al., 2010). Além disso, devido à
elasticidade dos serviços em nuvem, a alocação de recursos de armazenamento de dados pode
ser feita de forma incremental, com o pagamento pelo uso. Assim, um cliente pode alocar mais
capacidade de armazenamento à medida que mais dados são gerados pelas aplicações.

A seguir, listamos alguns dos serviços de banco de dados em nuvem oferecidos por importantes
provedores de nuvem:

Amazon RDS (Relational Database Service): oferecido pela AWS, o Amazon RDS é um
serviço totalmente gerenciado que suporta diversos bancos de dados relacionais, como
MySQL, PostgreSQL, Oracle, SQL Server e MariaDB.
Microsoft Azure SQL Database: o serviço de banco de dados relacional da Microsoft Azure
oferece suporte a SQL Server e MySQL. Ele fornece um ambiente totalmente gerenciado,
escalável e seguro.
Google Cloud SQL: oferecido pelo Google Cloud Platform, o Cloud SQL oferece suporte a
MySQL, PostgreSQL e SQL Server. Ele fornece um ambiente gerenciado para implantação e
manutenção de bancos de dados.
Amazon DynamoDB: é um serviço de banco de dados NoSQL oferecido pela AWS. Ele
fornece armazenamento de chave-valor e é conhecido por sua escalabilidade e baixa
latência.
Microsoft Azure Cosmos DB: é um serviço de banco de dados globalmente distribuído,
multi-modelo e multi-API na plataforma Azure. Ele suporta modelos de dados como
documentos, gráficos, chaves e famílias de colunas.

Esses serviços de banco de dados em nuvem oferecem várias opções para atender a diferentes
necessidades, desde bancos de dados relacionais tradicionais até soluções NoSQL e serviços
especializados para aplicativos específicos. Ao escolher um serviço, os desenvolvedores e
arquitetos precisam considerar requisitos específicos de seus aplicativos, como desempenho,
modelo de dados, necessidades de escalabilidade e requisitos de segurança.

Serviços em nuvem para análise de dados


Disciplina

COMPUTAÇÃO EM NUVEM

Os serviços em nuvem para análise de dados fornecem soluções escaláveis e eficientes para
processamento, armazenamento e visualização de grandes conjuntos de dados. Esses serviços
facilitam a realização de análises complexas, aprendizado de máquina e geração de insights a
partir de dados.

Os serviços de banco de dados em nuvem oferecem opções flexíveis e escaláveis para


armazenar, gerenciar e acessar dados em ambientes de computação em nuvem.

Em se tratando de armazenamento de dados em nuvem, não podemos deixar de falar no


conceito de Big Data, que corresponde ao estudo e desenvolvimento de soluções para
armazenamento, transferência e análise de grandes volumes de dados (Costa, 2012). O que
caracteriza o cenário de Big Data é a velocidade que grandes massas de dados são geradas e
também a variedades dos tipos de dados que, na maioria das vezes, não são estruturados. Isso é
o resultado do crescimento exponencial de dados na Internet, com cada vez mais aplicações em
escala mundial, aplicações de streaming multimídia, soluções de Internet das Coisas, entre
outras fontes que geram dados a uma taxa crescente. Por exemplo, o sistema de vendas da
maior empresa varejista dos EUA gera um volume de 2,5 PB (Petabyte) de dados por hora
(Oussous, 2018).

O ambiente de nuvem apresenta diversas vantagens para o desenvolvimento de soluções de Big


Data, entre as quais podemos destacar: elasticidade, redução de custos e agilidade na alocação
de recursos computacionais em larga escala (Costa, 2012). De fato, há argumentos de que
Computação em Nuvem e Big Data são paradigmas inseparáveis (Hashem et al., 2015). A razão
disso é que as infraestruturas de computação em nuvem representam o ambiente computacional
que atende aos requisitos para implementação de soluções de Big Data, que exigem o
processamento distribuído de grandes volumes de dados de forma eficiente.

Essas soluções, em geral, envolvem três tarefas principais: armazenamento, análise e


visualização de dados. No Quadro 1, são descritos exemplos de serviços para análise de dados
oferecidos pelos principais provedores de nuvem pública.

Provedor Serviço Descrição


AWS Amazon EMR (AWS, O Amazon Elastic
2019d) MapReduce (ERM)
permite a criação
dinâmica de um
cluster com instâncias
de máquinas virtuais
para processamento
distribuído de dados
utilizando tecnologias
como Hadoop
(Apache, 2019), Hive
Disciplina

COMPUTAÇÃO EM NUVEM

(Huai et al., 2014) e


Spark (Zaharia, 2016).
Solução para análise
em tempo real de
dados de streaming,
Amazon Kinesis (AWS,
como dados de
2019g)
telemetria da IoT, logs
de aplicativos e
streaming de vídeo.
Solução escalável no
modelo serverless
BigQuery (Google, para aplicações de
2019a) inteligência de
Google Cloud negócios (BI –
Business Intelligence).
Serviço para extração,
Cloud Data Fusion
transformação e
(Google, 2019b)
integração de dados.
Serviço de alta
disponibilidade e
escalabilidade para
processamento
HDInsight (Microsoft,
distribuído de dados
2019g)
utilizando frameworks
Microsoft Azure de código aberto,
como Spark, Kafha e
Hadoop.
Serviço para extração,
Data Factory
transformação e
(Microsoft, 2019f)
integração de dados.

Quadro 1 | Exemplos de serviços para análise de dados.

Esses serviços fornecem uma variedade de opções para empresas que desejam realizar análises
de Big Data na nuvem, permitindo processar grandes volumes de dados de maneira eficiente e
extrair insights valiosos. A escolha do serviço dependerá dos requisitos específicos do projeto,
dos frameworks preferidos e das integrações com outros serviços em nuvem.

Siga em Frente...
Disciplina

COMPUTAÇÃO EM NUVEM

Serviços em nuvem para armazenamento em blocos e de


objetos
Existe uma grande variedade de serviços de armazenamento de dados em nuvem. Para escolher
o mais adequado, é importante avaliar como os dados devem ser estruturados, o volume de
dados a ser manipulado e os requisitos da aplicação. De acordo com Erl, Puttini e Mahmood
(2013), existem quatro tipos de serviços de armazenamento de dados em ambientes de
computação em nuvem:

Armazenamento em blocos:

Alocação de blocos em discos de armazenamento disponibilizados na infraestrutura do


provedor.
Permite ao cliente alocar blocos em unidades de armazenamento gerenciadas pelo
provedor.
As unidades podem ser acessadas remotamente por meio de uma rede de alto
desempenho dedicada para interconexão de equipa- mentos de armazenamento de dados.
Esse tipo de rede é denominado Redes de Armazenamento de Dados (SAN- Storage Area
Network) (Neto, 2007).

Armazenamento de arquivos:

Leitura e escrita em diretórios com sistema de arquivos gerenciado pelo provedor.


O cliente do provedor de nuvem pode manipular arquivos remotamente, utilizando
tecnologias para sistemas de arquivos distribuídos, como o Network File System (NFS)
(Tanenbaum, 2008) ou Server Message Block (SMB) (Gonçalves, 2018).

Armazenamento de objetos:

Repositório para itens de dados binários (como vídeos, imagens, etc.).


Solução para acesso a arquivos binários, como áudios ou fotos, por meio de um serviço
web gerenciado pelo provedor.

Armazenamento de bases de dados:

Sistemas de gerenciamento de banco de dados (SGBDs) mantidos pelo provedor. Há


suporte tanto para SBGBs relacionais, quanto não relacionais.
Disciplina

COMPUTAÇÃO EM NUVEM

Figura 1 | Tipos de serviços de armazenamento em nuvem.

O armazenamento em blocos é o modelo com menor nível de abstração entre as alternativas


para persistência de dados em provedores de nuvem (Erl; Puttini; Mahmood, 2013). De fato, o
bloco é a unidade lógica mínima de armazenamento de dados oferecida por um sistema
operacional, em se tratando de gerenciamento de unidades de memória secundária. No ambiente
de nuvem, o provedor utiliza também técnicas de virtualização para criar unidades de
armazenamento virtuais em dispositivos físicos de armazenamento, da mesma maneira como as
máquinas virtuais podem ser criadas em servidores físicos. Os dispositivos de armazenamento
físicos utilizados pelos provedores incluem HDs (Hard Disks) tradicionais, do tipo disco
magnético, e também unidades do tipo SSD (solid-state drive). As unidades virtuais de
armazenamento em bloco oferecidas pelos provedores são criadas sobre esses recursos físicos
para servir como discos das máquinas virtuais ou contêineres.

Em geral, a principal finalidade dos serviços de armazenamento em bloco na nuvem é servir


como discos para instâncias como máquinas virtuais (VM) ou contêineres, como ilustrado na
Figura 2. Essas instâncias precisam de capacidade de armazenamento de dados para executar
as aplicações. Então, quando a criação de uma instância é solicitada, o provedor cria
automaticamente uma unidade virtual de armazenamento em bloco, que é usada como disco
dessa instância, ou seja, a unidade de armazenamento em bloco é o disco da máquina virtual.
Disciplina

COMPUTAÇÃO EM NUVEM

Figura 2 | Tipos de serviços de armazenamento em nuvem.

No entanto, as unidades de armazenamento em bloco também podem ser usadas em outras


soluções, por exemplo, para implantação de algum mecanismo automático de backup de dados
na nuvem. No Quadro 2, são apresentados alguns serviços em nuvem de armazenamento em
bloco.

Provedor Serviço
Amazon Elastic Block Store
AWS (Amazon EBS) (AWS,
2019b).
Persistent Disk (Google,
Google Cloud
2019c).
Azure Disk Storage
Microsoft Azure
(Microsoft, 2019b).

Quadro 2 | Exemplos de serviços de armazenamento em bloco.


Disciplina

COMPUTAÇÃO EM NUVEM

O segundo tipo de serviço é o armazenamento de arquivos em nuvem. Nesse caso, a unidade de


armazenamento são os próprios arquivos (Erl; Puttini; Mahmood, 2013). O acesso ao serviço de
armazenamento é feito por meio de alguma tecnologia de sistema de arquivos distribuídos,
como NFS ou SMB. Esse tipo de serviço é bastante utilizado para compartilhamento de arquivos
em rede, por exemplo, para manter o diretório home dos usuários de uma rede corporativa, com
as vantagens da escalabilidade e disponibilidade do armazenamento em nuvem. Assim, os
usuários podem acessar seus arquivos de qualquer dispositivo com acesso à Internet. Exemplos
de serviços em nuvem para armazenamento de arquivos são relacionados no Quadro 3.

Provedor Serviço
Amazon Elastic File
AWS System (Amazon EFS)
(AWS, 2019c).
Cloud Filestore (Google,
Google Cloud
2019d).
Azure Files (Microsoft,
Microsoft Azure
2019b).

Quadro 3 | Exemplos de serviços de armazenamento arquivo.

O terceiro tipo de serviço de armazenamento em nuvem é o armazenamento de objetos. Nesse


caso, as unidades de armazenamento são objetos gerenciados como recursos web (Erl; Puttini;
Mahmood, 2013). Isso significa que o acesso aos dados pode ser feito na forma de requisições
HTTP. Os provedores suportam armazenamento de objetos de vários tipos, como imagens,
arquivos executáveis, vídeos, entre outros. Além disso, os provedores oferecem uma API para
que as aplicações possam manipular os objetos por meio de requisições na web, em vez de usar
linguagens de consultas comuns em gerenciadores de bancos de dados.

Provedor Serviço
Amazon Simple Storage
AWS Service (Amazon S3) (AWS,
2019h)
Google Cloud Storage
Google Cloud
(Google, 2019i)
Azure Blob Storage
Microsoft Azure
(Microsoft, 2019a)

Quadro 4 | Exemplos de serviços de armazenamento de objetos.

Por fim, o quarto tipo de serviço de armazenamento em nuvem é o armazenamento de bases de


dados. Esse modelo corresponde aos serviços de banco de dados em nuvem ou Banco de Dados
Disciplina

COMPUTAÇÃO EM NUVEM

como Serviço (DBaaS - Database as a Service). São serviços que, em geral, suportam algum tipo
de linguagem de consulta, além de operações básicas de escrita ou leitura de dados (Erl; Puttini;
Mahmood, 2013). No Quadro 5, são apresentados exemplos de serviços de banco de dados em
nuvem para duas categorias de Sistema Gerenciador de Banco de Dados (SGBD): relacional e
não relacional. Como explica Souza et al. (2014), os bancos de dados relacionais são aqueles
que utilizam a álgebra relacional para suporte à consistência forme, armazenam dados de forma
estruturada e implementam alguma linguagem de consulta estruturada (SQL - Structured Query
Language).

Serv
Provedor Categoria
iço
Amazon RDS
Relacional
(AWS, 2019g)
AWS Amazon
Não relacional DynamoDB (AWS,
2019a)
Cloud SQL
Relacional
(Google, 2019e)
Google Cloud
Cloud Firestore
Não relacional
(Google, 2019d)
Azure SQL
Database
Relacional
(Microsoft,
Microsoft Azure 2019e)
Azure Cosmos
Não relacional DB (Microsoft,
2019d)
MongoDB Atlas
MongoDB Não relacional
(Mongodb, 2019)

Quadro 5 | Exemplos de serviços de banco de dados em nuvem.

O baixo desempenho dos bancos de dados relacionais para gerenciamento de grandes volumes
de dados motivou o desenvolvimento dos bancos de dados não relacionais, também
denominados “não apenas SQL” (NoSQL – not only SQL) (Souza et al., 2014). Os bancos não
relacionais apresentam desempenho e escalabilidade significativamente superior para lidar com
grandes volumes de dados não estruturados, o que é muito importante, por exemplo, para
aplicações web em larga escala.

Vamos Exercitar?
Disciplina

COMPUTAÇÃO EM NUVEM

Serviços para Backup


Descrição da situação-problema

Considere que você é um analista de TI em uma empresa que atua no mercado de


telecomunicações. Para melhorar a confiabilidade dos serviços, essa empresa pretende
implantar um novo software de backup de dados. Para essa solução de backup, os requisitos
mais importantes são custo e escalabilidade, pois o volume de dados da empresa está
crescendo devido a uma expansão da sua área de atuação. Seu papel é determinar um modelo
de armazenamento para o software de backup dos dados da empresa.

Resolução da situação-problema:

Em geral, as soluções de backup exigem crescente capacidade de recursos computacionais. Isso


resulta em altos investimentos, principalmente em dispositivo de armazenamento de dados.
Como os principais requisitos são escalabilidade e redução de custos, uma alternativa atraente
seria utilizar serviços de armazenamento em nuvem. A razão é que a capacidade de
armazenamento pode ser contratada de forma incremental, de acordo com a demanda, além
disso, não seriam necessários investimentos para adquirir e manter a infraestrutura de unidades
de armazenamento.

Entre os tipos de serviços de armazenamento em nuvem, deve-se escolher algum caracterizado


por um alto nível de controle por parte do cliente. Isso é necessário porque o software de backup
precisa formatar as unidades lógicas de armazenamento. Essa caraterística é própria dos
serviços de armazenamento em blocos. A empresa pode, então, contratar algum serviço desse
tipo, por exemplo, o Amazon EBS, Google Persistent Disk ou Azure Disk Storage. O volume
contratado seria, então, disponibilizado como uma unidade lógica de armazenamento para o
software de backup, que poderia ser formatada e utilizada para armazenar os arquivos de backup
gerados pelo software. O volume poderia ter sua capacidade expandida, conforme necessário.
Nesse caso, é importante usar criptografia para garantir sigilo dos dados de backup enviados
para a unidade de armazenamento no provedor e também verificar a qualidade da rede para que
o backup seja realizado de forma rápida. É importante, ainda, salientar que existem serviços
gerenciados de backup em nuvem, o que pode ser interessante para muitas empresas que
querem um serviço de mais alto nível de abstração, gerenciados pelo provedor. Exemplos desse
serviço são: AWS Backup e Azure Backup.

Saiba mais
Embora o backup na nuvem ofereça muitos benefícios, também apresenta desafios específicos.
Para conhecer mais sobre esses desafios, acesse o artigo 5 desafios do backup na nuvem que
você precisa conhecer.
Disciplina

COMPUTAÇÃO EM NUVEM

Referências

DE SOUZA, Alexandre Morais; PRADO, Edmir P. V.; SUN, Violeta; FANTINATO, Marcelo. Critérios
para Seleção de SGBD NoSQL: o Ponto de Vista de Especialistas com base na Literatura. In:
SIMPÓSIO BRASILEIRO DE SISTEMAS DE INFORMAÇÃO (SBSI), 10. , 2014, Londrina. Anais [...].
Porto Alegre: Sociedade Brasileira de Computação, 2014. p. 149-160.
DOI: https://doi.org/10.5753/sbsi.2014.6109.

OUSSOUS, A. et al. Big Data technologies: A survey. Revista da King Saud University - Ciências da
Computação e Informação. v. 30, 4. ed. Outubro de 2018 , p. 431-448. Disponível em:
http://www.sciencedirect.com/science/article/pii/S1319157817300034. Acesso em: 24 jan.
2024.

TANENBAUM, A. S.; STEEN, M. V. Sistemas Distribuídos: princípios e paradigmas. 2. ed. São


Paulo: Pearson Prentice Hall, 2008.

Aula 3
Solução em Nuvem

Solução em Nuvem

Este conteúdo é um vídeo!


Para assistir este conteúdo é necessário que você acesse o AVA pelo
computador ou pelo aplicativo. Você pode baixar os vídeos direto no aplicativo
para assistir mesmo sem conexão à internet.
Dica para você
Aproveite o acesso para baixar os slides do vídeo, isso pode deixar sua
aprendizagem ainda mais completa.

Olá, estudante! Nesta videoaula, vamos explorar o conceito de soluções em nuvem, abordando o
que são, como funcionam e os benefícios que oferecem. Vamos mergulhar nos principais
elementos que compõem uma solução em nuvem e discutir casos de uso práticos para
demonstrar como essas soluções podem transformar a maneira como as organizações
gerenciam recursos e serviços.
Esse conteúdo é importante para a sua prática profissional, pois a adoção de soluções em
nuvem é fundamental para profissionais que buscam eficiência operacional, inovação
tecnológica e adaptação às demandas dinâmicas do mercado. Essa abordagem permite que os
Disciplina

COMPUTAÇÃO EM NUVEM

profissionais alcancem melhores resultados e permaneçam competitivos em seus campos de


atuação.
Prepare-se para essa jornada de conhecimento! Vamos lá!!!

Ponto de Partida
Caro estudante, já estudamos vários tipos de serviços de computação em nuvem. Esta seção dá
continuidade ao nosso estudo sobre a solução em nuvem, que se refere a um conjunto de
serviços, recursos e aplicativos hospedados em ambientes de computação em nuvem. Essa
abordagem envolve o uso de servidores remotos, armazenamento, redes e outros serviços
baseados na internet para atender a necessidades específicas de uma organização ou usuário.

Vamos começar com uma descrição sobre a grande variedade de serviços quem podem ser
utilizados para enriquecer e sofisticar as funcionalidades, assim como as soluções em nuvem
para tornar o processo de desenvolvimento de software mais produtivo. Em seguida, vamos
abordar aplicações multimídia e, por fim, serviços relacionados à Internet das Coisas (IoT –
Internet of Things).

Bons estudos!

Vamos Começar!

Soluções em nuvem para desenvolvimento de software


Há várias soluções em nuvem projetadas para facilitar o desenvolvimento de software,
proporcionando uma infraestrutura escalável, ferramentas de colaboração e ambientes
integrados.

Os provedores oferecem soluções para diversas etapas do processo de desenvolvimento, desde


a codificação até a implantação e o teste de aplicações em ambientes de produção nos
provedores de computação em nuvem. Essas soluções permitem automatizar todo o ciclo de
criação, teste e implantação de aplicações em uma infraestrutura gerenciada pelo provedor.

O Quadro 1 relaciona exemplos de serviços voltados para equipes de desenvolvimento de


software. A AWS oferece serviços como o AWS X-Ray e o CodePipeline. O AWS X-Ray serve para
avaliar o desempenho de aplicações, tanto na fase de testes (para aplicações em
desenvolvimento) como na fase de manutenção (para aplicações que já foram implantadas em
ambiente de produção). Essa solução permite o diagnóstico de problemas de desempenho nos
componentes de aplicações distribuídas. O CodePipeline é um serviço para automatizar o
lançamento de novas versões de uma aplicação; nesse caso, uma vez que o código é alterado e
testado, o processo de implantação da nova versão no ambiente de nuvem passa a ser
automático. Entre os serviços oferecidos pelo Google Cloud, podemos citar a ferramenta para
Disciplina

COMPUTAÇÃO EM NUVEM

gerenciamento de código-fonte denominada Cloud Source Repositories, que permite automatizar


a alocação de recursos para implantação de aplicações. O provedor Microsoft Azure oferece um
conjunto de serviços de gestão de projetos de software agrupados em uma plataforma
denominada Azure Devops. Entre esses serviços, podemos citar o Azure Boards, para
gerenciamento de tarefas seguindo o paradigma de metodologias ágeis (Balle, 2011), e o Azure
Test Plans, que permite a configuração e a execução de testes de software de forma
automatizada.

Serviço Descrição Caso de Uso


Identificação
automática das partes
Ferramenta para
de uma aplicação web
identificar e solucionar
que apresentam
AWS X-Ray (AWS, problemas de
problemas de
2019g) desempenho em
desempenho (alta
aplicações
latência por exemplo),
distribuídas.
assim como a causa
dos problemas.
Especificação de
Solução para
eventos para fazer a
integração contínua e
implantação
entrega contínua a fim
AWS CodePipeline (deployment)
de automatizar o
(AWS, 2019b). automático de uma
gerenciamento das
aplicação quando o
atualizações de
código-fonte é
aplicações.
alterado.
Controle de diversas
Repositório para
versões do código
Cloud Source gerenciamento de
fonte de uma
Repositories (Google, código fonte com
aplicação por uma
2019b) suporte a controle de
equipe de
versões e busca.
desenvolvimento.
Gerar gráficos de
resultados de testes
em uma aplicação
web (por exemplo,
Ferramenta para número de testes
Azure Test Plans
automação de testes bem-sucedidos e fa
(Microsoft, 2019b)
de software. lhas), assim como
verificar a
compatibilidade com
diferentes
navegadores web.
Disciplina

COMPUTAÇÃO EM NUVEM

Criar painéis de bordo


(dashboards) para
Ferramenta para
acompanhamento das
Azure Boards gerenciamento de
atividades de um
(Microsoft, 2019a) projetos utilizando
projeto de
metodologias ágeis.
desenvolvimento de
software.

Quadro 1 | Exemplos de serviços para desenvolvimento de software.

Essas são apenas algumas das soluções em nuvem disponíveis para desenvolvimento de
software. A escolha depende das necessidades específicas do projeto, preferências da equipe de
desenvolvimento e requisitos de escalabilidade e colaboração.

Serviços para aplicações multimídia em nuvem


Para aplicações multimídia em nuvem, que envolvem processamento, armazenamento e entrega
de conteúdo de mídia, existem diversos serviços e ferramentas disponíveis. Esses serviços
podem ser úteis para lidar com vídeos, áudio, imagens e outros tipos de conteúdo multimídia.

Vamos estudar exemplos voltados para aplicações que incluem conteúdo multimídia. Esses
serviços são muito importantes para facilitar o desenvolvimento de aplicações de streaming de
vídeo, por exemplo. Vejamos alguns deles:

Provedor AWS: oferece vários serviços de mídia.


Elemental MediaConvert: é importante como recurso para promover a portabilidade das
soluções, pois permite gerar mídias em diferentes formatos.
AWS Elemental MediaConnect: é uma plataforma escalável e flexível para transmissão de
vídeo ao vivo.

O Microsoft Azure também disponibiliza serviços para aplicações multimídia. O serviço Content
Protection inclui mecanismos para garantir que somente dispositivos autorizados possam
reproduzir fluxos (streaming) de mídia distribuídos por uma aplicação. Para streaming de vídeo
ao vivo ou sob demanda, o Azure oferece o serviço Live and On-Demand Streaming.

Serviço Descrição Caso de Uso


AWS Elemental Mecanismos para Um caso de uso para
MediaConvert (AWS, converter um vídeo de esses serviços são as
2019d) entrada em diferentes aplicações de
formatos de saída a streaming de áudio,
fim de oferecer como o Spotify, que
suporte para várias precisam gerar
plataformas e arquivos de áudio em
dispositivos. vários formatos e
Disciplina

COMPUTAÇÃO EM NUVEM

qualidades para
atender a diferentes
dispositivos dos
usuários.
Solução para
AWS Elemental Aplicação de
transmissão de vídeo
MediaConnect (AWS, transmissão ao vivo
ao vivo escalável,
2019c) de eventos esportivos.
confiável e segura.
Serviço com recursos
Live and on-demand para codificação e Transmissão ao vivo
streaming (Microsoft, distribuição escalável de eventos na forma
2019f) de vídeo (ao vivo ou de webcasts.
sob demanda).

Quadro 2 | Exemplos de serviços para aplicações multimídia.

Esses serviços são apenas alguns exemplos e podem ser combinados para criar soluções
personalizadas para diferentes casos de uso em aplicações multimídia em nuvem. A escolha dos
serviços dependerá dos requisitos específicos da aplicação e das preferências tecnológicas.

Siga em Frente...

Serviços para aplicações de IoT na nuvem


A Internet das Coisas pode ser entendida como um cenário no qual qualquer objeto com
capacidade computacional e de comunicação pode se conectar à Internet (Santos et al., 2016),
que possibilitou o surgimento de novas aplicações que envolvem a comunicação com ou entre
esses objetos inteligentes. Podemos mencionar, inclusive, novos importantes conceitos
decorrentes dos avanços em IoT, como Cidades Inteligentes (Kon; Santana, 2016) e a Indústria
4.0 (Azevedo, 2017). O conceito de Cidades Inteligentes consiste no uso de tecnologias da
informação e comunicação para tornar mais eficiente a gestão dos centros urbanos, por
exemplo, com soluções para mobilidade e controle de iluminação pública. De forma análoga, o
paradigma da Indústria 4.0 envolve o uso de tecnologias para inovação nos processos
industriais, por exemplo, em soluções de monitoramento e manutenção preventiva de
equipamentos em fábricas ou soluções de logística e rastreamento de produtos.

Existem diversos serviços em nuvem para a implementação de aplicações de IoT. Para entender
a sua utilidade, precisamos conhecer a arquitetura geral de aplicações IoT que utilizam recursos
na nuvem, como ilustra a Figura 1. Os dispositivos IoT são equipados com sensores,
processadores e interfaces de comunicação sem fio. Um gateway é utilizado para gerenciar um
canal seguro de comunicação entre os dispositivos e os serviços em nuvem. Os dados coletados
podem ser utilizados de várias formas, inclusive por meio de integração com outras aplicações.
Disciplina

COMPUTAÇÃO EM NUVEM

Os provedores em nuvem oferecem, por exemplo, serviços para coleta, análise e visualização de
dados dos dispositivos conectados.

Figura 1 | Visão geral da arquitetura de uma aplicação IoT.

O Quadro 3 descreve alguns serviços em nuvem para suporte a aplicações de IoT. Por exemplo, o
serviço AWS IoT SiteWise é voltado para o suporte a soluções para Indústria 4.0, a fim de
aprimorar a eficiência de equipamentos e processos. Um caso de uso típico é a coleta de dados
de máquinas e robôs em linhas de produção e montagem, enviando-os para análise na nuvem.
Relatórios com diagnóstico e indicadores de desempenho podem ser gerados para previsão de
falhas nos equipamentos e identificação de oportunidades de otimização dos processos. Outro
caso é uma empresa de distribuição de energia elétrica que poderia usar esse serviço para
construir uma aplicação de monitoramento remoto dos equipamentos da rede. Para aplicações
de IoT que usam dados de localização, uma opção de serviço é o Azure Maps, que pode ser
usado na área de mobilidade urbana e sistemas de rastreamento de objetos ou veículos. O
serviço Google IoT Core pode ser utilizado como um IoT Gateway para gerenciamento dos
dispositivos e coleta de dados.

Serviço Descrição
Serviço para análise de dados e
AWS IoT SiteWise (AWS, 2019f) monitoramento de instalações
industriais.
AWS IoT Device Defender (AWS, Solução para configuração de
2019e) mecanismos de segurança na
comunicação de dispositivos de
IoT entre si e com a nuvem. Pode
ser utilizado para implementação
de estratégias de autenticação de
Disciplina

COMPUTAÇÃO EM NUVEM

dispositivos e criptografia de
dados em uma aplicação de IoT.
Plataforma para coleta, análise e
Cloud IoT Core (Google, 2019) visualização de dados de
dispositivos IoT em tempo real.
Mecanismos para manipulação de
dados geoespaciais para suporte
Azure Maps (Microsoft, 2019c)
à inteligência baseada em
localização.
Análise de dados de séries
temporais coletados por
aplicações IoT em larga escala.
Esses recursos são importantes,
Azure Time Series Insights por exemplo, para aplicações de
(Microsoft, 2019b) sensoriamento remoto ou
aplicações que trabalham com
previsões e identificação de
tendências em grandes volumes
de dados.

Quadro 3 | Exemplos de serviços para aplicações de IoT.

Esses exemplos mostram como serviços em nuvem podem ser utilizados no suporte a
aplicações de IoT. Diversos estudos mostram como a IoT e a computação em nuvem são
complementares e como a integração desses conceitos viabilizou o surgimento de aplicações
inovadoras (Botta et al., 2016). No Quadro 4, alguns aspectos da computação em nuvem e da IoT
são comparados, para mostrar como elas se relacionam de forma complementar. Enquanto a
computação em nuvem centraliza uma capacidade computacional virtualmente ilimitada, a IoT
viabiliza capilaridade na coleta de dados e controle de dispositivos na borda da rede.

Computação
IoT
em Nuvem
Arquitetura Centralizada Distribuída
Ubíquo
Alcance Limitado
(pervasivo)
Recursos Objetos do
Componentes
virtualizados mundo real

Quadro 4 | Relação entre IoT e computação em nuvem. Fonte: adaptado de Botta (2016).
Disciplina

COMPUTAÇÃO EM NUVEM

A IoT está desempenhando um papel crescente na transformação digital, oferecendo


oportunidades eficientes, criar novos modelos de negócios e proporcionar benefícios
significativos para as organizações.

Vamos Exercitar?

Manutenção preventiva de equipamentos


Descrição da situação-problema

Observamos nos últimos anos uma revolução na Indústria. Com capacidade computacional
embarcada nos mais diversos dispositivos, máquinas e veículos, viabilizaram-se processos
avançados de manufatura e logística de produção. Os equipamentos das plantas industriais têm
recursos para processamento e transmissão de dados, de forma que podem interagir entre si e
com sistemas em nuvem para tornar os processos produtivos mais eficientes e confiáveis.

Considere uma fábrica que opera com equipamentos muito especializados, cuja compra só pode
ser feita por encomenda. Assim, se um equipamento for danificado, sua substituição pode
demorar muito, o que acarreta significativo prejuízo financeiro. Por isso, essa fábrica pretende
implementar uma solução com sensores e transmissores nos equipamentos, a fim de coletar
dados para um sistema responsável por monitorar a planta da fábrica, prever falhas e planejar a
manutenção e a reposição dos equipamentos a fim de diminuir a probabilidade de um
equipamento ficar inutilizado por defeito. Avalie quais serviços em nuvem poderiam ser usados
na implementação de tal solução para manutenção preventiva dos equipamentos.

Resolução da situação-problema:

Os provedores de nuvem pública oferecem várias soluções gerenciadas para aplicações de IoT,
como é o caso de soluções para gerenciamento de instalações industriais. Nesse caso, podemos
identificar duas tarefas principais: o gerenciamento da coleta de dados dos sensores e a análise
desses dados para diagnóstico e tomada de decisão sobre manutenção dos equipamentos.

Uma primeira estratégia seria escolher um serviço para auxiliar cada uma das tarefas. Podemos
utilizar um serviço básico de coleta e armazenamento de dados para aplicações de IoT, como o
Cloud IoT Core, e utilizar um serviço de Aprendizado de Máquina, como o Azure Machine
Learning para a tarefa de análise de dados.

Uma segunda estratégia poderia ser um serviço para aplicações IoT que já contempla as duas
funcionalidades, como é o caso do AWS IoT SiteWise ou do Azure Time Series Insights. Ambos
os serviços já incluem mecanismos para gerar estimativas e fazer previsões em função dos
dados coletados ao longo do tempo, assim como ferramentas para visualização dos dados que
favorecem o gerenciamento eficiente dos recursos. A Figura 2 ilustra como seria o processo
utilizando o serviço AWS IoT SiteWise.
Disciplina

COMPUTAÇÃO EM NUVEM

Figura 2 | Exemplo de serviços para aplicação de streaming de áudio. Fonte: adaptada de AWS (2019a).

Saiba mais

Cada aplicação em nuvem é um sistema complexo que envolve vários componentes. O projeto
de uma aplicação pode incluir diversos serviços, até mesmo aqueles oferecidos por provedores
diferentes. Em particular, as aplicações de streaming de áudio e vídeo envolvem requisitos
severos de desempenho, por exemplo, baixo atraso médio e altas taxas de transmissão de
dados, para desenvolver aplicações desse tipo, podem ser combinados serviços de mídia e
serviços de rede. Por exemplo, os serviços CDN podem ser utilizados para replicar o conteúdo
multimídia em vários servidores dispersos em escala mundial para otimizar o desempenho.
Assim, um usuário de um aplicativo de streaming de áudio, por exemplo, vai obter o conteúdo do
servidor mais próximo da sua rede de acesso, o que melhora o desempenho da aplicação.

Referências

BALLE, A. R. Análise de metodologias ágeis: conceitos, aplicações e relatos sobre XP e Scrum.


2011. Trabalho de Conclusão de Curso (Bacharelado) – Universidade Federal do Rio Grande do
Sul, Porto Alegre, 2011.

KON, F.; SANTANA, E. F. Z. Cidades Inteligentes: tecnologias, aplicações, iniciativas e desafios.


Disponível em: https://sol.sbc.org.br/livros/index.php/sbc/catalog/view/6/6/17-1. Acesso em: 26
jan. 2024.

MORAES, A.; HAYASHI, V. T. Segurança em IoT. Rio de Janeiro: Alta Books, 2021.

Aula 4
Gerenciamento de Dados em Nuvem
Disciplina

COMPUTAÇÃO EM NUVEM

Gerenciamento de Dados em Nuvem

Este conteúdo é um vídeo!


Para assistir este conteúdo é necessário que você acesse o AVA pelo
computador ou pelo aplicativo. Você pode baixar os vídeos direto no aplicativo
para assistir mesmo sem conexão à internet.
Dica para você
Aproveite o acesso para baixar os slides do vídeo, isso pode deixar sua
aprendizagem ainda mais completa.

Olá, estudante! Esta videoaula oferecerá uma visão abrangente do gerenciamento de dados em
nuvem, capacitando você a compreender e implementar práticas eficazes para lidar com os
desafios da gestão de dados em ambientes de nuvem.
Esse conteúdo é importante para a sua prática profissional, pois o gerenciamento de dados em
nuvem é essencial para profissionais que buscam manter a competitividade, promover a
eficiência operacional e utilizar dados como um ativo estratégico em suas organizações. Essa
abordagem permite lidar com os desafios da era digital de maneira mais eficaz e inovadora.
Prepare-se para essa jornada de conhecimento! Vamos lá!!!

Ponto de Partida

Caro estudante, o gerenciamento de dados em nuvem é a prática de armazenar, organizar,


processar e acessar dados na nuvem, em oposição a ambientes locais ou em servidores físicos.
A computação em nuvem permite que os dados sejam armazenados em servidores remotos,
geralmente mantidos por provedores de serviços em nuvem, e acessados pela Internet.

Ao adotar o Gerenciamento de Dados em Nuvem, as organizações podem aproveitar os


benefícios da flexibilidade, eficiência e acessibilidade oferecidos pela computação em nuvem
para otimizar o gerenciamento e o uso de seus dados.

Nesta seção, vamos aprender sobre armazenamento em nuvem, banco de dados em nuvem e Big
Data.

A combinação de Big Data e análise de dados na nuvem permite que as organizações processem
e analisem grandes volumes de dados de maneira eficiente, obtendo insights valiosos que
podem ser utilizados para tomada de decisões estratégicas, identificação de padrões e
tendências e otimização de processos.

Bons estudos!
Disciplina

COMPUTAÇÃO EM NUVEM

Vamos Começar!

Armazenamento em nuvem
No caso do item ligado ao armazenamento, a computação em nuvem nos desafia a distinguir as
expressões “nuvem de armazenamento” e “armazenamento para a nuvem”, respectivamente, que
está relacionado à utilização que se dá à capacidade de armazenamento. Essa variação
assemelha-se à diferença existente na TI tradicional entre dados do sistema (arquivos,
bibliotecas, utilitários, etc.) e dados de aplicativos e arquivos de usuários, e tem reflexos na
alocação de armazenamento em implementações de servidores virtuais.

A capacidade de armazenamento é direcionada a dados do cliente, compreendendo, portanto,


uma visão natural da nuvem, um local em que dados de terceiros são guardados e mantidos por
um provedor de serviços. Aqui, são requeridas as funcionalidades de interatividade com os
serviços por meio de uma interface, relatórios de uso do armazenamento e facilidade para alterar
uma ou outra característica do armazenamento, incluindo, por exemplo, o tamanho do disco,
funcionalidade que guarda uma estreita relação com a primeira. Assim, uma nuvem de
armazenamento é um ambiente em que não se consideram tipos de armazenamentos voltados à
configuração do serviço ou ao funcionamento de uma máquina virtual. Nela, o armazenamento
pode ser categorizado como descrito a seguir.

Armazenamento hospedado: principal categoria de armazenamento, para a qual os


principais recursos da infraestrutura são direcionados, o que confere a ela maior
desempenho e disponibilidade. Afinal, é nessa estrutura de armazenamento que os dados
de uso do cliente ficam mantidos.
Armazenamento de referência: parte do ambiente de armazenamento em que são
guardados, via de regra, arquivos de log e outros tipos de arquivos que, uma vez gravados,
servirão como referência para alguma consulta ou configuração adicional.
Os tipos de armazenamento provisionado para um serviço em nuvem podem ser
classificados como descrito a seguir.
Armazenamento transitório: como o próprio nome sugere, esse armazenamento é
necessário apenas enquanto uma máquina virtual está em execução, sendo liberado
quando da interrupção do funcionamento da máquina virtual. Exemplos dessa categoria de
armazenamento incluem volumes de inicialização e arquivos temporários.
Armazenamento persistente: de caráter permanente, os dados mantidos nesse tipo de
armazenamento são necessários nas reinicializações da máquina virtual e mantidos
mesmo quando ela é interrompida. Nesse tipo, incluem-se, por exemplo, arquivos de
personalização de ambiente e dados de usuário.

O armazenamento em nuvem é amplamente utilizado tanto por usuários individuais quanto por
organizações, proporcionando uma maneira eficiente e flexível de gerenciar dados e garantir a
acessibilidade aos arquivos de qualquer lugar.

Bancos de dados em nuvem


Disciplina

COMPUTAÇÃO EM NUVEM

Bancos de dados em nuvem referem-se a sistemas de gerenciamento de banco de dados


(DBMS) que são hospedados e operados em ambientes de nuvem. Esses serviços oferecem
funcionalidades tradicionais de banco de dados, como armazenamento, recuperação, consulta e
gerenciamento de dados, mas com a vantagem de serem acessíveis pela internet.

Veja os conceitos e características relacionados a bancos de dados em nuvem:

Características dos Bancos de Dados em Nuvem:

Escalabilidade elástica: os bancos de dados em nuvem oferecem escalabilidade elástica,


permitindo que os recursos sejam dimensionados conforme a demanda, facilitando lidar
com grandes volumes de dados.
Gerenciamento de recursos automático: muitos serviços de banco de dados em nuvem
proporcionam recursos de gerenciamento automático, como ajuste dinâmico de recursos,
backup automático e atualizações de software.
Acessibilidade remota: os bancos de dados em nuvem podem ser acessados remotamente
de qualquer lugar com conexão à internet, proporcionando flexibilidade na gestão e acesso
aos dados.
Modelo de pagamento por uso: muitos serviços de banco de dados na nuvem operam em
um modelo de pagamento conforme o uso, permitindo que os usuários paguem apenas
pelos recursos que consomem.
Alta disponibilidade e tolerância a falhas: os serviços de nuvem são projetados para
oferecer alta disponibilidade e são frequentemente distribuídos globalmente para garantir
tolerância a falhas.

Tipos de bancos de dados em nuvem:

Bancos de dados relacionais: suportam o modelo relacional e são adequados para


aplicações que requerem integridade referencial. Exemplos: Amazon RDS, Azure SQL
Database, Google Cloud SQL.
Bancos de dados NoSQL: projetados para lidar com grandes volumes de dados e diferentes
modelos de dados, como documentos, chave-valor e grafos. Exemplos: Amazon
DynamoDB, Azure Cosmos DB, Google Cloud Firestore.
Bancos de dados de grafos: especializados em armazenar e consultar dados em formato
de grafo, sendo úteis para relacionamentos complexos. Exemplos: Amazon Neptune, Azure
Cosmos DB (com suporte a Gremlin), Google Cloud Firestore.
Bancos de dados de séries temporais: otimizados para armazenar e analisar dados
temporais, como registros de sensores. Exemplos: Amazon Timestream, Azure Time Series
Insights, Google Cloud Bigtable.

A escolha de um banco de dados em nuvem dependerá dos requisitos específicos do aplicativo,


como modelo de dados, escalabilidade, desempenho e preferências tecnológicas.

Siga em Frente...
Disciplina

COMPUTAÇÃO EM NUVEM

Big Data e análise de dados na nuvem


Big Data e análise de dados na nuvem são duas áreas inter-relacionadas que aproveitam a
escalabilidade, flexibilidade e poder computacional dos ambientes de nuvem para lidar com
grandes volumes de dados e realizar análises avançadas.

As técnicas de big data tornaram-se um grande diferencial competitivo para as empresas, mas
não têm aplicação somente nessa área. Um exemplo de uso do big data foi a eleição presidencial
dos Estados Unidos, em 2016, em que foram utilizados os termos mais pesquisados para que se
conseguisse atingir o maior número de delegados para alguns presidenciáveis. Mas o que, de
fato, vem a ser o big data? Segundo Morais et al. (2018), o termo big data refere-se a uma base
de dados com uma quantidade enorme de dados, que pode estar alocada em múltiplos
servidores, e não necessariamente esses dados precisam estar estruturados (como ocorre nos
bancos de dados do tipo relacional).

Tipos de dados em um sistema de gerenciamento de banco de


dados
Os dados dentro do sistema de gerenciamento de banco de dados (SGBD) podem estar
organizados de três formas: estruturados, não estruturados ou semiestruturados, conforme
descrito a seguir.

Dados estruturados: são aqueles com tamanhos definidos em seu desenvolvimento. Em


grande parte, correspondem a números, datas e palavras. Geralmente são utilizados em
bancos de dados do tipo relacional, em que a estrutura precisa estar definida por tipos e
tamanhos, o que define o relacionamento por meio das chaves.
Dados não estruturados: são dados que não possuem formatos e cujo tamanho pode
variar. São bastante utilizados, principalmente aqueles relacionados a imagens. Os dados
não estruturados são encontrados em fotografias, vídeos, imagens de satélites, dados
científicos e mídias sociais, entre outros.
Dados semiestruturados: são considerados por especialistas da área como um meio termo
entre os dados estruturados e os dados não estruturados. O seu uso está ligado a
aplicações web, em que os dados são convertidos em tags (etiquetas — termo utilizado na
linguagem de marcação utilizada por navegadores).

Vantagens da utilização da nuvem para big data e análise de dados:

Elasticidade e escalabilidade: os recursos na nuvem podem ser escalados sob demanda,


permitindo lidar com grandes volumes de dados de maneira eficiente.
Facilidade de integração: diversos serviços na nuvem oferecem integração fácil entre
armazenamento, processamento e ferramentas de análise.
Pagamento por uso: muitos serviços de nuvem operam em um modelo de pagamento
conforme o uso, oferecendo custos mais flexíveis.
Disciplina

COMPUTAÇÃO EM NUVEM

Segurança e conformidade: os provedores de nuvem implementam medidas rigorosas de


segurança e conformidade para proteger dados sensíveis.
Agilidade e velocidade: a nuvem permite a rápida implementação de soluções e acelera o
tempo de análise.

A combinação de Big Data e análise de dados na nuvem capacita as organizações a extrair


insights valiosos de grandes conjuntos de dados, proporcionando uma vantagem competitiva e
suportando decisões informadas. A flexibilidade e a capacidade de dimensionar recursos
conforme necessário são elementos cruciais nesse cenário.

Vamos Exercitar?

Gerenciamento em grandes volumes de dados


Descrição da situação-problema

Uma empresa de comércio eletrônico está enfrentando desafios em gerenciar e analisar grandes
volumes de dados de transações, comportamento do cliente e interações online. A quantidade de
dados cresceu significativamente à medida que a empresa expandiu seus negócios, resultando
em gargalos no processamento, dificuldades na análise eficiente e lentidão na obtenção de
novos processos. Além disso, a equipe de TI enfrenta desafios para manter a infraestrutura
tradicional, que não consegue lidar com a escala e a complexidade dos dados.

Resolução da situação-problema:

A empresa decide migrar para uma solução de Big Data na nuvem para enfrentar esses desafios
e aproveitar os benefícios da escalabilidade, flexibilidade e poder de processamento oferecidos
pelos serviços de nuvem. Vejamos os passos para a resolução do problema:

Escolha da plataforma de big data na nuvem: avaliação de provedores de nuvem, como


AWS, Azure e Google Cloud, para determinar a melhor plataforma de Big Data com base nas
necessidades específicas da empresa.
Migração de dados: migração dos grandes volumes de dados existentes para a nuvem,
utilizando ferramentas e serviços específicos para transferência eficiente.
Implementação de armazenamento escalável: utilização de serviços de armazenamento na
nuvem, como Amazon S3, Azure Data Lake Storage ou Google Cloud Storage.
Processamento distribuído: implementação de frameworks de processamento distribuído,
como Apache Spark ou Apache Flink, para realizar análises complexas em grandes
conjuntos de dados.
Utilização de ferramentas de análise na nuvem: adoção de serviços de análise de dados na
nuvem, como Amazon Redshift, Azure Synapse Analytics ou Google BigQuery, para executar
consultas SQL complexas e gerar insights em tempo real.
Disciplina

COMPUTAÇÃO EM NUVEM

Ao migrar para uma solução de Big Data na nuvem, a empresa supera os desafios de escala,
acelera a análise de dados, reduz custos operacionais e está mais bem posicionada para tomar
decisões estratégicas com base em insights obtidos a partir de seus grandes volumes de dados.

Saiba mais
O uso de Big Data tem revolucionado a gestão de muitas empresas. Isso acontece porque ela
oferece uma maior visibilidade de informações, impactando diretamente na qualidade da análise
dos dados e em uma maior assertividade para a tomada de decisões. Para saber mais sobre
esse assunto, acesse o artigo Big Data.

Referências

CARVALHO, A. C. P. L. F.; LORENA, A. C. Introdução à computação. São Paulo: GEN, 2017.

MEIRELES A.; OLIVEIRA, H. S.; PICHETTI, R. F. Cloud Computing. Revisão técnica de Adriano José
Vogel. Porto Alegre: SAGAH, 2020.

MONTEIRO, E. R. et al. Sistemas distribuídos, internet das coisas. Porto Alegre: SAGAH, 2020.

Aula 5
Encerramento da Unidade

Videoaula de Encerramento

Este conteúdo é um vídeo!


Para assistir este conteúdo é necessário que você acesse o AVA pelo
computador ou pelo aplicativo. Você pode baixar os vídeos direto no aplicativo
para assistir mesmo sem conexão à internet.
Dica para você
Aproveite o acesso para baixar os slides do vídeo, isso pode deixar sua
aprendizagem ainda mais completa.

Olá, estudante! Nesta videoaula, exploraremos os vários tipos de serviços oferecidos por
plataformas/provedores de computação em nuvem.
Disciplina

COMPUTAÇÃO EM NUVEM

A computação em nuvem refere-se à entrega de serviços de computação, como armazenamento,


processamento, servidores e software, pela internet. Em vez de depender de servidores locais ou
dispositivos pessoais para processar e armazenar dados, os usuários podem acessar e utilizar
recursos computacionais remotos, geralmente mantidos por provedores de serviços em nuvem.
A computação em nuvem transformou a forma como as empresas e indivíduos utilizam recursos
computacionais, proporcionando benefícios significativos em termos de eficiência, flexibilidade e
inovação.
As ofertas de serviço em nuvem são importantes para a sua prática profissional, pois
proporcionam uma série de benefícios e recursos que impactam positivamente diversas áreas do
seu trabalho.
Também capacitam profissionais a serem mais eficientes, inovadores e adaptáveis em suas
práticas profissionais. Essa tecnologia é fundamental para a evolução e competitividade em
diversos setores.
Prepare-se para essa jornada de conhecimento! Vamos lá!!!

Ponto de Chegada
Olá, estudante! Para desenvolver a competência desta unidade, que é conhecer e classificar os
vários tipos de serviços oferecidos por plataformas/provedores de computação em nuvem é
importante compreender os modelos e categorias fundamentais.

Modelos de serviço:

1. Infraestrutura como Serviço (IaaS): neste modelo, são fornecidos recursos de infraestrutura
virtualizada, como máquinas virtuais, armazenamento e redes. Exemplos: Amazon EC2,
Microsoft Azure Virtual Machines, Google Compute Engine.
2. Plataforma como Serviço (PaaS): Fornece uma plataforma completa para o
desenvolvimento, teste e implantação de aplicações, sem se preocupar com a
infraestrutura subjacente. Exemplos: Google App Engine, Microsoft Azure App Service,
Heroku.
3. Software como Serviço (SaaS): Oferece aplicativos de software totalmente gerenciados e
acessíveis via navegador web, sem a necessidade de instalação local. Exemplos:
Salesforce, Google Workspace, Microsoft 365.

Categorias de Serviço:

1. Armazenamento em nuvem: oferece espaço para armazenar dados, arquivos e backups na


nuvem, com diferentes tipos de armazenamento, como armazenamento de blocos, objetos
e arquivos. Exemplos: Amazon S3, Google Cloud Storage, Microsoft Azure Blob Storage.
2. Bancos de dados em nuvem: fornece serviços de banco de dados gerenciados, incluindo
bancos de dados relacionais e não relacionais. Exemplos: Amazon RDS, Google Cloud SQL,
Microsoft Azure Cosmos DB.
3. Redes em nuvem: permite configurar e gerenciar redes virtuais, balanceadores de carga e
serviços de entrega de conteúdo. Exemplos: Amazon VPC, Google Cloud Virtual Network,
Disciplina

COMPUTAÇÃO EM NUVEM

Azure Virtual Network.


4. Serviços de contêineres: suporta a criação, implantação e gerenciamento de containers
para aplicações, com orquestração para escalabilidade e resiliência. Exemplos: Amazon
ECS, Google Kubernetes Engine (GKE), Azure Kubernetes Service (AKS).
5. Serviços de Inteligência Artificial e Machine Learning: fornece ferramentas e API para
integrar inteligência artificial e aprendizado de máquina em aplicações. Exemplos: Amazon
SageMaker, Google AI Platform, Azure Machine Learning.
6. Serviços de segurança em nuvem: oferece recursos para proteção de dados, identidade e
acesso, incluindo firewalls, monitoramento de segurança e serviços de conformidade.
Exemplos: AWS Identity and Access Management (IAM), Google Cloud Identity and Access
Management, Azure Active Directory.
7. Serviços de monitoramento e log em nuvem:fornece ferramentas para monitorar o
desempenho, rastrear eventos e analisar logs, otimizando recursos e detectando
problemas. Exemplos: Amazon CloudWatch, Google Cloud Monitoring, Azure Monitor.

É Hora de Praticar!

Este conteúdo é um vídeo!


Para assistir este conteúdo é necessário que você acesse o AVA pelo
computador ou pelo aplicativo. Você pode baixar os vídeos direto no aplicativo
para assistir mesmo sem conexão à internet.

Gestão da infraestrutura da empresa XYZ


Descrição da situação-problema
A empresa XYZ, uma empresa de médio porte no setor de tecnologia, enfrenta desafios
significativos relacionados à gestão de sua infraestrutura de TI. A infraestrutura atual, baseada
em servidores locais, está enfrentando limitações em termos de escalabilidade, flexibilidade e
eficiência operacional. Além disso, os custos de manutenção e atualização da infraestrutura local
estão se tornando cada vez mais onerosos.
A equipe de TI da XYZ percebe que a transição para um ambiente de computação em nuvem
pode resolver muitos dos problemas enfrentados atualmente. No entanto, eles enfrentam a
complexidade de escolher as ofertas de serviço em computação em nuvem mais adequadas
para suas necessidades específicas. A seleção errada de serviços pode resultar em excesso de
custos, subutilização de recursos ou falta de recursos essenciais para as operações da empresa.

Como a arquitetura multi-cloud pode ser implementada de forma eficaz para maximizar a
flexibilidade e a resiliência das operações em um ambiente empresarial?
Quais são os desafios específicos de segurança associados à implementação de serviços
em nuvem?
Disciplina

COMPUTAÇÃO EM NUVEM

Como estabelecer e manter políticas eficazes de governança de dados em uma


infraestrutura distribuída em nuvem?

Resolução da situação-problema

1. Avaliação das necessidades: a equipe de TI realiza uma análise abrangente das


necessidades da empresa, identificando os requisitos de armazenamento, processamento,
segurança e escalabilidade.
2. Modelo de serviço adequado: com base nas necessidades identificadas, a equipe
determina o modelo de serviço em nuvem mais apropriado. Se a empresa precisa de
controle total sobre a infraestrutura, eles podem optar por uma solução IaaS. Se a
prioridade é a agilidade no desenvolvimento, PaaS pode ser a escolha certa.
3. Escolha do provedor: com base na análise de requisitos e orçamento, a equipe escolhe um
provedor de nuvem confiável. Considerações incluem recursos oferecidos, preços, suporte
ao cliente e conformidade com regulamentações específicas do setor.
4. Migração gradual: a migração para a nuvem é planejada de forma gradual e cuidadosa.
Inicialmente, cargas de trabalho menos críticas são migradas para a nuvem para avaliar o
desempenho e garantir a continuidade dos negócios.
5. Integração de serviços: a empresa integra serviços em nuvem para atender às diversas
necessidades, como armazenamento, banco de dados, redes, segurança e análise de
dados. Ferramentas de gerenciamento de nuvem são utilizadas para otimizar e monitorar o
ambiente em tempo real.
6. Treinamento da equipe: a equipe de TI é treinada para gerenciar e operar eficientemente os
serviços em nuvem. Isso inclui a compreensão das melhores práticas de segurança,
monitoramento de desempenho e utilização eficiente dos recursos disponíveis.
7. Avaliação contínua: a empresa realiza avaliações regulares para garantir que a solução em
nuvem atenda continuamente às suas necessidades. Isso inclui a análise de custos,
desempenho e a implementação de melhorias conforme necessário.

Ao seguir esse plano de resolução, a empresa XYZ consegue superar seus desafios de
infraestrutura, beneficiando-se da flexibilidade, escalabilidade e eficiência proporcionadas pelas
ofertas de serviço em computação em nuvem. A transição para a nuvem não apenas resolve os
problemas atuais, mas também prepara a empresa para um ambiente de TI mais dinâmico e
adaptável às futuras demandas do mercado.

As ofertas de serviços em computação em nuvem abrangem uma ampla gama de recursos e


soluções fornecidos por provedores de nuvem para atender às necessidades de empresas,
desenvolvedores e usuários finais.
Esses serviços fornecem um conjunto diversificado de recursos para atender a uma variedade de
necessidades de negócios, oferecendo benefícios, como flexibilidade, escalabilidade, eficiência e
redução de custos. Eles capacitam organizações a focarem em suas atividades principais,
enquanto aproveitam a infraestrutura e os recursos gerenciados pelos provedores de nuvem.
Disciplina

COMPUTAÇÃO EM NUVEM

CARVALHO, A. C. P. L. F.; LORENA, A. C. Introdução à computação. São Paulo: GEN, 2017.


KOLBE JR., A. Computação em nuvem. 1. ed. Curitiba: Contentus, 2020.
Disciplina

COMPUTAÇÃO EM NUVEM

MEIRELES A.; OLIVEIRA, H. S.; PICHETTI, R. F. Cloud computing. Porto Alegre: SAGAH, 2020.
,

Unidade 3
Tecnologias e Soluções de Computação em Nuvem

Aula 1
Tecnologias de suporte a nuvem

Tecnologias de suporte a nuvem

Este conteúdo é um vídeo!


Para assistir este conteúdo é necessário que você acesse o AVA pelo
computador ou pelo aplicativo. Você pode baixar os vídeos direto no aplicativo
para assistir mesmo sem conexão à internet.
Dica para você
Aproveite o acesso para baixar os slides do vídeo, isso pode deixar sua
aprendizagem ainda mais completa.

Olá estudante! Nesta videoaula, exploraremos tecnologias de containerização de aplicações,


exploração de tecnologias-chave, como Docker e container.
Também abordaremos as tecnologias de virtualização de servidores, explicação sobre
virtualização de servidores e seu papel na criação de ambientes virtuais e a evolução de
tecnologias de redes, como a visão geral da evolução das tecnologias de redes.
Ao seguir esse esboço, você terá uma visão abrangente e prática das tecnologias essenciais em
containerização, virtualização de servidores e evolução de redes e datacenters. Isso o preparará
para compreender e aplicar efetivamente esses conceitos em ambientes reais de TI.
Prepare-se para essa jornada de conhecimento! Vamos lá!!!

Ponto de Partida

Caro estudante, estudar tecnologias de suporte a nuvem é fundamental devido à crescente


adoção de computação em nuvem em organizações de todos os tamanhos e setores. Aqui estão
algumas razões pelas quais estudar essas tecnologias é valioso.
Disciplina

COMPUTAÇÃO EM NUVEM

Nesta aula você irá aprender sobre containerização de aplicações e virtualização de servidores.
Os containers encapsulam aplicações e suas dependências, tornando-as portáteis entre
ambientes de desenvolvimento, teste e produção. Isso simplifica o processo de implantação e
reduz problemas relacionados a diferenças de ambiente. A virtualização de servidores isola
aplicações e sistemas operacionais em máquinas virtuais distintas, o que contribui para a
segurança e confiabilidade.

Estudar essas tecnologias não só atende às demandas do mercado de trabalho, mas também
capacita os profissionais de TI a projetar, implementar e gerenciar infraestruturas de maneira
mais eficiente, segura e ágil. As organizações modernas frequentemente buscam profissionais
com habilidades nessas áreas para impulsionar a inovação e otimizar operações.

Bons estudos!

Vamos Começar!

Tecnologias de containerização de aplicações


A containerização de aplicações é uma tecnologia que permite empacotar e distribuir aplicações
juntamente com suas dependências e configurações em um ambiente isolado. Isso oferece
consistência no ambiente de execução, facilita a implantação e escalabilidade das aplicações.
Duas tecnologias de containerização amplamente utilizadas são Docker e Kubernetes.

Um modelo alternativo à virtualização baseada em hypervisor é a virtualização baseada em


contêiner, que ocorre no nível do sistema operacional (Bachiega; Souza; Bruschi, 2017). Nesse
caso, um conceito importante é o contêiner de aplicação (Application Container), que pode ser
entendido como um componente de software autossuficiente, no sentido em que ele encapsula
uma aplicação e todas as suas dependências (como bibliotecas, arquivos de configuração, etc.)
(Silva, 2017). Diferentemente de uma máquina virtual, o contêiner não inclui um sistema
operacional. Na verdade, o sistema operacional do servidor é compartilhado entre os contêineres
em execução. A Figura 1 ilustra o esquema de contêineres em um servidor físico. Com uma
ferramenta de gerenciamento de contêineres (container engine), pode-se instanciar vários
contêineres em uma única máquina física. O hardware e o sistema operacional dessa máquina
são compartilhados entre os contêineres (Silva, 2017).
Disciplina

COMPUTAÇÃO EM NUVEM

Figura 1 | Contêineres em um servidor físico.

Uma vez que a imagem de uma máquina virtual inclui um sistema operacional, ela é maior que a
imagem de um contêiner que envolve somente software no nível de usuário (aplicações,
bibliotecas, etc.). Portanto, em termos de desempenho, o uso de contêineres pode oferecer
vantagens em relação ao uso de máquina virtuais (Silva, 2017). Por ser mais leve, um contêiner
demora menos tempo para inicializar ou para ser transmitido de um servidor para outro.
Entretanto, uma vez que os contêineres compartilham o sistema operacional subjacente, o nível
de isolamento e segurança é menor, quando comparado às máquinas virtuais, que emulam um
ambiente computacional completo e independente, com seu próprio sistema operacional.

A principal característica do contêiner é permitir que o ambiente de execução da aplicação seja


sempre o mesmo, pois tudo que a aplicação precisa é estar encapsulada no contêiner,
independentemente da plataforma subjacente (Docker, 2019). Isso favorece a portabilidade e
facilita a replicação da aplicação em vários servidores. Basta, para isso, que um gerenciador de
contêiner compatível esteja instalado em cada servidor e uma cópia do contêiner seja copiada e
executada em cada um deles. Essa agilidade para replicar aplicações ou migrar aplicações de
um servidor para outro é muito importante em um ambiente de computação em nuvem, do qual
se espera o escalonamento dinâmico de aplicações.
Disciplina

COMPUTAÇÃO EM NUVEM

Docker

O Docker é uma plataforma de código aberto para desenvolvimento, envio e execução de


aplicações em containers. Ele utiliza contêineres para empacotar e distribuir aplicações,
incluindo suas bibliotecas e dependências. Os benefícios são portabilidade, consistência entre
ambientes de desenvolvimento e produção, isolamento de recursos, rapidez no provisionamento.

Kubernetes

O Kubernetes (também conhecido como K8s) é um sistema de orquestração de contêineres de


código aberto para automatizar o deploy, escala e gerenciamento de aplicações em contêineres.
O Kubernetes gerencia a distribuição e o escalonamento de contêineres em um cluster,
garantindo alta disponibilidade e resiliência. Os benefícios são orquestração eficiente,
autoescalonamento, automação de implantação, gerenciamento de recursos, atualizações sem
tempo de inatividade.

A combinação de Docker e Kubernetes é frequentemente utilizada para desenvolvimento,


empacotamento, distribuição e orquestração eficientes de aplicações em ambientes de
contêineres. Essas tecnologias desempenham um papel significativo na modernização de
infraestruturas e no desenvolvimento de aplicações em escala.

Tecnologias de virtualização de servidores


A virtualização de servidores é uma tecnologia que permite a criação de máquinas virtuais (VM),
cada uma das quais opera como um servidor independente, em um único hardware físico. Essa
abstração do hardware facilita a consolidação de recursos, aumenta a eficiência do servidor e
oferece flexibilidade na implantação de aplicações.

Como explicado em (ERL, 2013), os softwares de virtualização permitem a criação de múltiplas


instâncias lógicas de um recurso computacional, de forma que esse recurso possa ser
compartilhado entre diversos usuários. O conceito de virtualização não é recente, mas, somente
com os ganhos em termos de desempenho e confiabilidade das ferramentas de virtualização
modernas, foi possível viabilizar características como a elasticidade rápida e self-service sob
demanda, próprias dos serviços de computação em nuvem.

As plataformas de computação em nuvem, como o OpenStack, utilizam as ferramentas de


virtualização para gerenciar o compartilhamento de recursos computacionais disponíveis na
infraestrutura do ambiente de computação em nuvem. Por exemplo, a criação de máquinas
virtuais no OpenStack pode ser realizada por meio de diversas ferramentas de virtualização,
como VMware ESXi, XenServer ou Hyper-V (MICROSOFT, 2019).

Os centros de dados (data centers) modernos fazem uso de tecnologias de virtualização para
obter eficiência e flexibilidade na administração da infraestrutura de TI. As ferramentas de
virtualização, também denominadas Hypervisor, abstraem os recursos computacionais (como
servidores e equipamentos de rede) na forma de componentes virtualizados que podem, então,
Disciplina

COMPUTAÇÃO EM NUVEM

ser facilmente alocados ou liberados (Erl; Puttini; Mahmood, 2013). Isso é fundamental para a
elasticidade rápida dos ambientes de computação em nuvem.

A virtualização pode ser definida como “uma tecnologia que permite criar vários ambientes
simulados ou recursos dedicados a partir de um único sistema de hardware físico” (Redhat,
2019). Como ilustrado na Figura 2, o ambiente lógico criado sobre o equipamento físico é
denominado máquina virtual (VM – Virtual Machine). A virtualização permite, por exemplo, que
um mesmo servidor seja compartilhado por várias aplicações (Apps) de diferentes usuários, de
forma isolada e segura, pois cada aplicação pode ser executada em uma máquina virtual
diferente no mesmo servidor. Observe que cada máquina virtual tem seu próprio sistema
operacional (SO), então, é possível ter máquinas virtuais com sistemas operacionais diferentes
no mesmo servidor.

Figura 2 | Máquinas virtuais em um servidor físico.


Disciplina

COMPUTAÇÃO EM NUVEM

A virtualização viabiliza três fatores fundamentais para a computação em nuvem: independência


de hardware, possibilidade de consolidação de servidores e facilidade de replicação de recursos
(Erl, 2013).

Independência de hardware: a ferramenta de virtualização abstrai as peculiaridades dos


recursos físicos, de forma que problemas de compatibilidade são minimizados. Assim, a
migração de uma aplicação em uma máquina virtual não depende das características do
hardware do equipamento de destino, desde que o formato da máquina virtual seja
suportado pelo hypervisor.
Consolidação de servidores: a consolidação de servidores é um processo para aumentar a
taxa de utilização dos servidores em um centro de dados a fim reduzir custos e economizar
energia (Ahmad, 2015). Uma das formas de consolidação de servidores é migrar as
máquinas virtuais para o menor número possível de servidores. Por exemplo, se existe
apenas uma máquina virtual em um servidor, ela pode ser migrada para outro servidor que
ainda tem recursos disponíveis para que o primeiro servidor, agora sem nenhuma máquina
virtual, possa ser desligado.
Facilidade de replicação: o terceiro fator importante é a facilidade na replicação das
instâncias de máquinas virtuais. Isso decorre do fato de que a máquina virtual é software e
pode ser replicada com operações simples de manipulação de arquivos. Assim, é mais fácil
instanciar e replicar máquinas virtuais do que servidores físicos.

Siga em Frente...

Evolução de tecnologias de redes e datacenter


A evolução das tecnologias de redes e data centers tem sido significativa nas últimas décadas,
impulsionada por avanços na computação, armazenamento, virtualização, automação e
demandas crescentes por desempenho, escalabilidade e eficiência.

Redes

As redes desempenham um papel fundamental na computação em nuvem, fornecendo a


infraestrutura necessária para conectar usuários, aplicativos e serviços distribuídos em
ambientes em nuvem. Aspectos importantes das redes:

Infraestrutura de rede em nuvem: os provedores de nuvem, como Amazon Web Services


(AWS), Microsoft Azure e Google Cloud Platform (GCP), oferecem infraestrutura de rede
virtualizada. Isso inclui serviços como redes virtuais, sub-redes, balanceadores de carga,
gateways e firewalls.
Redes virtuais: as redes virtuais permitem a criação de ambientes de rede isolados e
personalizados para diferentes aplicativos ou ambientes de clientes dentro da
infraestrutura em nuvem. Isso facilita a segmentação e o isolamento de recursos.
Conectividade: as soluções em nuvem oferecem conectividade global. Empresas podem
interconectar diferentes regiões ou data centers de maneira eficiente, permitindo alta
Disciplina

COMPUTAÇÃO EM NUVEM

disponibilidade e recuperação de desastres.


Load Balancing: serviços de balanceamento de carga distribuem o tráfego entre instâncias
de aplicativos, garantindo uma distribuição uniforme da carga para otimizar o desempenho
e a confiabilidade.
Gateway de rede (Nuvem para On-Premises): muitas organizações mantêm parte de sua
infraestrutura on-premise. Os gateways de rede em nuvem facilitam a conexão segura e
eficiente entre ambientes locais e a nuvem.
Serviços de DNS: os serviços de Sistema de Nomes de Domínio (DNS) em nuvem facilitam
a administração e resolução de nomes de domínio, garantindo uma comunicação eficiente
entre os serviços hospedados na nuvem.
Redes Privadas Virtuais (VPN): em nuvem, permitem a criação de conexões seguras entre
redes corporativas e ambientes em nuvem, garantindo comunicações seguras através da
Internet.
Controle de acesso: soluções de controle de acesso ajudam a garantir a segurança da rede
em nuvem, controlando quem pode acessar recursos específicos e aplicando políticas de
segurança.
Serviços de CDN (Content Delivery Network): em nuvem, distribuem conteúdo de maneira
eficiente, melhorando o desempenho e a entrega de conteúdo aos usuários finais,
reduzindo a latência.
Monitoramento e gerenciamento: plataformas em nuvem oferecem ferramentas robustas
para monitoramento de desempenho, gerenciamento de tráfego, análise de registros e
diagnóstico de problemas de rede.
Escalabilidade dinâmica: as redes em nuvem são projetadas para serem altamente
escaláveis. Elas podem se ajustar dinamicamente às demandas de tráfego, permitindo que
os recursos de rede cresçam ou diminuam conforme necessário.
Segurança: é uma consideração crítica nas redes em nuvem. Isso inclui a proteção contra
ameaças, criptografia de dados em trânsito e em repouso, além de controles de acesso
granulares.

Ao adotar a computação em nuvem, as organizações podem aproveitar essas capacidades de


rede para melhorar a flexibilidade, a eficiência operacional e a escalabilidade de seus aplicativos
e serviços. A nuvem oferece um modelo mais dinâmico e ágil para as redes, alinhado às
necessidades modernas de negócios.

Data Center

Os data centers desempenham um papel fundamental na computação em nuvem, fornecendo a


infraestrutura física necessária para suportar serviços em nuvem, armazenamento de dados,
processamento e rede. Aspectos importantes dos data centers:

Infraestrutura física: os data centers em nuvem consistem em servidores físicos,


armazenamento, dispositivos de rede, switches, roteadores, sistemas de refrigeração,
sistemas de alimentação elétrica redundantes e outros componentes necessários para
suportar operações contínuas.
Escalabilidade: os data centers em nuvem são projetados para serem altamente escaláveis,
permitindo que os provedores de nuvem adicionem recursos de hardware conforme a
Disciplina

COMPUTAÇÃO EM NUVEM

demanda aumenta. Essa capacidade de escalabilidade permite acomodar um grande


número de usuários e cargas de trabalho variáveis.
Virtualização: é uma tecnologia-chave nos data centers em nuvem. Permite a criação de
máquinas virtuais e contêineres, para que múltiplos ambientes de computação sejam
executados em um único servidor físico.
Distribuição geográfica: muitos provedores de nuvem têm data centers distribuídos
globalmente. Isso permite que eles ofereçam serviços mais próximos dos usuários finais,
reduzindo a latência e melhorando o desempenho.
Alta disponibilidade: inclui cópias de dados em vários locais, sistemas de energia
redundantes e sistemas de resfriamento para garantir operações ininterruptas.
Recuperação de desastres: os provedores de nuvem implementam estratégias de
recuperação de desastres para garantir a continuidade dos negócios em caso de falhas.
Isso pode incluir a replicação de dados entre data centers e a capacidade de restaurar
serviços rapidamente.
Eficiência energética: os data centers em nuvem estão focados na eficiência energética
para reduzir os custos operacionais e minimizar o impacto ambiental. Isso envolve o uso de
hardware eficiente, técnicas de resfriamento avançadas e práticas de gerenciamento de
energia.
Segurança física e lógica: a segurança é uma prioridade nos data centers em nuvem. Isso
inclui medidas físicas, como controle de acesso e vigilância, bem como medidas lógicas,
como criptografia de dados, firewalls e detecção de ameaças.
Automação e orquestração: a automação desempenha um papel crucial nos data centers
em nuvem. Ferramentas de orquestração automatizam tarefas operacionais, como
provisionamento de recursos, gerenciamento de carga de trabalho e manutenção.
API (Interfaces de Programação de Aplicações): são fundamentais para a integração e
automação em ambientes de nuvem. Elas permitem que os desenvolvedores interajam com
os serviços em nuvem e automatizem processos.
Modelo de pagamento sob demanda: operam em um modelo de pagamento sob demanda,
no qual os usuários pagam apenas pelos recursos que consomem. Isso proporciona
flexibilidade financeira e evita a necessidade de investimentos significativos em
infraestrutura.

Os data centers na computação em nuvem são a espinha dorsal que sustenta a entrega de
serviços em nuvem. Eles são projetados para oferecer escalabilidade, flexibilidade, confiabilidade
e eficiência operacional para atender às crescentes demandas das organizações modernas.

Vamos Exercitar?

Nível de Virtualização
Descrição da situação-problema

Uma empresa vai lançar um novo aplicativo para gestão de tarefas colaborativas. O objetivo é
promover aumento de produtividade para pequenas empresas e profissionais liberais. O sistema
Disciplina

COMPUTAÇÃO EM NUVEM

inclui um serviço web e um banco de dados no qual são compartilhados os dados das tarefas. O
aplicativo conecta-se no serviço web por meio de requisições HTTP para manipular os recursos
do sistema. A empresa está com grande expectativa de sucesso. Para atender muitos clientes, já
escolheu um grande provedor de nuvem pública para hospedar o sistema. Você foi contratado
como consultor para definir a melhor estratégia de implantação do serviço web e do banco de
dados nesse provedor específico que oferece apenas serviços nos modelos PaaS e IaaS. Você
precisa determinar qual a melhor opção para implantação do serviço web e do banco de dados
em termos do modelo de serviço e tecnologia de virtualização.

Resolução da situação-problema:

O Quadro 1 apresenta um resumo comparativo das tecnologias de virtualização. A máquina


virtual é considerada um modelo de virtualização ao nível de hardware. Já o contêiner é
considerado um modelo de virtualização ao nível de sistema operacional. Por isso, a imagem da
máquina virtual é muito grande, comparada à do contêiner, pois a imagem da máquina virtual
precisa conter seu próprio sistema operacional. Por outro lado, os contêineres compartilham o
sistema operacional da máquina física no qual executam. A desvantagem é que a aplicação
incluída no contêiner tem que ter sido implementada para o mesmo sistema operacional no qual
o gerenciador de contêiner está executando.

Máquina Virtual Contêineres


Virtualização no nível
Virtualização no nível
Abordagem de sistema
de hardware
operacional
Denominação da
ferramenta de Hypervisor Container Engine
virtualização
Permite
Maior nível de
compartilhamen
isolamento e
to do sistema
segurança.
operacional.
Permite mais de
Mais “leve”
um sistema
(exige menos
Vantagens operacional no
recursos e
mesmo
ocupa menos
hardware.
espaço).

Quadro 1 | Comparação entre contêineres e máquinas virtuais.

Vamos avaliar cada componente do sistema para determinar qual dos dois modelos de
virtualização é mais adequado. O banco de dados pode conter dados sobre os quais os clientes
desejam privacidade, portanto a proteção e o isolamento dos dados é um critério relevante. Além
Disciplina

COMPUTAÇÃO EM NUVEM

disso, o banco de dados possui uma ou apenas algumas réplicas, não há necessidade de escalar
para um número elevado de instâncias dos SGBD. Portanto, a melhor estratégia é implantar o
banco de dados em uma máquina virtual alocada no modelo IaaS.

O outro componente do sistema é o serviço web, que podem necessitar de replicação em escala
para balanceamento de carga. O serviço web se beneficia de tecnologias abertas e padronizadas
disponíveis em plataformas pré-configuradas na maioria dos provedores, sem necessidade de
gerenciamento de infraestrutura. Nesse caso, a opção mais adequada para implantar o serviço
web seria um serviço PaaS baseado em contêiner para agilizar a replicação das instâncias.

Saiba mais

É importante salientar que contêineres e máquinas virtuais não são necessariamente tecnologias
concorrentes. Na verdade, essas tecnologias podem ser utilizadas de forma complementar para
compartilhar a infraestrutura dos provedores entre vários clientes. Isso é possível porque um
gerenciador de contêineres, como o Docker (Docker, 2019c), pode ser instalado em uma máquina
virtual, que então poderia suportar a execução de contêineres. Além disso, existem aplicações
para as quais a implantação em máquina virtual é mais interessante, por exemplo, devido a
requisitos de segurança. Em outros cenários, a implantação de contêineres é mais indicada, por
exemplo, no caso da replicação automática de aplicações web em provedores de Plataforma
como Serviço (Silva, 2017; Pereira, 2019).

Referências
AHMAD, R. W. et al. A survey on virtual machine migration and server consolidation frameworks
for cloud data centers. Journal of Network and Computer Applications, v. 52, p. 11–25, 2015.

BACHIEGA, N. G.; SOUZA, P. S. L. de; BRUSCHI, S. M. Avaliação de desempenho de virtualização


baseada em contêiner. In: Escola Regional de Alto Desempenho de São Paulo - ERAD-SP, SBC,
2017.

ERL, T.; PUTTINI, R.; MAHMOOD, Z. Cloud Computing: concepts, technology & architecture. Rio de
Janeiro: Prentice Hall, 2013.

SILVA, E. A. N. da. Uma abordagem dirigida por modelos para portabilidade entre plataformas de
computação em nuvem. 2013. Dissertação (Mestrado em Ciências Exatas e da Terra) –
Universidade Federal de São Carlos, São Carlos, 2013.

Aula 2
Provedores de Computação em Nuvem
Disciplina

COMPUTAÇÃO EM NUVEM

Provedores de computação em nuvem

Este conteúdo é um vídeo!


Para assistir este conteúdo é necessário que você acesse o AVA pelo
computador ou pelo aplicativo. Você pode baixar os vídeos direto no aplicativo
para assistir mesmo sem conexão à internet.
Dica para você
Aproveite o acesso para baixar os slides do vídeo, isso pode deixar sua
aprendizagem ainda mais completa.

Olá estudante! Nesta videoaula, exploraremos os principais provedores, como Amazon Web
Services (AWS), Microsoft Azure e Google Cloud.
Vamos abordar os recursos oferecidos pelos provedores e os modelos de tarifação de serviços
em nuvem.
Esse conteúdo é importante para a sua prática profissional, pois a utilização de provedores de
computação em nuvem é vital para a prática profissional, oferecendo vantagens significativas em
termos de eficiência, agilidade, segurança e inovação.
Prepare-se para essa jornada de conhecimento! Vamos lá!!!

Ponto de Partida

Caro estudante, vamos começar mais uma etapa de nosso estudo sobre as tecnologias e
soluções empregadas nos provedores de computação em nuvem.

Você conhece os modelos utilizados pelos provedores para determinar os preços dos serviços?
Sabe quais são as métricas utilizadas para contabilizar o uso dos recursos de TI?

Nesta aula, você estudará os principais provedores de computação em nuvem no mundo, as


métricas de custo, modelos de tarifação e principais provedores de nuvem pública.

Bons estudos!

Vamos Começar!

Métricas de custo de serviços em nuvem


O gerenciamento dos custos de serviços em nuvem é uma tarefa difícil, uma vez que o cálculo do
custo total envolve várias métricas e os preços dos recursos computacionais podem variar de
Disciplina

COMPUTAÇÃO EM NUVEM

acordo com a localização da infraestrutura ou a forma de tarifação (Rodamilans, 2014). Além


disso, as empresas podem utilizar serviços de diferentes provedores para implementar uma
solução, o que caracteriza um cenário denominado multicloud (Petcu, 2013). Assim, mesmo que
cada provedor ofereça uma ferramenta de gerenciamento de custos, faz-se necessária uma
solução adicional centralizada para agregar os custos dos diferentes provedores.

Uma das características dos serviços de computação em nuvem é o pagamento baseado no uso.
Na prática, existem diversas métricas que são utilizadas para calcular os custos para o tempo de
uso de cada tipo de recurso computacional. Em geral, três métricas básicas são consideradas na
determinação do custo de serviços em nuvem:

Uso de recursos de processamento é uma métrica calculada a partir do tempo de uso de


núcleos de processamento de máquinas virtuais. Em geral esse custo é proporcional à
quantidade de memória RAM. O provedor tem a sua calculadora de custos, para estimar os
custos e a economia em escolher cada um deles; um exemplo é a calculadora da Amazon.
Uso de recursos de armazenamento serve para tarifar o espaço utilizado para
armazenamento persistente de dados e, em geral, é uma cobrança mensal para cada
gigabyte de dados armazenados.
Uso de recursos de transmissão de dados serve para tarifar os dados transferidos entre a
rede do provedor e outras redes. Como a transmissão pode ocorrer nos dois sentidos, o
provedor pode definir preços diferentes para tráfego de saída e de entrada. Assim, se você
aloca uma máquina virtual, além de pagar pelo uso da máquina e do armazenamento,
também poderá ser cobrado pelos dados que foram enviados para essa máquina ou dessa
máquina para outro computador qualquer. Além das métricas básicas, existem também
métricas adicionais, associadas ao uso de componentes de software. Nesse caso, é usual
a precificação por evento, e não pelo tempo de uso. Assim, um provedor poderia tarifar o
cliente pelo número de operações de escrita em um SGBD ou pelo número de requisições a
uma aplicação web. Por exemplo, um provedor poderia cobrar do cliente R$ 2,00 para cada
1.000 requisições a um serviço web.

O gerenciamento eficiente dos custos é uma consideração crítica ao utilizar serviços em nuvem.
Existem várias métricas e estratégias que podem ser empregadas para monitorar e otimizar os
custos associados aos serviços em nuvem. Algumas métricas importantes:

Custo por hora/minuto: pode fornecer uma visão detalhada dos gastos e ajudar na
otimização.
Custo por transação: em serviços baseados em transações, como armazenamento de
dados ou transferência de dados, monitorar o custo por transação pode ser útil para
identificar padrões de uso e otimizar o que for possível.
Custo por armazenamento: monitorar o custo associado ao armazenamento de dados,
incluindo armazenamento em blocos, objetos e serviços de banco de dados, permite
identificar oportunidades para reduzir custos ou otimizar a utilização.

Além de monitorar essas métricas, é importante implementar práticas de otimização contínua,


como o uso eficiente de instâncias reservadas, dimensionamento automático, política de
desativação de recursos ociosos e a implementação de estratégias de custo personalizadas para
Disciplina

COMPUTAÇÃO EM NUVEM

atender às necessidades específicas da sua aplicação e negócio. Utilizar ferramentas de


gerenciamento de custos fornecidas pelos provedores de nuvem também é uma prática comum
para monitoramento e controle mais eficazes.

O Quadro 1 apresenta um resumo das métricas básicas para tarifação de serviços de


computação em nuvem.

Tipo de
Métrica Descrição Exemplo
cobrança
Medida da
capacidade de
R$ 0,80 por hora
processamento
de uso de
alocada.
máquina virtual
Uso de recursos Representa o
Por tempo (em com 2 núcleos
de pagamento pelo
geral, por hora). de
processamento. uso de núcleos
processamento
de
e 4 GB de
processamento
memória RAM
e memória
RAM.
Medida da
capacidade de
R$ 0,60 por mês
armazenamento
para cada 1 GB
alocada.
Uso de recursos de dados
Representa o
de Por tempo (em armazenados
pagamento pelo
armazenamento geral, por mês). em uma
uso espaço de
. unidade de
memória
armazenamento
secundária
(disco virtual).
(armazenament
o persistente).
Medida do
volume de
dados R$ 0,05 para
transferidos. cada 1 GB de
Uso de recursos Por evento (em
Representa o dados
de transmissão geral, por GB
pagamento pela transferido
de dados. transferido).
transferência de de/para uma
dados para ou máquina virtual.
da rede do
provedor.

Quadro 1 | Principais provedores de serviços de computação em nuvem.


Disciplina

COMPUTAÇÃO EM NUVEM

Para cada tipo de serviço, o provedor pode combinar as três métricas para determinar o custo
final do serviço.

Siga em Frente...

Modelos de tarifação de serviços em nuvem


Os provedores de serviços em nuvem oferecem diferentes modelos de tarifação para seus
serviços, adaptando-se às diversas necessidades dos usuários.

Alguns dos modelos de tarifação mais comuns em serviços de nuvem são:

Pague pelo uso (Pay-as-You-Go): os usuários pagam apenas pelos recursos que realmente
utilizam. É uma abordagem flexível, os custos estão diretamente relacionados ao consumo
efetivo de recursos, como tempo de computação, armazenamento ou largura de banda. A
vantagem é a flexibilidade para escalar recursos conforme necessário, custos alinhados ao
uso real.
Reservas (Reserved Instances): os usuários podem optar por reservar capacidade de
recursos (como instâncias de máquinas virtuais) antecipadamente por um período fixo. Em
troca, recebem descontos significativos em comparação com o pagamento pelo uso. As
vantagens são economias substanciais para cargas de trabalho estáveis e previsíveis.
Preços por compromisso (Committed Use Discounts): semelhante às reservas, mas
oferecendo mais flexibilidade, os usuários comprometem-se a gastar um valor específico
por mês em recursos específicos, obtendo descontos com base nesse compromisso
financeiro. A vantagem é a maior flexibilidade em comparação com reservas tradicionais.
Preços por região: os custos podem variar com base na região geográfica em que os
recursos são provisionados. Algumas regiões podem ter custos mais altos ou mais baixos,
dependendo da oferta e demanda local. A vantagem é permitir otimizar custos escolhendo
regiões com preços mais competitivos.

Cada modelo de tarifação tem seus prós e contras e a escolha depende das características
específicas da carga de trabalho, dos requisitos de negócios e das preferências orçamentárias
da organização. É importante entender os detalhes da tarifação de cada provedor para otimizar
os custos e escolher o modelo mais adequado.

Principais provedores de nuvem pública (por exemplo, AWS,


Azure, Google Cloud)
Considerando os provedores de nuvem pública de serviços de infraestrutura e plataforma (IaaS e
PaaS), podemos mencionar a AWS (Amazon Web Services), o Microsoft Azure e o Google Cloud
Platform (RANGER, 2019).
Disciplina

COMPUTAÇÃO EM NUVEM

Em se tratando de soluções corporativas de software como serviço (SaaS), podemos citar a


Microsoft Salesforce, Adobe, Oracle e SAP (Columbus, 2018). É importante mencionar que a
Salesforce, pioneira em software corporativo em nuvem, também mantém o Heroku, um provedor
PaaS, assim como o Openshit da Red Hat e o Cloud Foundry, que é uma plataforma livre
originalmente criada pela VMWare e, hoje, mantida pela Cloud Foundry Fundation.

O Quadro 2 apresenta um resumo dos principais provedores e respectivos serviços.

Exemplo de serviço ou
Modelo de Serviço Provedor
produto
AWS Elastic Cloud
Computing (EC2):
AWS (AWS, 2019c)
máquinas virtuais
(AWS, 2019e).
Azure Virtual
Microsoft Azure Machines: máquinas
IaaS
(Azure, 2019) virtuais (Azure,
2019c).
Google Compute
Google Cloud
Engine: máquinas
Platform (Google,
virtuais (Google,
2019)
2019c).
AWS Elastic
PaaS Beanstalk: ambiente
gerenciado para
AWS desenvolvimento e im
plantação de
aplicações (AWS,
2019d).
Azure App Service:
ambiente gerenciado
para desenvolvimento
Microsoft Azure
e implanta- ção de
aplicações (Azure,
2019b).
Google App Engine:
ambiente gerenciado
Google Cloud para desenvolvimento
Platform e implantação de
aplicações (Google,
2019b).
Disciplina

COMPUTAÇÃO EM NUVEM

Heroku Platform:
ambiente gerenciado
Salesforce para desenvolvimento
(Salesforce, 2019) e implantação de
aplicações (Heroku,
2019),
Red Hat OpenShift:
ambiente gerenciado
Red Hat OpenShift
para desenvolvimento
(Openshift, 2019)
e implanta- ção de
aplicações.
Cloud Foundry: uma
plataforma baseada
em contêineres,
Cloud Foundry (Cloud distribuída como
Foundry, 2019) software livre, para
desenvolvimento e
implantação de
aplicações.
SaaS Microsoft Office 365:
Microsoft Office 365 aplicativos de
(Microsoft, 2019) produtividade e
colaboração.
Salesforce Essentials:
aplicações de CRM
(Customer
Salesforce
Relationship
Management)
(Salesforce, 2019b).
Adobe Experience
Adobe Experience Cloud: aplicações para
Cloud (Adobe, 2019) marketing
coorporativo.
Oracle Cloud
Applications:
Oracle Cloud (Oracle,
aplicações para
2019)
gestão coorporativa
(Oracle, 2019b).
SAP Cloud Platform Cloud ERP (Enterprise
(SAP, 2019) Resource Planning):
aplicações para
Disciplina

COMPUTAÇÃO EM NUVEM

gestão corporativa
(SAP, 2019b).

Quadro 2 | Resumo dos principais provedores e respectivos serviços.

Os provedores têm suas próprias características, preços e ecossistemas de serviços exclusivos,


e a escolha entre eles, muitas vezes, depende dos requisitos específicos do projeto, preferências
da empresa e integração com as tecnologias existentes.

Outros provedores de nuvem pública, embora em menor escala, também oferecem serviços
valiosos e podem ser considerados, dependendo das necessidades específicas.

Vamos Exercitar?

Infraestrutura própria ou na nuvem


Descrição da situação-problema

Considere o caso de uma empresa que precisa executar uma aplicação de mineração de dados.
A execução vai durar 20 meses e requer 8 servidores. A empresa pode montar sua própria
infraestrutura ou alocar os servidores virtuais na nuvem. No primeiro caso, a empresa teria que
arcar com a compra dos servidores que custam R$ 6.000 cada e também com manutenção da
infraestrutura, que custaria R$ 2.500 por mês para gastos com equipe técnica e refrigeração do
ambiente. Se optar por um usar um provedor de serviços em nuvem, a empresa tem a opção de
alocar servidores virtuais de capacidade compatível pelo valor de R$ 600 por mês cada.

Qual opção representa a solução de menor custo para a empresa?


E se o prazo do projeto mudasse para 24 meses?

Resolução da situação-problema:

O custo de manter a infraestrutura própria consiste em adquirir 8 servidores por R$ 6.000 cada,
mais um custo de operação mensal de R$ 2.000 por 20 meses. Isso equivale a um total de R$
98.000 de custo de execução do projeto.

O custo de alocar a infraestrutura no provedor consiste em pagar pelo uso de 8 servidores que
custam R$ 600 por mês cada por um período total de 20 meses. Isso equivale a um total de R$
96.000 de custo de execução do projeto. Portanto, a solução em nuvem representa a opção de
menor custo.

No entanto, se a duração do projeto fosse de 24 meses, a situação se inverteria. O custo da


execução do projeto em infraestrutura própria seria de R$ 108.000, enquanto o custo na nuvem
seria de R$ 115.200. Isso acontece porque o investimento inicial é maior no caso de
Disciplina

COMPUTAÇÃO EM NUVEM

infraestrutura própria, mas o custo operacional mensal no caso da nuvem é maior. Com um prazo
maior, o custo operacional acaba por representar uma parcela mais significativa do custo total.
Por outro lado, prazos maiores também levam a uma maior depreciação da infraestrutura
própria. De fato, cada caso tem que ser analisado isoladamente para se verificar qual é mais
vantajoso.

Saiba mais
No artigo indicado a seguir, é feito um estudo que compara o custo da aquisição de servidores
físicos com o custo do uso de máquinas virtuais em um provedor de nuvem pública. O cenário
hipotético apresentado ilustra diversas variáveis envolvidas na análise dos custos, por exemplo, a
taxa de utilização dos servidores.

SOUSA, F. R. C.; MOREIRA, L. O.; MACHADO, J. C. Computação em nuvem: Conceitos, tecnologias,


aplicações e desafios. II Escola Regional de Computação Ceará, Maranhão e Piauí (ERCEMAPI),
2009.

Referências

AMAZON. Amazon Elastic Compute Cloud (Amazon EC2). Disponível em:


https://aws.amazon.com/pt/ec2/ Acesso em: 31 jan. 2024.

AWS. Migração de dados para a nuvem. Disponível em: https://aws.amazon.com/pt/cloud-data-


migration/ Acesso em: 31 jan. 2024.

ROSE, C. A. F. D. O que é esta tal de nuvem e o que pode fazer por você? 1. ed. Porto Alegre:
PUCRS, 2020.

SOUSA NETO, M. V. de. Computação em nuvem. 1. ed. Rio de Janeiro: Brasport, 2015.

Aula 3
Migração de Aplicações para a Nuvem

Migração de aplicações para a nuvem

Este conteúdo é um vídeo!


Disciplina

COMPUTAÇÃO EM NUVEM

Para assistir este conteúdo é necessário que você acesse o AVA pelo
computador ou pelo aplicativo. Você pode baixar os vídeos direto no aplicativo
para assistir mesmo sem conexão à internet.
Dica para você
Aproveite o acesso para baixar os slides do vídeo, isso pode deixar sua
aprendizagem ainda mais completa.

Olá, estudante! Nesta videoaula, exploraremos as razões para migrar aplicações para a nuvem,
como escalabilidade, redução de custos, maior flexibilidade e acessibilidade global.
Vamos abordar o gerenciamento de identidade que é uma parte crítica da segurança e operação
eficiente em ambientes de nuvem, garantindo que apenas usuários autorizados tenham acesso
aos recursos apropriados, enquanto também fornece uma trilha de auditoria para monitoramento
e conformidade.
Esse conteúdo é importante para a sua prática profissional, pois a migração de aplicações para a
nuvem é uma estratégia importante para a modernização e eficiência dos negócios, e
profissionais que compreendem e aplicam esses princípios estão em uma posição vantajosa
para impulsionar o sucesso de suas organizações.
Prepare-se para essa jornada de conhecimento! Vamos lá!!!

Ponto de Partida
Caro estudante, vamos aprender as soluções e tecnologias utilizadas pelos provedores para
oferta dos serviços. De que forma podemos acessar os provedores para instanciar e configurar
serviços? Como as empresas controlam quais usuários podem configurar ou acessar cada
serviço? Vamos entender essas questões e outros tópicos importantes relacionados à migração
de dados e aplicações para ambientes de computação em nuvem.

Nesta aula, iremos compreender os diversos fatores associados à migração e acesso a serviços
em ambientes de computação em nuvem.

Em seguida, serão descritos o conceito de gerenciamento de identidade, o acesso e suas


principais funcionalidades. Vamos ainda caracterizar diversas formas de acesso a serviços na
nuvem.

Por fim, vamos aprender sobre hospedagem de aplicações em nuvem.

Bons estudos!

Vamos Começar!
Disciplina

COMPUTAÇÃO EM NUVEM

Migração de dados e aplicações para a nuvem


Muitas empresas têm adotado soluções de TI baseadas no modelo de computação em nuvem
em virtude de vários benefícios, como redução de custos e maior escalabilidade. No caso de
novas aplicações, as decisões de projeto já consideram características e tecnologias dos
ambientes de computação em nuvem. O que pode ser feito no caso de aplicações já existentes
que estão em execução em um ambiente tradicional de TI? Essas aplicações também podem se
beneficiar das tecnologias de computação em nuvem e , para isso, as aplicações que estão em
um ambiente tradicional precisam ser reimplantadas em um ambiente de computação em
nuvem. Esse processo é denominado migração para a nuvem (Pahl; Xiong, 2013).

A migração de aplicações e dados para a nuvem não é uma tarefa simples. Pelo contrário, trata-
se de um processo que envolve muitos desafios, portanto, exige análise e planejamento
cuidadosos para garantir o correto funcionamento dos sistemas na infraestrutura de
computação em nuvem e assegurar que não haverá violação dos requisitos de segurança e
privacidade (Morais, 2015). Para viabilizar a migração, podem ser necessárias, por exemplo,
mudanças na arquitetura do sistema ou nas tecnologias utilizadas. No processo de migração de
dados e de aplicações para um novo ambiente, o custo é um dos fatores mais relevantes. Entre
os principais, podemos citar:

Treinamento de profissionais para gerenciamento do ambiente de computação em nuvem.


Modificação nas aplicações ou necessidade de implementar novos componentes de
software.
Transferência de grandes volumes de dados.

Se a migração envolve uma aplicação com uma base de dados extensa, a transmissão dos
dados pode durar semanas ou até meses, de acordo com o desempenho da rede e com o volume
de dados (AWS, 2019). Múltiplos processos têm que ser capazes de acessar a informação
concorrentemente (a informação deve ser independente de qualquer processo).

A portabilidade, pode ser entendida como a facilidade com a qual um sistema pode ser levado de
um ambiente para outro (Silva, 2013). O desejável é que a migração possa ser feita com o
mínimo de adaptações necessárias nos sistemas. É importante observar que a compatibilidade
não é esperada apenas em termos de ambiente de execução ou padrões de comunicação entre
componentes de software, mas também em relação às tecnologias de gerenciamento de dados.
Esses aspectos são relevantes no processo de migrar sistemas para a nuvem e também na
migração entre provedores de nuvem, caso necessário.

Em geral, o processo de migração para a nuvem pode ser divido em três etapas (Morais, 2015):

Planejamento: envolve atividades como: levantamento de requisitos; análise de riscos;


escolha de ferramentas de migração, provedores e modelos de serviço e implantação;
análise de custos e viabilidade e definição da estratégia de migração.
Execução: consiste nas ações para levar o sistema para o novo ambiente, conforme
planejado. Essa etapa envolve atividades como: extração, conversão e transferência de
Disciplina

COMPUTAÇÃO EM NUVEM

dados; adaptação na arquitetura do sistema; alterações nas aplicações existentes,


substituição ou implementação de novos componentes e bibliotecas.
Avaliação: consiste na validação do processo e testes do sistema. Essa etapa inclui
atividades como: avaliação de desempenho e segurança; testes de integridade e validação
da qualidade de experiência do usuário.

Estratégia de migração
Uma das tarefas da etapa de planejamento é a definição da estratégia de migração. Existem
diversas abordagens (AWS, 2018), entre as quais podemos destacar:

Re-host: migrar a aplicação sem qualquer mudança arquitetural ou modificação de código.


Isso é possível, por exemplo, quando a aplicação já executa em ambiente virtualizado, e as
máquinas virtuais são copiadas para um provedor de nuvem pública. Os custos são
reduzidos, mas a solução não é otimizada para ambiente de nuvem, portanto alguns
mecanismos, como balanceamento dinâmico de carga, podem ser inviabilizados.
Re-platform: a arquitetura geral do sistema não é alterada, mas os componentes são
migrados de forma independente para aproveitar os serviços em nuvem. Por exemplo,
instâncias de banco de dados são migradas para um provedor DBaaS (data base as a
service) e aplicações são migradas para ambientes PaaS. É uma abordagem intermediária
em termos da relação custo-benefício.
Re-factor ou Re-architect: a aplicação é remodelada e reimplementada a partir de
tecnologias e mecanismos típicos de computação em nuvem. É a estratégia que envolve
maior custo e tempo de implementação. Por outro lado, permite aproveitar todo potencial
do ambiente de nuvem.

Gerenciamento de identidade em provedores de computação em


nuvem
Uma vez que um sistema é migrado para a nuvem, seus administradores precisam redefinir como
o sistema será gerenciado e utilizado no novo ambiente. Em particular, é necessário determinar
como será o acesso remoto aos componentes do sistema que passaram a executar em
infraestrutura de computação em nuvem. Isso envolve dois aspectos principais: o controle de
permissões e as tecnologias de acesso. Isso é relevante mesmo nos casos em que um sistema é
migrado para ambiente de nuvem privada, pois o controle de acesso é parte das plataformas de
computação em nuvem usadas tanto em modelo de nuvem pública quanto de nuvem privada.

Um dos mecanismos mais importantes para controle é o Gerenciamento de Acesso e Identidade


(IAM – Identity and Access Management). Esse mecanismo consiste nos componentes e
políticas necessários para verificar e monitorar a identidade e as permissões de cada usuário em
relação ao uso dos recursos computacionais disponíveis no ambiente de nuvem (Erl; Puttini;
Mahmood, 2013). Em geral, um mecanismo IAM inclui três funcionalidades principais:
Disciplina

COMPUTAÇÃO EM NUVEM

Autenticação: verificação da identidade do usuário, por exemplo, a partir de senha ou


certificado digital. Mecanismos mais sofisticados incluem uso de biometria, assim como a
restrição do acesso de acordo com o dispositivo utilizado pelo usuário ou até mesmo sua
localização.
Autorização: controle dos níveis de acesso e das permissões concedidas para um usuário
em relação aos serviços e recursos disponíveis.
Gerenciamento de usuários e credenciais: permite criar ou alterar cadastro de usuários,
assim como grupos de usuários, políticas de segurança ou regras de acesso para facilitar o
controle de uso dos recursos e lidar com ameaças de segurança e privacidade.

Esse mecanismo permite que os administradores do sistema especifiquem os níveis ou


permissões de acesso para cada profissional ou grupo de profissionais envolvidos no
desenvolvimento e operação da aplicação em ambiente de computação em nuvem e também
dos usuários da aplicação. Esse controle é imprescindível, pois o acesso aos serviços de suporte
ou à própria aplicação é feito por meio da rede.

Por outro lado, um rigoroso controle de acesso leva a uma necessidade de autenticação e
verificação de permissão de acesso para cada serviço em nuvem utilizado para implantar uma
aplicação, ou seja, máquinas virtuais, bancos de dados, componentes de software, etc. A
situação pode ser mais complicada no caso em que uma mesma aplicação faz uso de serviços
em provedores diferentes. Para lidar com essas questões, foram criados mecanismos de
autenticação unificada (SSO – Single Sign On). Essa abordagem introduz o papel de um provedor
de autenticação, por meio do qual um usuário pode acessar diversos serviços, inclusive em
diferentes provedores, mediante um único processo de autenticação (Erl; Puttini; Mahmood,
2013). A Figura 1 ilustra esse cenário. Depois de realizar a autenticação, um cliente pode acessar
diversos serviços, inclusive em provedores diferentes, por meio da mesma identidade.
Disciplina

COMPUTAÇÃO EM NUVEM

Figura 1 | Autenticação unificada para acesso a serviços em nuvem.

Siga em Frente...

Hospedagem de aplicações em nuvem


A hospedagem de aplicações em nuvem refere-se ao processo de executar e manter aplicativos
em servidores remotos, geralmente fornecidos por provedores de serviços de computação em
nuvem. Isso permite que as empresas evitem investir em infraestrutura física e se beneficiem da
flexibilidade e escalabilidade oferecidas pela nuvem.

Os modelos de serviço comuns para hospedagem em nuvem, são:

IaaS (Infraestrutura como Serviço): fornece recursos de infraestrutura, como servidores


virtuais e armazenamento.
PaaS (Plataforma como Serviço): oferece uma plataforma completa de desenvolvimento,
incluindo ferramentas e serviços.
Disciplina

COMPUTAÇÃO EM NUVEM

SaaS (Software como Serviço): disponibiliza aplicativos diretamente aos usuários finais
pela internet.

Na prática, a estratégia básica de migração inicial ou empresas de pequeno porte é a estratégia


Re-Platform, como explicado anteriormente. Uma forma de usar essa estratégia é migrar os
componentes do sistema para serviços PaaS. Isso significa enviar o código já existente da
aplicação para um ambiente de desenvolvimento compatível na nuvem e implantar (fazer o
deploy) da aplicação. Adicionalmente, um serviço DBaaS pode ser usado para hospedar o banco
de dados da aplicação, se for o caso. As principais dificuldades são a portabilidade do código e o
paradigma de gerenciamento de dados. Para aplicações feitas em plataformas populares na
indústria de TI, como Java, Python ou JavaScritp, a portabilidade não é um problema, pois a
maioria dos provedores PaaS suporta essas e outras plataformas como Ruby e PHP. A maioria
dos provedores também suporta diversos SGBDs, tanto os que seguem o modelo relacional,
quanto os bancos NoSQL (De Souza et al., 2014).

Essa abordagem de hospedagem de aplicações e bases de dados na nuvem por meio de


provedores PaaS permite a redução de custos, escalabilidade e dispensa a responsabilidade de
gerenciamento de máquinas virtuais. O Quadro 1 apresenta alguns entre os principais serviços
de hospedagem de aplicações em provedores PaaS.

Serviço PaaS Tecnologias


Suportadas
Java, .NET, PHP, Node.js,
AWS Elastic Beanstalk.
Python, Ruby, Go e Docker.
Java, PHP, Node.js, Python,
Google App Engine.
C#, .Net, Ruby e Go.
Node, Ruby, Java, PHP,
Heroku Platform. Python, Go, Scala, Clojure e
contêineres customizados.
NET, Java, Node.js, PHP, e
Python em Windows, .NET
Azure App Service.
Core, Node.js, PHP ou Ruby
em Linux e contêineres.

Quadro 1 | Principais serviços de hospedagem de aplicações em nuvem pública.

Chegamos ao final de mais uma unidade, na qual aprendemos muitos tópicos interessantes,
como fatores importantes na migração de sistemas para ambientes de computação em nuvem,
gerenciamento de identidade em provedores de computação em nuvem e hospedagem de
aplicação em nuvem. Com o conhecimento adquirido até aqui, você será capaz de analisar as
melhores estratégias para migrar aplicações para provedores considerando aspectos como a
escalabilidade.
Disciplina

COMPUTAÇÃO EM NUVEM

Vamos Exercitar?

Migração do banco de dados para as nuvens


Descrição da situação-problema

Imagine que uma empresa de médio porte está enfrentando desafios relacionados ao tempo
necessário para transferir seu banco de dados para um ambiente de nuvem. O banco de dados
contém informações críticas para as operações da empresa, e a migração para a nuvem é vista
como uma medida estratégica para melhorar a escalabilidade, a acessibilidade e a segurança
dos dados. No entanto, a equipe de TI está preocupada com o tempo que essa migração pode
levar, impactando as operações diárias e possivelmente causando interrupções nos serviços.

A migração do banco de dados pode resultar em períodos de downtime, afetando a


disponibilidade dos sistemas.

Baseado no problema relatado, monte um planejamento detalhado para a migração do banco de


dados para as nuvens.

Resolução da situação-problema:

Segue a relação das práticas e estratégias para empresa minimizar o tempo necessário para a
transferência do banco de dados para a nuvem, garantindo uma migração suave e eficiente, com
o mínimo impacto nas operações diárias:

1. Inicie com um planejamento detalhado, identificando os requisitos de migração, definindo


metas claras e elaborando um cronograma realista.
2. Utilize ferramentas de migração de dados eficientes fornecidas pelos provedores de
nuvem. Algumas plataformas oferecem serviços que permitem a replicação de dados em
tempo real para reduzir o impacto no tempo de inatividade.
3. Divida a migração em etapas menores e menos impactantes. Comece transferindo dados
menos críticos e prossiga para dados mais sensíveis à medida que ganha confiança no
processo.
4. Utilize a capacidade de realizar migrações em paralelo, transferindo diferentes conjuntos de
dados simultaneamente para acelerar o processo.
5. Antes da migração, otimize o banco de dados, removendo dados obsoletos ou
desnecessários. Isso reduzirá o volume de dados a ser transferido.
6. Realize testes exaustivos em um ambiente de teste antes da migração completa. Isso
ajuda a identificar possíveis problemas e aprimorar o processo.
7. Comunique-se efetivamente com as partes interessadas, informando sobre o cronograma
de migração, possíveis períodos de downtime e as medidas tomadas para minimizar
impactos.
8. Realize backups completos e verificados do banco de dados antes da migração para
garantir a possibilidade de restauração em caso de problemas inesperados.
Disciplina

COMPUTAÇÃO EM NUVEM

9. Implemente ferramentas de monitoramento contínuo durante o processo de migração para


identificar possíveis problemas em tempo real e tomar ações corretivas imediatas.
10. Capacite a equipe para lidar com situações durante a migração. Garanta que a equipe
esteja ciente dos procedimentos e possa responder rapidamente a problemas potenciais.

Saiba mais
Com os avanços das soluções fornecidas pelos ambientes de nuvem, fica cada vez mais difícil
para o gestor escolher a melhor opção para adicionar os seus serviços, se em um ambiente de
nuvem ou de forma local. Já que existe a necessidade de analisar minuciosamente cada aspecto
das soluções e determinar a que melhor se adéqua aos objetivos da empresa, indicamos a leitura
do artigo Uma metodologia para avaliação multicritério da tomada de decisão sobre a adoção de
serviços de nuvem SaaS ou local.

Referências

AMAZON. Amazon Elastic Compute Cloud (Amazon EC2). Disponível em:


https://aws.amazon.com/pt/ec2/ Acesso em: 31 jan. 2024.

AWS. Migração de dados para a nuvem. Disponível em: https://aws.amazon.com/pt/cloud-data-


migration/ Acesso em: 31 jan. 2024.

ERL, T.; PUTTINI, R.; MAHMOOD, Z. Cloud Computing: concepts, technology & architecture. Rio de
Janeiro: Prentice Hall, 2013.

MORAIS, N. S. de. Proposta de modelo de migração de sistemas de ambiente tradicional para


nuvem privada para o Polo de Tecnologia da Informação do Exército brasileiro. Dissertação
(Mestrado Profissional em Computação Aplicada) – Universidade de Brasília, Brasília, 2015.
Disponível em:
http://icts.unb.br/jspui/bitstream/10482/18758/1/2015_NathanielSimchMorais.pdf Acesso em:
3 fev. 2024.

PAHL, C.; XIONG, H. Migration to PaaS clouds-migration process and architectural concerns. In:
Proceedings of the IEEE 7th International Symposium on the Maintenance and Evolution of
Service-Oriented and Cloud-Based Systems, 2013.

Aula 4
Custos e Economia em Nuvem
Disciplina

COMPUTAÇÃO EM NUVEM

Custos e economia em nuvem

Este conteúdo é um vídeo!


Para assistir este conteúdo é necessário que você acesse o AVA pelo
computador ou pelo aplicativo. Você pode baixar os vídeos direto no aplicativo
para assistir mesmo sem conexão à internet.
Dica para você
Aproveite o acesso para baixar os slides do vídeo, isso pode deixar sua
aprendizagem ainda mais completa.

Olá, estudante! Nesta videoaula, vamos explorar os custos e economia em nuvem. Vamos
abordar os principais conceitos e estratégias que as organizações utilizam para otimizar seus
investimentos em serviços em nuvem
Esse conteúdo é importante para a sua prática profissional, pois a expertise em custos e
economia em nuvem não apenas contribui para a eficiência operacional, mas também
desempenha um papel estratégico na maximização dos benefícios que a computação em nuvem
pode oferecer para as organizações. Essa habilidade é valiosa em qualquer função relacionada à
implementação e gestão de soluções em nuvem.
Vamos lá!!!

Ponto de Partida

Caro estudante, a computação em nuvem introduziu uma verdadeira mudança de paradigma no


escopo da computação. Ao contrário do modelo convencional, a cloud fornece a computação
como um serviço entregue sob demanda (Mell; Grance, 2011). Nela, os recursos são gerenciados
por provedores e podem ser medidos em volume ou tempo de uso.

Nesta aula, você conhecerá modelos de precificação em nuvem, e é importante que as


organizações compreendam esses modelos para tomar decisões informadas sobre como
otimizar custos e escolher a estratégia de precificação mais adequada para suas necessidades
operacionais e orçamentárias. Depois, veremos a otimização de custos e recursos que é um
processo contínuo que requer monitoramento, análise e ajustes regulares. A migração para a
nuvem envolve uma análise cuidadosa dos custos associados a fim de garantir uma transição
eficiente e econômica.

Bons estudos!

Vamos Começar!
Disciplina

COMPUTAÇÃO EM NUVEM

Modelos de precificação em nuvem


A computação em nuvem surgiu na última década como resultado da convergência de várias
tecnologias anteriores e modelos operacionais de TI. Do ponto de vista técnico, ela foi
possibilitada por uma combinação de virtualização, computação em cluster, computação em
grade, rede de banda larga e data centers em larga escala centralizados em locais de baixo
custo. O desenvolvimento de arquiteturas de software para criar processos de negócios
entregues como serviços, juntamente a acordos de nível de serviço (Service Level Agreements —
SLAs) que especificam contratualmente itens como tempo de entrega e requisitos de
desempenho, viabiliza ainda mais o fornecimento desse tipo de computação. A adoção
acelerada da computação em nuvem decorre principalmente de seus benefícios, pois as
empresas foram forçadas a encontrar soluções de TI econômicas para tornar seus produtos
competitivos no mercado atual. Quando utilizavam o modelo de computação tradicional, as
organizações tinham de investir pesadamente em infraestrutura, mão de obra e treinamento para
montar seu departamento de TI. Isso consumia tempo, era relativamente inflexível e caro. Agora,
com a evolução da computação em nuvem, ela se tornou a solução ideal para todos os tipos de
empresas, pois pode ajudar as organizações a economizar tempo e dinheiro, além de oferecer
vários benefícios. Muitos provedores de nuvem confiáveis geralmente fornecem várias
configurações personalizadas para atender às necessidades de todos os tipos de pequenas ou
grandes empresas. Por esse motivo, o retorno do seu investimento em tecnologia costuma ser
alto à medida que seus negócios passam para a nuvem. A economia da computação em nuvem
lida com o conhecimento sobre os princípios, custos e benefícios que ela pode oferecer. Para
qualquer organização obter o maior valor para os seus negócios, ela deve determinar
especificamente como os serviços em nuvem podem afetar o orçamento, a segurança e a
infraestrutura de TI. Não existe uma fórmula fácil e rápida para determinar isso; tudo depende da
avaliação dos custos relacionados à infraestrutura, ao gerenciamento e à necessidade de
pessoal, pesquisa, desenvolvimento, segurança e suporte. Todos esses fatores são analisados
para determinar se a migração para a nuvem é o próximo passo lógico, de acordo com as
circunstâncias e necessidades específicas da organização.

De acordo com Bhowmik (2017), os provedores de nuvem geralmente oferecem dois planos de
provisionamento de recursos ou modelos de preços diferentes para atender aos requisitos dos
consumidores, para atender a diferentes fins comerciais. Os planos são conhecidos como “plano
de curto prazo sob demanda” e “plano de reserva de longo prazo”. A maioria dos provedores
comerciais de nuvem oferece ambos os planos.

Plano de curto prazo sob demanda


Nesse modelo de precificação, os recursos são alocados no curto prazo, conforme a demanda.
Quando a demanda aumenta, os recursos são provisionados de acordo com a necessidade.
Quando a demanda diminui, os recursos alocados são liberados da aplicação e retornados ao
pool de recursos livres. Os consumidores são cobrados com base no uso. Portanto, com esse
plano sob demanda, a alocação de recursos segue a abordagem de provisionamento dinâmico
para atender às demandas que apresentam flutuações e são imprevisíveis em relação ao uso de
recursos. No plano sob demanda de curto prazo, é responsabilidade do provedor garantir o
Disciplina

COMPUTAÇÃO EM NUVEM

desempenho da aplicação provisionando recursos durante a alta demanda. Isso requer um


planejamento adequado por parte do fornecedor. A estimativa dos requisitos de recursos durante
a alta demanda desempenha um papel vital nesse modelo de preços.

Plano de reserva de longo prazo


No plano de reserva de longo prazo, também conhecido como “provisionamento antecipado”, é
realizado um contrato de serviço entre o consumidor e o provedor em relação à necessidade de
recursos. O provedor, em seguida, organiza antecipadamente e mantém certo volume de
recursos do pool de recursos para atender às necessidades do consumidor em tempo de
urgência. Essa reserva de recursos é feita antes do início do serviço. Nesse modelo de
provisionamento, o preço não é baseado na demanda. Em vez disso, é cobrada uma taxa única
por um período fixo (geralmente contado em meses ou anos). Para o fornecedor, a complexidade
computacional e o custo são menores nesse plano em comparação ao plano sob demanda. Isso
ocorre porque o provedor toma conhecimento do requisito máximo de recursos do consumidor e
mantém o pool de recursos pronto para atender às demandas. Isso reduz o custo do fornecedor
e, como efeito, os consumidores podem obter o serviço em uma taxa muito mais barata
(geralmente quando é feito um contrato de longo prazo) do que no plano sob demanda (se as
taxas de uso por hora forem consideradas). Como um volume fixo de recursos é organizado de
acordo com o SLA, há possibilidades de subprovisionamento (provisionamento de recursos
inferior ao necessário) ou superprovisionamento (provisionamento de recursos superior à
demanda) de recursos. É importante que o consumidor da nuvem estime os requisitos
cuidadosamente para que esses problemas possam ser evitados e para que, ao mesmo tempo, o
custo de provisionamento de recursos possa ser minimizado. Esse objetivo pode ser alcançado
por meio de um plano de gerenciamento de recursos.

Para Buyya, Vecchiola e Selvi (2013), em termos dos modelos de precificação introduzidos pela
computação em nuvem, três estratégias diferentes são adotadas pelos provedores:

Preços diferenciados: nesse modelo, os serviços em nuvem são oferecidos em várias


camadas. Cada uma delas oferece especificação de computação fixa e SLA a um preço
específico por unidade de tempo. Esse modelo é usado pela Amazon para precificar o
serviço Elastic Compute Cloud (EC2), que disponibiliza diferentes configurações de servidor
e capacidades de computação, com diferentes custos por hora.
Preço por unidade: esse modelo é mais adequado para os casos em que a principal fonte
de receita do provedor de nuvem é determinada em termos de unidades de serviços
específicos, como transferência de dados e alocação de memória. Nesse cenário, os
clientes podem configurar seus sistemas com mais eficiência, de acordo com as
necessidades da aplicação. Esse modelo é usado, por exemplo, pelo GoGrid; os clientes
pagam de acordo com as unidades de Random Access Memory (RAM)/hora pelos
servidores implantados na nuvem.
Preços baseados em assinaturas: esse é o modelo usado principalmente pelos provedores
de SaaS. Os usuários pagam uma taxa de assinatura periódica pelo uso do software ou
pelos serviços de componentes específicos integrados em suas aplicações.
Disciplina

COMPUTAÇÃO EM NUVEM

Todos esses custos são baseados em um modelo de pagamento conforme o uso, que constitui
uma solução mais flexível para dar suporte à entrega sob demanda de serviços de TI. É isso que
realmente possibilita a conversão dos custos de capital de TI em custos operacionais, uma vez
que o custo de compra de hardware se transforma em um custo para locá-lo, e o custo gerado
pela compra de software se transforma em uma taxa de assinatura paga para usá-lo.

Siga em Frente...

Otimização de custos e recursos


A otimização de custos e recursos na computação em nuvem é uma prática essencial para
garantir eficiência operacional e maximizar o valor dos investimentos. Veja algumas estratégias e
práticas para otimizar custos e recursos na nuvem:

Monitoramento contínuo: implemente ferramentas de monitoramento para acompanhar o


uso de recursos em tempo real, identificar padrões de uso e entender as demandas
sazonais ajuda na tomada de decisões informadas.
Dimensionamento automático: utilize recursos de dimensionamento automático para
ajustar dinamicamente a capacidade de computação com base nas necessidades. Isso
permite a expansão ou redução automática de instâncias de acordo com a demanda,
evitando subutilização.
Escolha de tipos de instância adequados: selecione tipos de instância de acordo com as
características específicas das cargas de trabalho. Plataformas em nuvem oferecem uma
variedade de tipos de instância otimizados para computação, memória, armazenamento,
etc.
Reservas e commitments: aproveite descontos oferecidos por reservas de instâncias ou
compromissos a longo prazo. Esses programas podem resultar em significativas
economias de custos para cargas de trabalho estáveis e previsíveis.
Desativação de recursos não utilizados: desative ou desligue recursos que não estão sendo
utilizados, como instâncias, volumes de armazenamento ou bancos de dados. Isso evita
custos desnecessários associados a recursos ociosos.
Gerenciamento eficiente de armazenamento: adote políticas de gerenciamento de
armazenamento eficientes, como a exclusão regular de snapshots não utilizados, a
alocação dinâmica de armazenamento e a implementação de políticas de retenção.
Escolha de região estratégica: avalie as tarifas em diferentes regiões e escolha a que
oferece os melhores preços para os serviços necessários. Algumas regiões podem ter
custos mais baixos para tipos específicos de recursos.
Use serviços gerenciados: utilize serviços gerenciados oferecidos pelos provedores de
nuvem para reduzir a carga operacional. Esses serviços geralmente otimizam recursos
automaticamente e oferecem manutenção de infraestrutura embutida.
Implementação de políticas de orçamento: estabeleça políticas de orçamento para
monitorar os gastos e receber alertas quando os custos se aproximarem dos limites
definidos. Isso ajuda a evitar surpresas desagradáveis nas faturas.
Disciplina

COMPUTAÇÃO EM NUVEM

Análise de dados para tomada de decisões: utilize ferramentas de análise de custos


fornecidas pelos provedores de nuvem para identificar áreas de oportunidade, entender
padrões de gastos e tomar decisões informadas para otimização.

A otimização de custos e recursos na computação em nuvem é um processo contínuo que


requer monitoramento, análise e ajustes regulares. Ao adotar essas práticas, as organizações
podem colher os benefícios da eficiência operacional e da maximização do retorno sobre o
investimento em serviços em nuvem.

Análise dos custos na migração para nuvem


A migração para a nuvem envolve uma análise cuidadosa dos custos associados a fim de
garantir uma transição eficiente e econômica. Veja os principais aspectos a serem considerados
ao realizar uma análise de custos na migração para a nuvem:

Custo inicial da migração: avalie os custos iniciais relacionados à migração, incluindo


aquisição de ferramentas de migração, treinamento da equipe, custos de consultoria e
possíveis ajustes necessários nas aplicações existentes.
Custos de infraestrutura: compare os custos de infraestrutura entre o ambiente local e a
nuvem. Considere fatores como aquisição de hardware, manutenção, espaço físico e
custos associados à escalabilidade.
Licenciamento de software: avalie os custos de licenciamento de software para garantir
conformidade na nuvem. Alguns provedores de nuvem oferecem modelos BYOL (Bring Your
Own License), enquanto outros incluem licenças em seus serviços.
Custos operacionais: analise os custos operacionais, incluindo monitoramento, backup,
segurança e suporte técnico. Em muitos casos, esses custos são incorporados nos
serviços em nuvem, mas devem ser considerados na comparação total.
Análise de TCO (Custo Total de Propriedade): realize uma análise de TCO para entender os
custos totais de propriedade ao longo do tempo. Isso envolve a consideração de custos de
capital e operacionais, além de eventuais economias de escala na nuvem.
Estratégia de dimensionamento: considere a estratégia de dimensionamento, identificando
os recursos necessários para atender às demandas da carga de trabalho. A capacidade de
ajustar dinamicamente os recursos na nuvem pode influenciar significativamente os
custos.
Gestão de dados: avalie os custos associados à gestão de dados, como armazenamento,
transferência de dados e serviços de banco de dados. Escolha estratégias de
armazenamento eficientes e otimize a transferência de dados entre ambientes.
Contratos e Acordos de Nível de Serviço (SLA): entenda os termos contratuais e SLAs dos
provedores de nuvem em relação aos custos. Algumas empresas oferecem descontos por
compromissos a longo prazo, e SLAs podem impactar os custos associados a interrupções
ou falhas.
Modelos de precificação dos provedores: analise os modelos de precificação dos
provedores de nuvem, compreendendo os custos associados a serviços específicos, como
instâncias de máquinas virtuais, armazenamento, transferência de dados e outros recursos.
Disciplina

COMPUTAÇÃO EM NUVEM

Previsões de crescimento e escala: projete os custos considerando o crescimento e a


escala previstos. Antecipe aumentos de demanda e planeje a capacidade de acordo para
evitar surpresas nos custos.
Análise de Retorno sobre Investimento (ROI): realize uma análise de ROI para entender
quando os benefícios financeiros da migração para a nuvem começarão a superar os
custos iniciais. Isso é crucial para justificar o investimento.

Uma análise completa dos custos na migração para a nuvem é essencial para garantir uma
tomada de decisão informada. Cada organização é única, e a análise deve ser adaptada aos
requisitos específicos, considerando a infraestrutura existente, as metas de negócios e as
características das cargas de trabalho.

Vamos Exercitar?

Migração para a nuvem


Descrição da situação-problema

Uma empresa de médio porte que recentemente migrou suas operações para a nuvem está
enfrentando desafios significativos em relação aos custos associados aos serviços em nuvem. A
equipe de TI percebeu que, apesar das promessas de eficiência e economia, os gastos estão
aumentando rapidamente, e a empresa está preocupada com a sustentabilidade financeira dessa
transição.

Resolução da situação-problema:

Para otimizar os custos em computação em nuvem, a empresa implementa uma série de


estratégias e práticas, como:

Avaliação abrangente de custos: a equipe de TI realiza uma análise aprofundada dos


custos, identificando os serviços e recursos que mais contribuem para as despesas. Isso
inclui revisar os modelos de precificação, uso de instâncias e custos associados a serviços
específicos.
Implementação de monitoramento contínuo: ferramentas de monitoramento são
implementadas para rastrear o uso de recursos em tempo real. Isso permite identificar
padrões de uso, identificar picos de demanda e otimizar a alocação de recursos de acordo.
Adoção de estratégias de dimensionamento automático: para evitar subutilização ou falta
de recursos, isso garante que a capacidade de computação seja ajustada dinamicamente
com base nas demandas reais, evitando custos desnecessários.
Revisão e seleção de tipos de instância adequados: a equipe revisa os tipos de instância
em uso e seleciona aqueles que melhor se alinham com as necessidades específicas de
cada carga de trabalho. Tipos de instância otimizados são escolhidos para garantir
eficiência e economia.
Disciplina

COMPUTAÇÃO EM NUVEM

Implementação de políticas de desativação de recursos: para desativar automaticamente


recursos não utilizados durante períodos específicos. Isso inclui instâncias, bancos de
dados e outros serviços que podem ser desligados durante horas não comerciais.
Negociação de contratos e reservas: a equipe de finanças e TI trabalha em conjunto para
negociar contratos mais favoráveis com o provedor de nuvem. Estratégias de reservas são
exploradas para obter descontos significativos em compromissos a longo prazo.
Implementação de Governança Financeira (FinOps): Práticas são adotadas, promovendo
uma abordagem colaborativa entre as equipes financeiras e de operações de TI. Essa
colaboração visa otimizar custos, melhorar a transparência financeira e alinhar os gastos
com os objetivos do negócio.
Treinamento da equipe e conscientização: A equipe de TI é treinada para entender os
modelos de precificação, estratégias de otimização e a importância da governança
financeira. A conscientização é promovida para garantir que todas as partes compreendam
a necessidade de otimização de custos.
Revisão contínua e melhoria: a empresa adota uma abordagem de melhoria contínua,
revisando regularmente as estratégias implementadas, analisando novos serviços
oferecidos pelo provedor de nuvem e ajustando as práticas conforme necessário para
garantir a otimização contínua.

Ao implementar essas estratégias, a empresa consegue otimizar seus custos em computação


em nuvem, garantindo que a transição para a nuvem seja não apenas eficiente do ponto de vista
operacional, mas também financeiramente sustentável a longo prazo.

Saiba mais

O conceito de computação em nuvem quase sempre é associado a benefícios em relação ao


compartilhamento e segurança de dados. Contudo, ele também pode ser um grande aliado das
empresas que buscam maximizar a eficiência e economia em seus processos. Para saber mais
sobre esse assunto, consulte o artigo 5 momentos em que a computação em nuvem reduz os
custos da sua empresa.

Referências

BHOWMIK, S. Cloud computing. Cambridge: Cambridge University Press, 2017.

MEIRELES, A.; OLIVEIRA, H. S.; PICHETTI, R. F. Cloud Computing. Porto Alegre: SAGAH, 2020.

SOUSA NETO, M. V. Computação em nuvem. Rio de Janeiro: Brasport, 2015.


Disciplina

COMPUTAÇÃO EM NUVEM

Aula 5
Encerramento da Unidade

Videoaula de Encerramento

Este conteúdo é um vídeo!


Para assistir este conteúdo é necessário que você acesse o AVA pelo
computador ou pelo aplicativo. Você pode baixar os vídeos direto no aplicativo
para assistir mesmo sem conexão à internet.
Dica para você
Aproveite o acesso para baixar os slides do vídeo, isso pode deixar sua
aprendizagem ainda mais completa.

Olá estudante! Nesta videoaula, você irá conhecer as soluções de computação em nuvem que
proporcionam flexibilidade, escalabilidade e eficiência operacional para organizações, permitindo
que se concentrem em suas operações principais sem a necessidade de gerenciar diretamente a
infraestrutura de TI.
Esse conteúdo é importante para a sua prática profissional, pois ter um entendimento sólido das
soluções de computação em nuvem é relevante em um ambiente de negócios cada vez mais
digital e dinâmico.
Prepare-se para essa jornada de conhecimento! Vamos lá!!!

Ponto de Chegada

Olá, estudante!

A escolha do hardware e software dependerá dos requisitos e das preferências do provedor de


serviços em nuvem. É essencial entender os principais modelos e tipos de serviços oferecidos:

Modelos de serviços na nuvem:

IaaS (Infraestrutura como Serviço): oferece recursos de infraestrutura virtualizados, como


servidores, armazenamento e redes e permite que usuários implantem e gerenciem seus
próprios sistemas operacionais e aplicativos.
PaaS (Plataforma como Serviço): fornece uma plataforma completa de desenvolvimento,
incluindo ferramentas e serviços para facilitar o ciclo de vida do desenvolvimento de
aplicativos e elimina a necessidade de gerenciar a infraestrutura subjacente.
Disciplina

COMPUTAÇÃO EM NUVEM

SaaS (Software como Serviço): aplicações de software totalmente hospedadas e


gerenciadas pelo provedor de serviços em nuvem e os usuários acessam o software por
meio de um navegador da web, sem a necessidade de instalação local.

Algumas soluções de computação em nuvem:

Infraestrutura como serviço (IaaS): fornece recursos de infraestrutura virtualizada, como


máquinas virtuais, armazenamento e redes. Exemplos: Amazon EC2, Microsoft Azure
Virtual Machines, Google Compute Engine.
Plataforma como serviço (PaaS): oferece uma plataforma completa de desenvolvimento,
incluindo ferramentas e serviços, sem a necessidade de gerenciar a infraestrutura
subjacente. Exemplos: Heroku, Google App Engine, Microsoft Azure App Service.
Software como serviço (SaaS): disponibiliza aplicativos diretamente aos usuários finais
pela internet, sem a necessidade de instalação local. Exemplos: Microsoft 365, Salesforce,
Google Workspace.
Computação sem servidor (Serverless): permite que os desenvolvedores executem código
sem se preocupar com a infraestrutura, pagando apenas pelo tempo de execução.
Exemplos: AWS Lambda, Azure Functions, Google Cloud Functions.
Armazenamento em nuvem: oferece serviços de armazenamento escalável e seguro para
dados. Exemplos: Amazon S3, Google Cloud Storage, Microsoft Azure Blob Storage.
Bancos de dados em nuvem: fornecem serviços de gerenciamento e armazenamento de
dados, permitindo acesso rápido e seguro. Exemplos: Amazon RDS, Google Cloud SQL,
Microsoft Azure Cosmos DB.
Redes em nuvem: fornece serviços para criar, gerenciar e otimizar redes virtuais. Exemplos:
Amazon VPC, Google Cloud Virtual Network, Microsoft Azure Virtual Network.
Contêineres e orquestração: facilitam o empacotamento de aplicações e sua
implementação consistente, escalável e gerenciada. Exemplos: Kubernetes, Docker,
OpenShift.
Segurança em nuvem: inclui serviços e ferramentas para garantir a segurança dos dados e
aplicações na nuvem. Exemplos: AWS Identity and Access Management (IAM), Azure Active
Directory, Google Cloud Identity and Access Management.
Analytics e Big Data: oferece serviços para processamento, análise e visualização de
grandes conjuntos de dados. Exemplos: Amazon EMR, Google BigQuery, Microsoft Azure
HDInsight.
Inteligência Artificial (IA) e Machine Learning (ML): fornecem serviços e frameworks para
desenvolvimento e implantação de modelos de IA e ML. Exemplos: Amazon SageMaker,
Google AI Platform, Microsoft Azure Machine Learning. Entender esses conceitos é
fundamental para explorar efetivamente os benefícios da computação em nuvem.

É Hora de Praticar!

Este conteúdo é um vídeo!


Disciplina

COMPUTAÇÃO EM NUVEM

Para assistir este conteúdo é necessário que você acesse o AVA pelo
computador ou pelo aplicativo. Você pode baixar os vídeos direto no aplicativo
para assistir mesmo sem conexão à internet.

Desafios significativos em sua infraestrutura de TI


Descrição da situação-problema
Uma empresa de médio porte enfrenta desafios significativos em sua infraestrutura de TI, que
atualmente é baseada em uma abordagem tradicional de data center local. A empresa está
enfrentando crescentes demandas de escalabilidade, flexibilidade e custos operacionais mais
baixos. A equipe de TI percebe que é necessário modernizar a infraestrutura para acompanhar a
dinâmica do mercado e melhorar a eficiência operacional. O que a empresa poderia fazer para
enfrentar esses desafios?

Quais as estratégias e práticas recomendadas para garantir a conformidade e a segurança


de dados em um ambiente de nuvem?
Como os serviços de computação em nuvem podem ser integrados efetivamente em uma
estratégia de Internet das Coisas (IoT)?
Qual a importância da orquestração de contêineres na nuvem?

Resolução da situação-problema
A solução proposta para resolver esses desafios é migrar para uma arquitetura de computação
em nuvem. Seguem os passos para a implementação dessa solução:

Avaliação de necessidades: conduzir uma análise detalhada das necessidades de


negócios, identificando os requisitos de escalabilidade, segurança e conformidade.
Seleção de modelo de serviço: escolher o modelo de serviço mais adequado (IaaS, PaaS ou
SaaS) com base nos requisitos específicos da empresa.
Escolha de provedor de nuvem: avaliar diferentes provedores de nuvem (como AWS, Azure
ou Google Cloud) e selecionar aquele que melhor atende às necessidades da empresa em
termos de serviços, preços e suporte.
Migração gradual: planejar para minimizar impactos e garantir a continuidade dos
negócios. Começar com aplicativos menos críticos antes de migrar os sistemas
essenciais.
Implementação de práticas de segurança: implementar medidas robustas, incluindo
criptografia, controle de acesso e monitoramento constante para proteger dados sensíveis.
Treinamento e adoção: oferecer treinamento para a equipe de TI para garantir uma
transição suave e uma rápida adoção das novas práticas e tecnologias.
Otimização de recursos: utilizar recursos de nuvem de forma eficiente, otimizando o
dimensionamento de recursos conforme necessário para evitar custos desnecessários.
Monitoramento contínuo: implementar ferramentas de monitoramento para rastrear o
desempenho da infraestrutura, identificar possíveis problemas e otimizar continuamente a
operação.
Disciplina

COMPUTAÇÃO EM NUVEM

Integração de novas tecnologias: avaliar e integrar tecnologias emergentes, como


contêineres e orquestração, para melhorar ainda mais a agilidade e a eficiência operacional.
Avaliação pós-migração: realizar uma avaliação pós-migração para medir o sucesso da
transição, ajustar estratégias conforme necessário e garantir que os objetivos de negócios
sejam alcançados.

A empresa poderá aproveitar os benefícios da computação em nuvem, como escalabilidade sob


demanda, custos operacionais reduzidos e maior flexibilidade, ao mesmo tempo em que enfrenta
os desafios inerentes à mudança para essa nova abordagem tecnológica.

A computação em nuvem é uma revolução na forma como as organizações gerenciam e


entregam serviços de TI. As tecnologias e soluções associadas a essa abordagem fornecem
flexibilidade, escalabilidade e eficiência operacional.
A figura a seguir mostra o resumo de tecnologias e soluções em computação em nuvem.
Disciplina

COMPUTAÇÃO EM NUVEM

Figura | Tecnologias e soluções em computação em nuvem.

CARVALHO, A. C. P. L. F.; LORENA, A. C. Introdução à computação. São Paulo: GEN, 2017.


Disciplina

COMPUTAÇÃO EM NUVEM

ERL, T.; PUTTINI, R.; MAHMOOD, Z. Cloud Computing: Concepts, Technology & Architecture. Rio
de Janeiro: Prentice Hall, 2013.
MEIRELES, A.; OLIVEIRA, H. S.; PICHETTI, R. F. Cloud Computing. Revisão técnica de Adriano José
Vogel. Porto Alegre: SAGAH, 2020.
,

Unidade 4
Arquitetura de Aplicações em Nuvem

Aula 1
Modelos de Arquitetura em Nuvem

Modelos de Arquitetura em Nuvem

Este conteúdo é um vídeo!


Para assistir este conteúdo é necessário que você acesse o AVA pelo
computador ou pelo aplicativo. Você pode baixar os vídeos direto no aplicativo
para assistir mesmo sem conexão à internet.
Dica para você
Aproveite o acesso para baixar os slides do vídeo, isso pode deixar sua
aprendizagem ainda mais completa.

Olá, estudante! Nesta videoaula, você irá conhecer os conceitos dos modelos de arquitetura em
nuvem. A arquitetura em nuvem refere-se à estrutura organizacional dos componentes de nuvem,
que inclui servidores, armazenamento, redes, software e outros elementos necessários para
suportar as necessidades de computação de uma aplicação ou empresa.
Esse conteúdo é importante para a sua prática profissional, pois a compreensão dos modelos de
arquitetura em nuvem é essencial para profissionais que desejam alinhar as estratégias de TI
com os objetivos de negócios, garantindo eficiência, segurança e conformidade em ambientes de
nuvem.
Prepare-se para essa jornada de conhecimento! Vamos lá!!!

Ponto de Partida
Disciplina

COMPUTAÇÃO EM NUVEM

Olá, estudante! Nesta aula, vamos aprender os modelos de arquitetura para aplicações em
nuvem, que, em geral, são complexas, pois envolvem diversos componentes que interagem entre
si por meio da Internet. O projeto da arquitetura de uma aplicação afeta diversos aspectos, como
seu desempenho, disponibilidade e até mesmo o nível de segurança. Portanto, esse é um tópico
relevante e que merece muita atenção. As aplicações em nuvem podem incluir diversos
componentes de software, como bancos de dados, serviços web e aplicativos. A especificação
da arquitetura consiste em determinar quais são os componentes, como eles devem se
comunicar, como podem ser protegidos de ações maliciosas e como garantir que os requisitos
da aplicação sejam alcançados.

Além dos conceitos básicos, será discutida a evolução dos modelos de arquitetura, incluindo
abordagens como microsserviços, Serverless Computing e Edge Computing.

Bons estudos!

Vamos Começar!

Arquitetura em nuvem
As aplicações em nuvem são sistemas de software complexos, na medida em que implementam
diversas funcionalidades e fazem uso de variados serviços que são acessados por meio da
Internet. Para lidar com essa complexidade, as aplicações podem ser divididas em módulos (ou
componentes) funcionais. Por exemplo, uma aplicação web de comércio eletrônico pode incluir
vários módulos, como um responsável pela autenticação de usuários ou outro responsável pela
geração de relatórios de vendas. Cada um deles pode ser um software independente, capaz de
ser executado, por exemplo, em uma máquina virtual ou em um contêiner de um provedor de
nuvem pública.

A definição da arquitetura de uma aplicação consiste em definir quais seriam os seus módulos
funcionais e como eles devem interagir entre si (Coulouris et al., 2013). O projeto da arquitetura
de aplicações em nuvem é um grande desafio e as decisões nele envolvidas podem influenciar
vários aspectos da aplicação, como desempenho, escalabilidade e segurança. A fase de projeto
é importante para tentar antecipar a identificação de possíveis problemas como: gargalos de
desempenho, ameaças de segurança e impacto da falha de componentes específicos na
disponibilidade da aplicação. Componentes críticos podem ser replicados para viabilizar
mecanismos de tolerância a falhas e balanceamento de carga.

Existem três modelos básicos para a arquitetura de aplicações distribuídas: arquitetura


centralizada, descentralizada e híbrida (Tanenbaum; Steen, 2008). A arquitetura centralizada é o
modelo tradicional cliente-servidor. Quando um componente requisita um serviço de outro, o que
faz a requisição é o cliente e o que responde é o servidor. As aplicações web representam um
exemplo típico do modelo de arquitetura centralizada: o servidor web responde as requisições
enviadas por navegadores web.
Disciplina

COMPUTAÇÃO EM NUVEM

A arquitetura descentralizada é caracterizada pelo modelo Peer-to-Peer (P2P). Nesse caso, não
há distinção entre clientes e servidores, e os componentes de software, por sua vez, podem fazer
requisições entre si de forma arbitrária. A Figura 1 ilustra a lógica dos modelos cliente-servidor e
P2P.

Figura 1 | Comparação do modelo descentralizado com o centralizado.

Uma alternativa interessante ao escolher um modelo centralizado ou descentralizado é a


arquitetura híbrida, na qual uma mesma aplicação utiliza os dois modelos, ou seja, algumas
funcionalidades da aplicação são implementadas na forma cliente-servidor e outras são
implementadas na forma P2P. Assim, pode-se aproveitar o melhor de cada arquitetura.

Apesar da escalabilidade dos sistemas P2P, esse modelo é muito complexo, pois exige a
implementação de mecanismos descentralizados. A maior prova dessa complexidade é que a
maioria das aplicações que utilizados, como aplicativos de comunicação instantânea e
aplicações web, são sistemas cliente-servidor centralizados.

A arquitetura de microsserviços
As principais funcionalidades de uma aplicação são implementadas na camada de
processamento, por exemplo, na forma de um Serviço Web (Web Service). Esse serviço é
denominado monolítico quando todos os seus módulos funcionais estão implementados em um
único componente de software. Se a aplicação possui muitas funcionalidades, esse serviço pode
apresentar alguns problemas, como: ocupação de muito espaço de memória; dificuldade de
implementar correções e de evolução do software; alto custo de replicação, etc. Diante desses
problemas, novas arquiteturas de serviços web foram propostas para melhorar o desempenho e
a escalabilidade, assim como facilitar a replicação. Essas abordagens baseiam-se na ideia de
dividir o serviço web monolítico em diversos componentes de software independentes. Entre as
principais abordagens, podemos citar a arquitetura de microsserviços (Dragoni et al., 2017) e a
arquitetura Serverless (Computação sem Servidor) (Baldini et al., 2017), cujo principal exemplo é
o modelo Função como Serviço (FaaS – Function as a Service). A Figura 2 ilustra a evolução
desses modelos, que se reflete no grau de modularização da aplicação.
Disciplina

COMPUTAÇÃO EM NUVEM

Figura 2 | Evolução dos padrões de arquitetura de software como serviço.

No modelo de microsserviços, cada um dos módulos funcionais de uma aplicação monolítica


vira um serviço menor e especializado, denominado microsserviço. Cada microsserviço é um
componente de software independente. Assim, ele pode ser executado como um serviço web em
um contêiner ou máquina virtual. A Figura 3 exemplifica a arquitetura de microsserviços. Nesse
caso, uma aplicação é modularizada em N microsserviços independentes, que podem se
comunicar com serviços remotos, como outra aplicação, com sistemas legados ou com um
banco de dados (DB – Database). A Figura 3 também ilustra o papel de um API Gateway, que é
um componente responsável por redirecionar as requisições dos clientes para o microsserviço
apropriado de acordo com a funcionalidade requisitada. A arquitetura de microsserviços é
adequada para aplicações complexas, por exemplo, uma aplicação para consolidação de
transações financeiras com cartão de crédito, pois envolve várias etapas e entidades, como lojas,
bancos, adquirentes, etc. Nesse caso, a aplicação pode ser modularizada em vários
microsserviços específicos que lidam com cada parte do problema.
Disciplina

COMPUTAÇÃO EM NUVEM

Figura 3 | Exemplo de aplicação com arquitetura de microsserviços.

De acordo com Dragoni et al., 2017, duas características principais definem um microsserviço: o
alto grau de coesão das suas funcionalidades e sua capacidade de responder a requisições. A
coesão significa que um microsserviço implementa um conjunto de funcionalidades
relacionadas, que dependem umas das outras. A capacidade de responder a requisições implica
que os microsserviços, de fato, comportam-se como um servidor, ou seja, provêm algum serviço.
Eles podem responder a requisições de clientes ou requisições de outros microsserviços.

A arquitetura de microsserviços representa aplicações distribuídas formadas pela composição


de microsserviços independentes. Esse conceito é ilustrado na Figura 4. Nesse caso, temos um
serviço monolítico formado por três módulos funcionais. Em uma arquitetura de microsserviços,
cada um desses módulos poderia ser implementado como um (micro) serviço independente.
Como mostra a figura, apenas alguns dos microsserviços podem ser replicados e cada um deles
pode ter seu próprio banco de dados.
Disciplina

COMPUTAÇÃO EM NUVEM

Figura 4 | Comparação entre serviço monolítico e microsserviços.

A arquitetura de microsserviços traz uma série de vantagens. Ao implementar modificações em


um microsserviço, somente esse componente específico precisa ser reiniciado. No serviço
monolítico, as modificações em apenas um módulo exigem a reinicialização do serviço como um
todo. Como o microsserviço é menor, ele exige menos recursos, o que facilita o uso de
contêineres e a replicação. Além disso, cada microsserviço pode ser replicado de forma
independente. Assim, aquele que apresenta grande demanda pode ser replicado, enquanto outro,
com menos demanda, não tem essa necessidade. No caso de um monolítico, o software como
um todo (incluindo todos os seus módulos) tem que ser replicado, a despeito da demanda para
cada um de seus módulos funcionais, o que pode resultar em desperdício de recursos.

Siga em Frente...

Aplicações com arquitetura de multicamadas


As aplicações centralizadas apresentam problemas de desempenho e escalabilidade, o que fez
com que muitas abordagens surgissem com o intuito de resolvê-los. Uma delas é o modelo
Disciplina

COMPUTAÇÃO EM NUVEM

cliente-servidor com uma arquitetura em múltiplas camadas (Tanenbaum; Steen, 2008). Nesse
modelo de arquitetura, a aplicação é dividida em várias camadas, sendo cada uma delas
responsável por um conjunto específico de funcionalidades. Os componentes de uma camada
podem interagir com os componentes das camadas vizinhas, além de serem executados em
servidores diferentes para melhorar o desempenho. Nesse caso, temos uma separação física
entre as camadas.

Em geral, as aplicações multicamadas são divididas em três:

1. Camada de interface do usuário (controle da interação com o usuário).


2. Camada de processamento (implementação da lógica das principais funcionalidades da
aplicação).
3. Camada de dados (armazenamento persistente de dados).

Na Figura 5, temos o exemplo de uma aplicação Web baseada na arquitetura em camadas.


Nesse caso, o navegador web executa a camada de interface com o usuário; já na camada de
processamento, o servidor web responde as requisições de acordo com as regras de negócio. Na
camada de dados, um Sistema Gerenciador de Banco de Dados administra o armazenamento
das informações do sistema. Em um ambiente de nuvem, podemos usar diversos serviços para
hospedar uma aplicação com essa arquitetura. Por exemplo, podemos alocar máquinas virtuais
ou contêineres para executar um servidor web (na camada de processamento) e usar serviços de
Bancos de Dados em Nuvem para persistências das informações (na camada de dados).
Disciplina

COMPUTAÇÃO EM NUVEM

Figura 5 | Exemplo de uma aplicação com arquitetura em camadas e componentes replicados.

Os provedores de nuvem também oferecem serviços para replicação dinâmica dos


componentes. No exemplo ilustrado na Figura 5, há três réplicas do servidor web e duas réplicas
do servidor de banco de dados. Esse tipo de replicação pode ser automatizado em ambientes de
nuvem. Além disso, os provedores oferecem mecanismos para balanceamento de carga. A
Figura 5 também demonstra o balanceamento de carga das requisições dos clientes entre as
réplicas do servidor Web. Se houver falha em um dos servidores, as demais réplicas continuam a
atender as requisições. Além disso, a carga de trabalho é dividida entre as réplicas, o que resulta
em menor tempo de resposta aos clientes. Com isso, a aplicação dividida em camadas melhora
o grau de desempenho e confiabilidade, mesmo que a arquitetura ainda seja cliente-servidor. Os
provedores de computação em nuvem permitem a alocação ou liberação automática de réplicas
de acordo com as variações no volume de requisições dos clientes.

Conceito de Edge Computing


Mesmo com a evolução dos modelos de arquitetura, ainda pode haver problemas de
escalabilidade em soluções em nuvem, pois não deixa de ser um modelo centralizado. Por
exemplo, nas aplicações de Big Data e Internet das Coisas, um grande volume de dados precisa
ser transmitido até o provedor para ser processado e, depois, eventuais respostas necessitam
ser enviadas até os dispositivos finais. Essas questões motivaram a consolidação do paradigma
Disciplina

COMPUTAÇÃO EM NUVEM

de Computação nas Bordas (Edge Computing), cuja ideia principal é mover o processamento dos
dados para a borda da rede (Shi et al., 2016). Uma visão geral da Edge Computing é apresentada
na Figura 6. A execução de serviços na borda da rede pode beneficiar algumas soluções, por
exemplo, aplicações de mobilidade urbana, que precisam de respostas rápidas para análise de
dados do trânsito em uma determinada região.

Figura 6 | Visão geral da arquitetura de Edge Computing.

O objetivo desse modelo não é substituir a computação em nuvem. Na verdade, são abordagens
complementares, pois as aplicações que exigem maior capacidade de armazenamento e
processamento de dados continuam a ser executadas de forma centralizada no provedor de
computação em nuvem. Um bom exemplo disso é um sistema que utiliza aprendizado de
máquina para identificar fraudes em compras com cartão de crédito. Por outro lado, aplicações
cujo requisito principal é o tempo de resposta, podem ser executadas na borda da rede, pelos
próprios dispositivos ou por alguma infraestrutura dedicada de Computação nas Bordas. Em
geral, é apropriada para aplicações que envolvem análise de dados em tempo real (Coutinho;
Carneiro; Greve, 2016). A seguir, são descritas algumas importantes aplicações práticas que
podem se beneficiar das vantagens do modelo descentralizado da computação em bordas:

Redes de sensores: redes de dispositivos com capacidade de monitoramento


(sensoriamento) dispersos por áreas amplas. Essas redes são usadas para implementação
de soluções em diversas áreas, como vigilância, monitoramento ambiental, etc. Os
dispositivos possuem capacidade limitada, fazem uso de mecanismos de reconhecimento
de contexto e topologias hierárquicas, o que torna interessante o uso de computação nas
bordas.
Cache de dados: a arquitetura descentralizada da computação em bordas permite a
implementação de sistemas inteligentes de replicação e distribuição de conteúdo, inclusive
para usuários móveis.
Disciplina

COMPUTAÇÃO EM NUVEM

Edifícios inteligentes (smart buildings): uso de sensores e atuadores para gerenciamento


automático e otimizado da infraestrutura de edifícios. Essas soluções podem ser usadas
para conservar água, energia, vigilância, regulação de temperatura, entre outros. Os
requisitos de reconhecimento de contexto, baixa latência e privacidade dos dados tornam
mais atrativo para essas aplicações o modelo de computação nas bordas.

Vamos Exercitar?

Software de controle para veículos autônomos


Descrição da situação-problema

Você é analista de TI em uma empresa do setor automotivo que decidiu iniciar a fabricação de
veículos autônomos, que não precisam de motoristas, pois eles possuem um sistema de
controle sofisticado, capaz de conduzir o veículo com segurança. Seu papel é liderar a equipe
que vai implementar o software de controle para condução automática dos veículos. Você
precisa, inicialmente, escolher um modelo de arquitetura para a solução desses veículos.

Resolução da situação-problema

Existem muitos aplicativos de navegação para veículos baseados em soluções em nuvem. No


entanto, um software de controle para condução de veículo precisa tomar decisões em tempo
real. Além do uso de serviços de inteligência artificial, esse tipo de aplicação requer baixa
latência de comunicação e baixo tempo de resposta no processamento de dados. Se os veículos
tivessem que se comunicar com servidores na nuvem, esses requisitos poderiam não ser
atendidos. O modelo mais adequado, nesse caso, seria uma abordagem de Edge Computing,
como ilustrado na Figura 7. Os carros poderiam se comunicar com altas taxas de transmissão
por meio de uma rede sem fio 5G e aproveitar a capacidade de processamento e armazenamento
de dados das estações de transmissão de dados para executar funcionalidades em tempo real.
Mesmo assim, serviços em nuvem poderiam ser utilizados para agregar informações, armazenar
dados históricos para análise de estatísticas e para cálculos de rotas longas que exigem dados
do trânsito em várias regiões.
Disciplina

COMPUTAÇÃO EM NUVEM

Figura 7 | Cenário de aplicação com veículos autônomos.

Saiba mais

O modelo de computação em borda, especialmente a computação em névoa, possibilita o


surgimento de diferentes aplicações capazes de mudar a forma como os serviços podem ser
prestados. O artigo Aplicações da computação em névoa explica a introdução à computação em
névoa.

Referências

BALDINI, I. et al. Serverless computing: Current trends and open problems. In: Research Advances
in Cloud Computing. [s.l.], Springer, 2017.

COUTINHO, A. A.; CARNEIRO, E.; GREVE, F. Computação em névoa: conceitos, aplicações e


desafios. In: Minicursos do XXXIV Simpósio Brasileiro de Redes de Computadores e Sistemas
Distribuídos. Porto Alegre: SBC, 2016. Cap. 6, p. 266-315. Disponível em:
https://www.researchgate.net/publication/309312669_Computacao_em_Nevoa_Conceitos_Aplic
acoes_e_Desafios Acesso em: 8 fev. 2024.
Disciplina

COMPUTAÇÃO EM NUVEM

DRAGONI, N. et al. Microservices: yesterday, today, and tomorrow. In: Present and Ulterior
Software Engineering, p. 195–216. Springer International Publishing, 2017.

SHI, W. et al. Edge Computing: vision and challenges. IEEE Internet of Things Journal, v. 3, 2016.

TANENBAUM, A. S.; STEEN, M. V. Sistemas distribuídos: princípios e paradigmas. 2. ed. São


Paulo: Pearson Prentice Hall, 2008.

Aula 2
Qualidade de Serviço em Nuvem

Qualidade de Serviço em Nuvem

Este conteúdo é um vídeo!


Para assistir este conteúdo é necessário que você acesse o AVA pelo
computador ou pelo aplicativo. Você pode baixar os vídeos direto no aplicativo
para assistir mesmo sem conexão à internet.
Dica para você
Aproveite o acesso para baixar os slides do vídeo, isso pode deixar sua
aprendizagem ainda mais completa.

Olá, estudante! Nesta videoaula, você irá conhecer o conceito de Qualidade de Serviço (QoS) em
nuvem. A QoS refere-se a um conjunto de parâmetros que são usados para avaliar a eficácia e a
eficiência de um serviço, garantindo que ele atenda ou exceda as expectativas do usuário.
Quando aplicado à computação em nuvem, a QoS desempenha um papel crucial na entrega de
serviços confiáveis e de alta performance.
Esse conteúdo é importante para a sua prática profissional, pois a qualidade de serviço em
nuvem é uma consideração central para profissionais que desejam garantir a eficácia, a
segurança e a confiabilidade dos serviços em nuvem em suas práticas profissionais. É uma parte
integrante da entrega bem-sucedida de soluções de TI e contribui significativamente para o
sucesso operacional e a satisfação do cliente.
Prepare-se para essa jornada de conhecimento! Vamos lá!!!

Ponto de Partida
Disciplina

COMPUTAÇÃO EM NUVEM

Olá, estudante! Um dos obstáculos para migração de aplicações para provedores de computação
em nuvem é o fato de que o acesso remoto aos serviços pode afetar negativamente o
desempenho. De fato, sem uma conexão de rede de boa qualidade é difícil garantir uma
experiência satisfatória para os usuários. Além disso, os provedores precisam de soluções para
oferecer confiabilidade e escalabilidade para os serviços. Você conhece as métricas para
descrever de forma objetiva os requisitos de desempenho de aplicações? Sabe quais são os
mecanismos utilizados pelos provedores para lidar com falhas e problemas de desempenho?

Nesta aula, vamos iniciar o estudo com a descrição de métricas de desempenho de rede e a
definição do conceito de Acordo de Nível de Serviço (SLA). Em seguida, vamos descrever alguns
indicadores de Qualidade de Serviço utilizados pelos provedores de computação em nuvem.
Além disso, serão explicados mecanismos que visam aprimorar a escalabilidade, a confiabilidade
e a disponibilidade de aplicações em nuvem. Por fim, vamos estudar, também, a recuperação de
desastres, que consiste em mecanismos para lidar com falhas. Com esse estudo, você será
capaz de compreender como podemos medir a qualidade das aplicações de forma objetiva,
assim como as principais soluções para melhoria de desempenho e escalabilidade em
ambientes de nuvem.

Bons estudos!

Vamos Começar!

Acordo de Nível de Serviço (SLA) em provedores de computação


em nuvem
O uso de serviços de computação em nuvem na implementação de aplicações distribuídas pode
trazer vários benefícios, como a redução de custos e a eliminação da necessidade de gerenciar
equipamentos de TI. Por outro lado, existem também algumas barreiras para o uso dos serviços
de provedores de nuvem pública. Em particular, o desempenho das aplicações em nuvem pode
ser um desafio, se não houver disponibilidade de redes de comunicação de qualidade. Como o
acesso aos serviços e dados no provedor é realizado por meio da Internet, pode haver problemas
de desempenho ou até mesmo falhas na comunicação entre os componentes. Considere o caso
de sistemas com requisitos de tempo real, como jogos ou aplicações de chamada de voz. Esses
tipos de aplicações não funcionam de forma adequada se a conexão for de baixa qualidade.
Aplicações que armazenam dados na nuvem também podem sofrer degradação de desempenho
se houver atraso no acesso remoto aos dados.

Nesse contexto, precisamos utilizar mecanismos para tentar assegurar uma experiência
satisfatória dos usuários de aplicações em nuvem. O primeiro ponto a considerar é como
caracterizar de forma objetiva a qualidade da comunicação. Isso significa que precisamos de
métricas quantitativas para descrever os requisitos mínimos de desempenho. Para lidar com
essas questões, há um conceito denominado Qualidade de Serviço (QoS – Quality of Service).
Disciplina

COMPUTAÇÃO EM NUVEM

Em se tratando de redes de computadores, a QoS pode ser entendida como uma abordagem
utilizada para especificar parâmetros de desempenho das aplicações, assim como os
mecanismos necessários para garantir os requisitos de desempenho estabelecidos (Kamienski;
Sadok, 2000). Os modelos de QoS podem ser utilizados para caracterizar objetivamente os
requisitos de desempenho de uma aplicação. Além disso, utilizam métricas de desempenho de
rede, tais como:

Atraso: o tempo total de transmissão de um pacote do nó remetente ao nó destinatário.


Aplicações de chamadas de voz na Internet, por exemplo, requerem um atraso máximo de
150ms (Chen; Farley; Ye, 2004).
Jitter: medida da variação no atraso na transmissão dos pacotes. Quanto maior o jitter, pior
é o desempenho de aplicações multimídia, como streaming de músicas na internet.
Taxa de transmissão: o volume de dados efetivamente transmitido entre o nó remetente e o
nó destinatário. Em geral, é medida em termos de megabits por segundo (Mbps). Por
exemplo, a aplicação de streaming de vídeo sob demanda Netflix estabelece que, para
assistir vídeos em resolução Ultra HD, é necessária uma conexão com uma taxa de, pelo
menos, 25Mbps (Netflix, 2019).
Taxa de perda: porcentagem dos pacotes que não foram entregues com sucesso para o nó
destinatário. Por exemplo, se foram transmitidos 50 pacotes e apenas 40 foram
efetivamente entregues ao destinatário, então a taxa de perda é de 20%, ou seja, 10 de 50
pacotes não foram entregues.

Utilizando essas e outras métricas mais específicas, os provedores especificam condições para
provisão dos serviços de computação em nuvem em um documento chamado Acordo de Nível
de Serviço (SLA – Service Level Agreement) (Erl; Puttini; Mahmoo, 2013). O SLA descreve de
forma objetiva as garantias de QoS, a confiabilidade e o desempenho de cada serviço. Uma das
principais métricas de QoS utilizadas por provedores de nuvem pública é a disponibilidade de um
serviço, que é determinada como a porcentagem do tempo em que um serviço se mantém apto
para responder corretamente as requisições de aplicações, clientes ou usuários. Por exemplo, se
um serviço web ficou “fora do ar” por 8 dias durante um período de 100 dias, então pode-se
afirmar que a sua disponibilidade foi de apenas 92%.

Os provedores utilizam um mecanismo denominado monitor de SLA para monitorar


continuamente os indicadores de desempenho dos serviços em nuvem, a fim de verificar se eles
estão de acordo com as métricas de qualidade estabelecidas no SLA (Erl; Putiini; Mahmood,
2013). O provedor mantém um banco de dados com as informações de desempenho coletadas
por esse mecanismo. A Figura 1 mostra o papel do monitor de SLA, considerando um exemplo
no qual os serviços monitorados são máquinas virtuais. O monitor de SLA verifica
periodicamente se as VM estão ativas, enviando mensagens de requisição (req) simples. Cada
máquina virtual envia uma mensagem de resposta (resp). Nesse caso, a VM-1 não responde ao
monitor, então, é considerada inativa. As informações são armazenadas em um banco de dados
com estatísticas sobre os serviços do provedor. As informações coletadas pelo monitor de SLA
podem ser usadas pelo sistema de gerenciamento do provedor para gerar relatórios de análise
de desempenho dos serviços e para fins de tarifação.
Disciplina

COMPUTAÇÃO EM NUVEM

Figura 1 | Visão geral da atuação do Monitor de SLA.

Siga em Frente...

Confiabilidade, escalabilidade, disponibilidade e desempenho de


aplicações em nuvem
Além da disponibilidade, os provedores de computação em nuvem podem considerar outras
métricas de qualidade de serviço (Erl; Puttini; Mahmoo, 2013). Entre as principais métricas, pode-
se destacar: escalabilidade, performance, confiabilidade e resiliência. A escalabilidade diz
respeito à capacidade de um sistema de ajustar a quantidade de recursos computacionais de
acordo com a demanda. Quando um sistema é considerado escalável, isso significa que um
aumento na carga de trabalho não compromete o desempenho desse sistema, pois novos
recursos podem ser alocados para que não aconteça sobrecarga. A performance é uma medida
direta da capacidade de execução do serviço. Pode ser medida, por exemplo, pelo tempo de
resposta, que consiste no tempo total para um cliente receber a resposta para uma requisição
enviada a um servidor, incluindo o tempo gasto pelo servidor para executar a operação
requisitada. A confiabilidade consiste na capacidade do serviço de operar continuamente sem
falhas. Ela pode ser medida em termos do tempo médio entre falhas, ou seja, o tempo esperado
entre a ocorrência de falhas. A resiliência representa uma medida da robustez de um serviço. Ela
está relacionada ao grau de tolerância a falhas do serviço. A resiliência pode ser medida em
termos do tempo médio para recuperação, quando da ocorrência de uma falha.

Em geral, o Monitor de SLA tem relação não somente com a disponibilidade, mas também com
as demais métricas de QoS mencionadas: performance, escalabilidade, confiabilidade e
resiliência. As informações coletadas por esse monitor não são usadas apenas para diagnosticar
Disciplina

COMPUTAÇÃO EM NUVEM

quais serviços estão disponíveis (ativos), por exemplo, o monitor de SLA verifica outros dados
sobre as VM, como uso de memória e processador. Portanto, os dados coletados servem para
determinar indicadores de desempenho. Além disso, as informações do monitor de SLA serve
também para disparar eventos que acionam outros mecanismos que visam melhorar a qualidade
de serviço no provedor de computação em nuvem. Entre esses mecanismos, podemos destacar:
dimensionamento automático; balanceamento de carga; recuperação de desastres (falhas) (Erl;
Puttini; Mahmoo, 2013). Por exemplo, uma sobrecarga em um servidor identificada pelo monitor
de SLA pode acionar o mecanismo de dimensionamento automático para criar réplicas desse
servidor. Todos os mecanismos, em conjunto, contribuem para melhorar o desempenho dos
serviços provisionados, o que se reflete nas métricas de QoS.

O mecanismo de dimensionamento automático (automated scaling) é responsável por ajustar a


capacidade de um serviço em função das demandas. Se a carga de trabalho aumenta, o
mecanismo aloca mais recursos para manter a performance do serviço. Por exemplo, esse
mecanismo pode automaticamente criar uma réplica de um banco de dados para lidar com um
aumento no número de consultas ao banco. Se a carga de trabalho diminui, o mecanismo libera
recursos ociosos para reduzir custos. Assim, esse mecanismo confere escalabilidade aos
serviços em nuvem de forma automatizada, buscando otimizar a relação entre custo e
performance (Mao; Humphrey, 2011). O redimensionamento (escalonamento) pode ser vertical
ou horizontal. O vertical corresponde a aumentar a configuração de um recurso, por exemplo,
reconfigurar uma máquina virtual com 8GB de memória para 16GB. O escalonamento horizontal
corresponde a criar réplicas de uma instância e é bastante utilizado em aplicações web. Nesse
caso, s VM VMão criadas réplicas do servidor web ou do servidor de bancos de dados para
atender a um aumento no número de requisições recebidas pela aplicação. A Figura 2 ilustra os
conceitos de escalonamento vertical e horizontal.

Figura 2 | Comparação entre escalonamento vertical e horizontal.

O balanceamento de carga é um mecanismo para distribuir a demanda de trabalho entre as


réplicas de um serviço. Por exemplo, cada nova requisição que chega à rede do provedor pode
ser encaminhada para a réplica menos sobrecarregada. Isso resulta em melhor performance,
pois diminui o tempo de resposta das requisições. Em conjunto com o dimensionamento
automático, o balanceamento de carga também favorece a escalabilidade e a disponibilidade do
serviço, pois se uma instância de um serviço ser tornar inativa (indisponível, devido a uma falha
por exemplo) as requisições a esse serviço podem ser encaminhadas para outra réplica.

A Figura 3 mostra um exemplo de um mecanismo de balanceamento de carga para um serviço


de streaming de vídeo. Suponha que um provedor tenha três data centers em diferentes regiões:
Alemanha, Califórnia e São Paulo. O mecanismo de balanceamento de carga escolhe a réplica do
servidor de streaming mais próxima do cliente para melhorar a performance do serviço. De fato,
Disciplina

COMPUTAÇÃO EM NUVEM

existem várias técnicas para implementar o balanceamento de carga, como distribuição


uniforme, balanceamento ponderado, entre outras (Kansal; Chana, 2012).

Figura 3 | Balanceamento de carga baseado em localização.

O mecanismo de recuperação de falhas trabalha em conjunto com os demais mecanismos. O


objetivo do mecanismo de recuperação a falhas é identificar a ocorrência de falhas para que as
requisições sejam redirecionadas somente para as réplicas do serviço que estejam ativas e
funcionando corretamente. Quando uma instância falha, o mecanismo de balanceamento de
carga é avisado para não redirecionar requisições para essa instância. Assim, a implementação e
recuperação a falhas contribui também para aumentar a confiabilidade e a disponibilidade do
serviço.

Observe que o mecanismo de recuperação a falhas depende da redundância (replicação) de


recursos. Por exemplo, quando uma instância de um serviço falha, deve haver uma réplica
(secundária) desse serviço já preparada para receber as requisições. De acordo com a forma
como a réplica secundária é utilizada, existem dois modelos básicos de recuperação a falhas:
modelo ativo-ativo e modelo ativo-passivo (Erl; Puttini; Mahmoo, 2013). No modelo ativo-passivo,
a réplica secundária não é utilizada para atender requisições regularmente. Ela só é acionada
quando a réplica principal falha. A Figura 4 exemplifica essa estratégia.
Disciplina

COMPUTAÇÃO EM NUVEM

Figura 4 | Visão geral do modelo ativo-passivo.

Quando a máquina virtual primária falha, as requisições dos clientes são direcionadas para sua
réplica. No modelo ativo-ativo, ambas as réplicas recebem requisições (sem distinção). Quando
uma das réplicas falha, então, todas as requisições são redirecionadas para a outra, até que a
réplica que falhou seja corrigida ou uma nova réplica seja instanciada. A Figura 5 mostra um
cenário baseado nesse modelo.

Figura 5 | Visão geral do modelo ativo-ativo.

Em geral, para cada serviço em nuvem que exige alta disponibilidade, são criadas diversas
réplicas, inclusive réplicas em outro data center do provedor. Dessa forma, mesmo que aconteça
um grave desastre em alguma região que comprometa esse data center, o serviço continuará
disponível, pois existem réplicas em outro.

Como exemplos de desastres, podemos citar falhas nos sistemas de distribuição de energia
elétrica que resultam em blackouts, podendo durar horas ou dias. Também podem ocorrer
catástrofes naturais, como inundações. Nesses casos, as instalações de um data center
poderiam ficar completamente inoperantes, o que afetaria a continuidade dos negócios que
dependem da disponibilidade dos serviços do provedor. Imagine os prejuízos!
Disciplina

COMPUTAÇÃO EM NUVEM

O projeto de aplicações em nuvem envolve não somente determinar a arquitetura dos


componentes da aplicação, mas também os mecanismos necessários para garantir os requisitos
de desempenho. Os provedores oferecem mecanismos de balanceamento de carga, recuperação
de falhas e dimensionamento automático. Esses mecanismos devem ser habilitados ou
incorporados na aplicação para otimização do seu desempenho.

Nesta aula, aprendemos muito sobre o desempenho de aplicações em nuvem. Foram descritas
várias métricas que permitem especificar de forma objetiva os requisitos de qualidade de
serviço. Também foram explicados alguns mecanismos importantes que são utilizados para
aumentar a performance, disponibilidade e resiliência de aplicações em nuvem.

Vamos Exercitar?

Abordagens de recuperação a falhas


Descrição da situação-problema

As aplicações em algumas áreas, como no setor financeiro, saúde e governamental, apresentam


requisitos bastante rigorosos em relação à confiabilidade e disponibilidade dos serviços. Nesses
casos, é importante o uso de mecanismos de recuperação a falhas. Existem dois modelos
básicos para isso: ativo-ativo e ativo-passivo. Faça uma análise comparativa desses modelos a
fim de destacar suas vantagens e desvantagens, em termos de custo e desempenho.

Resolução da situação-problema

A estratégia básica de recuperação a falhas é a redundância: recursos adicionais são usados em


caso de falha dos recursos inicialmente alocados, assim, o serviço continuará disponível. Vimos
que existem dois modelos básicos para mecanismos de recuperação a falhas: ativo-ativo e ativo-
passivo. Para compreender melhor a diferença entre eles, vamos considerar que, para um dado
serviço em nuvem, existe a instância principal do serviço e uma instância secundária (uma
réplica criada para viabilizar a implementação da recuperação de falhas). No modelo ativo-
passivo, a réplica secundária é utilizada apenas no caso de falha na instância principal. No
modelo ativo-ativo, a réplica secundária é utilizada no balanceamento de carga para ajudar no
processamento das requisições ao serviço. A vantagem do modelo ativo-ativo é um custo menor,
pois não há ociosidade de uma réplica secundária alocada somente para recuperação a falhas.
Por outro lado, esse modelo implica em um risco. Se a réplica secundária é utilizada no
balanceamento de carga regularmente, ela pode estar sobrecarregada no momento em que a
instância principal falhar. Nesse caso, a falta de recursos disponíveis na réplica secundária pode
comprometer o desempenho.

Saiba mais
Disciplina

COMPUTAÇÃO EM NUVEM

Balanceamento de carga é a prática de distribuir cargas de trabalho computacionais entre dois


ou mais computadores. Na internet, o balanceamento de carga é frequentemente empregado
para dividir o tráfego de rede entre vários servidores. Para saber mais sobre esse assunto,
consulte: O que é balanceamento de carga.

Referências

CHEN, Y.; FARLEY, T.; YE, N. QoS requirements of network applications on the Internet.

ERL, T.; PUTTINI, R.; MAHMOOD, Z. Cloud computing: concepts, technology & architecture. Rio de
Janeiro: Prentice Hall, 2013.

Information Knowledge Systems Management, v. 4, 2004.

KAMIENSKI, C.; SADOK, D. Qualidade de Serviço na Internet. In: Minicursos do XVIII Simpósio
Brasileiro de Redes de Computadores (SBRC 2000). [S.l.]: Sociedade Brasileira de Computação, p.
1–40, 2000. Disponível em:
https://www.researchgate.net/publication/242087340_Qualidade_de_Servico_na_Internet
Acesso em: 8 fev. 2024.

KANSAL, N. J.; CHANA, I. Cloud load balancing techniques: A step towards green computing.
IJCSI International Journal of Computer Science Issues, v. 9, 2012.

NETFLIX. Posso assistir aos títulos da Netflix em Ultra HD? Centro de ajuda do Portal da Netflix,
[s.d.]. Disponível em: https://help.netflix.com/en/node/13444 Acesso em: 14 jul. 2019.

MAO, M.; HUMPHREY, M. Auto-scaling to minimize cost and meet application deadlines in cloud
workflows. In: Proceedings of 2011 International Conference for High Performance Computing,
Networking, Storage and Analysis. IEEE, 2011.

Aula 3
Segurança e Privacidade em Nuvem

Segurança e Privacidade em Nuvem

Este conteúdo é um vídeo!


Para assistir este conteúdo é necessário que você acesse o AVA pelo
computador ou pelo aplicativo. Você pode baixar os vídeos direto no aplicativo
Disciplina

COMPUTAÇÃO EM NUVEM

para assistir mesmo sem conexão à internet.


Dica para você
Aproveite o acesso para baixar os slides do vídeo, isso pode deixar sua
aprendizagem ainda mais completa.

Olá, estudante! Nesta videoaula, você irá conhecer o importante tema da segurança e privacidade
em nuvem. Esses são aspectos críticos ao lidar com serviços em nuvem para garantir a
integridade, confidencialidade e disponibilidade dos dados. Entender e implementar práticas
eficazes de segurança e privacidade em nuvem é vital para proteger dados sensíveis, garantir a
conformidade e manter a confiança dos usuários e stakeholders.
Esse conteúdo é importante para a sua prática profissional, pois a segurança e privacidade em
nuvem são pilares essenciais para garantir a proteção, confiabilidade e conformidade das
operações digitais. Profissionais que incorporam esses princípios em suas práticas contribuem
para ambientes de TI mais seguros e resilientes.
Prepare-se para essa jornada de conhecimento! Vamos lá!!!

Ponto de Partida

Olá, estudante! A segurança e a privacidade dos dados é um dos aspectos mais controversos da
computação em nuvem. Por um lado, algumas empresas e profissionais de TI, fazem
questionamentos em relação à migração de dados e aplicações para a nuvem, alegando que o
uso de provedores públicos aumenta a exposição dos dados e as chances de vulnerabilidades de
segurança. Além disso, os recursos dos provedores são compartilhados entre diversos clientes,
de forma que falhas de proteção e isolamento poderiam permitir que um cliente tivesse acesso
aos dados de outros.

Por outro lado, o data center dos provedores conta com uma infraestrutura mais robusta e
confiável do que a maioria das empresas poderiam manter em suas próprias instalações. Além
disso, os provedores contam com profissionais altamente especializados para implementação
dos mecanismos de segurança a um custo relativamente menor e o crescimento de uso da
computação em nuvem mostra o sucesso com a solução da maioria dos problemas de
segurança, caso contrário as empresas não estariam migrando suas soluções de TI para a
nuvem. De fato, um estudo da Google Cloud em parceria com o MIT mostra um aumento
significativo da confiança das empresas em relação à segurança em nuvem (Google, 2017). O
estudo mostra, ainda, que o aumento da segurança é o segundo fator mais importante para as
empresas na decisão de utilizar serviços em nuvem.

Nesta aula, vamos aprender as principais propriedades que caracterizam, de forma geral, um
sistema computacional seguro. Depois, vamos descrever os conceitos básicos sobre
gerenciamento de riscos e, por fim, vamos explicar as ameaças e as vulnerabilidades para
aplicações em ambientes de nuvem, além de alguns dos mecanismos que podem ser usados
Disciplina

COMPUTAÇÃO EM NUVEM

para melhorar a segurança das soluções. Esses assuntos são de extrema relevância,
principalmente para aplicações críticas ou para aquelas que envolvem dados sigilosos.

Bons estudos!

Vamos Começar!

Mecanismos de segurança para aplicações em nuvem


Embora a computação em nuvem possa trazer vários benefícios, existem alguns desafios na
adoção de soluções. Você conhece as principais dificuldades apontadas pelas empresas em
relação ao uso de serviços em provedores de nuvem pública? Entre essas dificuldades, pode-se
destacar as questões de segurança e privacidade, de acordo com um estudo realizado em 2018
(Tucker, 2019). Isso acontece porque o acesso às aplicações nos provedores é feito por meio da
Internet. Assim, existe uma maior exposição dos dados e serviços em comparação ao cenário no
qual uma empresa mantém sua própria infraestrutura de TI, com a comunicação entre os
componentes realizada através de uma rede local. Dessa forma, a maior exposição dos dados na
internet, no modelo de computação em nuvem, aumenta as chances de ataques que buscam
violar a segurança das aplicações. Portanto, esse tipo de projeto exige muito cuidado com
aspectos da segurança dos serviços e da privacidade dos dados. São imprescindíveis o uso de
mecanismos de segurança e o estabelecimento de uma estratégia de gerenciamento de riscos.

Antes de conhecer as principais vulnerabilidades de aplicações em nuvem e os principais


mecanismos de segurança, precisamos compreender os princípios de segurança da informação
e as propriedades de um sistema seguro. Conforme apresentado na literatura (Kurose; Ross,
2013; Tanenbaum; Steen, 2008), as propriedades básicas de uma comunicação segura e
confiável são:

Confidencialidade: sigilo do conteúdo dos pacotes transmitidos na rede.


Integridade: garantia de que os dados transmitidos não podem ser alterados.
Autenticidade: confirmação da identidade das partes envolvidas na transmissão dos dados.
Disponibilidade: garantia de que um sistema estará apto para realizar as operações de
transmissão ou processamento dos dados.

Vamos estudar os principais mecanismos de segurança disponíveis. Entre eles, podemos


mencionar: criptografia, gerenciamento de acesso e identidade, autenticação unificada e
imagens fortalecidas de máquinas virtuais.

A criptografia consiste em técnicas que permitem disfarçar os dados enviados, de forma que um
atacante não consiga obter nenhuma informação dos dados interceptados (Kurose; Ross, 2013).
Isso implica codificar os dados de modo que somente o destinatário legítimo possa decifrá-los,
tornando-os, assim, ininteligíveis para terceiros. A principal aplicação da criptografia é assegurar
a confidencialidade dos dados armazenados nos provedores de nuvem pública e dos dados
transmitidos entre um provedor e seus clientes. Além disso, a criptografia também pode ser
Disciplina

COMPUTAÇÃO EM NUVEM

usada em mecanismos para garantia de integridade e autenticidade. Uma vez que a criptografia
pode ser usada na implementação de diversos mecanismos, ela é considerada um conceito
fundamental para a segurança de sistemas computacionais.

Os algoritmos utilizados para codificar os dados são de conhecimento público, mas, para
decodificá-los, é necessário um código secreto denominado chave de criptografia. Existem duas
abordagens: a criptografia de chaves simétricas e a criptografia de chave pública (Kurose; Ross,
2013). Na primeira abordagem, existe uma única chave que é utilizada pelo remetente para
criptografar os dados que serão enviados ou armazenados em nuvem. O receptor precisa de uma
cópia dessa chave para decodificar os dados. Na abordagem de chave pública, o processo
envolve um par de chaves. Para o destinatário receber os dados, ele precisa gerar o seu par de
chaves; uma delas é denominada pública e não precisa ser mantida em segredo; a outra chave é
denominada privada e deve ser mantida em segredo. O remetente usa a chave pública do
destinatário para criptografar os dados. Assim, os dados só podem ser decifrados com a chave
privada correspondente mantida em segredo pelo destinatário.

Os algoritmos de criptografia também podem ser usados em funções de hash para verificar a
integridade dos dados (Erl; Puttini; Mahmood, 2013). Um código hash do conteúdo a ser
transmitido é gerado pelo receptor e disponibilizado ao destinatário. Quando recebe os dados, o
destinatário gera novamente o código hash e compara com o código gerado pelo receptor. Se os
códigos não são iguais é porque o conteúdo foi alterado durante a transmissão e deve, portanto,
ser descartado. Se os códigos são iguais, então a integridade dos dados foi mantida. A
criptografia também é utilizada em mecanismos de assinatura digital, que são importantes na
garantia de autenticidade.

Os mecanismos de criptografia podem ser utilizados para garantir a confidencialidade e


integridade dos dados transmitidos através da Internet. No caso do uso de nuvem pública, esses
mecanismos também podem ser usados para confidencialidade e integridade dos dados
armazenados no provedor. No entanto, esse processo pode afetar o desempenho, devido ao
tempo gasto para criptografar os dados nas operações de escrita e para descriptografar os
dados nas operações de leitura. Essa opção de armazenar os dados de forma criptografada é
oferecida pela maioria dos provedores e serve para lidar com ataques de virtualização e garantir
a privacidade, mesmo que estejam em equipamentos compartilhados.

Outra solução de segurança importante nos provedores de nuvem pública é o Gerenciamento de


Acesso e Identidade (IAM – Identity and Access Management) (Erl; Puttini; Mahmood, 2013).
Esse recurso é utilizado pelos provedores, principalmente, para implementação de políticas de
controle de acesso. O IAM permite o gerenciamento e a autenticação de usuários, assim como o
controle de privilégios para grupos de usuários e gerenciamento de credenciais. Esse tipo de
recurso é importante na implementação de soluções de segurança para lidar com ataques de
negação de serviços, autenticação fraca e violação de privacidade no acesso a dados e serviços.
Se um cliente utiliza serviços em vários provedores, então, é importante também para questões
de controle de acesso o uso de mecanismos de autenticação unificada (SSO – Single Sign On).
Esses mecanismos oferecem uma solução segura para autenticação em vários provedores,
utilizando as mesmas credenciais.
Disciplina

COMPUTAÇÃO EM NUVEM

Outro recurso bastante utilizado pelos provedores de computação em nuvem para aprimorar a
segurança dos serviços é o uso de imagens fortalecidas de máquinas virtuais (Hardened VM
Images) (Erl; Puttini; Mahmood, 2013). Sabemos que as instâncias de máquinas virtuais são
criadas a partir de imagens disponíveis no provedor. As imagens fortalecidas são aquelas que
foram configuradas por especialistas, considerando políticas de segurança rigorosas para
eliminar possíveis vulnerabilidades. Dessa forma, quando um cliente cria uma VM a partir de uma
imagem fortalecida, ele sabe que o sistema operacional dessa VM já foi configurado com as
melhores práticas de segurança conhecidas.

Os mecanismos de segurança devem ser usados em conjunto e aprimorados continuamente


para lidarem com eventuais ações maliciosas contra as aplicações em ambientes de nuvem. É
importante ressaltar que a segurança não é responsabilidade somente do provedor de
computação em nuvem; o cliente dos serviços também precisa cooperar. Para assegurar a
confiabilidade e a segurança de uma aplicação, é importante a definição de uma estratégia de
gerenciamento de riscos, que permitirá que uma empresa possa lidar com problemas de
segurança, tanto em relação à segurança de dados e redes como em relação à governança e
conformidade dos serviços, ao migrar suas aplicações para um provedor de nuvem pública.
Como ilustrado na Figura 1, o gerenciamento de riscos envolve três etapas: avaliação, tratamento
e controle (Erl; Puttini; Mahmood, 2013).

Figura 1 | Ciclo do processo de gerenciamento de riscos.

Gerenciamento de riscos para serviços em nuvem


A etapa de avaliação de riscos consiste em analisar as possíveis vulnerabilidades e ameaças no
ambiente operacional do provedor de nuvem. Devem ser analisados o histórico de incidentes de
segurança e as características da rede do provedor. Nessa etapa, os riscos são identificados e
classificados em termos do impacto que podem causar. A etapa de tratamento de risco envolve
a definição de estratégias e políticas de segurança e a realização de ações para evitar ou atenuar
o efeito dos identificados na etapa anterior. Nessa fase, também precisa estar claro quais são as
Disciplina

COMPUTAÇÃO EM NUVEM

responsabilidades do provedor e dos clientes; algumas delas podem, inclusive, ser delegadas
para empresas ou profissionais especializados. O último estágio (controle de riscos) é o
momento de diagnosticar a eficácia das ações de segurança implementadas, no qual podem ser
definidas formas de aprimorar os mecanismos de segurança. Esse processo de gerenciamento
de risco deve se repetir periodicamente, pois novas ameaças podem surgir, novas tecnologias e
aplicações podem ser incluídas no ambiente do provedor, assim como podem ser introduzidos
mecanismos de segurança mais sofisticados.

Alguns aspectos importantes a serem considerados ao gerenciar riscos para serviços em nuvem:

Avaliação de riscos: realize uma avaliação completa dos riscos associados ao uso de
serviços em nuvem. Isso envolve identificar ameaças potenciais, vulnerabilidades e
possíveis impactos nos negócios.
Classificação de dados: classifique os dados com base em sua sensibilidade e
importância. Isso ajuda a determinar quais dados precisam de medidas de segurança mais
rigorosas.
Contratos e Acordos de Nível de Serviço (SLA): analise cuidadosamente os contratos e com
provedores de serviços em nuvem para garantir que incluam disposições relacionadas à
segurança, privacidade e conformidade.
Conformidade regulatória: certifique-se de que os serviços em nuvem estejam em
conformidade com regulamentações específicas da indústria e requisitos legais que se
aplicam à sua organização.
Resiliência e recuperação de desastres: desenvolva planos de resiliência e recuperação de
desastres para garantir a continuidade dos negócios em caso de falhas ou eventos
adversos.
Avaliação de provedores de nuvem: realize uma avaliação minuciosa dos provedores de
serviços em nuvem, levando em consideração sua postura de segurança, histórico de
incidentes e práticas de conformidade.
Controle de acesso e autenticação: implemente controles robustos de acesso e
autenticação para garantir que apenas usuários autorizados tenham permissão para
acessar recursos críticos.
Criptografia: utilize a criptografia para proteger dados sensíveis durante a transmissão e
armazenamento, reduzindo o risco de acesso não autorizado.
Monitoramento contínuo: estabeleça sistemas de monitoramento contínuo para identificar
atividades suspeitas e responder prontamente a possíveis incidentes de segurança.
Atualizações de segurança: mantenha os sistemas e software atualizados com as últimas
correções de segurança para mitigar vulnerabilidades conhecidas.
Treinamento em segurança: forneça treinamento regular em segurança para todos os
usuários, aumentando a conscientização sobre práticas seguras ao usar serviços em
nuvem.
Gestão de identidade e acesso: implemente políticas de gestão de identidade eficazes para
garantir que apenas as pessoas certas tenham acesso aos recursos adequados.
Estratégias de mitigação: desenvolva estratégias de mitigação para reduzir a probabilidade
e o impacto de possíveis riscos, garantindo uma abordagem proativa.
Testes de penetração: realize testes regulares de penetração para identificar e corrigir
possíveis vulnerabilidades antes que se tornem alvos de exploração.
Disciplina

COMPUTAÇÃO EM NUVEM

Compartilhamento responsável: se os serviços em nuvem envolvem compartilhamento de


recursos com terceiros, certifique-se de que a colaboração seja realizada de maneira
segura e responsável.

Siga em Frente...

Principais ameaças e vulnerabilidades para aplicações em


nuvem
A internet é uma rede que não inclui em sua arquitetura a implementação das propriedades de
uma comunicação segura (Kurose; Ross, 2013).

Dessa forma, a infraestrutura de rede dos provedores de acesso à internet (ISPs – Internet
Service Providers) é considerada um meio de comunicação inseguro. Portanto, uma aplicação
que utiliza a internet como rede de comunicação precisa ser protegida por meio de mecanismos
de segurança, como criptografia e controle de acesso. Nesse contexto, o projeto de aplicações
em nuvem precisa contemplar estratégias e ferramentas de segurança para garantia de
autenticidade, confidencialidade e integralidade dos dados transmitidos entre os clientes e o
provedor. A Figura 2 ilustra esse cenário. A comunicação de dados entre os usuários legítimos e
os serviços disponíveis no provedor está sujeita às ações de agentes maliciosos que visam
realizar ataques que exploram eventuais vulnerabilidades das aplicações.

Figura 2 | Comunicação através de um meio inseguro, como a Internet.

Vamos discutir as principais ameaças e vulnerabilidades que podem afetar as aplicações em


nuvem para, depois, explicar alguns mecanismos e políticas que podem ser utilizados para lidar
Disciplina

COMPUTAÇÃO EM NUVEM

com esses problemas e melhorar o nível de segurança das aplicações. Conforme explicam Erl,
Puttini e Mahmood (2013), as principais ameaças de segurança para aplicações em nuvem são:
interceptação de tráfego, negação de serviço e ataques de virtualização. Vamos conhecer a
definição e as características de cada um desses tipos de ataque:

Interceptação de tráfego: ocorre quando uma entidade não autorizada é capaz de obter as
informações transmitidas entre provedor em nuvem e clientes, de forma que a
confidencialidade dos dados é violada (Erl; Puttini; Mahmood, 2013). Esse tipo de ataque é
difícil de ser detectado, pois é passivo, no sentido em que não há modificações nos dados
ou sistemas. O atacante apenas copia os dados transmitidos na rede para ter acesso a
informações sigilosas dos provedores e seus clientes. Esse cenário caracteriza uma forma
de espionagem.
Negação de Serviço (DoS – Denial of Service): tem o objetivo de afetar a disponibilidade
dos serviços. Esse ataque consiste em sobrecarregar o serviço com um grande volume de
requisições, de forma que não consiga mais responder aos clientes legítimos com um
desempenho satisfatório (Erl; Puttini; Mahmood, 2013). A Figura 3 mostra um exemplo de
um ataque de DoS. Nesse caso, um servidor em um provedor de nuvem é sobrecarregado
com requisições disparadas de computadores que foram invadidos e controlados por um
atacante. Com a sobrecarga de requisições em um curto período, o servidor terá
dificuldades em atender as requisições dos clientes legítimos.

Figura 3 | Cenário exemplo de um ataque de DoS.

Para resistir aos ataques de DoS, os provedores identificavam e bloqueavam os endereços dos
nós da rede de onde os atacantes disparavam as requisições. No entanto, esses ataques ficaram
mais sofisticados. Em vez de disparar um grande volume de requisições de alguns nós, o que
Disciplina

COMPUTAÇÃO EM NUVEM

facilitava a identificação da fonte do ataque, os atacantes passaram a disparar poucas


requisições de grande número de computadores dispersos pela internet. Essa estratégia é
denominada ataque de DoS distribuído (DDoS – Distributed DoS). Assim, é muito difícil para o
provedor distinguir as requisições enviadas por clientes confiáveis das requisições geradas pelos
atacantes em computadores que foram invadidos.

Outra ameaça bastante relevante para aplicações em nuvem são os ataques de virtualização,
que buscam explorar eventuais falhas e vulnerabilidades nas ferramentas de virtualização
utilizadas pelos provedores (Erl; Puttini; Mahmood, 2013). Nesse caso, o atacante pode
conseguir algum nível de controle sobre a infraestrutura de TI do provedor. Outro problema é que
pode haver violação da privacidade dos dados dos clientes do provedor. Como a virtualização
permite que diversos recursos compartilhem um mesmo recurso físico, pode haver dados de
diversos clientes em um mesmo equipamento. Os ataques às ferramentas de virtualização
podem conseguir violar os mecanismos de proteção que existem para manter um isolamento
entre os recursos e dados de diversos clientes que compartilham a infraestrutura do provedor.

Além das ameaças relacionadas com segurança de dados e redes, os provedores de


computação em nuvem também precisam lidar com ameaças relacionadas a outras categorias
de segurança, como governança, conformidade e questões legais (Gonzalez et al., 2013). Entre
os principais problemas nessas categorias, podemos citar:

Baixo nível de controle administrativo sobre a segurança dos dados por parte dos clientes
de um provedor.
Dependência das tecnologias e políticas de segurança adotadas pelo provedor.
Problemas relacionados aos requisitos de confiabilidade e políticas de auditoria
estabelecidos em acordos de qualidade de serviço (SLA).

Jurisdição dependente da localização dos provedores onde estão armazenados os dados, pois
alguns provedores possuem data centers em países diferentes.

Vamos Exercitar?

Segurança no download de aplicativos


Descrição da situação-problema

Considere que você foi contratado como analista de TI por uma empresa que mantém uma loja
online de aplicativos. Os usuários acessam a loja para fazer download para seus dispositivos
móveis. Existe um problema de segurança que consiste no fato de que o arquivo executável (do
aplicativo) recebido do usuário seja diferente do arquivo disponível para download na loja. Isso
pode acontecer por falhas na transmissão que, de alguma forma, corromperam o conteúdo do
arquivo durante o envio dos dados através da Internet. Outra possibilidade é que um atacante
tenha interceptado e alterado intencionalmente o arquivo para injetar um código executável
malicioso no arquivo original. Sua tarefa é caracterizar como essa ameaça viola as propriedades
Disciplina

COMPUTAÇÃO EM NUVEM

de segurança e descrever algum mecanismo que possa ser utilizado para lidar com o problema
descrito.

Resolução da situação-problema

Aprendemos sobre quatro propriedades de um sistema seguro: autenticidade, confidencialidade,


integridade e disponibilidade. As ameaças descritas não afetam a disponibilidade da aplicação,
pois a loja continua ativa para atender às solicitações de download. Também não afetam a
autenticidade, pois o atacante não finge sua identidade para fazer o download de um aplicativo
na loja. Também não há que se falar em confidencialidade, pois não há sigilo sobre o arquivo
executável dos aplicativos. O problema descrito, de fato, é uma possível violação da integridade
do arquivo durante sua transmissão pela rede.

Para lidar com essas ameaças, poderia ser utilizado algum mecanismo de Hashing. Nesse caso,
o mecanismo poderia funcionar da seguinte maneira: a loja utilizaria uma função de hash para
gerar um código hash correspondente para cada arquivo executável de aplicativo disponível na
loja. O usuário deveria fazer o download do arquivo e do código hash. Quando o download for
concluído, o usuário utilizaria a mesma função de hash para gerar o código e, então, faria uma
comparação dos códigos; se fossem iguais, é porque a integridade do arquivo foi mantida. Se os
códigos fossem diferentes, é porque o arquivo foi alterado de alguma forma e, então, o download
teria que ser feito novamente. Dessa forma, mecanismos de hashing podem ser utilizados para
verificar a integridade de arquivos executáveis transferidos de servidores na internet para evitar a
execução de código executável malicioso que, eventualmente, tenha sido incluído no arquivo por
um atacante.

Saiba mais

Leia o documento referenciado a seguir para conhecer um pouco mais sobre os riscos de
aplicações em ambientes de Computação em Nuvem.

MELO, K. Segurança na Nuvem: por onde começar? ABES, 14-04-2016.

Referências

ERL, T.; PUTTINI, R.; MAHMOOD, Z. Cloud computing: concepts, technology & architecture. Rio de
Janeiro: Prentice Hall, 2013.

GONZALEZ, N. M. et al. Segurança das nuvens computacionais: uma visão dos principais
problemas e soluções. Revista USP, São Paulo, 2013.

KUROSE, J. F.; ROSS, K. W. Redes de Computadores e a Internet: uma abordagem top-down. 6. ed.
São Paulo: Pearson Education do Brasil, 2013.
Disciplina

COMPUTAÇÃO EM NUVEM

Aula 4
Casos de Uso da Computação em Nuvem

Casos de Uso da Computação em Nuvem

Este conteúdo é um vídeo!


Para assistir este conteúdo é necessário que você acesse o AVA pelo
computador ou pelo aplicativo. Você pode baixar os vídeos direto no aplicativo
para assistir mesmo sem conexão à internet.
Dica para você
Aproveite o acesso para baixar os slides do vídeo, isso pode deixar sua
aprendizagem ainda mais completa.

Olá, estudante! Nesta videoaula, mergulharemos nos diversos casos de uso que a computação
em nuvem oferece. Prepare-se para explorar como essa tecnologia tem impactado projetos,
negócios e muito mais.
Esse conteúdo é importante para a sua prática profissional, para enfrentar os desafios da era
digital, contribuindo para o sucesso de projetos, impulsionando a inovação e garantindo a
eficiência operacional em suas práticas profissionais.
Prepare-se para esta jornada de conhecimento! Vamos lá!!!

Ponto de Partida
Olá, estudante! A computação em nuvem tem sido amplamente adotada em diversos setores, em
aplicações práticas que impulsionam projetos e transformam a dinâmica dos negócios. Estudos
de casos revelam sua versatilidade, desde a implementação bem-sucedida em saúde, finanças,
educação, até a revolução na manufatura, varejo e setor público.

Em projetos, a nuvem oferece soluções eficientes, como armazenamento escalável, hospedagem


ágil de sites e aplicações, e ambientes de desenvolvimento/testes flexíveis. A capacidade de
processamento em nuvem é particularmente destacada em aplicações de big data, inteligência
artificial e aprendizado de máquina, impulsionando a análise de dados e a inovação.

No âmbito empresarial, a computação em nuvem se traduz em benefícios tangíveis. Desde o


armazenamento seguro de dados até a implementação de sistemas ERP, a nuvem permite a
continuidade de negócios com soluções de recuperação de desastres, facilitando a gestão de
documentos e a colaboração entre equipes.
Disciplina

COMPUTAÇÃO EM NUVEM

Esses três temas convergem para destacar como a nuvem não apenas atende a demandas
específicas de diferentes setores, mas também é uma ferramenta integral para a eficiência
operacional, inovação e transformação digital em projetos e negócios.

Bons estudos!

Vamos Começar!

Estudos de casos em diferentes setores


Os estudos de caso em diferentes setores de computação em nuvem destacam como essa
tecnologia pode ser aplicada para resolver desafios específicos e impulsionar a inovação em
diversas indústrias. Aqui estão alguns exemplos de estudos de caso em setores variados:

Setor de saúde: no gerenciamento eficiente de registros médicos, compartilhamento de


informações entre instituições e Implantação de sistemas de saúde eletrônicos na nuvem
para armazenamento seguro e compartilhamento instantâneo de dados entre profissionais
de saúde.
Setor financeiro: no processamento rápido e seguro de transações financeiras,
conformidade regulatória e utilização de serviços em nuvem para processamento escalável
de transações, análise de dados em tempo real e implementação de medidas de segurança
avançadas.
Educação a distância: no acesso remoto a recursos educacionais, escalabilidade para
atender a picos de demanda e plataformas de ensino a distância baseadas em nuvem,
permitindo a entrega de conteúdo educacional, colaboração online e suporte a grandes
números de usuários simultâneos.
Manufatura inteligente: no monitoramento em tempo real, otimização de cadeias de
produção e implementação de soluções IoT conectadas à nuvem para coleta de dados em
tempo real, análise preditiva e melhoria contínua dos processos de manufatura.
Varejo online: no gerenciamento de inventário, personalização da experiência do cliente e
utilização de plataformas de computação em nuvem para processamento rápido de
transações, análise de dados de comportamento do cliente e implementação de sistemas
de recomendação personalizados.
Agricultura digital: no monitoramento de cultivos, previsão de safras. Implantação de
sensores IoT agrícolas conectados à nuvem para coleta de dados de campo, análise de
condições climáticas e previsões baseadas em aprendizado de máquina.
Telecomunicações: no gerenciamento de tráfego de rede, escalabilidade e adoção de
infraestrutura de nuvem para fornecer serviços escaláveis, virtualização de funções de rede
(NFV) para otimização e flexibilidade.
Setor público: na entrega eficiente de serviços públicos, segurança de dados e utilização de
plataformas de nuvem para oferecer serviços digitais, armazenamento seguro de dados
governamentais e implementação de soluções de cibersegurança.
Disciplina

COMPUTAÇÃO EM NUVEM

Esses estudos de caso destacam a versatilidade e os benefícios da computação em nuvem em


diferentes setores, fornecendo soluções para desafios específicos e impulsionando a
transformação digital.

Aplicações práticas da nuvem em projetos


As aplicações práticas da computação em nuvem em projetos abrangem uma variedade de
setores e casos de uso, como:

Armazenamento de dados: empresas podem armazenar grandes volumes de dados de


forma escalável e acessá-los facilmente de qualquer lugar e, com isso, ter uma redução nos
custos, alta disponibilidade, backup automático e recuperação de desastres.
Hospedagem de sites e aplicações: desenvolvedores podem implantar e hospedar sites e
aplicativos na nuvem, escalando recursos conforme necessário, com escalabilidade,
facilidade de gerenciamento, redução de custos de infraestrutura.
Desenvolvimento e testes: ambientes de desenvolvimento e testes podem ser
provisionados rapidamente na nuvem, permitindo testes mais eficientes e agilidade no
desenvolvimento, economia de tempo, recursos sob demanda.
Big Data e análise de dados: processamento e análise de grandes conjuntos de dados,
usando serviços de big data na nuvem. Benefícios: escalabilidade, processamento paralelo,
ferramentas avançadas de análise.
Inteligência artificial e aprendizado de máquina: treinamento de modelos de IA/ML em
infraestruturas de nuvem, implementação de aplicações inteligentes. Poder computacional
escalável, acesso a frameworks de ML, implementação rápida.
Colaboração e comunicação empresarial: uso de plataformas de colaboração na nuvem
para comunicação eficiente entre equipes. Acesso remoto, colaboração em tempo real,
compartilhamento de documentos.
Internet das coisas: coleta e análise de dados gerados por dispositivos IoT, usando serviços
em nuvem. Processamento de dados em escala, armazenamento eficiente, análise em
tempo real.
Aplicações de negócios (ERP, CRM): implementação de sistemas de planejamento de
recursos empresariais (ERP) e gestão de relacionamento com o cliente (CRM) na nuvem.
Acesso remoto, atualizações automáticas, integração fácil.
Segurança e conformidade: utilização de serviços de segurança em nuvem para proteção
contra ameaças e conformidade com regulamentações. Monitoramento contínuo, detecção
de ameaças avançadas, conformidade simplificada.
Desktops virtuais (VDI): fornecimento de desktops virtuais baseados em nuvem para
acesso remoto. Mobilidade, fácil gerenciamento, escalabilidade.

Essas aplicações práticas demonstram como a computação em nuvem pode ser uma ferramenta
versátil para impulsionar a eficiência, a inovação e a agilidade em projetos.

Siga em Frente...
Disciplina

COMPUTAÇÃO EM NUVEM

Aplicações práticas da nuvem em negócios


A computação em nuvem oferece diversas aplicações práticas para impulsionar os negócios,
melhorar a eficiência operacional e facilitar a inovação. Aqui estão algumas das aplicações mais
comuns em ambientes empresariais:

Armazenamento de dados: armazenamento seguro e escalável e redução de custos de


armazenamento local, acesso remoto aos dados, backup e recuperação eficientes.
Hospedagem de aplicações e websites: Implantação e hospedagem de aplicações
empresariais, websites e portais online. Escalabilidade conforme a demanda,
gerenciamento simplificado, maior disponibilidade.
Desenvolvimento e testes de software: criação de ambientes de desenvolvimento e testes
na nuvem. Provisionamento rápido, custos reduzidos, ambientes isolados para testes.
Recuperação de desastres e continuidade de negócios: implementação de soluções de
backup e recuperação na nuvem. Recuperação rápida, redundância de dados, menor
impacto em caso de falhas.
Colaboração e compartilhamento de documentos: uso de plataformas de colaboração na
nuvem para compartilhamento e edição colaborativa de documentos. Acesso remoto,
colaboração em tempo real, controle de versões.
Sistemas de gestão empresarial (ERP): implementação de soluções ERP baseadas em
nuvem para integração de processos de negócios. Atualizações automáticas, acesso
remoto, integração de dados empresariais.
Análise de dados e Business Intelligence (BI): uso de serviços em nuvem para análise de
dados e geração de insights. Escalabilidade para grandes conjuntos de dados, ferramentas
avançadas de BI, análise preditiva.
Desktops virtuais (VDI): fornecimento de desktops virtuais para funcionários em
dispositivos remotos. Mobilidade, segurança aprimorada, fácil gerenciamento centralizado.
Automação de processos: utilização de serviços em nuvem para automação de processos
de negócios. Eficiência operacional, redução de erros, integração de sistemas.
Segurança e conformidade: implementação de soluções de segurança em nuvem para
proteger dados empresariais. Monitoramento contínuo, detecção de ameaças avançadas,
conformidade simplificada.

Essas aplicações práticas destacam como a computação em nuvem pode transformar diferentes
aspectos dos negócios, proporcionando flexibilidade, escalabilidade e eficiência operacional.

Vamos Exercitar?

Adoção de aplicações práticas da nuvem em projetos


Descrição da situação-problema
Disciplina

COMPUTAÇÃO EM NUVEM

Imagine uma empresa de desenvolvimento de software que enfrenta desafios relacionados à


agilidade no desenvolvimento de projetos e colaboração eficiente entre equipes distribuídas
geograficamente. A empresa percebe a necessidade de adotar soluções inovadoras para superar
esses obstáculos e aprimorar seu processo de desenvolvimento de software.

Desafios:

Ambientes de desenvolvimento limitados: os ambientes de desenvolvimento atuais são


limitados em termos de escalabilidade e agilidade e os desenvolvedores enfrentam atrasos
na criação de ambientes de teste e desenvolvimento.
Colaboração remota ineficiente: a comunicação entre equipes distribuídas é desafiadora,
resultando em atrasos e falta de alinhamento e na dificuldade em compartilhar recursos e
manter uma visão unificada do progresso do projeto.

Resolução da situação-problema

A empresa decide adotar aplicações práticas da computação em nuvem para enfrentar esses
desafios. Aqui estão as medidas tomadas para resolver a situação:

Ambientes de desenvolvimento na nuvem: implementação de ambientes de


desenvolvimento escaláveis na nuvem, permitindo a rápida criação e destruição de
instâncias, conforme necessário, e utilização de serviços, como AWS CloudFormation ou
Azure Resource Manager para automatizar a configuração do ambiente.
Colaboração eficiente com ferramentas em nuvem: adoção de plataformas de colaboração
na nuvem, como Slack, Microsoft Teams ou Google Workspace, para facilitar a
comunicação em tempo real e implementação de ferramentas de gerenciamento de
projetos baseadas em nuvem, como Jira ou Trello, para acompanhar e compartilhar o
progresso do projeto.
Integração contínua e entrega (CI/CD) na nuvem: implementação de pipelines de CI/CD na
nuvem para automação contínua de testes e implantação e uso de serviços, como Jenkins,
GitLab CI ou GitHub Actions para garantir uma entrega contínua e confiável.
Armazenamento e gerenciamento de código na nuvem: migração do repositório de código
para plataformas de controle de versão na nuvem, como GitHub ou Bitbucket, e utilização
de serviços de armazenamento na nuvem, como Amazon S3 ou Azure Blob Storage, para
armazenamento eficiente de artefatos e dados.

Resultados esperados:

Redução significativa no tempo de configuração de ambientes de desenvolvimento.


Melhoria na comunicação e colaboração entre equipes, independentemente da localização
geográfica.
Aumento da eficiência do ciclo de vida de desenvolvimento, com implantações mais
rápidas e confiáveis.
Armazenamento seguro e eficiente de dados, melhorando a integridade e a disponibilidade
das informações.
Disciplina

COMPUTAÇÃO EM NUVEM

Essa abordagem prática da nuvem visa transformar a maneira como a empresa lida com
projetos, aumentando a agilidade, melhorando a colaboração e garantindo a entrega eficiente de
software.

Saiba mais

A computação em nuvem tem desempenhado um papel fundamental na revolução digital,


oferecendo uma variedade de casos de uso que transformam a maneira como empresas e
profissionais abordam os desafios tecnológicos. Para saber mais sobre as vantagens de utilizar
a tecnologia cloud computing, consulte 7 grandes empresas que usam serviços de computação
em nuvem.

Referências
HOWMIK, S. Cloud computing. Cambridge: Cambridge University Press, 2017.

ERL, T.; PUTTINI, R.; MAHMOOD, Z. Cloud Computing: concepts, technology & architecture. Rio de
Janeiro: Prentice Hall, 2013.

GONZALEZ, N. M. et al. Segurança das nuvens computacionais: uma visão dos principais
problemas e soluções. Revista USP, São Paulo, 2013.

Aula 5
Encerramento da Unidade

Videoaula de Encerramento
Disciplina

COMPUTAÇÃO EM NUVEM

Este conteúdo é um vídeo!


Para assistir este conteúdo é necessário que você acesse o AVA pelo
computador ou pelo aplicativo. Você pode baixar os vídeos direto no aplicativo
para assistir mesmo sem conexão à internet.
Dica para você
Aproveite o acesso para baixar os slides do vídeo, isso pode deixar sua
aprendizagem ainda mais completa.

Olá, estudante! Nesta videoaula, vamos explorar os conceitos relacionados à arquitetura de


aplicações em nuvem. Projetar e estruturar uma aplicação na nuvem é crucial para garantir
desempenho, confiabilidade e segurança.
Esse conteúdo é importante para a sua prática profissional, uma arquitetura robusta contribui
para a confiabilidade e disponibilidade contínua das aplicações. Profissionais que entendem os
princípios de criptografia, gerenciamento de identidade, controle de acesso e práticas de
segurança em nuvem podem projetar aplicações robustas e proteger dados sensíveis contra
ameaças cibernéticas.
Prepare-se para essa jornada de conhecimento! Vamos lá!!!

Ponto de Chegada
Olá, estudante! Para desenvolver a competência desta unidade, que é conhecer e exemplificar
como a arquitetura de uma aplicação em nuvem influencia o seu desempenho, confiabilidade e
segurança, é crucial abordar diversos aspectos da arquitetura e como cada um contribui para
esses três pilares fundamentais. Vamos explorar esses elementos.

1. Desempenho:
Elasticidade da infraestrutura: utilização de serviços de autoescalonamento para
ajustar dinamicamente a capacidade conforme a carga de trabalho, garantindo
desempenho consistente, mesmo durante picos de tráfego.
Arquitetura de microsserviços: divisão da aplicação em microsserviços
independentes, permitindo escalabilidade seletiva de componentes específicos e
evitando impacto global em caso de falhas.CDN para distribuição
de conteúdo: implementação de uma CDN para entregar conteúdo estático de forma
eficiente, reduzindo a latência e acelerando o carregamento de páginas.
2. Confiabilidade:
Redundância e recuperação de desastres: configuração de instâncias em diferentes
zonas de disponibilidade para garantir redundância. Adoção de serviços de backup na
nuvem para rápida recuperação em caso de falhas.
Monitoramento em tempo real: utilização de ferramentas de monitoramento para
detectar anomalias e falhas imediatamente, permitindo ações corretivas proativas.
Disciplina

COMPUTAÇÃO EM NUVEM

Testes automatizados: implementação de testes automatizados contínuos para


validar a estabilidade da aplicação após atualizações, evitando impactos não
previstos.
3. Segurança:
Políticas de controle de acesso: definição de políticas rigorosas de controle de
acesso, garantindo que apenas usuários autorizados tenham acesso a dados
sensíveis ou áreas críticas da aplicação.
Criptografia de dados em repouso e em trânsito: aplicação de criptografia para
proteger dados armazenados e transmitidos, reduzindo o risco de violações de
segurança.
Gerenciamento de identidade e acesso: implementação de serviços de gerenciamento
de identidade para autenticação e autorização eficazes, garantindo a integridade do
acesso à aplicação.

Desenvolver a competência nesta unidade envolve a compreensão prática sobre como cada
decisão arquitetônica influencia diretamente o desempenho, a confiabilidade e a segurança de
uma aplicação em nuvem. Ao aplicar exemplos concretos, os profissionais estarão aptos a tomar
decisões informadas durante o processo de arquitetura, alinhando-se aos objetivos estratégicos
da organização e proporcionando uma experiência de alta qualidade aos usuários.

É Hora de Praticar!

Este conteúdo é um vídeo!


Para assistir este conteúdo é necessário que você acesse o AVA pelo
computador ou pelo aplicativo. Você pode baixar os vídeos direto no aplicativo
para assistir mesmo sem conexão à internet.

Desafios na arquitetura de aplicações em nuvem


Descrição da Situação-Problema
Imaginemos uma empresa de e-commerce que enfrenta desafios significativos na arquitetura de
suas aplicações em nuvem. A empresa observou um aumento no tráfego durante picos sazonais
de vendas, resultando em instabilidades na aplicação, lentidão nas transações e,
ocasionalmente, indisponibilidade do serviço para os usuários. Além disso, a arquitetura atual
não se adapta facilmente a mudanças nas demandas do mercado e na escalabilidade da
infraestrutura.
Desafios identificados:

Instabilidade durante picos de tráfego: a infraestrutura existente não consegue lidar


eficientemente com aumentos abruptos de tráfego, levando a quedas no desempenho e até
Disciplina

COMPUTAÇÃO EM NUVEM

mesmo à indisponibilidade do serviço durante períodos críticos de vendas.


Escalabilidade limitada: a arquitetura atual não é facilmente escalável para atender às
flutuações sazonais de demanda, resultando em subutilização de recursos durante
períodos de baixo tráfego e sobrecarga em momentos de pico.
Gerenciamento complexo: a complexidade na administração da infraestrutura em nuvem
dificulta o gerenciamento eficaz dos recursos, tornando lenta a implementação de
atualizações e mudanças na aplicação.

O que é elasticidade na arquitetura de aplicações em nuvem e como ela impacta o


desempenho da aplicação?
Explique como a arquitetura de microsserviços difere da abordagem monolítica e porque
ela é vantajosa na nuvem.
Qual é o papel de uma CDN (Content Delivery Network) na arquitetura de aplicações em
nuvem, e como ela contribui para o desempenho?

Resolução da situação-problema
A empresa decide abordar esses desafios por meio de uma reestruturação abrangente na
arquitetura de suas aplicações em nuvem. Algumas medidas tomadas para resolver a situação:

Implementação de autoescalonamento: adoção de serviços de autoescalonamento na


nuvem, como AWS Auto Scaling ou Azure Autoscale, para ajustar automaticamente a
capacidade da infraestrutura com base nas demandas de tráfego em tempo real.
Arquitetura de microsserviços: reestruturação da aplicação, utilizando uma arquitetura de
microsserviços, permitindo escalabilidade independente de componentes específicos e
facilitando a implantação contínua.
CDN (Content Delivery Network): utilização de uma CDN para distribuição eficiente de
conteúdo estático, reduzindo a carga nos servidores principais e melhorando a latência
para usuários em diferentes regiões geográficas.
Monitoramento e análise preditiva: implementação de ferramentas de monitoramento em
tempo real e análise preditiva para identificar padrões de tráfego e antecipar picos,
permitindo ajustes preventivos na capacidade.
Contêineres e orquestração: adoção de contêineres, como Docker, e orquestração, como
Kubernetes, para facilitar o empacotamento de aplicações e garantir uma implantação
consistente e escalável.

Resultados esperados:

Estabilidade aprimorada: redução significativa na instabilidade durante picos de tráfego,


proporcionando uma experiência mais consistente para os usuários.
Escala eficiente: capacidade de escalonar dinamicamente recursos, garantindo uma
resposta eficiente às mudanças nas demandas de tráfego.
Agilidade operacional: simplificação do gerenciamento da infraestrutura, permitindo
atualizações e mudanças rápidas na aplicação.

Essas medidas visam transformar a arquitetura de aplicações em nuvem da empresa,


capacitando-a para lidar com desafios de tráfego variável e garantir uma experiência confiável
Disciplina

COMPUTAÇÃO EM NUVEM

aos usuários, independentemente das condições sazonais.

A arquitetura de aplicações em nuvem refere-se ao design e à estrutura de sistemas de software


que são construídos para operar na infraestrutura de computação em nuvem. Ela engloba
decisões de design e padrões arquiteturais que permitem que as aplicações se beneficiem das
características e serviços oferecidos pelos provedores de nuvem, como escalabilidade,
elasticidade, redundância, segurança e eficiência.
Disciplina

COMPUTAÇÃO EM NUVEM

Figura | Arquitetura de aplicação em nuvem.

CARVALHO, A. C. P. L. F.; LORENA, A. C. Introdução à computação. São Paulo: GEN, 2017.


Disciplina

COMPUTAÇÃO EM NUVEM

ERL, T.; PUTTINI, R.; MAHMOOD, Z. Cloud Computing: concepts, technology & architecture. Rio de
Janeiro: Prentice Hall, 2013.
MEIRELES, A.; OLIVEIRA, H. S.; PICHETTI, R. F. Cloud computing. Porto Alegre: SAGAH, 2020.

Você também pode gostar