Você está na página 1de 37

GCP Fundamentals: Core Infrastructure

Armazenamento na nuvem
Google Cloud Platform

Machine Operações e
Computação Rede Big Data Armazenamento
learning ferramentas

Cloud Cloud Cloud Cloud Cloud


Storage SQL Spanner Datastore Bigtable

O Google Cloud Platform tem muitas opções de armazenamento que satisfazem


quase todos os casos de uso dos clientes. Neste módulo, vamos ver as principais
opções de armazenamento: Google Cloud Storage, Google Cloud SQL, Google
Cloud Spanner, Cloud Datastore e Google Cloud Bigtable.
Tópicos
Cloud Storage

Cloud Bigtable

Google Cloud SQL e Google Cloud


Spanner

Cloud Datastore

Comparação entre as opções


de armazenamento

Teste e laboratório
O Cloud Storage é um serviço de armazenamento
de objeto grande binário
● Alto desempenho, escalonamento de Internet
○ Administração simples
● Não exige gerenciamento de capacidade
● Criptografia de dados em repouso
● Criptografia de dados em trânsito do Google
ao endpoint, por padrão
● Serviços de importação on-line
e off-line disponíveis

O Google Cloud Storage oferece um armazenamento de objetos altamente


disponível e durável aos desenvolvedores e organizações de TI. Ele não tem taxa
mínima, e você paga apenas pelo que usar. Não é necessário provisionar capacidade
antecipadamente.

O que é armazenamento de objetos? Ele é diferente do armazenamento de arquivos,


onde você gerencia dados como uma hierarquia de pastas, e do armazenamento de
blocos, onde seu sistema operacional gerencia os dados como partes do disco. No
armazenamento de objetos, você envia uma sequência arbitrária de bytes e recebe
uma chave única para que ela seja tratada. No Google Cloud Storage e em outros
sistemas, essas chaves únicas têm a forma de URLs, o que significa que o
armazenamento de objetos interage bem com tecnologias da Web.

O Google Cloud Storage sempre criptografa os dados no servidor, antes de serem


gravados no disco, sem custo adicional. O tráfego de dados entre o dispositivo de
um cliente e o Google é criptografado por padrão pelo protocolo HTTPS/TLS
(Transport Layer Security). O Google foi o primeiro grande provedor de serviços de
nuvem a usar o protocolo HTTPS/TLS por padrão.

O Google Cloud Storage não é um sistema de arquivos, embora possa ser acessado
como tal por ferramentas de terceiros, como o Cloud Storage FUSE. Os objetos de
armazenamento oferecidos pelo Google Cloud Storage são “imutáveis”, o que
significa que você precisa criar uma nova versão deles para edição. O uso principal
do Google Cloud Storage é para armazenamento de objetos grandes binários:
conteúdo on-line, backup e arquivamento, armazenamento de resultados
intermediários no processamento de fluxos de trabalho e outros.

O Offline Media Import/Export é uma solução de terceiros que permite enviar sua
mídia física, como unidades de disco rígido (HDDs), fitas e pen drives, a um provedor
de serviços terceirizado que fará o upload deles no Google Cloud Storage para você.
O Offline Media Import/Export é útil se você tem uma conexão de Internet lenta, não
confiável ou cara.

A importação off-line está disponível por provedores terceirizados:


https://cloud.google.com/storage/docs/offline-media-import-export
O Cloud Storage Transfer Service permite importar grandes quantidades de dados
on-line no Google Cloud Storage, de maneira rápida e econômica. Para usar o Cloud
Storage Transfer Service, você configura uma transferência de uma fonte de dados a
um coletor de dados. As fontes de dados podem ser um bucket do Storage Service
(Amazon S3), um local HTTP/HTTPS ou outro bucket do Google Cloud Storage. Os
coletores de dados são sempre um bucket do Google Cloud Storage.

Exemplos de uso do Cloud Storage Transfer Service:


Backup de dados de outros provedores de armazenamento no bucket do Google
Cloud Storage.
Mover dados de um bucket do Armazenamento padrão ao Nearline Storage para
reduzir os custos de armazenamento.
Os arquivos do Cloud Storage são organizados em buckets

