View
413
Download
1
Category
Preview:
Citation preview
André Paulovich
Arquiteto de Softwares
ASPNET MVP 2011-2014
Arquitetando sistemas para obter o melhor da nuvem.
André Paulovichandrepg@ciandt.com | @andrepaulovich
MCP | MCTS | MCT | MCAD | MCSD.Net | MVP Asp.Net 2011-2014
Como é hoje?
Uso
Co
mp
uta
ção
Tempo
Uso
Inatividade
“Liga/Desliga“
• Cargas On/Off (ex.:. Job batch)• Desperdício da capacidade provisionada• Time to market pode ser retardado
Padrões de UsoImposto de rendaCadastro FIES
Uso
Co
mp
uta
ção
Tempo
“Crescimento Rápido“
• Serviços que precisam crescer e escalar• Crescer é um desafio grande na TI• Deployment complexo
Padrões de UsoWhatsappFacebookTwitter
Co
mp
uta
ção
Tempo
“Pico Imprevisível“
Uso
• Pico de demanda inesperada• Desempenho comprometido pelo pico• Difícil provisionar nos casos extremos
Padrões de UsoSite de Notícias“Earth Shake”
Co
mp
uta
ção
Tempo
Uso
“Pico Previsível“
• Serviços com micro sazonalidades• Picos devido a demandas periódicas• Complexidade da TI + desperdício
Padrões de UsoSistemas estudantisBancos
Mesmo “prevendo” você ainda tem um problema!
Tempo
Cap
acid
ade
de T
I
Carga
Alocação de capacidades
Desperdício de capacidades
Falta de capacidades
Previsão de carga
Padrão de Crescimento de Capacidade de TI
Manutenível Disponível Escalável
Econômico
Manutenível Disponível Escalável
Econômico
Manutenível Disponível Escalável
Econômico
Manutenível Disponível Escalável
Econômico
Tempo
Cap
acid
ade
de T
I
Carga
Alocação de capacidades
Desperdício de capacidades
Falta de capacidades
Previsão de carga
Padrão de Crescimento de Capacidade de TI
CargaRedução do
investimento inicial
Redução do excesso de TI
Sem falta de capacidades
Redução das capacidades
nos momentos de redução da
carga
Tempo
Cap
acid
ade
de T
IPrevisão de carga
Escalável
Manutenível Disponível Escalável
Econômico
Comparativo simples!
https://awstcocalculator.com
Entenda o contexto
Big Users
Fonte: ProgrammableWeb
Clube dos Bilhões5+ Bilhões de Calls/Dia1+ Bilhões de Calls/Dia
A Internetdas coisas
E a exigência dos usuários é cada vez
MAIOR!!!
Evolução
Virtualização
Físico SaaSVirtual IaaS PaaS
Nuvem
35
Modelos
Seu Datacenter
Virtualization
O/S
Hardware
Network
Data
Applications
Firewall
Web Sites
Applications
Data
Serviços na Nuvem
Applications
Firewall Rules
Data
Virtual Network
Máquinas Virtuais
Virtual Network
Data
Applications
Firewall Rules
O/S
Quanto mais à direita, maior o foco no “negócio”
Cloud Services
90% das aplicações são assim.
Desafios arquiteturais
Posso pegar minha aplicação atual e publicá-la na nuvem para ter todas estas vantagens?
Ele continua sendo um
Porco!
“On the line”
Clickgram
Você é o responsável pela infraestrutura de um novo aplicativo chamado Clickgram.
O Clickgram permite que qualquer pessoa compartilhe uma foto com seus amigos em apenas um clique!
Chegou o momento de você colocar o aplicativo no ar e seu chefe exigiu que não ocorram problemas de escalabilidade ou de disponibilidade.
Requisição Resposta
JAVA
MySQLREDIS HD
Requisição Resposta
Servidor 01
JAVA
MySQLREDIS HD
Mas lembre-se de que precisa ser
escalável!
Servidor 01
JAVA
MySQLREDIS HD
Servidor 02
JAVA
MySQLREDIS HD
Requisição Resposta Requisição Resposta
MySQLREDIS HD
Parece bom, mas as camadas de dados não são escaláveis simplesmente “dobrando” os servidores.
E agora?!
Requisição Resposta
Servidor 01
JAVA
MySQLREDIS HD
Novamente parece muito bom!
Esta abordagem de montar um servidor mais potente vai funcionar por um tempo, mas tem um limite físico.
Voltamos à estaca zero!
Dica de ouro!
Servidor Servidor
Servidor Servidor
JAVA
MySQL
REDIS
HD
Isole cada componente da sua aplicação!
Problema: O banco de dados está muito lento.O que fazer?
Servidor (master) Servidor
Servidor Servidor
JAVA
MySQL
REDIS
HD
Um master-slave pode funcionar!
Servidor (slave)
MySQL
Os bancos relacionais, são “limitados”!
(DBA´s por favor sem polêmica)
Servidor Servidor
Servidor Servidor
JAVA
NoSQL
REDIS
HD
Mas considere usar bancos NO-SQL
Problema: A quantidade de escritas e leituras no sistema de arquivos (armazenamento de fotos) precisa aumentar.
O que fazer?
Servidor Servidor
Servidor Servidor
JAVA
NoSQL
REDIS
Storage
Não use um sistema de arquivos convencional.
Problema: O sistema de cache precisa de mais memória.O que fazer?
Servidor Servidor
Servidor Servidor
JAVA
NoSQL
REDIS + Memória
Storage
Neste caso, aumentar a memória de um servidor basta!
Problema: A aplicação não está atendendo todas as requisições por conta de limitação do processamento.
O que fazer?
Servidor
Servidor
Servidor Servidor
JAVA
NoSQL
REDIS + Memória
Storage
Dobramos a aplicação e adicionamos um balanceador de carga! Voilá!
Servidor
JAVA
Servidor
LoadBalancerRequisição
Resposta
Servidor
Servidor
Servidor Servidor
GAE
DataStore
GAE - MEMCACHE
Cloud Storage
Servidor
GAE
Servidor
Cloud NetworkingRequisição
Resposta
Visão usando “recursos de nuvem” do google.
Servidor
Servidor Servidor
GAE
DataStore
GAE - MEMCACHE
Servidor
GAE
Servidor
Cloud NetworkingRequisição
Resposta
Indo ainda além… pense fora da caixa.
Comparando Nuvens!
• Não é tão simples.
• Esteja “por dentro” das vantagens específicas de cada nuvem.• Precificação• Modelo de cobrança• Tecnologias de plataforma e serviços
• Revisite sua arquitetura.• Seja flexível• Não tenha um escopo fechado
Perguntas?!
Por hoje é só pessoal!
Obrigado, velhinhos!
THANKYOU FOR
YOURTIME!
Recommended