SlideShare uma empresa Scribd logo
1 de 72
Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
17 de maio de 2017
André Rocha Agostinho
Mestrando em engenharia da computação - IPT-USP
Chief Technology Officer SindicoNet / Magnadev
Otimizando o desempenho de transferência de
arquivos e diretórios entre servidores e serviços
de armazenamento em nuvem
Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Agenda
- Sobre a Cloud File System
- Objetivos da apresentação
- Otimizando para AWS S3
- Experimentos realizados
- Desafios na migração File System para
S3
- Conclusão do estudo
Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Sobre a Cloud File System - Definição
Cluster-Based Distributed File Systems
“The basic idea is simple: by distributing a large file across multiple servers, it
becomes possible to fetch different parts in Parallel.”
(Tanenbaum, 2007)
File System
“Collection of files, attributes, directories, and data blocks that are jointly
implemented as a logical block device” (Tanenbaum and Woodhull, 2006)
Distributed File System
”Distributed file systems allow multiple processes to share data over long
periods of time in a secure and reliable way. As such, they have been used as
the basic layer for distributed systems and applications.” (Tanenbaum and Van
Steen 2007)
• Client-Server Architectures / Network File System (NFS)
Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Sobre a Cloud File System - Características
- Suporte à operações como: create, delete, modify, read e write
- Escalabilidade e eslasticidade no compartilhamento de dados
- Cada arquivo pode ser particionado em diversas partes
“chunks”, sendo possível alocar cada chunk em máquinas
remotas diversas possibilitando paralelismo de PUT/GET.
- Existem diferentes formas de compartilhamento de dados, o que
exatamente se proporciona em um sistema de arquivos
distribuídos em nuvem, mas os requisitos não funcionais como
confiabilidade, disponibilidade e integridade são peças
fundamentais para assegurar segurança.
Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Sobre a Cloud File System – Exemplo GFS (Google File System)
Google file system (GFS), of which the design is described in Ghemawat et al. (2003).
Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Cloud File System
Region A
Server1Server1 Server2Server2 Server3Server3 ServerNServerN
...
Region N
Server1Server1 Server2Server2
......
Sobre a Cloud File System – Visão da arquitetura
Serviços de entrega
r
Serviços de computação e
serviços de armazenamento
estruturado
CDNs / Searchs
Serviços de
processamento
r
APIsPUT GET
Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Objetivos da apresentação
Objetivo 1
Apresentar formas de como melhorar o desempenho na transferência de
arquivos (PUT/GET) para uma Cloud File System
Objetivo 3
Analisar os desafios e soluções na migração de File System para Cloud File
System utilizando-se de um cenário hipotético
Objetivo 2
Utilizar as soluções apresentadas no Objetivo 1 para rodar experimentos que
possam comprovar ou não melhorias no desempenho de transferência de arquivos
Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Otimizando o uso do AWS S3
O Amazon Simple Storage Service (AWS S3) é um serviço de
armazenamento de objetos com uma interface de web service simples para
armazenar e recuperar qualquer volume de dados de qualquer parte da
web.
• Durabilidade de 99,9999%
• Escalar mais de 1 trilhão de objetos em todo o mundo
• Baixos custos de infra-estrutura
Utilizado para:
-Armazenamento de dados não estruturados
-Distribuição de conteúdo
-Backup e arquivamento
-Recuperação de desastres
-Hospedagem de websites estáticos
Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Otimizando o uso do AWS S3
- Regions
- Configuração das Instâncias
- Keyname Building
- Otimizando operações GET, LIST e PUT
- Aceleração de transferência
- Maximizando TCP
Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Otimizando o uso do AWS S3
- Regions
Escolher a região do bucket mais próximo dos recursos consumidores
•A decisão não apenas afetará o desempenho das requisições como também custos
•Caso seja necessário atuar em N regiões, é possível ativar o recurso de replicação
cross-region
Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Otimizando o uso do AWS S3
- Regions
Paridade Região Instância X Região S3
Amazon Web Services Network Test
Teste realizado dentro de um servidor EC2 (c4.large)
Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Otimizando o uso do AWS S3
- Configuração das instâncias
O tipo de instância influencia diretamente em:
- Processamento: capacidade de execução de requisições API
- Rede: capacidade de transferência de pacotes X largura de banda
Instância c4.4xlarge – 16vCPUs – Rede Gigabit
Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Otimizando o uso do AWS S3
- Configuração das instâncias
O tipo de instância influencia diretamente em:
- Processamento: capacidade de execução de requisições API
- Rede: capacidade de transferência de pacotes X largura de banda
Instância c4.8xlarge – 32 vCPUs – Rede 10 Gbps
Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Otimizando o uso do AWS S3
Considerações iniciais
• Key name não é um diretório!
• É um identificador único para um objeto em um bucket
• Cada bucket deve ter um nome único (independente da região)
• Cada objeto em um bucket tem exatamente uma key name
https://magnadev.s3.amazonaws.com/files/d4o9rd2.jpg
BUCKET NAME KEYNAME
- Key name Building
Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Otimizando o uso do AWS S3
- Key name Building
Prefixo - Irá influenciar diretamente no desempenho GET
• A utilização de prefixo sequencial é uma prática ruim e irá influenciar em requisições
GET, principalmente se for listar objetos
Frequentemente usado:
http://doc.s3.cmgbrasil.com/2017/s3.pptx
http://doc.s3.cmgbrasil.com/2017/ec2.pptx
http://doc.s3.cmgbrasil.com/2017/route53.pptx
Recomendado:
http://doc.s3.cmgbrasil.com/685732017/s3.pptx
http://doc.s3.cmgbrasil.com/182622017/ec2.pptx
http://doc.s3.cmgbrasil.com/278222017/route53.pptx
Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Otimizando o uso do AWS S3
- Key name Building
Como funciona o armazenamento de key names
1. O serviço S3 mantem um índice de objeto “key names” para cada região
2. As keys são amarzenadas em binário (UTF-8) e ordenadas em partições
3. Usando um prefixo sequencial como data/alfabético aumentará a probabilidade de
se alocar uma específica partição para um grande volume de keys simplesmente
pelo agrupamento de prefixo.
Region Key Name’s Index
PartitionPartition PartitionPartition PartitionPartition PartitionPartition
Key1Key1 Key2Key2 Key3Key3 KeyNKeyN
Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Otimizando o uso do AWS S3
- Key name Building
Como funciona o armazenamento de key names
1. A utilização de um hash no prefixo da keyname quebra o agrupamento
2. Força a distribuição da key name nas demais partições
Region KeyName’s Index
PartitionPartition PartitionPartition PartitionPartition Partition/Partition/
7832Key17832Key1 322Key2322Key2 489Key3489Key3 164KeyN164KeyN
Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Otimizando o uso do AWS S3
- Key name Building
Parâmetros para uso - Request Rate
Contato AWS
Recomendado quando existe um
processo rotineiro de 100 ou mais
solicitações por segundo
PUT/DELETE
LIST/GET
Frequência alta
more than 300 PUT/LIST/DELETE requests per second
more than 800 GET requests per second
Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Otimizando o uso do AWS S3
- Key name Building
Referências na aplicação (Anti-Pattern)
1. Operações de listagem (Ex: Thumbnails)
2. Políticas de LifeCycle
3. Listagens com filtros baseado em prefixo
4. Get by key name
Region KeyName’s Index
PartitionPartition PartitionPartition PartitionPartition Partition/Partition/
group1/78
32Key1
group1/78
32Key1
group1/32
2Key2
group1/32
2Key2
group2/48
9Key3
group2/48
9Key3
group3/16
4KeyN
group3/16
4KeyN
Categorizar prefixo
para sorting
Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Otimizando o uso do AWS S3
- Key name Building
Randomização de prefixo
1. Caracteres curtos (4 primeiros caracteres)
2. Epoch Timestamp, MD5, SHA-1, GUID...
Recomendado:
http://doc.s3.cmgbrasil.com/d41d2017/s3.pptx
http://doc.s3.cmgbrasil.com/da392017/ec2.pptx
http://doc.s3.cmgbrasil.com/c1382017/route53.pptx
Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Otimizando o uso do AWS S3
- Otimizando GET
Utilização de uma CDN
•Cloudfront: +50 camadas localizadas no mundo tudo
•Fornece baixas latências e altas taxas de transferência para operações de leitura
•Reduz o número de requisições GETs aos buckets
•Fornece gestão e aplicação de camada de cacheamento
S3
Bucket1Bucket1
Bucket
N
Bucket
N...
Serviços de entrega
CDNs / Searchs
Servidores
Server1Server1
Server2Server2
Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Otimizando o uso do AWS S3
- Otimizando GET – S3 c/ CloudFront
S3
Bucket público:
magnadev-public
Arquivo: image2.jpg
Tamanho: 9,70 MB
EC2 C4.Large
Processador 2,9 GHz Intel
Xeon E5-2666 v3 – 2vCPUS
Rede VPC AWS - Network
Performance: moderado
EC2
Win
Server
Win
Server
S3
Bucket1Bucket1
Cloudfront
Cloudfront
d23xzegsqzlrl2.cloudfront.net
Apontado para o bucket
público: magnadev-public
Suporte: HTTPS/HTTP
Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Otimizando o uso do AWS S3
- Otimizando GET – S3 c/ CloudFront
Cloudfront
S3
Cloudfront: 156ms S3: 230.5ms
Tempo de carregamento: 32% menor
Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Otimizando o uso do AWS S3
- Otimizando GET – Aplicação de cacheamento HTTP
Cache-Control e E-Tag – Cacheamento HTTP
“cache control: max-age"
Essa diretiva especifica o tempo máximo, em
segundos, que a resposta recuperada pode ser
reutilizada, a partir do momento da solicitação.
“etag"
O servidor usa a ETag de cabeçalho HTTP para
comunicar um token de validação. O token de
validação permite verificações eficientes de
atualização de recursos: nenhum dado é transferido se
o recurso não foi alterado.
Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Otimizando o uso do AWS S3
- Otimizando GET – Aplicação de cacheamento HTTP
Aplicando metatag Cache Control
setmeta files/* -s
-meta:"cache-control: max-age= 36000"
• Via programas (S3 Browser, Bucket Explorer, etc), APIs (por
exemplo .Net SKD) e Command Line Utility (Ex: S3Express, s3cmd
e outros)
Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Otimizando o uso do AWS S3
- Otimizando GET – Aplicação de cacheamento HTTP
Resultados com metatags aplicadas
Max-Age >= 3600
Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Otimizando o uso do AWS S3
- Otimizando GET – HTTP 2.0
Configuração de HTTP 2.0 para otimizar GETs em páginas web
http://caniuse.com/#feat=http2- Windows Server 2016 – IIS 10
- Linux
Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Otimizando o uso do AWS S3
- Otimizando GET – HTTP 2.0
Requisições em HTTP 1.1
Tempo de renderização final:
355ms
Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Otimizando o uso do AWS S3
- Otimizando GET – HTTP 2.0
Requisições em HTTP 2
Tempo de renderização final: 82ms
Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Otimizando o uso do AWS S3
- Otimizando LIST
• Operação LIST é muito custosa e pesada!
• Utilizar um índice secundário para armazenar informações sobre as key names e
potencializar GET para recurso a ser baixado
SQL
Servidor Web
S3
Bucket1Bucket1
Bucket
N
Bucket
N...
CDN
doc.cmgbrasil.starwars/d48dR2D2.JPG
doc.cmgbrasil.starwars/d48dSTORM.JPG
Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Otimizando o uso do AWS S3
- Otimizando PUT
Segmentação de arquivos com Multipart via API
- Indicado para objetos >= 100 mb
- Multipart upload transfere um único objeto como com um conjunto de partes
- A partes dos objetos podem ser transferidas em qualquer ordem
- O S3 recebe as partes do objeto e remonta o objeto ao fim de transferência
Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Otimizando o uso do AWS S3
- Otimizando PUT
Segmentação de arquivos com Multipart via API
Pela API
-Tracking control: progresso de envio
-Possibilidade de enviar partes em paralelo
-Controle de falha/restart de todo o processo
-Partes menores (chunks) minizam impactos de restarting
Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Otimizando o uso do AWS S3
- Otimizando PUT
Multithreading de chamadas API
- Aumenta a velocidade de transferência de objetos usando o paralelismo de threads e
escalando execuções na CPU
- Deve ser aplicado diretamente na linguagem de programação que está usando o SDK
- Para uma maior eficiência considerar
- Servidores com 2 ou mais núcleos
- Redes >= 100Mb/s
Exemplo de multhireading usando C#
Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Otimizando o uso do AWS S3
- Otimizando PUT
Multithreading de chamadas API
Using C# Parallel to copy files to S3
Estudo publicado por minha autoria em 2015 que avaliou e comprovou a
eficiência no desempenho de transferência de objetos
http://aragostinho.github.io/2015/03/11/using-c-parallel-to-copy-files-to-s3.html
Execution Time Elapsed Perfomance
Classic For Each 30m 46s 12ms -
Parallel.ForEach in directories 3m 25s 842ms 9.34x faster
Parallel.ForEach in directories and files 3m 15s 990ms 9.64x faster
Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Otimizando o uso do AWS S3
- Maximizando TCP
As conexões com o serviço S3 ocorrem através de portas dinâmicas
ConsoleApp
de replicação
usando AWS APIs
cmd prompt netstat -anob
Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Otimizando o uso do AWS S3
- Maximizando TCP
Portas dinâmicas – range de portas
•Internet Assigned Numbers Authority (IANA): 49152 à 65535
•Linux versões mais recentes: 32768 à 61000
•Windows Server 2012 e 2016: 49152–65535
Em cenários onde o servidor tiver uma carga elevada de trabalho
com o uso do S3:
-Grande volume de transferência de arquivos (PUT)
-Muitas requisições de arquivos (GET/LIST)
•É aconselhável verificar o uso de portas dinâmicas (dump nestat)
•Efetuar configurações de portas do servidor se detectado um grande uso de
portas dinâmicas com bases nas referências de range de portas do SO
Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Otimizando o uso do AWS S3
- Maximizando TCP
Portas dinâmicas – exaustão de portas
Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Otimizando o uso do AWS S3
- Maximizando TCP
Aumentando portas dinâmicas no Windows Server
netsh int ipv4 show dynamicportrange tcp
netsh int ipv4 set dynamicport tcp
start=1025 num=64510
Via cdm prompt
Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Otimizando o uso do AWS S3
- Maximizando TCP
Redução do TIME_WAIT (quando necessário)
TIME_WAIT:
O tempo de espera que uma conexão fechada possa ser liberada para reutilização.
A RFC 793 requer que a TCP mantenha uma conexão fechada em um intervalo de ao
menos 2x tempo de vida máximo de um segmento de rede (120 segundos)
Clint Huffman Microsoft PFE - Technet
“Also, consider decreasing the TIMED WAIT delay using the TcpTimedWaitDelay registry
key”
Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Otimizando o uso do AWS S3
- Maximizando TCP
Redução do TIME_WAIT (quando necessário)
1. Executar Regedit
2. HKEY_LOCAL_MACHINESYSTEMCurrentControlSetservicesTcpipParameters
3. Criar uma nova entrada DWORD (32 bit) named: TcpTimedWaitDelay
4. Setar um valor decimal
5. Reboot
Valor mínimo: 30
Valor máximo: 240
Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Otimizando o uso do AWS S3
- Acelerador de transferência
S3 Transfer Acceleration
- Indicado para ganhos de perfomance na transferência de arquivos para buckets em
regiões diversas
- Faz intermediação com o S3 endpoint carregando todo o tráfego HTTP/HTTPS
para uma ponte de rede otimizada que funciona entre a camada Cloudfront mais
próxima
- A ativação é feita sobre o bucket porém seu uso é feito somenta na chamada APIAmazon S3 Transfer Acceleration
Speed Comparison
Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Experimentos de replicação de arquivos para S3
Escopo
- O objetivo desta seção é abordar um experimento que pode ser
aplicado para simular a replicação de arquivos considerando os
seguintes tópicos abordados:
- Uso de servidores EC2 em 3 diferentes tipos de instância
- Criação do bucket S3 na mesma região dos servidores EC2
- Uma ferramenta de transferência multi-threading criada
especificamente para a replicação de dados
Não será abordado no experimento:
- Construção de keynames com hash
- Maximização de portas TCP
- Upload usando multi-part (chunks)
- Ativação do S3 Transfer Acceleration
Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Experimentos de replicação de arquivos para S3
Escopo
- Utilizado:
- Os serviços AWS Ec2 e S3
- Windows Server 2016
- AWS SDK para .NET (Linguagem C#)
- Algoritmos e técnicas de programação usando paralelismo
- Ao todo 2 experimentos foram executados:
- Experimento A - Transferência Non-Multithreading
- Experimento B - Transferência Multithreading
- Benchmarking dos resultados
Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Experimentos de replicação de arquivos para S3
• Para testar os experimentos um diretório “samplefolder” foi criado com 4 arquivos:
Casos de
testes
Arquivos Diretórios
Níveis de
diretórios
Distribuição
Arquivos/Pasta
Tamanho total
1 8.000 2.000 1 4 3.80GB
2 30.000 3.000 3 10 6.69GB
3 100.000 25.000 1 4 47.5GB
Casos de testes
• O mesmo diretório foi replicado para compor 3 casos de testes
1.94MB
Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Experimentos de replicação de arquivos para S3
• 3 computadores EC2 como palco do experimentos
• Processadores Intel Xeon E5-2666 v3 (Haswell) de alta frequência otimizados
especificamente para o EC2 classe de instância c4
• Otimizado para EBS por padrão
• Suporte a redes aperfeiçoadas e clustering
Name Memory vCPUs Instance Storage
Network
Performance
EBS Optimized:
Max Bandwidth
c4.large 3.75 GB 2 vCPUs EBS only Moderate 500.0 Mbps
c4.xlarge 7.5 GB 4 vCPUs EBS only High 750.0 Mbps
c4.2xlarge 15.0 GB 8 vCPUs EBS only High 1000.0 Mbps
Ambientes
Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Experimentos de replicação de arquivos para S3
Ferramenta de replicação
CopyFasterToS3 - Console aplication desenvolvida para auxiliar na cópia de
milhões de arquivos durante um projeto de migração. Solução utilizada para
suprir a carência de ferramentas não otimizadas para este fim.
Descrição técnica
•AWS S3 SDK .Net versão 3.3.5
•.Net C# - Framework 4.5
•Multithread usando C# Parallels
•Algorítimo de recursividade em cauda
•Stopwatch (System.Diagnostics) para benchmarking
Código aberto em:
https://github.com/aragostinho/CopyFasterToS3
Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Experimentos de replicação de arquivos para S3
Ferramenta execução dos testes
Console application CopyFasterToS3
Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Experimentos de replicação de arquivos para S3
Ferramenta execução dos testes
Console application CopyFasterToS3
Exemplo de método recursivo em cauda usando ForEach Parallel
(System.Threading.Tasks.Parallel) para chamada do método SaveObject() da classe
BAmazon().
Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Experimentos de replicação de arquivos para S3
Método de benchmarking – Time Elapsed de processamento
Exemplo de benchmarking usando a classe Stopwatch() para capturar o Time Elapsed do
processamento do método ReplicationFiles() da classe estática ReplicationToS3().
A impressão da saída na console aplication é composta por horas, minutos, segundos e
milesegundos.
Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Experimentos de replicação de arquivos para S3
Método de benchmarking – Exemplo
Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Experimentos de replicação de arquivos para S3
Etapas de execução do testes
1) Experimento A
Transferência Non-Multithreading
2) Experimento B
Transferência Multithreading
Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Experimentos de replicação de arquivos para S3
Servidor Caso de teste 1 Caso de teste 2 Caso de teste 3
c4.large 00h 09m 19s 998ms 00h 27m 59s 001ms 02h 00m 12s 295ms
c4.xlarge 00h 09m 39s 195ms 00h 27m 00s 800ms 01h 57m 29s 282ms
c4.2xlarge 00h 09m 04s 300ms 00h 26m 15s 684ms 02h 02m 02s 069ms
1) Resultados: Experimento A
Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Experimentos de replicação de arquivos para S3
Servidor Caso de teste 1 Caso de teste 2 Caso de teste 3
c4.large 00h 01m 32s 861ms 00h 02m 59s 952ms 00h 17m 45s 375ms
c4.xlarge 00h 00m 59s 225ms 00h 02m 01s 554ms 00h 09m 38s 791ms
c4.2xlarge 00h 00m 43s 619ms 00h 01m 33s 790ms 00h 07m 08s 656ms
2) Resultados: Experimento B
Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Experimentos de replicação de arquivos para S3
Servidor Experimento A Experimento B
c4.large 02h 37m 31s 294ms 00h 22m 18s 188ms
c4.xlarge 02h 34m 09s 277ms 00h 12m 39s 570ms
c4.2xlarge 02h 37m 22s 053ms 00h 09m 26s 065ms
Total 07h 49m 02s 624ms 00h 44m 23s 823ms
3) Comparando os resultados
Experimento B foi 90%mais eficiente que o experimento A
Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Desafios na migração de File System para S3
Uma empresa hipotética de e-commerce já possui alguns de
seus serviços em nuvem AWS
- Servidores já se encontram virtualizados (EC2).
- Redes VPC, Blocos de IP, Zona DNS e Load Balance
configurados.
Porém... essa mesma empresa ainda utiliza armazenamento de arquivos
em File System padrão com um GRANDE VOLUME de dados (TBs).
O CTO da empresa decide que é hora de migrar todo o volume de dados
para armazenamento de arquivos na nuvem, e decide junto a equipe
técnica utilizar a AWS S3.
Por onde começar?
Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Desafios na migração de File System para S3
Quais soluções?
Baixar (free) e/ou comprar ferramentas na AWS Marketplace?
Apertar botões e está tudo resolvido?!
Dificilmente isso
vai dar certo!
Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Desafios na migração de File System para S3
Pré-requisitos:
- Entender a diferença entre File System e Cloud File System
- Conhecer profundamente o serviço de Cloud File System a ser
utilizado:
- Disponibilidade
- Escalabilidade
- Custos
- Segurança
- Desempenho
- Dependendo das necessidades ferramentas não farão milagres.
- Recrutar profissionais capacitados.
- Montar um projeto de migração.
Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Desafios na migração de File System para S3
Elicitação de requisitos do projeto de migração:
- Analisar cuidadosamente o que deve ser migrado
- Fazer tudo? Por partes? Paralelo?
- Levantar informações sobre o que será migrado
- Volume de diretórios e arquivos
- Tamanho médio de cada arquivo
- Tamanho total de diretórios
- Tipos de arquivos
- Definir acessibilidade
- O que deve ser público? O que deve ser privado?
- Estrutura hierárquica de diretórios
- Será mantida? Sofrerá alterações?
Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Desafios na migração de File System para S3
Elicitação de requisitos do projeto de migração:
- Estrutura de diretórios
- Como manter?
Como aplicar as recomendações de key name?
- Arquivos
- Como aplicar recomendações de key name?
- Como aplicar recomendações para GET?
- Volume de transferência
- Como transferir com eficiência?
- Como garantir a integridade dos arquivos transferidos?
- Como manter a integridade entre o que está sendo migrado e o
que ainda não foi migrado?
Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Desafios na migração de File System para S3
Após levantar todas as possíveis perguntas….
- Algumas das respostas estão no uso de boas práticas citadas
nesta apresentação.
- Porém, para todas elas será necessário o uso de SDKs.
Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Desafios na migração de File System para S3
SDKs
- A utilização de SDKs facilitam a manipulação de operações
PUT/GET/LIST para a linguagem de programação a ser usada.
- Algumas configurações só podem ser feitas pela API, por
exemplo o uso do S3 Transfer Aceleration.
- Indicado para atender à todos os requisitos do projeto de
migração como por exemplo modificação da estrutura de
diretórios e uso de recomendações para key names.
- Antes mesmo de migrar, permite que o software legado possa ser
implementado com o SDK e já comece a atuar na nova estrutura
de arquivos no S3.
Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Desafios na migração de File System para S3
Utilitários
S3CMD s4cmd
Super S3
command
line tool
Linux/Mac PythonWindows
- Podem ser usados para mover grande volumes de arquivos
sem uma estratégia de modificação de estrutura de diretório
e confecção de key names.
- Úteis para atuar em arquivos que já estão no S3, como por
exemplo a aplicação de metatags em arquivos e encryptação.
Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Conclusão do estudo
Objetivo 1
Boas práticas e recomendações de uso da AWS S3 proporcionaram
boas melhorias no desempenho de operações PUT/GET/LIST.
Objetivo 2
Os experimentos executados comprovam a eficiência nas técnicas linguagem de
programação empregadas com o intuito de potencializar o uso das APIs. O
experimento B usando a transferência multithreading foi 90% mais eficiente
que o experimento.
Objetivo 3
A migração de File System para Cloud File System deve ser planejada
considerando diversos questionamentos entre Stakeholders e equipe técnica. Os
dois sistemas de arquivos por serem completamente diferentes, não
proporcionam uma migração simples e sem um bom conhecimento.
Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
That's all folks!
Obrigado :)
André Rocha Agostinho
andre@magnadev.com.br
https://github.com/aragostinho Doubts?
Contact me!
Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Referências
Distributed systems principles and paradigms
Tanembaum S. Andrew, Van S. Maarten (2007)
Operating Systems Design and Implementation
Tanembaum S. Andrew, Woodhull S. Albert (2006)
AWS Storage Services - Overview - A Look at Storage Services Offered by AWS
https://d0.awsstatic.com/whitepapers/AWS%20Storage%20Services%20Whitepaper-v9.pdf
Maximizing Amazon S3 Performance | AWS re:Invent 2014 - Felipe Garcia
https://www.slideshare.net/AmazonWebServices/pfc403-maximizing-amazon-s3-performance-aws-reinvent-2014?
ref=https://cloudnative.io/blog/2015/01/aws-s3-performance-tuning/
10 Things You Might Not Know About Using S3
https://www.sumologic.com/aws/s3/10-things-might-not-know-using-s3/
AWS S3 Performance Tuning
https://cloudnative.io/blog/2015/01/aws-s3-performance-tuning
Request Rate – Perfomance Considerations
http://docs.aws.amazon.com/AmazonS3/latest/dev/request-rate-perf-considerations.html
Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Referências
TCP Window Scaling
http://docs.aws.amazon.com/AmazonS3/latest/dev/TCPWindowScaling.html
TCP Extensions for High Performance V. Jacobson, R. Braden, D. Borman - Network Working Group
http://www.ietf.org/rfc/rfc1323.txt
The TIME-WAIT state in TCP and Its Effect on Busy Servers - Theodore Faber, Joe Touch, Wei Yue -
University of Southern California/Information Sciences Institute
http://www.isi.edu/touch/pubs/infocomm99/infocomm99-web/
Detecting ephemeral port exhaustion – Technet Microsoft
https://blogs.technet.microsoft.com/clinth/2013/08/09/detecting-ephemeral-port-exhaustion/
Amazon S3 Transfer Acceleration Examples
http://docs.aws.amazon.com/AmazonS3/latest/dev/transfer-acceleration-examples.html
Service Name and Transport Protocol Port Number Registry
https://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.xhtml
AWS S3 vs Google Cloud vs Azure: Cloud Storage Performance
http://blog.zachbjornson.com/2015/12/29/cloud-storage-performance.html
Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Anexos
Execução do testes – Servidor c4.large - Multithreading
2 Caso de teste:
00h 02m 59s 952ms
3 Caso de teste:
00h 17m 45s 375ms
1 Caso de teste:
00h 01m 31s 861ms
Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Anexos
Execução do testes – Servidor c4.xlarge - Multithreading
2 Caso de teste:
00h 02m 01s 554ms
3 Caso de teste:
00h 09m 38s 791ms
1 Caso de teste:
00h 00m 59s 225ms
Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Anexos
Execução do testes – Servidor c4.2xlarge - Multithreading
2 Caso de teste:
1m 33s 790ms
3 Caso de teste:
7m 08s 656ms
1 Caso de teste:
43s 619ms
Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Anexos
Execução do testes – Servidor c4.large - NonMultithreading
2 Caso de teste:
00h 27m 59s 001ms
3 Caso de teste:
02h 00m 12s 295ms
1 Caso de teste:
00h 09m 19s 998ms
Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Anexos
Execução do testes – Servidor c4.xlarge - NonMultithreading
2 Caso de teste:
00h 27m 00s 800ms
3 Caso de teste:
01h 57m 29s 282ms
1 Caso de teste:
00h 9m 39s 195ms
Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Anexos
Execução do testes – Servidor c4.2xlarge - NonMultithreading
2 Caso de teste:
00h 26m 15s 684ms
3 Caso de teste:
02h 02m 02s 069ms
1 Caso de teste:
00h 9m 04s 300ms

Mais conteúdo relacionado

Mais procurados

Treinamento de Performance and tuning
Treinamento de Performance and tuningTreinamento de Performance and tuning
Treinamento de Performance and tuningDell Technologies
 
Web Seminário sobre Varnish+Nginx+Apache
Web Seminário sobre Varnish+Nginx+ApacheWeb Seminário sobre Varnish+Nginx+Apache
Web Seminário sobre Varnish+Nginx+ApacheDell Technologies
 
Avaliação de arquiteturas de uma solução de backup da nuvem
Avaliação de arquiteturas de uma solução de backup da nuvemAvaliação de arquiteturas de uma solução de backup da nuvem
Avaliação de arquiteturas de uma solução de backup da nuvemJoao Galdino Mello de Souza
 
Os principais desafios de Implementar um Processo de Planejamento de Gestão ...
Os principais desafios de Implementar um Processo de Planejamento  de Gestão ...Os principais desafios de Implementar um Processo de Planejamento  de Gestão ...
Os principais desafios de Implementar um Processo de Planejamento de Gestão ...Joao Galdino Mello de Souza
 
Abordagens de Implementação de ILM como estratégia auxiliar no Gerenciamento ...
Abordagens de Implementação de ILM como estratégia auxiliar no Gerenciamento ...Abordagens de Implementação de ILM como estratégia auxiliar no Gerenciamento ...
Abordagens de Implementação de ILM como estratégia auxiliar no Gerenciamento ...Joao Galdino Mello de Souza
 
Cloud Computing - Continuidade do Negócio através da tolerância a desastres
Cloud Computing - Continuidade do Negócio através da tolerância a desastresCloud Computing - Continuidade do Negócio através da tolerância a desastres
Cloud Computing - Continuidade do Negócio através da tolerância a desastresJoao Galdino Mello de Souza
 
APM: Gerenciamento de Desempenho de Aplicações - Monitoramento de rede VOIP, ...
APM: Gerenciamento de Desempenho de Aplicações - Monitoramento de rede VOIP, ...APM: Gerenciamento de Desempenho de Aplicações - Monitoramento de rede VOIP, ...
APM: Gerenciamento de Desempenho de Aplicações - Monitoramento de rede VOIP, ...Joao Galdino Mello de Souza
 
Monitoramento contínuo em dia de pico de consumo ajuda a determinar o número ...
Monitoramento contínuo em dia de pico de consumo ajuda a determinar o número ...Monitoramento contínuo em dia de pico de consumo ajuda a determinar o número ...
Monitoramento contínuo em dia de pico de consumo ajuda a determinar o número ...Joao Galdino Mello de Souza
 
Z13 x zEC12: O que esperar? - por Luiz Carlos Orsoni
Z13 x zEC12: O que esperar? - por Luiz Carlos OrsoniZ13 x zEC12: O que esperar? - por Luiz Carlos Orsoni
Z13 x zEC12: O que esperar? - por Luiz Carlos OrsoniJoao Galdino Mello de Souza
 
Avaliação de arquiteturas de uma solução de Backup na Nuvem
Avaliação de arquiteturas de uma solução de Backup na NuvemAvaliação de arquiteturas de uma solução de Backup na Nuvem
Avaliação de arquiteturas de uma solução de Backup na NuvemKleber Silva
 
Avaliação de arquiteturas de soluções de backup para a nuvem e na nuvem
Avaliação de arquiteturas de soluções de backup para a nuvem e na nuvemAvaliação de arquiteturas de soluções de backup para a nuvem e na nuvem
Avaliação de arquiteturas de soluções de backup para a nuvem e na nuvemJoao Galdino Mello de Souza
 
Mistério ou tecnologia? Paralelismo!
Mistério ou tecnologia? Paralelismo!Mistério ou tecnologia? Paralelismo!
Mistério ou tecnologia? Paralelismo!Rodrigo Campos
 
Análise de Segurança e Desempenho na Detecção de Intrusão em Redes de Automaç...
Análise de Segurança e Desempenho na Detecção de Intrusão em Redes de Automaç...Análise de Segurança e Desempenho na Detecção de Intrusão em Redes de Automaç...
Análise de Segurança e Desempenho na Detecção de Intrusão em Redes de Automaç...Joao Galdino Mello de Souza
 
Uso de Qualidade de serviço em uma rede de dados em um sistema supervisório. ...
Uso de Qualidade de serviço em uma rede de dados em um sistema supervisório. ...Uso de Qualidade de serviço em uma rede de dados em um sistema supervisório. ...
Uso de Qualidade de serviço em uma rede de dados em um sistema supervisório. ...Joao Galdino Mello de Souza
 
Estudo comparativo entre treinamento supervisionado e não supervisionado em a...
Estudo comparativo entre treinamento supervisionado e não supervisionado em a...Estudo comparativo entre treinamento supervisionado e não supervisionado em a...
Estudo comparativo entre treinamento supervisionado e não supervisionado em a...Joao Galdino Mello de Souza
 
Modelagem Analítica – Queueing Theory (Part I)
Modelagem Analítica – Queueing Theory (Part I)Modelagem Analítica – Queueing Theory (Part I)
Modelagem Analítica – Queueing Theory (Part I)Joao Galdino Mello de Souza
 
PGDay Campinas 2013 - Postgres XC @ Cloud
PGDay Campinas 2013 - Postgres XC @ CloudPGDay Campinas 2013 - Postgres XC @ Cloud
PGDay Campinas 2013 - Postgres XC @ CloudPGDay Campinas
 

Mais procurados (20)

Treinamento de Performance and tuning
Treinamento de Performance and tuningTreinamento de Performance and tuning
Treinamento de Performance and tuning
 
Web Seminário sobre Varnish+Nginx+Apache
Web Seminário sobre Varnish+Nginx+ApacheWeb Seminário sobre Varnish+Nginx+Apache
Web Seminário sobre Varnish+Nginx+Apache
 
Avaliação de arquiteturas de uma solução de backup da nuvem
Avaliação de arquiteturas de uma solução de backup da nuvemAvaliação de arquiteturas de uma solução de backup da nuvem
Avaliação de arquiteturas de uma solução de backup da nuvem
 
Os principais desafios de Implementar um Processo de Planejamento de Gestão ...
Os principais desafios de Implementar um Processo de Planejamento  de Gestão ...Os principais desafios de Implementar um Processo de Planejamento  de Gestão ...
Os principais desafios de Implementar um Processo de Planejamento de Gestão ...
 
Abordagens de Implementação de ILM como estratégia auxiliar no Gerenciamento ...
Abordagens de Implementação de ILM como estratégia auxiliar no Gerenciamento ...Abordagens de Implementação de ILM como estratégia auxiliar no Gerenciamento ...
Abordagens de Implementação de ILM como estratégia auxiliar no Gerenciamento ...
 
Cloud Computing - Continuidade do Negócio através da tolerância a desastres
Cloud Computing - Continuidade do Negócio através da tolerância a desastresCloud Computing - Continuidade do Negócio através da tolerância a desastres
Cloud Computing - Continuidade do Negócio através da tolerância a desastres
 
APM: Gerenciamento de Desempenho de Aplicações - Monitoramento de rede VOIP, ...
APM: Gerenciamento de Desempenho de Aplicações - Monitoramento de rede VOIP, ...APM: Gerenciamento de Desempenho de Aplicações - Monitoramento de rede VOIP, ...
APM: Gerenciamento de Desempenho de Aplicações - Monitoramento de rede VOIP, ...
 
Monitoramento contínuo em dia de pico de consumo ajuda a determinar o número ...
Monitoramento contínuo em dia de pico de consumo ajuda a determinar o número ...Monitoramento contínuo em dia de pico de consumo ajuda a determinar o número ...
Monitoramento contínuo em dia de pico de consumo ajuda a determinar o número ...
 
Z13 x zEC12: O que esperar? - por Luiz Carlos Orsoni
Z13 x zEC12: O que esperar? - por Luiz Carlos OrsoniZ13 x zEC12: O que esperar? - por Luiz Carlos Orsoni
Z13 x zEC12: O que esperar? - por Luiz Carlos Orsoni
 
Avaliação de arquiteturas de uma solução de Backup na Nuvem
Avaliação de arquiteturas de uma solução de Backup na NuvemAvaliação de arquiteturas de uma solução de Backup na Nuvem
Avaliação de arquiteturas de uma solução de Backup na Nuvem
 
Avaliação de arquiteturas de soluções de backup para a nuvem e na nuvem
Avaliação de arquiteturas de soluções de backup para a nuvem e na nuvemAvaliação de arquiteturas de soluções de backup para a nuvem e na nuvem
Avaliação de arquiteturas de soluções de backup para a nuvem e na nuvem
 
Quantas Instruções por Ciclo?
Quantas Instruções por Ciclo?Quantas Instruções por Ciclo?
Quantas Instruções por Ciclo?
 
Mistério ou tecnologia? Paralelismo!
Mistério ou tecnologia? Paralelismo!Mistério ou tecnologia? Paralelismo!
Mistério ou tecnologia? Paralelismo!
 
Análise de Segurança e Desempenho na Detecção de Intrusão em Redes de Automaç...
Análise de Segurança e Desempenho na Detecção de Intrusão em Redes de Automaç...Análise de Segurança e Desempenho na Detecção de Intrusão em Redes de Automaç...
Análise de Segurança e Desempenho na Detecção de Intrusão em Redes de Automaç...
 
Automação do Workload e a TI Bimodal
Automação do Workload e a TI BimodalAutomação do Workload e a TI Bimodal
Automação do Workload e a TI Bimodal
 
Uso de Qualidade de serviço em uma rede de dados em um sistema supervisório. ...
Uso de Qualidade de serviço em uma rede de dados em um sistema supervisório. ...Uso de Qualidade de serviço em uma rede de dados em um sistema supervisório. ...
Uso de Qualidade de serviço em uma rede de dados em um sistema supervisório. ...
 
Estudo comparativo entre treinamento supervisionado e não supervisionado em a...
Estudo comparativo entre treinamento supervisionado e não supervisionado em a...Estudo comparativo entre treinamento supervisionado e não supervisionado em a...
Estudo comparativo entre treinamento supervisionado e não supervisionado em a...
 
Modelagem Analítica – Queueing Theory (Part I)
Modelagem Analítica – Queueing Theory (Part I)Modelagem Analítica – Queueing Theory (Part I)
Modelagem Analítica – Queueing Theory (Part I)
 
Quantas Instruções por Ciclo?
Quantas Instruções por Ciclo?Quantas Instruções por Ciclo?
Quantas Instruções por Ciclo?
 
PGDay Campinas 2013 - Postgres XC @ Cloud
PGDay Campinas 2013 - Postgres XC @ CloudPGDay Campinas 2013 - Postgres XC @ Cloud
PGDay Campinas 2013 - Postgres XC @ Cloud
 

Semelhante a Otimizando desempenho de transferência de arquivos e diretórios entre servidores e serviços de armazenamento em nuvem

pgDay Campinas 2013 - PostgreSQL XC in Cloud IaaS
pgDay Campinas 2013 - PostgreSQL XC in Cloud IaaSpgDay Campinas 2013 - PostgreSQL XC in Cloud IaaS
pgDay Campinas 2013 - PostgreSQL XC in Cloud IaaSVinícius Schmidt
 
Análise comparativa entre as versões 3 e 4 do protocolo NFS em arquiteturas NAS
Análise comparativa entre as versões 3 e 4 do protocolo NFS em arquiteturas NASAnálise comparativa entre as versões 3 e 4 do protocolo NFS em arquiteturas NAS
Análise comparativa entre as versões 3 e 4 do protocolo NFS em arquiteturas NASKleber Silva
 
Copa do mundo no brasil interagindo com os torcedores em tempo real
Copa do mundo no brasil   interagindo com os torcedores em tempo realCopa do mundo no brasil   interagindo com os torcedores em tempo real
Copa do mundo no brasil interagindo com os torcedores em tempo realAmazon Web Services LATAM
 
Sessão Avançada: Amazon Aurora - DAT302 - Sao Paulo Summit
Sessão Avançada: Amazon Aurora -  DAT302 - Sao Paulo SummitSessão Avançada: Amazon Aurora -  DAT302 - Sao Paulo Summit
Sessão Avançada: Amazon Aurora - DAT302 - Sao Paulo SummitAmazon Web Services
 
Usando a nuvem da AWS para Backup e Disaster Recovery
Usando a nuvem da AWS para Backup e Disaster RecoveryUsando a nuvem da AWS para Backup e Disaster Recovery
Usando a nuvem da AWS para Backup e Disaster RecoveryRodolfo Dantas
 
Análise da causa raiz de comportamento anômalo em ambientes de infraestrutura...
Análise da causa raiz de comportamento anômalo em ambientes de infraestrutura...Análise da causa raiz de comportamento anômalo em ambientes de infraestrutura...
Análise da causa raiz de comportamento anômalo em ambientes de infraestrutura...Joao Galdino Mello de Souza
 
Como criar infraestrutura de sites para receber milhões de usuários?
Como criar infraestrutura de sites para receber milhões de usuários?Como criar infraestrutura de sites para receber milhões de usuários?
Como criar infraestrutura de sites para receber milhões de usuários?Marcelo Dieder
 
Dicas para Turbinar o servidor de Aplicações JBoss 7
Dicas para Turbinar o servidor de Aplicações JBoss 7Dicas para Turbinar o servidor de Aplicações JBoss 7
Dicas para Turbinar o servidor de Aplicações JBoss 7Claudio Miranda
 
Sessão Avançada: Otimizando Bancos de Dados Relacionais na AWS com Amazon RDS...
Sessão Avançada: Otimizando Bancos de Dados Relacionais na AWS com Amazon RDS...Sessão Avançada: Otimizando Bancos de Dados Relacionais na AWS com Amazon RDS...
Sessão Avançada: Otimizando Bancos de Dados Relacionais na AWS com Amazon RDS...Amazon Web Services
 
Conhecendo as opcoes de Storage na Nuvem da AWS
Conhecendo as opcoes de Storage na Nuvem da AWSConhecendo as opcoes de Storage na Nuvem da AWS
Conhecendo as opcoes de Storage na Nuvem da AWSAmazon Web Services LATAM
 
Infraestrutura em nuvem com Amazon Web Services (AWS)
Infraestrutura em nuvem com Amazon Web Services (AWS)Infraestrutura em nuvem com Amazon Web Services (AWS)
Infraestrutura em nuvem com Amazon Web Services (AWS)Infosimples
 
Cluster e replicação em banco de dados
Cluster e replicação em banco de dadosCluster e replicação em banco de dados
Cluster e replicação em banco de dadosSuissa
 
Data center MCSBRC2010-slides.pdf
Data center MCSBRC2010-slides.pdfData center MCSBRC2010-slides.pdf
Data center MCSBRC2010-slides.pdfssuser1198af
 
[MTC 2021] As 8 melhores práticas e formas de simplificar e estruturar todos...
[MTC 2021] As 8 melhores práticas e formas de simplificar e estruturar todos...[MTC 2021] As 8 melhores práticas e formas de simplificar e estruturar todos...
[MTC 2021] As 8 melhores práticas e formas de simplificar e estruturar todos...minastestingconference
 
Amazon Aws - Tecnologias e Beneficios
Amazon Aws - Tecnologias e BeneficiosAmazon Aws - Tecnologias e Beneficios
Amazon Aws - Tecnologias e BeneficiosYros
 

Semelhante a Otimizando desempenho de transferência de arquivos e diretórios entre servidores e serviços de armazenamento em nuvem (20)

pgDay Campinas 2013 - PostgreSQL XC in Cloud IaaS
pgDay Campinas 2013 - PostgreSQL XC in Cloud IaaSpgDay Campinas 2013 - PostgreSQL XC in Cloud IaaS
pgDay Campinas 2013 - PostgreSQL XC in Cloud IaaS
 
Análise comparativa entre as versões 3 e 4 do protocolo NFS em arquiteturas NAS
Análise comparativa entre as versões 3 e 4 do protocolo NFS em arquiteturas NASAnálise comparativa entre as versões 3 e 4 do protocolo NFS em arquiteturas NAS
Análise comparativa entre as versões 3 e 4 do protocolo NFS em arquiteturas NAS
 
Copa do mundo no brasil interagindo com os torcedores em tempo real
Copa do mundo no brasil   interagindo com os torcedores em tempo realCopa do mundo no brasil   interagindo com os torcedores em tempo real
Copa do mundo no brasil interagindo com os torcedores em tempo real
 
Sessão Avançada: Amazon Aurora - DAT302 - Sao Paulo Summit
Sessão Avançada: Amazon Aurora -  DAT302 - Sao Paulo SummitSessão Avançada: Amazon Aurora -  DAT302 - Sao Paulo Summit
Sessão Avançada: Amazon Aurora - DAT302 - Sao Paulo Summit
 
Usando a nuvem da AWS para Backup e Disaster Recovery
Usando a nuvem da AWS para Backup e Disaster RecoveryUsando a nuvem da AWS para Backup e Disaster Recovery
Usando a nuvem da AWS para Backup e Disaster Recovery
 
Análise da causa raiz de comportamento anômalo em ambientes de infraestrutura...
Análise da causa raiz de comportamento anômalo em ambientes de infraestrutura...Análise da causa raiz de comportamento anômalo em ambientes de infraestrutura...
Análise da causa raiz de comportamento anômalo em ambientes de infraestrutura...
 
Como criar infraestrutura de sites para receber milhões de usuários?
Como criar infraestrutura de sites para receber milhões de usuários?Como criar infraestrutura de sites para receber milhões de usuários?
Como criar infraestrutura de sites para receber milhões de usuários?
 
Dicas para Turbinar o servidor de Aplicações JBoss 7
Dicas para Turbinar o servidor de Aplicações JBoss 7Dicas para Turbinar o servidor de Aplicações JBoss 7
Dicas para Turbinar o servidor de Aplicações JBoss 7
 
Sessão Avançada: Otimizando Bancos de Dados Relacionais na AWS com Amazon RDS...
Sessão Avançada: Otimizando Bancos de Dados Relacionais na AWS com Amazon RDS...Sessão Avançada: Otimizando Bancos de Dados Relacionais na AWS com Amazon RDS...
Sessão Avançada: Otimizando Bancos de Dados Relacionais na AWS com Amazon RDS...
 
Webinar: Data warehouse na nuvem da AWS
Webinar: Data warehouse na nuvem da AWSWebinar: Data warehouse na nuvem da AWS
Webinar: Data warehouse na nuvem da AWS
 
Pgquarrel
PgquarrelPgquarrel
Pgquarrel
 
Conhecendo as opcoes de Storage na Nuvem da AWS
Conhecendo as opcoes de Storage na Nuvem da AWSConhecendo as opcoes de Storage na Nuvem da AWS
Conhecendo as opcoes de Storage na Nuvem da AWS
 
Infraestrutura em nuvem com Amazon Web Services (AWS)
Infraestrutura em nuvem com Amazon Web Services (AWS)Infraestrutura em nuvem com Amazon Web Services (AWS)
Infraestrutura em nuvem com Amazon Web Services (AWS)
 
Cluster e replicação em banco de dados
Cluster e replicação em banco de dadosCluster e replicação em banco de dados
Cluster e replicação em banco de dados
 
Data center MCSBRC2010-slides.pdf
Data center MCSBRC2010-slides.pdfData center MCSBRC2010-slides.pdf
Data center MCSBRC2010-slides.pdf
 
Apostila oracle
Apostila oracleApostila oracle
Apostila oracle
 
[MTC 2021] As 8 melhores práticas e formas de simplificar e estruturar todos...
[MTC 2021] As 8 melhores práticas e formas de simplificar e estruturar todos...[MTC 2021] As 8 melhores práticas e formas de simplificar e estruturar todos...
[MTC 2021] As 8 melhores práticas e formas de simplificar e estruturar todos...
 
GlusterFs
GlusterFsGlusterFs
GlusterFs
 
Amazon Aws - Tecnologias e Beneficios
Amazon Aws - Tecnologias e BeneficiosAmazon Aws - Tecnologias e Beneficios
Amazon Aws - Tecnologias e Beneficios
 
TDC - Da presença online ao Cloud Computing
TDC - Da presença online ao Cloud ComputingTDC - Da presença online ao Cloud Computing
TDC - Da presença online ao Cloud Computing
 

Mais de Joao Galdino Mello de Souza

Enterprise computing for modern business workloads por Lívio Sousa (IBM)
Enterprise computing for modern business workloads por Lívio Sousa (IBM)Enterprise computing for modern business workloads por Lívio Sousa (IBM)
Enterprise computing for modern business workloads por Lívio Sousa (IBM)Joao Galdino Mello de Souza
 
Pré-Anúncio z/OS 2.4 por Alvaro Salla (MAFFEI) e Fernando Ferreira (IBM)
Pré-Anúncio z/OS 2.4 por Alvaro Salla (MAFFEI) e Fernando Ferreira (IBM)Pré-Anúncio z/OS 2.4 por Alvaro Salla (MAFFEI) e Fernando Ferreira (IBM)
Pré-Anúncio z/OS 2.4 por Alvaro Salla (MAFFEI) e Fernando Ferreira (IBM)Joao Galdino Mello de Souza
 
Scaling Multi-cloud with Infrastructure as Code por André Rocha Agostinho (S...
Scaling  Multi-cloud with Infrastructure as Code por André Rocha Agostinho (S...Scaling  Multi-cloud with Infrastructure as Code por André Rocha Agostinho (S...
Scaling Multi-cloud with Infrastructure as Code por André Rocha Agostinho (S...Joao Galdino Mello de Souza
 
Alta Disponibilidade SQL Server por Marcus Vinicius Bittencourt (O Boticário)
Alta Disponibilidade SQL Server por Marcus Vinicius Bittencourt (O Boticário)Alta Disponibilidade SQL Server por Marcus Vinicius Bittencourt (O Boticário)
Alta Disponibilidade SQL Server por Marcus Vinicius Bittencourt (O Boticário)Joao Galdino Mello de Souza
 
Cloud no Banco Votorantim por Marcus Vinícius de Aguiar Magalhaes (Banco Voto...
Cloud no Banco Votorantim por Marcus Vinícius de Aguiar Magalhaes (Banco Voto...Cloud no Banco Votorantim por Marcus Vinícius de Aguiar Magalhaes (Banco Voto...
Cloud no Banco Votorantim por Marcus Vinícius de Aguiar Magalhaes (Banco Voto...Joao Galdino Mello de Souza
 
Descomplicando a Ciência de Dados por Adelson Lovatto (IBM)
Descomplicando a Ciência de Dados por Adelson Lovatto (IBM)Descomplicando a Ciência de Dados por Adelson Lovatto (IBM)
Descomplicando a Ciência de Dados por Adelson Lovatto (IBM)Joao Galdino Mello de Souza
 
Pré-Anúncio z/OS 2.4 por Alvaro Salla (MAFFEI)
Pré-Anúncio z/OS 2.4 por Alvaro Salla (MAFFEI)Pré-Anúncio z/OS 2.4 por Alvaro Salla (MAFFEI)
Pré-Anúncio z/OS 2.4 por Alvaro Salla (MAFFEI)Joao Galdino Mello de Souza
 
Consumo de CPU, Distorções e Redução de custo de SW por Maria Isabel Soutello...
Consumo de CPU, Distorções e Redução de custo de SW por Maria Isabel Soutello...Consumo de CPU, Distorções e Redução de custo de SW por Maria Isabel Soutello...
Consumo de CPU, Distorções e Redução de custo de SW por Maria Isabel Soutello...Joao Galdino Mello de Souza
 
Qualidade no desenvolvimento de Sistemas por Anderson Augustinho (Celepar)
Qualidade no desenvolvimento de Sistemas por Anderson Augustinho (Celepar)Qualidade no desenvolvimento de Sistemas por Anderson Augustinho (Celepar)
Qualidade no desenvolvimento de Sistemas por Anderson Augustinho (Celepar)Joao Galdino Mello de Souza
 
Assets Tokenization: Novas Linhas de negócio por Lívio Sousa (IBM)
Assets Tokenization: Novas Linhas de negócio por Lívio Sousa (IBM)Assets Tokenization: Novas Linhas de negócio por Lívio Sousa (IBM)
Assets Tokenization: Novas Linhas de negócio por Lívio Sousa (IBM)Joao Galdino Mello de Souza
 
Intelligent Edge e Intelligent Cloud por Vivian Heinrichs (Softline)
Intelligent Edge e Intelligent Cloud por Vivian Heinrichs (Softline)Intelligent Edge e Intelligent Cloud por Vivian Heinrichs (Softline)
Intelligent Edge e Intelligent Cloud por Vivian Heinrichs (Softline)Joao Galdino Mello de Souza
 
Evolução da eficiência operacional no mainframe por Emerson Castelano (Eccox)
Evolução da eficiência operacional no mainframe por Emerson Castelano (Eccox)Evolução da eficiência operacional no mainframe por Emerson Castelano (Eccox)
Evolução da eficiência operacional no mainframe por Emerson Castelano (Eccox)Joao Galdino Mello de Souza
 
Gestão de Capacidade, desempenho e custos no ambiente mainframe zOS: Um caso ...
Gestão de Capacidade, desempenho e custos no ambiente mainframe zOS: Um caso ...Gestão de Capacidade, desempenho e custos no ambiente mainframe zOS: Um caso ...
Gestão de Capacidade, desempenho e custos no ambiente mainframe zOS: Um caso ...Joao Galdino Mello de Souza
 
Eletricidade e Eletrônica 1.01 por Luiz Carlos Orsoni (MAFFEI)
Eletricidade e Eletrônica 1.01 por Luiz Carlos Orsoni (MAFFEI)Eletricidade e Eletrônica 1.01 por Luiz Carlos Orsoni (MAFFEI)
Eletricidade e Eletrônica 1.01 por Luiz Carlos Orsoni (MAFFEI)Joao Galdino Mello de Souza
 
Pervasive Encryption por Eugênio Fernandes (IBM)
Pervasive Encryption por Eugênio Fernandes (IBM)Pervasive Encryption por Eugênio Fernandes (IBM)
Pervasive Encryption por Eugênio Fernandes (IBM)Joao Galdino Mello de Souza
 
Minimizar RNI ambiente CICS por Milton Ferraraccio (Eccox Technology)
Minimizar RNI ambiente CICS por Milton Ferraraccio (Eccox Technology)Minimizar RNI ambiente CICS por Milton Ferraraccio (Eccox Technology)
Minimizar RNI ambiente CICS por Milton Ferraraccio (Eccox Technology)Joao Galdino Mello de Souza
 
Scaling Multi-Cloud with Infrastructure as a Code por André Rocha Agostinho (...
Scaling Multi-Cloud with Infrastructure as a Code por André Rocha Agostinho (...Scaling Multi-Cloud with Infrastructure as a Code por André Rocha Agostinho (...
Scaling Multi-Cloud with Infrastructure as a Code por André Rocha Agostinho (...Joao Galdino Mello de Souza
 
Como obter o melhor do Z por Gustavo Fernandes Araujo (Itau Unibanco)
Como obter o melhor do Z por Gustavo Fernandes Araujo (Itau Unibanco)Como obter o melhor do Z por Gustavo Fernandes Araujo (Itau Unibanco)
Como obter o melhor do Z por Gustavo Fernandes Araujo (Itau Unibanco)Joao Galdino Mello de Souza
 
Lei geral de proteção de dados por Kleber Silva e Ricardo Navarro (Pise4)
Lei geral de proteção de dados por Kleber Silva  e Ricardo Navarro (Pise4)Lei geral de proteção de dados por Kleber Silva  e Ricardo Navarro (Pise4)
Lei geral de proteção de dados por Kleber Silva e Ricardo Navarro (Pise4)Joao Galdino Mello de Souza
 

Mais de Joao Galdino Mello de Souza (20)

Explorando a API Rest Jira Cloud
Explorando a API Rest Jira CloudExplorando a API Rest Jira Cloud
Explorando a API Rest Jira Cloud
 
Enterprise computing for modern business workloads por Lívio Sousa (IBM)
Enterprise computing for modern business workloads por Lívio Sousa (IBM)Enterprise computing for modern business workloads por Lívio Sousa (IBM)
Enterprise computing for modern business workloads por Lívio Sousa (IBM)
 
Pré-Anúncio z/OS 2.4 por Alvaro Salla (MAFFEI) e Fernando Ferreira (IBM)
Pré-Anúncio z/OS 2.4 por Alvaro Salla (MAFFEI) e Fernando Ferreira (IBM)Pré-Anúncio z/OS 2.4 por Alvaro Salla (MAFFEI) e Fernando Ferreira (IBM)
Pré-Anúncio z/OS 2.4 por Alvaro Salla (MAFFEI) e Fernando Ferreira (IBM)
 
Scaling Multi-cloud with Infrastructure as Code por André Rocha Agostinho (S...
Scaling  Multi-cloud with Infrastructure as Code por André Rocha Agostinho (S...Scaling  Multi-cloud with Infrastructure as Code por André Rocha Agostinho (S...
Scaling Multi-cloud with Infrastructure as Code por André Rocha Agostinho (S...
 
Alta Disponibilidade SQL Server por Marcus Vinicius Bittencourt (O Boticário)
Alta Disponibilidade SQL Server por Marcus Vinicius Bittencourt (O Boticário)Alta Disponibilidade SQL Server por Marcus Vinicius Bittencourt (O Boticário)
Alta Disponibilidade SQL Server por Marcus Vinicius Bittencourt (O Boticário)
 
Cloud no Banco Votorantim por Marcus Vinícius de Aguiar Magalhaes (Banco Voto...
Cloud no Banco Votorantim por Marcus Vinícius de Aguiar Magalhaes (Banco Voto...Cloud no Banco Votorantim por Marcus Vinícius de Aguiar Magalhaes (Banco Voto...
Cloud no Banco Votorantim por Marcus Vinícius de Aguiar Magalhaes (Banco Voto...
 
Descomplicando a Ciência de Dados por Adelson Lovatto (IBM)
Descomplicando a Ciência de Dados por Adelson Lovatto (IBM)Descomplicando a Ciência de Dados por Adelson Lovatto (IBM)
Descomplicando a Ciência de Dados por Adelson Lovatto (IBM)
 
Pré-Anúncio z/OS 2.4 por Alvaro Salla (MAFFEI)
Pré-Anúncio z/OS 2.4 por Alvaro Salla (MAFFEI)Pré-Anúncio z/OS 2.4 por Alvaro Salla (MAFFEI)
Pré-Anúncio z/OS 2.4 por Alvaro Salla (MAFFEI)
 
Consumo de CPU, Distorções e Redução de custo de SW por Maria Isabel Soutello...
Consumo de CPU, Distorções e Redução de custo de SW por Maria Isabel Soutello...Consumo de CPU, Distorções e Redução de custo de SW por Maria Isabel Soutello...
Consumo de CPU, Distorções e Redução de custo de SW por Maria Isabel Soutello...
 
Qualidade no desenvolvimento de Sistemas por Anderson Augustinho (Celepar)
Qualidade no desenvolvimento de Sistemas por Anderson Augustinho (Celepar)Qualidade no desenvolvimento de Sistemas por Anderson Augustinho (Celepar)
Qualidade no desenvolvimento de Sistemas por Anderson Augustinho (Celepar)
 
Assets Tokenization: Novas Linhas de negócio por Lívio Sousa (IBM)
Assets Tokenization: Novas Linhas de negócio por Lívio Sousa (IBM)Assets Tokenization: Novas Linhas de negócio por Lívio Sousa (IBM)
Assets Tokenization: Novas Linhas de negócio por Lívio Sousa (IBM)
 
Intelligent Edge e Intelligent Cloud por Vivian Heinrichs (Softline)
Intelligent Edge e Intelligent Cloud por Vivian Heinrichs (Softline)Intelligent Edge e Intelligent Cloud por Vivian Heinrichs (Softline)
Intelligent Edge e Intelligent Cloud por Vivian Heinrichs (Softline)
 
Evolução da eficiência operacional no mainframe por Emerson Castelano (Eccox)
Evolução da eficiência operacional no mainframe por Emerson Castelano (Eccox)Evolução da eficiência operacional no mainframe por Emerson Castelano (Eccox)
Evolução da eficiência operacional no mainframe por Emerson Castelano (Eccox)
 
Gestão de Capacidade, desempenho e custos no ambiente mainframe zOS: Um caso ...
Gestão de Capacidade, desempenho e custos no ambiente mainframe zOS: Um caso ...Gestão de Capacidade, desempenho e custos no ambiente mainframe zOS: Um caso ...
Gestão de Capacidade, desempenho e custos no ambiente mainframe zOS: Um caso ...
 
Eletricidade e Eletrônica 1.01 por Luiz Carlos Orsoni (MAFFEI)
Eletricidade e Eletrônica 1.01 por Luiz Carlos Orsoni (MAFFEI)Eletricidade e Eletrônica 1.01 por Luiz Carlos Orsoni (MAFFEI)
Eletricidade e Eletrônica 1.01 por Luiz Carlos Orsoni (MAFFEI)
 
Pervasive Encryption por Eugênio Fernandes (IBM)
Pervasive Encryption por Eugênio Fernandes (IBM)Pervasive Encryption por Eugênio Fernandes (IBM)
Pervasive Encryption por Eugênio Fernandes (IBM)
 
Minimizar RNI ambiente CICS por Milton Ferraraccio (Eccox Technology)
Minimizar RNI ambiente CICS por Milton Ferraraccio (Eccox Technology)Minimizar RNI ambiente CICS por Milton Ferraraccio (Eccox Technology)
Minimizar RNI ambiente CICS por Milton Ferraraccio (Eccox Technology)
 
Scaling Multi-Cloud with Infrastructure as a Code por André Rocha Agostinho (...
Scaling Multi-Cloud with Infrastructure as a Code por André Rocha Agostinho (...Scaling Multi-Cloud with Infrastructure as a Code por André Rocha Agostinho (...
Scaling Multi-Cloud with Infrastructure as a Code por André Rocha Agostinho (...
 
Como obter o melhor do Z por Gustavo Fernandes Araujo (Itau Unibanco)
Como obter o melhor do Z por Gustavo Fernandes Araujo (Itau Unibanco)Como obter o melhor do Z por Gustavo Fernandes Araujo (Itau Unibanco)
Como obter o melhor do Z por Gustavo Fernandes Araujo (Itau Unibanco)
 
Lei geral de proteção de dados por Kleber Silva e Ricardo Navarro (Pise4)
Lei geral de proteção de dados por Kleber Silva  e Ricardo Navarro (Pise4)Lei geral de proteção de dados por Kleber Silva  e Ricardo Navarro (Pise4)
Lei geral de proteção de dados por Kleber Silva e Ricardo Navarro (Pise4)
 

Otimizando desempenho de transferência de arquivos e diretórios entre servidores e serviços de armazenamento em nuvem

  • 1. Proibida cópia ou divulgação sem permissão escrita do CMG Brasil. 17 de maio de 2017 André Rocha Agostinho Mestrando em engenharia da computação - IPT-USP Chief Technology Officer SindicoNet / Magnadev Otimizando o desempenho de transferência de arquivos e diretórios entre servidores e serviços de armazenamento em nuvem
  • 2. Proibida cópia ou divulgação sem permissão escrita do CMG Brasil. Agenda - Sobre a Cloud File System - Objetivos da apresentação - Otimizando para AWS S3 - Experimentos realizados - Desafios na migração File System para S3 - Conclusão do estudo
  • 3. Proibida cópia ou divulgação sem permissão escrita do CMG Brasil. Sobre a Cloud File System - Definição Cluster-Based Distributed File Systems “The basic idea is simple: by distributing a large file across multiple servers, it becomes possible to fetch different parts in Parallel.” (Tanenbaum, 2007) File System “Collection of files, attributes, directories, and data blocks that are jointly implemented as a logical block device” (Tanenbaum and Woodhull, 2006) Distributed File System ”Distributed file systems allow multiple processes to share data over long periods of time in a secure and reliable way. As such, they have been used as the basic layer for distributed systems and applications.” (Tanenbaum and Van Steen 2007) • Client-Server Architectures / Network File System (NFS)
  • 4. Proibida cópia ou divulgação sem permissão escrita do CMG Brasil. Sobre a Cloud File System - Características - Suporte à operações como: create, delete, modify, read e write - Escalabilidade e eslasticidade no compartilhamento de dados - Cada arquivo pode ser particionado em diversas partes “chunks”, sendo possível alocar cada chunk em máquinas remotas diversas possibilitando paralelismo de PUT/GET. - Existem diferentes formas de compartilhamento de dados, o que exatamente se proporciona em um sistema de arquivos distribuídos em nuvem, mas os requisitos não funcionais como confiabilidade, disponibilidade e integridade são peças fundamentais para assegurar segurança.
  • 5. Proibida cópia ou divulgação sem permissão escrita do CMG Brasil. Sobre a Cloud File System – Exemplo GFS (Google File System) Google file system (GFS), of which the design is described in Ghemawat et al. (2003).
  • 6. Proibida cópia ou divulgação sem permissão escrita do CMG Brasil. Cloud File System Region A Server1Server1 Server2Server2 Server3Server3 ServerNServerN ... Region N Server1Server1 Server2Server2 ...... Sobre a Cloud File System – Visão da arquitetura Serviços de entrega r Serviços de computação e serviços de armazenamento estruturado CDNs / Searchs Serviços de processamento r APIsPUT GET
  • 7. Proibida cópia ou divulgação sem permissão escrita do CMG Brasil. Objetivos da apresentação Objetivo 1 Apresentar formas de como melhorar o desempenho na transferência de arquivos (PUT/GET) para uma Cloud File System Objetivo 3 Analisar os desafios e soluções na migração de File System para Cloud File System utilizando-se de um cenário hipotético Objetivo 2 Utilizar as soluções apresentadas no Objetivo 1 para rodar experimentos que possam comprovar ou não melhorias no desempenho de transferência de arquivos
  • 8. Proibida cópia ou divulgação sem permissão escrita do CMG Brasil. Otimizando o uso do AWS S3 O Amazon Simple Storage Service (AWS S3) é um serviço de armazenamento de objetos com uma interface de web service simples para armazenar e recuperar qualquer volume de dados de qualquer parte da web. • Durabilidade de 99,9999% • Escalar mais de 1 trilhão de objetos em todo o mundo • Baixos custos de infra-estrutura Utilizado para: -Armazenamento de dados não estruturados -Distribuição de conteúdo -Backup e arquivamento -Recuperação de desastres -Hospedagem de websites estáticos
  • 9. Proibida cópia ou divulgação sem permissão escrita do CMG Brasil. Otimizando o uso do AWS S3 - Regions - Configuração das Instâncias - Keyname Building - Otimizando operações GET, LIST e PUT - Aceleração de transferência - Maximizando TCP
  • 10. Proibida cópia ou divulgação sem permissão escrita do CMG Brasil. Otimizando o uso do AWS S3 - Regions Escolher a região do bucket mais próximo dos recursos consumidores •A decisão não apenas afetará o desempenho das requisições como também custos •Caso seja necessário atuar em N regiões, é possível ativar o recurso de replicação cross-region
  • 11. Proibida cópia ou divulgação sem permissão escrita do CMG Brasil. Otimizando o uso do AWS S3 - Regions Paridade Região Instância X Região S3 Amazon Web Services Network Test Teste realizado dentro de um servidor EC2 (c4.large)
  • 12. Proibida cópia ou divulgação sem permissão escrita do CMG Brasil. Otimizando o uso do AWS S3 - Configuração das instâncias O tipo de instância influencia diretamente em: - Processamento: capacidade de execução de requisições API - Rede: capacidade de transferência de pacotes X largura de banda Instância c4.4xlarge – 16vCPUs – Rede Gigabit
  • 13. Proibida cópia ou divulgação sem permissão escrita do CMG Brasil. Otimizando o uso do AWS S3 - Configuração das instâncias O tipo de instância influencia diretamente em: - Processamento: capacidade de execução de requisições API - Rede: capacidade de transferência de pacotes X largura de banda Instância c4.8xlarge – 32 vCPUs – Rede 10 Gbps
  • 14. Proibida cópia ou divulgação sem permissão escrita do CMG Brasil. Otimizando o uso do AWS S3 Considerações iniciais • Key name não é um diretório! • É um identificador único para um objeto em um bucket • Cada bucket deve ter um nome único (independente da região) • Cada objeto em um bucket tem exatamente uma key name https://magnadev.s3.amazonaws.com/files/d4o9rd2.jpg BUCKET NAME KEYNAME - Key name Building
  • 15. Proibida cópia ou divulgação sem permissão escrita do CMG Brasil. Otimizando o uso do AWS S3 - Key name Building Prefixo - Irá influenciar diretamente no desempenho GET • A utilização de prefixo sequencial é uma prática ruim e irá influenciar em requisições GET, principalmente se for listar objetos Frequentemente usado: http://doc.s3.cmgbrasil.com/2017/s3.pptx http://doc.s3.cmgbrasil.com/2017/ec2.pptx http://doc.s3.cmgbrasil.com/2017/route53.pptx Recomendado: http://doc.s3.cmgbrasil.com/685732017/s3.pptx http://doc.s3.cmgbrasil.com/182622017/ec2.pptx http://doc.s3.cmgbrasil.com/278222017/route53.pptx
  • 16. Proibida cópia ou divulgação sem permissão escrita do CMG Brasil. Otimizando o uso do AWS S3 - Key name Building Como funciona o armazenamento de key names 1. O serviço S3 mantem um índice de objeto “key names” para cada região 2. As keys são amarzenadas em binário (UTF-8) e ordenadas em partições 3. Usando um prefixo sequencial como data/alfabético aumentará a probabilidade de se alocar uma específica partição para um grande volume de keys simplesmente pelo agrupamento de prefixo. Region Key Name’s Index PartitionPartition PartitionPartition PartitionPartition PartitionPartition Key1Key1 Key2Key2 Key3Key3 KeyNKeyN
  • 17. Proibida cópia ou divulgação sem permissão escrita do CMG Brasil. Otimizando o uso do AWS S3 - Key name Building Como funciona o armazenamento de key names 1. A utilização de um hash no prefixo da keyname quebra o agrupamento 2. Força a distribuição da key name nas demais partições Region KeyName’s Index PartitionPartition PartitionPartition PartitionPartition Partition/Partition/ 7832Key17832Key1 322Key2322Key2 489Key3489Key3 164KeyN164KeyN
  • 18. Proibida cópia ou divulgação sem permissão escrita do CMG Brasil. Otimizando o uso do AWS S3 - Key name Building Parâmetros para uso - Request Rate Contato AWS Recomendado quando existe um processo rotineiro de 100 ou mais solicitações por segundo PUT/DELETE LIST/GET Frequência alta more than 300 PUT/LIST/DELETE requests per second more than 800 GET requests per second
  • 19. Proibida cópia ou divulgação sem permissão escrita do CMG Brasil. Otimizando o uso do AWS S3 - Key name Building Referências na aplicação (Anti-Pattern) 1. Operações de listagem (Ex: Thumbnails) 2. Políticas de LifeCycle 3. Listagens com filtros baseado em prefixo 4. Get by key name Region KeyName’s Index PartitionPartition PartitionPartition PartitionPartition Partition/Partition/ group1/78 32Key1 group1/78 32Key1 group1/32 2Key2 group1/32 2Key2 group2/48 9Key3 group2/48 9Key3 group3/16 4KeyN group3/16 4KeyN Categorizar prefixo para sorting
  • 20. Proibida cópia ou divulgação sem permissão escrita do CMG Brasil. Otimizando o uso do AWS S3 - Key name Building Randomização de prefixo 1. Caracteres curtos (4 primeiros caracteres) 2. Epoch Timestamp, MD5, SHA-1, GUID... Recomendado: http://doc.s3.cmgbrasil.com/d41d2017/s3.pptx http://doc.s3.cmgbrasil.com/da392017/ec2.pptx http://doc.s3.cmgbrasil.com/c1382017/route53.pptx
  • 21. Proibida cópia ou divulgação sem permissão escrita do CMG Brasil. Otimizando o uso do AWS S3 - Otimizando GET Utilização de uma CDN •Cloudfront: +50 camadas localizadas no mundo tudo •Fornece baixas latências e altas taxas de transferência para operações de leitura •Reduz o número de requisições GETs aos buckets •Fornece gestão e aplicação de camada de cacheamento S3 Bucket1Bucket1 Bucket N Bucket N... Serviços de entrega CDNs / Searchs Servidores Server1Server1 Server2Server2
  • 22. Proibida cópia ou divulgação sem permissão escrita do CMG Brasil. Otimizando o uso do AWS S3 - Otimizando GET – S3 c/ CloudFront S3 Bucket público: magnadev-public Arquivo: image2.jpg Tamanho: 9,70 MB EC2 C4.Large Processador 2,9 GHz Intel Xeon E5-2666 v3 – 2vCPUS Rede VPC AWS - Network Performance: moderado EC2 Win Server Win Server S3 Bucket1Bucket1 Cloudfront Cloudfront d23xzegsqzlrl2.cloudfront.net Apontado para o bucket público: magnadev-public Suporte: HTTPS/HTTP
  • 23. Proibida cópia ou divulgação sem permissão escrita do CMG Brasil. Otimizando o uso do AWS S3 - Otimizando GET – S3 c/ CloudFront Cloudfront S3 Cloudfront: 156ms S3: 230.5ms Tempo de carregamento: 32% menor
  • 24. Proibida cópia ou divulgação sem permissão escrita do CMG Brasil. Otimizando o uso do AWS S3 - Otimizando GET – Aplicação de cacheamento HTTP Cache-Control e E-Tag – Cacheamento HTTP “cache control: max-age" Essa diretiva especifica o tempo máximo, em segundos, que a resposta recuperada pode ser reutilizada, a partir do momento da solicitação. “etag" O servidor usa a ETag de cabeçalho HTTP para comunicar um token de validação. O token de validação permite verificações eficientes de atualização de recursos: nenhum dado é transferido se o recurso não foi alterado.
  • 25. Proibida cópia ou divulgação sem permissão escrita do CMG Brasil. Otimizando o uso do AWS S3 - Otimizando GET – Aplicação de cacheamento HTTP Aplicando metatag Cache Control setmeta files/* -s -meta:"cache-control: max-age= 36000" • Via programas (S3 Browser, Bucket Explorer, etc), APIs (por exemplo .Net SKD) e Command Line Utility (Ex: S3Express, s3cmd e outros)
  • 26. Proibida cópia ou divulgação sem permissão escrita do CMG Brasil. Otimizando o uso do AWS S3 - Otimizando GET – Aplicação de cacheamento HTTP Resultados com metatags aplicadas Max-Age >= 3600
  • 27. Proibida cópia ou divulgação sem permissão escrita do CMG Brasil. Otimizando o uso do AWS S3 - Otimizando GET – HTTP 2.0 Configuração de HTTP 2.0 para otimizar GETs em páginas web http://caniuse.com/#feat=http2- Windows Server 2016 – IIS 10 - Linux
  • 28. Proibida cópia ou divulgação sem permissão escrita do CMG Brasil. Otimizando o uso do AWS S3 - Otimizando GET – HTTP 2.0 Requisições em HTTP 1.1 Tempo de renderização final: 355ms
  • 29. Proibida cópia ou divulgação sem permissão escrita do CMG Brasil. Otimizando o uso do AWS S3 - Otimizando GET – HTTP 2.0 Requisições em HTTP 2 Tempo de renderização final: 82ms
  • 30. Proibida cópia ou divulgação sem permissão escrita do CMG Brasil. Otimizando o uso do AWS S3 - Otimizando LIST • Operação LIST é muito custosa e pesada! • Utilizar um índice secundário para armazenar informações sobre as key names e potencializar GET para recurso a ser baixado SQL Servidor Web S3 Bucket1Bucket1 Bucket N Bucket N... CDN doc.cmgbrasil.starwars/d48dR2D2.JPG doc.cmgbrasil.starwars/d48dSTORM.JPG
  • 31. Proibida cópia ou divulgação sem permissão escrita do CMG Brasil. Otimizando o uso do AWS S3 - Otimizando PUT Segmentação de arquivos com Multipart via API - Indicado para objetos >= 100 mb - Multipart upload transfere um único objeto como com um conjunto de partes - A partes dos objetos podem ser transferidas em qualquer ordem - O S3 recebe as partes do objeto e remonta o objeto ao fim de transferência
  • 32. Proibida cópia ou divulgação sem permissão escrita do CMG Brasil. Otimizando o uso do AWS S3 - Otimizando PUT Segmentação de arquivos com Multipart via API Pela API -Tracking control: progresso de envio -Possibilidade de enviar partes em paralelo -Controle de falha/restart de todo o processo -Partes menores (chunks) minizam impactos de restarting
  • 33. Proibida cópia ou divulgação sem permissão escrita do CMG Brasil. Otimizando o uso do AWS S3 - Otimizando PUT Multithreading de chamadas API - Aumenta a velocidade de transferência de objetos usando o paralelismo de threads e escalando execuções na CPU - Deve ser aplicado diretamente na linguagem de programação que está usando o SDK - Para uma maior eficiência considerar - Servidores com 2 ou mais núcleos - Redes >= 100Mb/s Exemplo de multhireading usando C#
  • 34. Proibida cópia ou divulgação sem permissão escrita do CMG Brasil. Otimizando o uso do AWS S3 - Otimizando PUT Multithreading de chamadas API Using C# Parallel to copy files to S3 Estudo publicado por minha autoria em 2015 que avaliou e comprovou a eficiência no desempenho de transferência de objetos http://aragostinho.github.io/2015/03/11/using-c-parallel-to-copy-files-to-s3.html Execution Time Elapsed Perfomance Classic For Each 30m 46s 12ms - Parallel.ForEach in directories 3m 25s 842ms 9.34x faster Parallel.ForEach in directories and files 3m 15s 990ms 9.64x faster
  • 35. Proibida cópia ou divulgação sem permissão escrita do CMG Brasil. Otimizando o uso do AWS S3 - Maximizando TCP As conexões com o serviço S3 ocorrem através de portas dinâmicas ConsoleApp de replicação usando AWS APIs cmd prompt netstat -anob
  • 36. Proibida cópia ou divulgação sem permissão escrita do CMG Brasil. Otimizando o uso do AWS S3 - Maximizando TCP Portas dinâmicas – range de portas •Internet Assigned Numbers Authority (IANA): 49152 à 65535 •Linux versões mais recentes: 32768 à 61000 •Windows Server 2012 e 2016: 49152–65535 Em cenários onde o servidor tiver uma carga elevada de trabalho com o uso do S3: -Grande volume de transferência de arquivos (PUT) -Muitas requisições de arquivos (GET/LIST) •É aconselhável verificar o uso de portas dinâmicas (dump nestat) •Efetuar configurações de portas do servidor se detectado um grande uso de portas dinâmicas com bases nas referências de range de portas do SO
  • 37. Proibida cópia ou divulgação sem permissão escrita do CMG Brasil. Otimizando o uso do AWS S3 - Maximizando TCP Portas dinâmicas – exaustão de portas
  • 38. Proibida cópia ou divulgação sem permissão escrita do CMG Brasil. Otimizando o uso do AWS S3 - Maximizando TCP Aumentando portas dinâmicas no Windows Server netsh int ipv4 show dynamicportrange tcp netsh int ipv4 set dynamicport tcp start=1025 num=64510 Via cdm prompt
  • 39. Proibida cópia ou divulgação sem permissão escrita do CMG Brasil. Otimizando o uso do AWS S3 - Maximizando TCP Redução do TIME_WAIT (quando necessário) TIME_WAIT: O tempo de espera que uma conexão fechada possa ser liberada para reutilização. A RFC 793 requer que a TCP mantenha uma conexão fechada em um intervalo de ao menos 2x tempo de vida máximo de um segmento de rede (120 segundos) Clint Huffman Microsoft PFE - Technet “Also, consider decreasing the TIMED WAIT delay using the TcpTimedWaitDelay registry key”
  • 40. Proibida cópia ou divulgação sem permissão escrita do CMG Brasil. Otimizando o uso do AWS S3 - Maximizando TCP Redução do TIME_WAIT (quando necessário) 1. Executar Regedit 2. HKEY_LOCAL_MACHINESYSTEMCurrentControlSetservicesTcpipParameters 3. Criar uma nova entrada DWORD (32 bit) named: TcpTimedWaitDelay 4. Setar um valor decimal 5. Reboot Valor mínimo: 30 Valor máximo: 240
  • 41. Proibida cópia ou divulgação sem permissão escrita do CMG Brasil. Otimizando o uso do AWS S3 - Acelerador de transferência S3 Transfer Acceleration - Indicado para ganhos de perfomance na transferência de arquivos para buckets em regiões diversas - Faz intermediação com o S3 endpoint carregando todo o tráfego HTTP/HTTPS para uma ponte de rede otimizada que funciona entre a camada Cloudfront mais próxima - A ativação é feita sobre o bucket porém seu uso é feito somenta na chamada APIAmazon S3 Transfer Acceleration Speed Comparison
  • 42. Proibida cópia ou divulgação sem permissão escrita do CMG Brasil. Experimentos de replicação de arquivos para S3 Escopo - O objetivo desta seção é abordar um experimento que pode ser aplicado para simular a replicação de arquivos considerando os seguintes tópicos abordados: - Uso de servidores EC2 em 3 diferentes tipos de instância - Criação do bucket S3 na mesma região dos servidores EC2 - Uma ferramenta de transferência multi-threading criada especificamente para a replicação de dados Não será abordado no experimento: - Construção de keynames com hash - Maximização de portas TCP - Upload usando multi-part (chunks) - Ativação do S3 Transfer Acceleration
  • 43. Proibida cópia ou divulgação sem permissão escrita do CMG Brasil. Experimentos de replicação de arquivos para S3 Escopo - Utilizado: - Os serviços AWS Ec2 e S3 - Windows Server 2016 - AWS SDK para .NET (Linguagem C#) - Algoritmos e técnicas de programação usando paralelismo - Ao todo 2 experimentos foram executados: - Experimento A - Transferência Non-Multithreading - Experimento B - Transferência Multithreading - Benchmarking dos resultados
  • 44. Proibida cópia ou divulgação sem permissão escrita do CMG Brasil. Experimentos de replicação de arquivos para S3 • Para testar os experimentos um diretório “samplefolder” foi criado com 4 arquivos: Casos de testes Arquivos Diretórios Níveis de diretórios Distribuição Arquivos/Pasta Tamanho total 1 8.000 2.000 1 4 3.80GB 2 30.000 3.000 3 10 6.69GB 3 100.000 25.000 1 4 47.5GB Casos de testes • O mesmo diretório foi replicado para compor 3 casos de testes 1.94MB
  • 45. Proibida cópia ou divulgação sem permissão escrita do CMG Brasil. Experimentos de replicação de arquivos para S3 • 3 computadores EC2 como palco do experimentos • Processadores Intel Xeon E5-2666 v3 (Haswell) de alta frequência otimizados especificamente para o EC2 classe de instância c4 • Otimizado para EBS por padrão • Suporte a redes aperfeiçoadas e clustering Name Memory vCPUs Instance Storage Network Performance EBS Optimized: Max Bandwidth c4.large 3.75 GB 2 vCPUs EBS only Moderate 500.0 Mbps c4.xlarge 7.5 GB 4 vCPUs EBS only High 750.0 Mbps c4.2xlarge 15.0 GB 8 vCPUs EBS only High 1000.0 Mbps Ambientes
  • 46. Proibida cópia ou divulgação sem permissão escrita do CMG Brasil. Experimentos de replicação de arquivos para S3 Ferramenta de replicação CopyFasterToS3 - Console aplication desenvolvida para auxiliar na cópia de milhões de arquivos durante um projeto de migração. Solução utilizada para suprir a carência de ferramentas não otimizadas para este fim. Descrição técnica •AWS S3 SDK .Net versão 3.3.5 •.Net C# - Framework 4.5 •Multithread usando C# Parallels •Algorítimo de recursividade em cauda •Stopwatch (System.Diagnostics) para benchmarking Código aberto em: https://github.com/aragostinho/CopyFasterToS3
  • 47. Proibida cópia ou divulgação sem permissão escrita do CMG Brasil. Experimentos de replicação de arquivos para S3 Ferramenta execução dos testes Console application CopyFasterToS3
  • 48. Proibida cópia ou divulgação sem permissão escrita do CMG Brasil. Experimentos de replicação de arquivos para S3 Ferramenta execução dos testes Console application CopyFasterToS3 Exemplo de método recursivo em cauda usando ForEach Parallel (System.Threading.Tasks.Parallel) para chamada do método SaveObject() da classe BAmazon().
  • 49. Proibida cópia ou divulgação sem permissão escrita do CMG Brasil. Experimentos de replicação de arquivos para S3 Método de benchmarking – Time Elapsed de processamento Exemplo de benchmarking usando a classe Stopwatch() para capturar o Time Elapsed do processamento do método ReplicationFiles() da classe estática ReplicationToS3(). A impressão da saída na console aplication é composta por horas, minutos, segundos e milesegundos.
  • 50. Proibida cópia ou divulgação sem permissão escrita do CMG Brasil. Experimentos de replicação de arquivos para S3 Método de benchmarking – Exemplo
  • 51. Proibida cópia ou divulgação sem permissão escrita do CMG Brasil. Experimentos de replicação de arquivos para S3 Etapas de execução do testes 1) Experimento A Transferência Non-Multithreading 2) Experimento B Transferência Multithreading
  • 52. Proibida cópia ou divulgação sem permissão escrita do CMG Brasil. Experimentos de replicação de arquivos para S3 Servidor Caso de teste 1 Caso de teste 2 Caso de teste 3 c4.large 00h 09m 19s 998ms 00h 27m 59s 001ms 02h 00m 12s 295ms c4.xlarge 00h 09m 39s 195ms 00h 27m 00s 800ms 01h 57m 29s 282ms c4.2xlarge 00h 09m 04s 300ms 00h 26m 15s 684ms 02h 02m 02s 069ms 1) Resultados: Experimento A
  • 53. Proibida cópia ou divulgação sem permissão escrita do CMG Brasil. Experimentos de replicação de arquivos para S3 Servidor Caso de teste 1 Caso de teste 2 Caso de teste 3 c4.large 00h 01m 32s 861ms 00h 02m 59s 952ms 00h 17m 45s 375ms c4.xlarge 00h 00m 59s 225ms 00h 02m 01s 554ms 00h 09m 38s 791ms c4.2xlarge 00h 00m 43s 619ms 00h 01m 33s 790ms 00h 07m 08s 656ms 2) Resultados: Experimento B
  • 54. Proibida cópia ou divulgação sem permissão escrita do CMG Brasil. Experimentos de replicação de arquivos para S3 Servidor Experimento A Experimento B c4.large 02h 37m 31s 294ms 00h 22m 18s 188ms c4.xlarge 02h 34m 09s 277ms 00h 12m 39s 570ms c4.2xlarge 02h 37m 22s 053ms 00h 09m 26s 065ms Total 07h 49m 02s 624ms 00h 44m 23s 823ms 3) Comparando os resultados Experimento B foi 90%mais eficiente que o experimento A
  • 55. Proibida cópia ou divulgação sem permissão escrita do CMG Brasil. Desafios na migração de File System para S3 Uma empresa hipotética de e-commerce já possui alguns de seus serviços em nuvem AWS - Servidores já se encontram virtualizados (EC2). - Redes VPC, Blocos de IP, Zona DNS e Load Balance configurados. Porém... essa mesma empresa ainda utiliza armazenamento de arquivos em File System padrão com um GRANDE VOLUME de dados (TBs). O CTO da empresa decide que é hora de migrar todo o volume de dados para armazenamento de arquivos na nuvem, e decide junto a equipe técnica utilizar a AWS S3. Por onde começar?
  • 56. Proibida cópia ou divulgação sem permissão escrita do CMG Brasil. Desafios na migração de File System para S3 Quais soluções? Baixar (free) e/ou comprar ferramentas na AWS Marketplace? Apertar botões e está tudo resolvido?! Dificilmente isso vai dar certo!
  • 57. Proibida cópia ou divulgação sem permissão escrita do CMG Brasil. Desafios na migração de File System para S3 Pré-requisitos: - Entender a diferença entre File System e Cloud File System - Conhecer profundamente o serviço de Cloud File System a ser utilizado: - Disponibilidade - Escalabilidade - Custos - Segurança - Desempenho - Dependendo das necessidades ferramentas não farão milagres. - Recrutar profissionais capacitados. - Montar um projeto de migração.
  • 58. Proibida cópia ou divulgação sem permissão escrita do CMG Brasil. Desafios na migração de File System para S3 Elicitação de requisitos do projeto de migração: - Analisar cuidadosamente o que deve ser migrado - Fazer tudo? Por partes? Paralelo? - Levantar informações sobre o que será migrado - Volume de diretórios e arquivos - Tamanho médio de cada arquivo - Tamanho total de diretórios - Tipos de arquivos - Definir acessibilidade - O que deve ser público? O que deve ser privado? - Estrutura hierárquica de diretórios - Será mantida? Sofrerá alterações?
  • 59. Proibida cópia ou divulgação sem permissão escrita do CMG Brasil. Desafios na migração de File System para S3 Elicitação de requisitos do projeto de migração: - Estrutura de diretórios - Como manter? Como aplicar as recomendações de key name? - Arquivos - Como aplicar recomendações de key name? - Como aplicar recomendações para GET? - Volume de transferência - Como transferir com eficiência? - Como garantir a integridade dos arquivos transferidos? - Como manter a integridade entre o que está sendo migrado e o que ainda não foi migrado?
  • 60. Proibida cópia ou divulgação sem permissão escrita do CMG Brasil. Desafios na migração de File System para S3 Após levantar todas as possíveis perguntas…. - Algumas das respostas estão no uso de boas práticas citadas nesta apresentação. - Porém, para todas elas será necessário o uso de SDKs.
  • 61. Proibida cópia ou divulgação sem permissão escrita do CMG Brasil. Desafios na migração de File System para S3 SDKs - A utilização de SDKs facilitam a manipulação de operações PUT/GET/LIST para a linguagem de programação a ser usada. - Algumas configurações só podem ser feitas pela API, por exemplo o uso do S3 Transfer Aceleration. - Indicado para atender à todos os requisitos do projeto de migração como por exemplo modificação da estrutura de diretórios e uso de recomendações para key names. - Antes mesmo de migrar, permite que o software legado possa ser implementado com o SDK e já comece a atuar na nova estrutura de arquivos no S3.
  • 62. Proibida cópia ou divulgação sem permissão escrita do CMG Brasil. Desafios na migração de File System para S3 Utilitários S3CMD s4cmd Super S3 command line tool Linux/Mac PythonWindows - Podem ser usados para mover grande volumes de arquivos sem uma estratégia de modificação de estrutura de diretório e confecção de key names. - Úteis para atuar em arquivos que já estão no S3, como por exemplo a aplicação de metatags em arquivos e encryptação.
  • 63. Proibida cópia ou divulgação sem permissão escrita do CMG Brasil. Conclusão do estudo Objetivo 1 Boas práticas e recomendações de uso da AWS S3 proporcionaram boas melhorias no desempenho de operações PUT/GET/LIST. Objetivo 2 Os experimentos executados comprovam a eficiência nas técnicas linguagem de programação empregadas com o intuito de potencializar o uso das APIs. O experimento B usando a transferência multithreading foi 90% mais eficiente que o experimento. Objetivo 3 A migração de File System para Cloud File System deve ser planejada considerando diversos questionamentos entre Stakeholders e equipe técnica. Os dois sistemas de arquivos por serem completamente diferentes, não proporcionam uma migração simples e sem um bom conhecimento.
  • 64. Proibida cópia ou divulgação sem permissão escrita do CMG Brasil. That's all folks! Obrigado :) André Rocha Agostinho andre@magnadev.com.br https://github.com/aragostinho Doubts? Contact me!
  • 65. Proibida cópia ou divulgação sem permissão escrita do CMG Brasil. Referências Distributed systems principles and paradigms Tanembaum S. Andrew, Van S. Maarten (2007) Operating Systems Design and Implementation Tanembaum S. Andrew, Woodhull S. Albert (2006) AWS Storage Services - Overview - A Look at Storage Services Offered by AWS https://d0.awsstatic.com/whitepapers/AWS%20Storage%20Services%20Whitepaper-v9.pdf Maximizing Amazon S3 Performance | AWS re:Invent 2014 - Felipe Garcia https://www.slideshare.net/AmazonWebServices/pfc403-maximizing-amazon-s3-performance-aws-reinvent-2014? ref=https://cloudnative.io/blog/2015/01/aws-s3-performance-tuning/ 10 Things You Might Not Know About Using S3 https://www.sumologic.com/aws/s3/10-things-might-not-know-using-s3/ AWS S3 Performance Tuning https://cloudnative.io/blog/2015/01/aws-s3-performance-tuning Request Rate – Perfomance Considerations http://docs.aws.amazon.com/AmazonS3/latest/dev/request-rate-perf-considerations.html
  • 66. Proibida cópia ou divulgação sem permissão escrita do CMG Brasil. Referências TCP Window Scaling http://docs.aws.amazon.com/AmazonS3/latest/dev/TCPWindowScaling.html TCP Extensions for High Performance V. Jacobson, R. Braden, D. Borman - Network Working Group http://www.ietf.org/rfc/rfc1323.txt The TIME-WAIT state in TCP and Its Effect on Busy Servers - Theodore Faber, Joe Touch, Wei Yue - University of Southern California/Information Sciences Institute http://www.isi.edu/touch/pubs/infocomm99/infocomm99-web/ Detecting ephemeral port exhaustion – Technet Microsoft https://blogs.technet.microsoft.com/clinth/2013/08/09/detecting-ephemeral-port-exhaustion/ Amazon S3 Transfer Acceleration Examples http://docs.aws.amazon.com/AmazonS3/latest/dev/transfer-acceleration-examples.html Service Name and Transport Protocol Port Number Registry https://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.xhtml AWS S3 vs Google Cloud vs Azure: Cloud Storage Performance http://blog.zachbjornson.com/2015/12/29/cloud-storage-performance.html
  • 67. Proibida cópia ou divulgação sem permissão escrita do CMG Brasil. Anexos Execução do testes – Servidor c4.large - Multithreading 2 Caso de teste: 00h 02m 59s 952ms 3 Caso de teste: 00h 17m 45s 375ms 1 Caso de teste: 00h 01m 31s 861ms
  • 68. Proibida cópia ou divulgação sem permissão escrita do CMG Brasil. Anexos Execução do testes – Servidor c4.xlarge - Multithreading 2 Caso de teste: 00h 02m 01s 554ms 3 Caso de teste: 00h 09m 38s 791ms 1 Caso de teste: 00h 00m 59s 225ms
  • 69. Proibida cópia ou divulgação sem permissão escrita do CMG Brasil. Anexos Execução do testes – Servidor c4.2xlarge - Multithreading 2 Caso de teste: 1m 33s 790ms 3 Caso de teste: 7m 08s 656ms 1 Caso de teste: 43s 619ms
  • 70. Proibida cópia ou divulgação sem permissão escrita do CMG Brasil. Anexos Execução do testes – Servidor c4.large - NonMultithreading 2 Caso de teste: 00h 27m 59s 001ms 3 Caso de teste: 02h 00m 12s 295ms 1 Caso de teste: 00h 09m 19s 998ms
  • 71. Proibida cópia ou divulgação sem permissão escrita do CMG Brasil. Anexos Execução do testes – Servidor c4.xlarge - NonMultithreading 2 Caso de teste: 00h 27m 00s 800ms 3 Caso de teste: 01h 57m 29s 282ms 1 Caso de teste: 00h 9m 39s 195ms
  • 72. Proibida cópia ou divulgação sem permissão escrita do CMG Brasil. Anexos Execução do testes – Servidor c4.2xlarge - NonMultithreading 2 Caso de teste: 00h 26m 15s 684ms 3 Caso de teste: 02h 02m 02s 069ms 1 Caso de teste: 00h 9m 04s 300ms

Notas do Editor

  1. Google files tend to be very large, commonly ranging up to multiple gigabytes, where each one contains lots of smaller objects. Moreover, updates to files usually take place by appending data rather than overwriting parts of a file. These observations, along with the fact that server failures are the norm rather than the exception, lead to constructing clusters of servers as shown in Fig. 11-5. Each GFS cluster consists of a single master along with multiple chunk servers. Each GFS file is divided into chunks of 64 Mbyte each, after which these chunks are distributed across what are called chunk servers. An important observation is that a GFS master is contacted only for metadata information. In particular, a GFS client passes a file name and chunk index to the master, expecting a contact address for the chunk. The contact address contains all the information to access the correct chunk server to obtain the required file chunk. To this end, the GFS master essentially maintains a name space, along with a mapping from file name to chunks. Each chunk has an associated identifier that will allow a chunk server to lookup it up. In addition, the master keeps track of where a chunk is located. Chunks are replicated to handle failures, but no more than that. An interesting feature is that the GFS master does not attempt to keep an accurate account of chunk locations. Instead, it occasionally contacts the chunk servers to see which chunks they have stored. The advantage of this scheme is simplicity. Note that the master is in control of allocating chunks to chunk servers. In addition, the chunk servers keep an account of what they have stored. As a consequence, once the master has obtained chunk locations, it has an accurate picture of where data is stored. However, matters would become complicated if this view had to be consistent all the time. For example, every time a chunk server crashes or when a server is added, the master would need to be informed. Instead, it is much simpler to refresh its information from the current set of chunk servers through polling. GFS clients simply get to know which chunk servers the master believes is storing the requested data. Because chunks are replicated anyway, there is a high probability that a chunk is available on at least one of the chunk servers