Atributos do bucket Conteúdo do bucket

Nome único global Arquivos (em um namespace simples)

Classe de armazenamento

Local (regional ou multirregional)

Políticas do IAM ou de listas de controle de acesso Listas de controle de acesso

Configuração de controle de versões

Gerenciamento de regras do ciclo de vida de objetos

Os arquivos do Cloud Storage são organizados em buckets. Ao criar um bucket,


você dá a ele um nome globalmente exclusivo, especifica a localização geográfica
onde o bucket e o conteúdo dele serão armazenados e escolhe uma classe de
armazenamento padrão. Escolha um local que minimize a latência para os usuários.
Por exemplo, se a maioria dos usuários estiver na Europa, escolha uma região do
GCP na Europa ou a multirregião UE.

Existem muitas maneiras de controlar o acesso dos usuários aos seus objetos e
buckets. Para a maioria das finalidades, o Cloud IAM é suficiente. Os papéis são
herdados do projeto para o bucket e para o objeto. Se precisar de controle mais
preciso, crie listas de controle de acesso (ACLs). Elas possibilitam definir quem tem
acesso aos seus buckets e objetos, além do nível desse acesso. Cada ACL consiste
em duas informações: um escopo, que define quem pode executar as ações
especificadas (ex.: um usuário ou grupo de usuários), e uma permissão, que define
as ações que podem ser executadas (ex.: leitura ou gravação).

Lembre-se de que os objetos do Cloud Storage são imutáveis. Se quiser, você pode
ativar o controle de versões de objetos nos buckets. Assim o Cloud Storage manterá
um histórico de modificações (substituições e exclusões) de todos os objetos no
bucket. É possível listar as versões arquivadas de um objeto, restaurar um objeto
para um estado mais antigo ou excluir uma versão permanentemente, conforme
necessário. Se o controle de versões de objetos não for ativado, os itens novos
sempre substituirão os antigos.

O Cloud Storage também oferece políticas de gerenciamento do ciclo de vida. Por


exemplo, você pode solicitar que o Cloud Storage exclua objetos com mais de 365
dias ou criados antes de 1º de janeiro de 2013. Outra opção é manter somente as
três versões mais recentes de cada objeto em um bucket com o controle de versões
ativado.
Opções entre classes do Cloud Storage

Multi-regional Regional Nearline Coldline

Planejado para dados Acessados com


que são… Acessados com Acessados menos Acessados menos
mais frequência em
mais frequência de uma vez por mês de uma vez por ano
uma região
SLA de disponibilidade
99,95% 99,90% 99,00% 99,00%
APIs de acesso APIs consistentes

Tempo de acesso Acesso em milissegundos

Preço do
armazenamento Preço por GB armazenado por mês

Preço de recuperação
Preço total por GB transferido

Casos de uso Arquivamento,


Armazenamento e Análise na região, Conteúdo de cauda
recuperação
entrega de conteúdo transcodificação longa, backups
de desastres

O Cloud Storage oferece quatro tipos diferentes de classes de armazenamento:


Regional, Multi-Regional, Nearline e Coldline. Multi-regional e Regional são
armazenamentos de objetos de alto desempenho, enquanto que Nearline e Coldline
armazenamentos de backup e arquivamento. Todas as classes de armazenamento
são acessadas de maneiras semelhantes usando a API Cloud Storage e oferecem
tempos de acesso de milissegundos.

Com o Regional Storage, você pode armazenar dados em uma região específica do
GCP, como us-central1, europe-west1 ou asia-east1. Essa classe é mais barata do
que o Multi-Regional Storage, mas oferece menos redundância.

O Multi-Regional Storage custa um pouco mais, mas tem redundância geográfica.


Você pode escolher uma região geográfica ampla, como Estados Unidos, União
Europeia ou Ásia, e o Cloud Storage armazenará os dados em pelo menos duas
localizações separadas por, no mínimo, 160 quilômetros.

O Multi-Regional Storage é adequado para armazenar os dados mais acessados,


