Nosso estudo de caso apresenta uma solução de arquitetura para o problema de geração e armazenamento de imagens para um site. Utilizando o poder da nuvem (cloud), combinado a tecnologias de cache e tratamento de imagens, foi possível alcançar escalabilidade e robustez na geração das imagens, o que permite ao negócio continuar estável e eficiente.
1. PÓS-GRADUAÇÃO
MBA em Arquitetura de Soluções
Arquitetura de Bancos de Dados
Solução para Publicação de Imagens em ambiente web
de alta disponibilidade
Constantino Junior - RM 45165
Felipe Caparelli - RM 45346
Felipe Lima - RM 45169
Robson Moreira - RM 44979
Profa Dra Regina Cantele
Out/2013
MBA em Arquitetura de Soluções
1
Arquitetura de Banco de Dados
2. SUMÁRIO
1. Introdução
1. Sistema
2. Problemas
Objetivos
1. Arquitetura
•
Tecnologias utilizadas
2. Aspectos Positivos e Negativos
3. Conclusão
MBA em Arquitetura de Soluções
2
Arquitetura de Banco de Dados
3. 1. Introdução - Sistema
O sistema de anúncios FIAP, é alimentado com diversos
tipos de imagens associadas a dados (imagens de veículos,
anúncios, notícias e etc.).
As imagens desempenham um papel central na experiência
do usuário ao navegar no site.
O volume de imagens servidas mensalmente é bastante alto
(em torno de 9 TeraBytes).
Uma mesma imagem pode ter tamanhos diferentes, o que
multiplica sua quantidade (mais de 1 milhão de imagens a
partir de 350 mil originais).
MBA em Arquitetura de Soluções
3
Arquitetura de Banco de Dados
4. 1. Introdução - Problemas
Armazenamento das imagens em servidores locais,
alcançando o limite máximo de storage.
Gerenciador de cache instável, causando reinicialização
do sistema por estar sendo executado no mesmo
servidor que o sistema principal.
Para diferentes tamanhos de imagens, era necessário
espaço em disco, fazendo o storage crescer
aproximadamente quatro vezes ao número de anúncios
no site.
MBA em Arquitetura de Soluções
4
Arquitetura de Banco de Dados
5. 2. Objetivos
Superar a limitação de storage local de imagens.
Disponibilizar imagens em qualquer tamanho de
forma mais eficiente.
Administrar o cache sem impactar diretamente o
sistema.
MBA em Arquitetura de Soluções
5
Arquitetura de Banco de Dados
6. 3. Arquitetura – Tecnologias utilizadas
Armazenamento na nuvem: Amazon S3 (Simple Storage Service)
Virtualização na nuvem: Amazon EC2
Processamento de imagens:
PHP + ImageMagick
Gerenciamento de Cache:
Nginx (cache em disco)
+ Varnish (cache em memória)
MBA em Arquitetura de Soluções
6
Arquitetura de Banco de Dados
7. 3. Arquitetura – Fluxo de Informação
Cliente
Buscar imagens
Banco de dados
FIAP Carros APP
FIAP App
Gerenciador de imagens
Amazon S3
MBA em Arquitetura de Soluções
7
Arquitetura de Banco de Dados
8. 3. Arquitetura – Requisição de Imagem
Servidor de imagens no EC2
Requisição
Se existe, busca no S3
Cliente
Varnish
Nginx
PHP App
Amazon S3
Se não, busca na aplicação
FIAP carros APP
FIAP App
MBA em Arquitetura de Soluções
8
Banco de dados
Arquitetura de Banco de Dados
9. 4. Aspectos Positivos e Negativos
Positivos
Escalabilidade
Eliminação dos limites de armazenamento
Gerencia de cache mais eficiente
Negativos
Latência
Complexidade da tecnologia
Exigência de profissionais capacitados
MBA em Arquitetura de Soluções
9
Arquitetura de Banco de Dados
10. 5. Conclusões
O modelo tem se mostrado bem estável em
relação ao desempenho e disponibilidade do
serviço.
O controle do cache, por ter uma complexidade
maior que o seu antecessor, exige uma atenção
maior na implementação de novas
funcionalidades.
MBA em Arquitetura de Soluções
10
Arquitetura de Banco de Dados
11. Obrigado !
MBA em Arquitetura de Soluções
11
Arquitetura de Banco de Dados