Buscar

Slide 05_Aplicação em Nuvem

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 39 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 39 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 39 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

05
Aplicação em Nuvem
Introdução
Prof. Anderson Dutra Moura
Opções de Tecnologia
Escolhendo o Serviço de Computação
•O termo computação refere-se ao modelo de hospedagem para os 
recursos de computação em que seu aplicativo é executado.
•Se o aplicativo tem várias cargas de trabalho, avalie cada carga de 
trabalho separadamente. Uma solução completa pode incorporar 
dois ou mais serviços de computação.
Modelos de Hospedagem
•Os serviços de nuvem geralmente se enquadram em três 
categorias: IaaS, PaaS ou FaaS.
• Funções como serviço (FaaS) vão além na remoção da necessidade de se 
preocupar sobre o ambiente de hospedagem. Em um modelo FaaS, você 
simplesmente implanta seu código e o serviço o executa 
automaticamente.
Modelos de Hospedagem
•Em geral, há uma compensação entre o controle e a facilidade de 
gerenciamento.
•A IaaS oferece o máximo de controle, flexibilidade e portabilidade, mas 
você precisa provisionar, configurar e gerenciar as VMs e os componentes 
de rede que você cria.
•Os serviços FaaSs gerenciam automaticamente quase todos os aspectos 
da execução de um aplicativo.
•Os serviços de PaaS estão em algum lugar entre eles.
Recursos Básicos
•Serviço de aplicativo. Um serviço gerenciado para hospedar 
aplicativos Web, back-ends de aplicativo móvel, APIs RESTful ou 
processos de negócios automatizados.
•Contêineres. Um serviço gerenciado kubernetes para executar 
aplicativos em contêineres.
•Lote. Um serviço gerenciado para executar aplicativos paralelos de 
grande escala e de HPC (computação de alto desempenho)
•Funções. Um serviço FaaS gerenciado.
•Máquinas virtuais. Implante e gerencie VMs.
Pontos a Serem Observados
•Execute uma avaliação mais detalhada examinando os seguintes 
aspectos do serviço:
• Limites de serviço – verifique os limites por região ou assinatura;
•Custo – utilize a calculadora para simulação;
• SLA (Service Level Agreement) – verifique os prazos de atendimento 
referentes à sua assinatura;
•Disponibilidade regional – verifique os possíveis locais de hospedagem;
•Tabelas de comparação de computação – compare os recursos 
disponíveis.
Modelos de Armazenamento de Dados
•Os sistemas de negócios modernos gerenciam volumes cada vez 
maiores de dados heterogêneos. Essa heterogeneidade significa 
que um armazenamento de dados único geralmente não é a 
melhor abordagem.
•Em vez disso, geralmente é melhor armazenar tipos diferentes de 
dados em armazenamentos de dados diferentes, cada um 
concentrado em direção a uma carga de trabalho ou padrão de uso 
específico.
Sistemas de Gerenciamento de Banco de Dados 
Relacional
•Os bancos de dados relacionais organizam dados como uma série 
de tabelas bidimensionais com linhas e colunas.
•A maioria dos fornecedores fornece um dialeto da linguagem SQL 
(Structured Query Language) para recuperar e gerenciar dados.
•Um RDBMS (Relational Database Management System) 
tipicamente implementa um mecanismo consistente de forma 
transacional que está em conformidade com o modelo ACID 
(Atômico, Consistente, Isolado, Durável) para atualizar 
informações.
Sistemas de Gerenciamento de Banco de Dados 
Relacional
•Esse modelo é muito útil quando garantias de consistência fortes 
são importantes — onde todas as alterações são atômicas, e as 
transações sempre deixam os dados em um estado consistente.
•No entanto, um RDBMS geralmente não pode ser dimensionado 
horizontalmente sem fragmentar os dados de alguma maneira.
•Além disso, os dados em um RDBMS devem ser normalizados, o 
que não é apropriado para todos os conjuntos de dados.
•Exemplos
•Gerenciamento de estoque, Gerenciamento de pedidos, Banco de dados 
de relatórios, Contabilidade, etc.
Armazenamentos de Chave/Valor
•Um repositório de chave/valor associa cada valor de dados a uma 
chave exclusiva.
•A maioria dos armazenamentos de chave/valor fornecem suporte 
apenas às operações de exclusão, inserção e consulta simples.
•Na maioria das implementações, a leitura ou gravação de um único 
valor é uma operação atômica.
Armazenamentos de Chave/Valor
FONTE: Microsoft AZURE
Armazenamentos de Chave/Valor
•Os repositórios de chave/valor são altamente otimizados para 
aplicativos que executam pesquisas simples, mas são menos 
adequados se você precisar consultar dados entre diferentes 
repositórios de chave/valor. Os repositórios de chave/valor 
também não são otimizados para consulta por valor.
•Um armazenamento de chave/valor pode ser extremamente 
escalável, pois o armazenamento de dados pode facilmente 
distribuir dados em vários nós em computadores separados.
•Exemplos
•Gerenciamento da sessão, Gerenciamento de perfil, Recomendação de 
produtos e veiculação de anúncios, etc.
Banco de Dados de Documentos
•Um banco de dados de documentos armazena uma coleção de 
documentos, onde cada documento consiste em campos e dados 
nomeados.
•Os dados podem ser valores simples ou elementos complexos, 
como listas e coleções filho. Os documentos são recuperados por 
chaves exclusivas.
Banco de Dados de Documentos
FONTE: Microsoft AZURE
Banco de Dados de Documentos
•Normalmente, um documento contém os dados para uma única 
entidade, como um cliente ou um pedido.
•Um documento pode conter informações que seriam distribuídas 
por várias tabelas relacionais em um RDBMS.
•Os documentos não precisam ter a mesma estrutura.
•Os aplicativos podem armazenar dados diferentes em documentos 
quando os requisitos empresariais mudam.
•Exemplos
• Catálogo de produtos, Gerenciamento de conteúdo, Gerenciamento de estoque, etc.
Banco de Dados de Grafo
•Um banco de dados de grafo armazena dois tipos de informações, 
nós e bordas.
•As bordas especificam as relações entre os nós.
•Os nós e as bordas podem ter propriedades que fornecem 
informações sobre esse nó ou borda, semelhante às colunas em 
uma tabela.
•As bordas também podem ter uma direção, indicando a natureza 
do relacionamento.
Banco de Dados de Grafo
FONTE: Microsoft AZURE
Banco de Dados de Grafo
•Os bancos de dados de grafo podem executar consultas com 
eficiência na rede de nós e bordas e analisar as relações entre 
entidades.
•Exemplos
•Quadros da organização, Gráficos sociais, Detecção de fraude, 
Mecanismos de recomendação, etc.
Análise de Dados
•Os armazenamentos de análise de dados fornecem soluções 
massivamente paralelas para ingerir, armazenar e analisar dados.
•Os dados são distribuídos em vários servidores para maximizar a 
escalabilidade.
•Exemplos
•Data warehouse empresarial.
Banco de Dados de Família de Coluna
•Um banco de dados de família de coluna organiza dados em linhas 
e colunas.
•Na sua forma mais simples, um banco de dados de família de 
coluna pode parecer muito semelhante a um banco de dados 
relacional, pelo menos conceitualmente.
•O poder real de uma base de dados de família de coluna reside na 
sua abordagem desnormalizada para estruturar dados esparsos.
Banco de Dados de Família de Coluna
•É possível pensar em um banco de dados de família de coluna 
como dados de tabela com linhas e colunas, mas as colunas são 
divididas em grupos conhecidos como famílias de coluna.
•Cada família de coluna contém um conjunto de colunas que estão 
logicamente relacionadas, e geralmente são recuperadas ou 
manipuladas como uma unidade.
Banco de Dados de Família de Coluna
FONTE: Microsoft AZURE
Banco de Dados de Família de Coluna
•Outros dados acessados separadamente podem ser armazenados 
em famílias de colunas separadas.
•Dentro de uma família de colunas, novas colunas podem ser 
adicionadas dinamicamente e as linhas podem ser esparsas (ou 
seja, uma linha não precisa ter um valor para cada coluna).
•Exemplos
•Recomendações, Personalização, Dados de sensor, Telemetria, 
Mensagens, Análise de mídia social, Análise da Web, Monitorando de 
atividades, Previsão do tempo e outros dados de série temporal, etc.
Banco de Dados de Mecanismo de Pesquisa
•Um banco de dados do mecanismo de pesquisa permite que os 
aplicativos pesquisem informaçõesmantidas em armazenamentos 
de dados externos.
•Um banco de dados do mecanismo de pesquisa pode indexar 
volumes maciços e fornecer acesso quase em tempo real a esses 
índices.
Banco de Dados de Mecanismo de Pesquisa
•Os índices podem ser multidimensionais e fornecerem suporte 
para buscas de texto livre em grandes volumes de dados de texto.
•A pesquisa pode ser exata ou difusa.
•Uma pesquisa difusa localiza documentos que correspondem um 
conjunto de termos e calcula a forma como eles correspondem.
•Exemplos
•Catálogos de produtos, Pesquisa de site, Registrando em log, etc.
Banco de Dados de Séries Temporais
•Os dados de série temporal são um conjunto de valores 
organizados por tempo.
•Os bancos de dados de série temporal normalmente coletam 
grandes quantidades de data em tempo real de um grande número 
de fontes.
•As atualizações são raras e as exclusões geralmente são feitas 
como operações em massa. 
•Exemplos
•Monitoramento e telemetria de evento, Sensor ou outros dados de IoT, 
etc.
Armazenamento de Objetos
•O repositório de objetos é otimizado para armazenar e recuperar 
grandes objetos binários (imagens, arquivos, fluxos de áudio e 
vídeo, grandes documentos e objetos de dados de aplicativos, 
imagens de disco de máquina virtual).
•Os repositórios de objetos podem gerenciar quantidades muito 
grandes de dados não estruturados.
•Exemplos
• Imagens, vídeos, documentos do office e PDFs; HTML estático, JSON, CSS; 
Arquivos de log e auditoria; Backups de banco de dados; etc.
Arquivos Compartilhados
•Algumas vezes, o uso de arquivos simples pode ser o meio mais 
eficaz para armazenar e recuperar informações.
•O compartilhamento de dados pode permitir aos serviços 
distribuídos o acesso de dados altamente escalonável para 
executar operações básicas de baixo nível, como solicitações de 
leitura e gravação simples.
•Exemplos
•Arquivos herdados; O conteúdo compartilhado pode ser acessado por 
certo número de VMs ou instâncias de aplicativo; etc.
Modelos de Balanceamento de Carga
•Os serviços de balanceamento de carga global distribuem o 
tráfego entre back-ends regionais, nuvens ou serviços locais 
híbridos. Esses serviços roteiam o tráfego do usuário final para o 
back-end disponível mais próximo. Eles também reagem a 
alterações na confiabilidade ou no desempenho do serviço, a fim 
de maximizar a disponibilidade e o desempenho.
•Os serviços de balanceamento de carga regionais distribuem o 
tráfego em redes virtuais entre máquinas virtuais (VMS) ou pontos 
de extremidade de serviço com redundância em uma região.
Modelos de Balanceamento de Carga
•Ao selecionar as opções de balanceamento de carga, aqui estão 
alguns fatores a serem considerados:
•Tipo de tráfego. É um aplicativo Web (HTTP/HTTPS)? Ele é voltado para o 
público ou para um aplicativo privado?
•Global X regional. Você precisa balancear a carga de VMs ou contêineres 
em uma rede virtual, ou a unidade de escala/implantações de 
balanceamento de carga entre regiões ou ambas?
•Disponibilidade. Qual a SLA do serviço?
•Custo. Além do custo do serviço em si, leve em consideração o custo de 
operações para gerenciá-la.
•Recursos e limites. Quais os limites da sua região/assinatura?
Modelos de Mensagem
•As mensagens podem ser classificadas em duas categorias 
principais.
• Se o produtor espera uma ação do consumidor, essa mensagem é um 
comando.
• Se a mensagem informar ao consumidor que uma ação foi realizada, a 
mensagem será um evento.
Comandos
•O produtor envia um comando com a intenção de que os 
consumidores executarão uma operação dentro do escopo de uma 
transação de negócios.
•Um comando é uma mensagem de alto valor e deve ser entregue 
pelo menos uma vez. Se um comando for perdido, toda a transação 
comercial poderá falhar.
•Além disso, um comando não deve ser processado mais de uma 
vez. Isso pode causar uma transação errada. Um cliente pode obter 
pedidos duplicados ou ser cobrado duas vezes.
Eventos
•Um evento é um tipo de mensagem que um produtor gera para 
anunciar fatos.
•O produtor (Publicador) não tem expectativas de que os eventos 
resultarão em qualquer ação.
•Os consumidores interessados, podem assinar, ouvir eventos e 
executar ações dependendo do cenário de consumo. Os eventos 
podem ter vários assinantes ou nenhum assinante.
•O produtor e o consumidor são livremente acoplados e 
gerenciados de forma independente.
Eventos
•Há duas categorias de eventos:
•O produtor gera eventos para anunciar fatos discretos. Um caso de uso 
comum é a notificação de eventos. Por exemplo, a provedor de Cloud 
Computing gera eventos quando cria, modifica ou exclui recursos. Um 
assinante desses eventos pode ser um aplicativo lógico que envia e-mails 
de alerta.
•O produtor gera eventos relacionados em uma sequência ou um fluxo de 
eventos, em um período de tempo. Normalmente, um fluxo é consumido 
para avaliação estatística. A avaliação pode ser feita em uma janela 
temporal ou quando os eventos chegam. A telemetria é um caso de uso 
comum, por exemplo, integridade e monitoramento de carga de um 
sistema. Outro caso é o streaming de eventos de dispositivos IoT.
Padrão Produtor-Consumidor
FONTE: Microsoft AZURE
Conclusão
•Resumindo, para definir a tecnologia necessária para a sua 
aplicação na nuvem, você precisa definir:
•O(s) serviço(s) de computação a ser(em) utilizado(s);
•O(s) armazenamento(s) de dados;
•O serviço de balanceamento de carga;
•O serviço de mensagem.
 
REFERÊNCIAS
MICROSOFT AZURE. Entender os modelos de armazenamento de dados. Disponível em: 
<https://docs.microsoft.com/pt-br/azure/architecture/guide/technology-choices/data-store
-overview>. Acesso em: 07 de out. de 2020.
MICROSOFT AZURE. Escolha um serviço de computação do Azure para seu aplicativo. 
Disponível em: < 
https://docs.microsoft.com/pt-br/azure/architecture/guide/technology-choices/compute-d
ecision-tree>. Acesso em: 07 de out. de 2020.
MICROSOFT AZURE. Opções de mensagens assíncronas no Azure. Disponível em: 
<https://docs.microsoft.com/pt-br/azure/architecture/guide/technology-choices/messagin
g>. Acesso em: 07 de out. de 2020.
MICROSOFT AZURE. Visão geral das opções de balanceamento de carga no Azure. 
Disponível em: 
<https://docs.microsoft.com/pt-br/azure/architecture/guide/technology-choices/load-bala
ncing-overview>. Acesso em: 07 de out. de 2020.
Bons Estudos!

Continue navegando