como o conteúdo de um site, cargas de trabalho interativas ou dados que fazem
parte de aplicativos de jogos ou para dispositivos móveis. Por outro lado, as pessoas
usam armazenamento regional para deixar os dados mais perto das máquinas
virtuais do Compute Engine ou dos clusters do Kubernetes Engine. Isso oferece
melhor desempenho para cálculos que envolvem muitos dados.

O Nearline Storage é um serviço de armazenamento de baixo custo e alta


durabilidade para armazenar dados acessados com pouca frequência. Essa classe
de armazenamento é uma opção melhor do que o Multi-Regional Storage ou o
Regional Storage caso você planeje ler ou modificar os dados uma vez por mês ou
menos, em média. Por exemplo, se você quiser adicionar arquivos ao Cloud Storage
continuamente e planejar acessá-los para análise uma vez por mês, a classe Nearline
Storage é uma ótima opção.

A classe Coldline Storage é um serviço de custo muito baixo e de armazenamento


durável para arquivamento de dados, backup on-line e recuperação de desastres.
Ela é a melhor opção para dados acessados no máximo uma vez por ano, devido à
disponibilidade um pouco menor, à duração mínima de armazenamento de 90 dias,
aos custos de acesso a dados e aos valores mais altos por operação. Por exemplo, se
quiser arquivar dados ou retomar o acesso no caso de um evento de recuperação de
desastre.

A disponibilidade dessas classes de armazenamento varia. A multi-regional tem a


maior disponibilidade (99,95%), seguida pela regional (99,9%) e pela nearline e pela
coldline (99,0%).

Em relação ao preço, todas as classes de armazenamento geram um custo por


gigabyte de dados armazenados por mês. A multi-regional tem o maior preço, e a
coldline, o menor. Cobranças de saída e transferência de dados também se aplicam.

Além dessas cobranças, os armazenamentos Nearline e Coldline também geram


uma taxa de acesso por gigabyte de dados lidos, sendo que a taxa do Coldline é
maior.
Há muitas maneiras para transferir dados para o Cloud Storage

Transferência Serviço de Transfer


on-line transferência do ApplianceBeta
Cloud Storage Dispositivos montados em rack para
enviar seus dados com segurança
Cópias autogerenciadas usando Transferências de lote agendadas
ferramentas de linha de comando e gerenciadas
ou arrastar e soltar

Seja qual for a classe de armazenamento escolhida, há várias maneiras de transferir


dados para o Cloud Storage.

Muitos clientes usam o gsutil, que é o comando do Cloud Storage do SDK do Cloud.
Se você usa o navegador Google Chrome, também poderá transferir dados com
uma ação de arrastar e soltar no Console do GCP. Mas se você precisar enviar
terabytes ou petabytes de dados? O Google Cloud Platform tem uma opção on-line,
o Serviço de transferência do Cloud Storage, e uma off-line, o Transfer Appliance.

O Serviço de transferência do Cloud Storage permite agendar e gerenciar


transferências de lotes de outro provedor de nuvem, de uma região diferente do
Cloud Storage ou de um endpoint HTTP(S), para o Cloud Storage.

O Transfer Appliance é um servidor de armazenamento de alta capacidade e


compatível com rack, que você aluga do Google Cloud. Basta conectar o dispositivo
à sua rede, carregá-lo com seus dados e depois enviá-lo a uma instalação de upload
onde os dados serão transferidos ao Cloud Storage. O serviço permite transferir
com segurança até um petabyte de dados em um único dispositivo. Quando esse
texto foi redigido, o dispositivo ainda estava na versão beta e disponível apenas em
alguns locais. Por isso, veja mais informações no site.
O Cloud Storage funciona com outros serviços do GCP

Importação Scripts de
e exportação inicialização, imagens
de tabelas e armazenamento
geral de objetos

BigQuery Compute
Engine

Armazenament Cloud Storage Importação


o de objetos, e exportação
registros de tabelas
e backups
do Datastore

App Engine Cloud SQL

Há outras maneiras de transferir seus dados no Cloud Storage, pois essa opção de
armazenamento está bastante integrada com muitos produtos e serviços do Google
Cloud Platform.

