Ofertas de Serviço em Computação em Nuvem
Aula 1
Serviços de Processamento de Dados
Serviços de Processamento de Dados
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
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
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, 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 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.
- 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 Bibliográficas
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
Serviços de Armazenamento e Análise de Dados
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!
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
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, 2019d) | O Amazon Elastic 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 (Huai et al., 2014) e Spark (Zaharia, 2016). |
Amazon Kinesis (AWS, 2019g) | Solução para análise em tempo real de dados de streaming, como dados de telemetria da IoT, logs de aplicativos e streaming de vídeo. | |
Google Cloud | BigQuery (Google, 2019a) | Solução escalável no modelo serverless para aplicações de inteligência de negócios (BI – Business Intelligence). |
Cloud Data Fusion (Google, 2019b) | Serviço para extração, transformação e integração de dados. | |
Microsoft Azure | HDInsight (Microsoft, 2019g) | Serviço de alta disponibilidade e escalabilidade para processamento distribuído de dados utilizando frameworks de código aberto, como Spark, Kafha e Hadoop. |
Data Factory (Microsoft, 2019f) | Serviço para extração, transformação e 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...
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.
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.
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 |
AWS | Amazon Elastic Block Store (Amazon EBS) (AWS, 2019b). |
Google Cloud | Persistent Disk (Google, 2019c). |
Microsoft Azure | Azure Disk Storage (Microsoft, 2019b). |
Quadro 2 | Exemplos de serviços de armazenamento em bloco.
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 |
AWS | Amazon Elastic File System (Amazon EFS) (AWS, 2019c). |
Google Cloud | Cloud Filestore (Google, 2019d). |
Microsoft Azure | Azure Files (Microsoft, 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 |
AWS | Amazon Simple Storage Service (Amazon S3) (AWS, 2019h) |
Google Cloud | Google Cloud Storage (Google, 2019i) |
Microsoft Azure | Azure Blob Storage (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 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).
Provedor | Categoria | Serviço |
AWS | Relacional | Amazon RDS (AWS, 2019g) |
Não relacional | Amazon DynamoDB (AWS, 2019a) | |
Google Cloud | Relacional | Cloud SQL (Google, 2019e) |
Não relacional | Cloud Firestore (Google, 2019d) | |
Microsoft Azure | Relacional | Azure SQL Database (Microsoft, 2019e) |
Não relacional | Azure Cosmos DB (Microsoft, 2019d) | |
MongoDB | Não relacional | MongoDB Atlas (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?
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.
Referências Bibliográficas
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
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 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 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 |
AWS X-Ray (AWS, 2019g) | Ferramenta para identificar e solucionar problemas de desempenho em aplicações distribuídas. | Identificação automática das partes de uma aplicação web que apresentam problemas de desempenho (alta latência por exemplo), assim como a causa dos problemas. |
AWS CodePipeline (AWS, 2019b). | Solução para integração contínua e entrega contínua a fim de automatizar o gerenciamento das atualizações de aplicações. | Especificação de eventos para fazer a implantação (deployment) automático de uma aplicação quando o código-fonte é alterado. |
Cloud Source Repositories (Google, 2019b) | Repositório para gerenciamento de código fonte com suporte a controle de versões e busca. | Controle de diversas versões do código fonte de uma aplicação por uma equipe de desenvolvimento. |
Azure Test Plans (Microsoft, 2019b) | Ferramenta para automação de testes de software. | Gerar gráficos de resultados de testes em uma aplicação web (por exemplo, número de testes bem-sucedidos e fa lhas), assim como verificar a compatibilidade com diferentes navegadores web. |
Azure Boards (Microsoft, 2019a) | Ferramenta para gerenciamento de projetos utilizando metodologias ágeis. | Criar painéis de bordo (dashboards) para acompanhamento das atividades de um projeto de 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 MediaConvert (AWS, 2019d) | Mecanismos para converter um vídeo de entrada em diferentes formatos de saída a fim de oferecer suporte para várias plataformas e dispositivos. | Um caso de uso para esses serviços são as aplicações de streaming de áudio, como o Spotify, que precisam gerar arquivos de áudio em vários formatos e qualidades para atender a diferentes dispositivos dos usuários. |
AWS Elemental MediaConnect (AWS, 2019c) | Solução para transmissão de vídeo ao vivo escalável, confiável e segura. | Aplicação de transmissão ao vivo de eventos esportivos. |
Live and on-demand streaming (Microsoft, 2019f) | Serviço com recursos para codificação e distribuição escalável de vídeo (ao vivo ou sob demanda). | Transmissão ao vivo de eventos na forma de webcasts. |
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. Os provedores em nuvem oferecem, por exemplo, serviços para coleta, análise e visualização de dados dos dispositivos conectados.
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 |
AWS IoT SiteWise (AWS, 2019f) | Serviço para análise de dados e monitoramento de instalações industriais. |
AWS IoT Device Defender (AWS, 2019e) | Solução para configuração de 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 dispositivos e criptografia de dados em uma aplicação de IoT. |
Cloud IoT Core (Google, 2019) | Plataforma para coleta, análise e visualização de dados de dispositivos IoT em tempo real. |
Azure Maps (Microsoft, 2019c) | Mecanismos para manipulação de dados geoespaciais para suporte à inteligência baseada em localização. |
Azure Time Series Insights (Microsoft, 2019b) | Análise de dados de séries temporais coletados por aplicações IoT em larga escala. Esses recursos são importantes, por exemplo, para aplicações de 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 em Nuvem | IoT | |
Arquitetura | Centralizada | Distribuída |
Alcance | Limitado | Ubíquo (pervasivo) |
Componentes | Recursos virtualizados | Objetos do mundo real |
Quadro 4 | Relação entre IoT e computação em nuvem. Fonte: adaptado de Botta (2016).
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.
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 Bibliográficas
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
Gerenciamento de Dados em Nuvem
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!
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
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...
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.
- 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.
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 Bibliográficas
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.
Encerramento da Unidade
Ofertas de Serviço em Computação em Nuvem
Videoaula de Encerramento
Olá, estudante! Nesta videoaula, exploraremos os vários tipos de serviços oferecidos por plataformas/provedores de 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:
- 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.
- 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.
- 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:
- 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.
- 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.
- 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, Azure Virtual Network.
- 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).
- 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.
- 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.
- 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!
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.
Reflita
- 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?
- Como estabelecer e manter políticas eficazes de governança de dados em uma infraestrutura distribuída em nuvem?
Resolução do estudo de caso
Resolução da situação-problema
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
Dê o play!
Assimile
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.
Referências
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.
MEIRELES A.; OLIVEIRA, H. S.; PICHETTI, R. F. Cloud computing. Porto Alegre: SAGAH, 2020.