Por exemplo, você pode importar e exportar tabelas do BigQuery e do Cloud SQL.
Você também pode armazenar backups do Cloud Datastore, bem como registros e
objetos usados pelos aplicativos do App Engine, como imagens. O Cloud Storage
pode também armazenar scripts de inicialização de instância, imagens do Compute
Engine e objetos usados por aplicativos do Compute Engine.

Em resumo, o Cloud Storage é frequentemente o ponto de processamento dos


dados que estão sendo movidos para a nuvem e o local de armazenamento de
dados de longo prazo.
Tópicos
Cloud Storage

Cloud Bigtable

Google Cloud SQL e Google Cloud


Spanner

Cloud Datastore

Comparação entre as opções


de armazenamento

Teste e laboratório
O Cloud Bigtable é NoSQL gerenciado

● Banco de dados de coluna ampla, NoSQL


totalmente gerenciado para aplicativos
de terabytes
● Integrado
○ Usa a API HBase para acesso
○ Compatibilidade nativa com ecossistemas
de Big Data, Hadoop

O Cloud Bigtable é um serviço de banco de dados de Big Data NoSQL do Google.


Ele é o banco de dados por trás de muitos dos principais serviços do Google, como
a Pesquisa Google, o Google Analytics, o Google Maps e o Gmail.
Por que usar o Cloud Bigtable?

● Armazenamento replicado
● Criptografia de dados em trânsito e em repouso
● ACLs com base em papéis
● Controle de aplicativos importantes,
como Google Analytics e Gmail

Muitas vezes, os clientes escolhem o Bigtable se os dados são:


Grandes
● Grandes quantidades (> 1 TB) de dados semiestruturados e estruturados
Rápidos
● Os dados são de alta capacidade ou mudam rapidamente
NoSQL
● Semântica relacional forte, transações não são necessárias

Especialmente se forem:
Série temporal
● Os dados são uma série temporal e tem ordenação semântica natural
Big Data
● Você executa processamento assíncrono de lote ou em tempo real dos
dados
Machine learning
● Você executa algoritmos de machine learning nos dados

O Bigtable foi projetado para lidar com cargas de trabalho enormes a uma latência
consistentemente baixa e alta capacidade. Por isso, é uma ótima opção para
aplicativos operacionais e analíticos, como a Internet das Coisas e a análise de
usuários e de dados financeiros.

Para mais informações sobre o Cloud Bigtable, consulte


https://www.google.com/url?q=https://cloudplatform.googleblog.com/2015/05/intro
ducing-Google-Cloud-Bigtable.html
Padrões de acesso do Bigtable

API de aplicativo
Os dados podem ser lidos e gravados no Cloud Bigtable por uma
camada de serviço de dados, como VMs gerenciadas, o servidor
REST HBase ou um servidor Java usando o cliente HBase. Isso
geralmente servirá para exibir dados em aplicativos, painéis e
serviços de dados.

Streaming
É possível transmitir os dados (gravá-los evento a evento) com o
uso de vários frameworks de processamento conhecidos, como
Cloud Dataflow Streaming, Spark Streaming e Storm.

Processamento em lote
Cloud Bigtable
Os dados podem ser lidos e gravados no Cloud Bigtable por
processos em lote, como Hadoop MapReduce, Dataflow ou Spark.
Com frequência, dados resumidos ou recentemente calculados são
gravados de volta no Cloud Bigtable ou em um banco de dados
downstream.

Como o Cloud Bigtable faz parte do ecossistema do GCP, ele pode interagir com
outros serviços do GCP, além de clientes de terceiros.

Do ponto de vista da API de um aplicativo, os dados podem ser lidos e gravados no


Cloud Bigtable com uma camada de serviço de dados, como VMs gerenciadas, o
servidor REST HBase ou um servidor Java usando o cliente HBase. Isso geralmente
servirá para exibir dados em aplicativos, painéis e serviços de dados.

É possível transmitir os dados com o uso de vários frameworks de processamento


conhecidos, como Cloud Dataflow Streaming, Spark Streaming e Storm.

Se o streaming não for uma opção, os dados também podem ser lidos e gravados no
Cloud Bigtable por processos em lote, como Hadoop MapReduce, Dataflow ou
Spark. Com frequência, dados resumidos ou recentemente calculados são gravados
de volta no Cloud Bigtable ou em um banco de dados downstream.
Tópicos
Cloud Storage

Cloud Bigtable

Google Cloud SQL e Google Cloud


Spanner

Cloud Datastore

Comparação entre as opções


de armazenamento

Teste e laboratório
O Cloud SQL é um RDBMS gerenciado

● Oferece bancos de dados MySQL


e PostgreSQL como serviço
● Replicação automática
● Backups gerenciados
● Escalonamento vertical (leitura e gravação)
● Escalonamento horizontal (leitura)
● Segurança do Google

O Cloud SQL é um serviço fácil de usar que oferece bancos de dados relacionais
totalmente gerenciados. Com ele, você transfere para o Google algumas tarefas
cotidianas e demoradas, porém necessárias, como a aplicação de patches e
atualizações, o gerenciamento de backups e a configuração de replicações. Isso
permite que você se concentre apenas em criar ótimos aplicativos.

Cada instância do Cloud SQL inclui um firewall de rede para você controlar o acesso
a ela.

O Cloud SQL é fácil de usar: ele não exige instalação de software nem manutenção.

É fácil escalonar até 64 núcleos de processador e mais de 100 GB de RAM.


Escalonamento vertical rápido com réplicas de leitura.

Replicação automática
O Google Cloud SQL é compatível com as situações de réplica de leitura a seguir:
● Instâncias do Cloud SQL que são réplicas de uma instância mestre do mesmo
serviço
As réplicas são outras instâncias no mesmo projeto e local da instância
mestre. Esse recurso está na versão beta.
● Instâncias do Cloud SQL que são réplicas de uma instância mestre externa
A instância mestre está fora do Google Cloud SQL. Por exemplo, fora da rede
do Google ou em uma instância do Compute Engine. Esse recurso está na
versão beta.
● Instâncias externas do MySQL que são réplicas de uma instância mestre do
Cloud SQL
As réplicas externas estão em ambientes de hospedagem, fora do Cloud
SQL.

Backups gerenciados
O Cloud SQL armazena seus dados com segurança e facilita a restauração de
backups e a recuperação para um estado específico da instância. O Cloud SQL
retém até sete backups para cada instância, já incluídos no custo.

Os dados dos clientes do Cloud SQL são criptografados quando estão nas redes
internas do Google e quando são armazenados em tabelas de bancos de dados, em
arquivos temporários ou em backups.

(Instâncias MySQL estão disponíveis na primeira geração ou na segunda geração. O


Google recomenda usar instâncias da segunda geração na maioria dos casos de
uso. As instâncias de primeira geração são recomendadas principalmente quando há
necessidade de compatibilidade com o MySQL 5.5. Além disso, elas podem ser
econômicas para instâncias usadas com pouca frequência ou de banco de dados de
teste/desenvolvimento, devido à disponibilidade do plano de faturamento por uso e
da política de ativação por demanda, que faz com que a instância seja fechada
automaticamente após 15 minutos de inatividade).
O Cloud SQL pode ser usado com outros serviços do GCP

Serviço
externo

O Cloud SQL pode ser usado com As instâncias do Compute Engine O Cloud SQL pode ser usado com
o App Engine com drivers padrão. podem ser autorizadas a acessar aplicativos e clientes externos.
as instâncias do Cloud SQL
Você pode configurar uma usando um endereço IP externo. As ferramentas padrão podem ser
instância do Cloud SQL para seguir usadas para administrar os bancos
um aplicativo do App Engine. As instâncias do Cloud SQL podem de dados.
ser configuradas com uma zona
preferencial. É possível configurar as réplicas
de leitura externas.

Outro benefício das instâncias do Cloud SQL é que outros serviços do GCP e até
mesmo serviços externos podem acessá-las. Você pode usar o Cloud SQL com o
App Engine com drivers padrão como o Connector/J para Java ou o MySQLdb para
Python.

Você pode colocar a instância do Cloud SQL na mesma zona que sua máquina
virtual, além de autorizar instâncias do Compute Engine a acessá-la.

Ele também é compatível com outros aplicativos e ferramentas conhecidos, como o


SQL Workbench, o Toad e outros aplicativos externos que utilizam drivers MySQL
padrão.
O Cloud Spanner é um RDBMS horizontalmente escalonável

O Cloud Spanner é compatível com:

● Replicação automática
● Consistência global forte
● Instâncias gerenciadas com alta
disponibilidade
● SQL (ANSI 2011 com extensões)

O Cloud Spanner suporta consistência forte, inclusive índices secundários bastante


consistentes, SQL e instâncias gerenciadas com alta disponibilidade por replicação
de dados integrada e síncrona. Testado na prática nos aplicativos e serviços
essenciais do Google, o Spanner capacita os sistemas dessa empresa que vale US$
80 bilhões.

O Cloud Spanner é especialmente adequado para aplicativos que exigem:


● Um RDBMS de SQL com junções e índices secundários
● Alta disponibilidade integrada
● Consistência global forte
● Bancos de dados com mais de 2 TB
● Alto número de IOPS (dezenas de milhares de leituras/gravações por
segundo ou mais)

Para uma visão geral técnica do Cloud Spanner, consulte


https://cloudplatform.googleblog.com/2017/02/inside-Cloud-Spanner-and-the-CAP
-Theorem.html.
Tópicos
Cloud Storage

Cloud Bigtable

Google Cloud SQL e Google Cloud


Spanner

Cloud Datastore

Comparação entre as opções


de armazenamento

Teste e laboratório
O Cloud Datastore é um banco de dados NoSQL
horizontalmente escalonável
● NoSQL projetado para back-ends de
aplicativos
● Totalmente gerenciado
○ Usa uma arquitetura distribuída para
gerenciar automaticamente o
escalonamento
● Redundância incorporada
● Compatível com transações ACID

O Cloud Datastore é um banco de dados NoSQL altamente escalonável para


aplicativos. Assim como o Cloud Bigtable, não há necessidade de provisionar
instâncias de banco de dados. O Cloud Datastore usa uma arquitetura distribuída
para gerenciar automaticamente o escalonamento. As consultas são escalonadas
com o tamanho do conjunto de resultados, e não com o tamanho do conjunto de
dados.

O Cloud Datastore é executado nos data centers do Google, que usam redundância
para minimizar o impacto dos pontos de falha. O aplicativo pode usar o Cloud
Datastore mesmo quando o serviço recebe um upgrade planejado.

O tamanho total dos bancos de dados do Cloud Datastore podem passar de


terabytes.
Google Cloud Datastore: benefícios

● Acesso sem esquemas


○ Sem preocupação com estrutura
de dados subjacente
● Ferramentas de desenvolvimento local
● Cota diária incluída
● Acesso de qualquer lugar com uma
interface RESTful

Recursos do Cloud Datastore:


● Transações atômicas
O Datastore pode executar um conjunto de operações em que todas são
bem-sucedidas ou nenhuma ocorre.
● Alta disponibilidade de leituras e gravações
O Datastore é executado nos data centers do Google, que usam redundância
para minimizar o impacto dos pontos de falha.
● Grande escalonabilidade com alto desempenho
O Datastore usa uma arquitetura distribuída para gerenciar automaticamente
o escalonamento. Ele usa uma combinação de índices e restrições de
consulta para que as consultas sejam escalonadas com o tamanho do
conjunto de resultados, e não com o tamanho do conjunto de dados.
● Armazenamento flexível e consultas de dados
O Datastore mapeia naturalmente para linguagens de script e orientadas a
objetos e é exposto a aplicativos por vários clientes. Ele também oferece uma
linguagem de consulta semelhante à SQL.
● Equilíbrio entre as consistências posterior e forte
O Datastore garante que as pesquisas de entidade e consultas de ancestral
sempre recebam dados fortemente consistentes. Todas as outras consultas
têm consistência eventual. Com os modelos de consistência, o aplicativo
oferece uma excelente experiência do usuário no processamento de grandes
volumes de dados e usuários.
● Criptografia em repouso
Ele criptografa automaticamente todos os dados antes de gravá-los no disco
● e os descriptografa automaticamente durante a leitura por usuários
autorizados. Para mais informações, consulte Criptografia no servidor.
● Totalmente gerenciado sem inatividade planejada
O Google lida com a administração do serviço do Datastore para que você
possa se concentrar no seu aplicativo. O aplicativo pode usar o Datastore
mesmo quando o serviço recebe um upgrade planejado.
Tópicos
Cloud Storage

Cloud Bigtable

Google Cloud SQL e Google Cloud


Spanner

Cloud Datastore

Comparação entre as opções


de armazenamento

Teste e laboratório
Comparação de opções de armazenamento: informações
técnicas
Cloud Cloud Cloud Cloud SQL Cloud BigQuery
Datastore Bigtable Storage Spanner

Tipo Documento Coluna larga Blobstore SQL relacional SQL relacional SQL relacional
NoSQL NoSQL para OLTP para OLTP para OLAP

Transações Sim Única linha Não Sim Sim Não

Consultas Não Não Não Sim Sim Sim


complexas

Capacidade Terabytes+ Petabytes+ Petabytes+ Até ~10 TB Petabytes Petabytes+

Tamanho da 1 MB/entidade ~10 MB/célula 5 TB/objeto Determinado pelo 10.240 MiB/linha 10 MB/linha
unidade ~100 MB/linha mecanismo de
banco de dados

Agora que abordamos as opções principais de armazenamento do GCP, vamos


fazer uma comparação entre elas para ajudar a escolher o serviço certo para seu
aplicativo ou fluxo de trabalho.

Esta tabela mostra as diferenças técnicas dos serviços de armazenamento. Cada


linha é uma especificação técnica e cada coluna é um serviço. Vou abordar cada
serviço da esquerda para direita.

Considere usar o Cloud Datastore se precisar armazenar objetos estruturados ou de


suporte para transações e consultas semelhantes a SQL. Esses serviços de
armazenamento oferecem terabytes de capacidade com tamanho máximo unitário
de 1 MB por entidade.

Considere usar o Cloud Bigtable se precisar armazenar grande quantidade de


objetos estruturados. O Cloud Bigtable não é compatível com consultas de SQL nem
transações que envolvam várias linhas. O serviço de armazenamento oferece
petabytes de capacidade com tamanho máximo unitário de 10 MB por célula e 100
MB por linha.

Considere usar o Cloud Storage se precisar armazenar blobs imutáveis com mais de
10 MB, como imagens grandes ou filmes. O serviço de armazenamento oferece
petabytes de capacidade com tamanho máximo unitário de 5 TB por objeto.

Considere usar o Cloud SQL ou o Cloud Spanner se precisar de compatibilidade total


com a linguagem SQL para um sistema de processamento de transações on-line. O
Cloud SQL oferece até 10.230 GB, dependendo do tipo de computador, enquanto
que o Cloud Spanner oferece petabytes. Se o Cloud SQL não atende aos seus
requisitos porque, além de réplicas de leitura, você precisa de escalonabilidade
horizontal, considere o Cloud Spanner.

Não falamos do BigQuery neste módulo, pois ele está no limite entre
armazenamento de dados e processamento de dados, mas você verá mais sobre ele
no módulo “Big Data e machine learning na nuvem”. Geralmente, o motivo para
armazenar dados no BigQuery é usar os grandes recursos de análise de dados e
consultas interativas que ele possui. Ele não deve ser usado, por exemplo, como
armazenamento secundário de um aplicativo on-line.
Comparação entre as opções de armazenamento: casos de uso

Cloud Cloud Cloud Cloud SQL Cloud BigQuery


Datastore Bigtable Storage Spanner

Tipo Documento Coluna larga Blobstore SQL relacional SQL relacional SQL relacional
NoSQL NoSQL para OLTP para OLTP para OLAP

Melhor para Dados de Dados simples, Dados de objetos Frameworks da Aplicativos de Consultas
aplicativos muitas operações ou binários Web, aplicativos banco de dados interativas,
semiestruturados, de leitura/gravação, estruturados e existentes de larga escala análises off-line
dados de eventos, dados não estruturados (mais de 2 TB)
valor-chave analíticos
permanentes

Casos de uso Primeiros passos, Dados de AdTech, Imagens, arquivos Credenciais do Sempre que E/S Armazenamento
aplicativos do App financeiros, da de mídia grandes, usuário, pedidos alta e consistência de dados
Engine Internet das Coisas backups do cliente global forem
necessárias

Considerar os diferenciadores técnicos dos serviços de armazenamento ajuda


algumas pessoas a decidir qual deles escolher, enquanto outras consideram casos
de uso. Vou falar sobre cada serviço mais uma vez.

O Cloud Datastore é melhor para dados de aplicativos semiestruturados usados nos


aplicativos do App Engine.
O Bigtable é melhor para dados de análise com eventos pesados de leitura e
gravação, como dados do AdTech, financeiros ou de IoT.
O Cloud Storage é melhor para dados de objetos ou binários estruturados ou não
estruturados, arquivos de mídia maiores e backups.
O Cloud SQL é melhor para frameworks da Web e aplicativos existentes, como
armazenamento de credenciais de usuário e pedidos de clientes.
O Cloud Spanner é melhor para aplicativos de banco de dados de larga escala com
mais de 2 TB. Por exemplo, para casos de uso de mercado financeiro e comércio
eletrônico.

Como mencionei no começo do módulo, dependendo das necessidades do seu


aplicativo, use um ou vários desses serviços.
Tópicos
Cloud Storage

Cloud Bigtable

Google Cloud SQL e Google Cloud


Spanner

Cloud Datastore

Comparação entre as opções


de armazenamento

Teste e laboratório
Pergunta nº 1

Seu aplicativo transcodifica arquivos de vídeo grandes.


Qual serviço de armazenamento deveria ser sua
primeira opção?
Pergunta nº 1

Seu aplicativo transcodifica arquivos de vídeo grandes.


Qual serviço de armazenamento deveria ser sua
primeira opção?

Google Cloud Storage


Pergunta nº 2

Você faz streaming de enormes quantidades de dados de


dispositivos com sensores. Qual serviço de
armazenamento deveria ser sua primeira opção?
Pergunta nº 2

Você faz streaming de enormes quantidades de dados de


dispositivos com sensores. Qual serviço de
armazenamento deveria ser sua primeira opção?

Google Cloud Bigtable


Laboratório
Neste laboratório,
armazene uma imagem em
um bucket do Cloud
Storage e configure o GCE
para usar um banco de
dados do Cloud SQL para
fazer referência à imagem.

Neste laboratório, crie um bucket do Google Cloud Storage e coloque uma imagem
nele. Configure também o Google Compute Engine para usar um banco de dados
gerenciado pelo Google Cloud SQL e para fazer referência à imagem no bucket do
Cloud Storage.
Objetivos do laboratório
● Criar um bucket do Cloud Storage e
adicionar uma imagem a ele
● Criar e configurar uma instância do
Cloud SQL
● Conectar-se a uma instância do
Cloud SQL de um servidor da Web
● Usar uma imagem armazenada em
um bucket do Cloud Storage em uma
página da Web

Neste laboratório, crie um bucket do Google Cloud Storage e coloque uma imagem
nele. Configure também o Google Compute Engine para usar um banco de dados
gerenciado pelo Google Cloud SQL e para fazer referência à imagem no bucket do
Cloud Storage.
Mais recursos
Visão geral do Cloud Storage https://cloud.google.com/storage/
Primeiros passos no Google Cloud SQL https://cloud.google.com/sql/docs/quickstart
Cloud Bigtable https://cloud.google.com/stackdriver/docs/
Cloud Spanner https://cloud.google.com/spanner/docs/
Cloud Datastore https://cloud.google.com/datastore/docs/

Você também pode gostar