arquiteturas de software para o século xxi
DESCRIPTION
Deck de slides da palestra "Arquiteturas de Software para o Século XXI". Vídeo gravado do webinar disponível em https://vimeo.com/74964108TRANSCRIPT
Arquiteturas de Software
para o Século XXI
José Papo
Amazon Evangelist
@josepapo
On demand Pague pelo uso
Self Service Automatizado
Utility computing
Utility computing
Android iOS Java nodeJS .NET PHP Python Ruby
Rico conjunto de APIs e kits de dev para as principais linguagens e plataformas
E ferramentas e plugins integrados ao seu ambiente de desenvolvimento
Eclipse Visual Studio CLI Powershell
Suporte a muitas linguagens e ferramentas
Infraestrutura Global US West
(Northern
California)
US East (Northern
Virginia)
EU (Ireland)
Asia
Pacific (Singapore)
Asia
Pacific (Tokyo)
Regiões AWS
Pontos Edge AWS
GovCloud (US ITAR
Region)
US West (Oregon)
South
America (Sao Paulo)
Asia
Pacific (Australia)
Arquiteturas de Alta Disponibilidade na Nuvem
Cliente pode decidir onde suas aplicações e dados residem
Acelerando o boom das startups e novos devices
Otimizando as Grandes Corporações
Dezenas de Milhares de Clientes na América Latina
Com AWS, cresça de um servidor
…para milhares
Totalmente automatizado!
Além de escalabilidade nos servidores você pode
Adicionar bilhões de objetos com o Amazon S3
Selecionar a performance desejada nos bancos de
dados
Processar e analisar petabytes de dados facilmente
Oferecer Arquiteturas de Alta Disponibilidade com
Baixo Custo
‘Cost Aware Architecture’
…ao utilizar: Reduza Custo de
Compute
1. S3/CloudFront para Otimização de conteúdo estático
2. Load Balancing e Auto-Scaling desde o início
Storage 4. Armazenar objetos derivados no S3 ‘Reduced
Redundancy’ e usar Glacier sempre que possível
Banco de Dados 5. Read Replicas e/ou ElastiCache para performance
e redução de custos dos bancos de dados
Dev & Test 6. Ambientes Dev/Test/CI criados/desligados sob demanda
3. Modelos de Preços On-Demand, Reservado e Spot
7. A/B Testing e Testes de Carga mais baratos
O que isso significa em termos de custos?
Um Exemplo
Mês
Instancias EC2 Medium 1 $ 121
CloudFront Data Transfer Out 1Tb $ 168
Requisições CloudFront $1.89
TOTAL $ 291
Mês
Instancias EC2 Medium 4 $ 485
AWS Data Transfer Out 1Tb $ 194
TOTAL $ 679
Arquitetura Usual Arquitetura Otimizada
Custo 57% menor - Até 6 x mais rápido
Volume de Storage no S3
Números de Horas de Servidores EC2
Fevereiro de 2013
48,7 milhões de usuários
Levantou $338M de capital
Valuation de $2.5B
Web Application
Servers
Sharded Database
Cache Servers Internal
Web Services
File Storage
Servidores de Aplicação Python
150 instancias EC2 High-CPU
Web Application
Servers
Sharded Database
Cache Servers Internal
Web Services
File Storage
Web Services em Python
35 instancias EC2 High-CPU
Web Application
Servers
Sharded Database
Cache Servers Internal
Web Services
File Storage
Caches Memcache e Redis
90 instancias EC2 High-Memory
Web Application
Servers
Sharded Database
Cache Servers Internal
Web Services
File Storage
Servidores de Bancos de Dados MySQL
70 Pares Master/Slave
Web Application
Servers
Sharded Database
Cache Servers Internal
Web Services
File Storage
Srorage no Amazon S3
8 Bilhões de Objetos • 410 Terabytes
Web Application
Servers
Sharded Database
Cache Servers Internal
Web Services
File Storage
Serviços Auxiliares
60 Instancias EC2
Development
Logging
Operational Tools
Asynchronous
Task Workers Search
Data Analysis
Elastic MapReduce Continuous Integration
• Maior parte do tráfego acontece à tarde e no início da noite, portanto reduzem o número
de servidores durante a madrugada em 40%.
• No pico gastam $52 por hora com EC2 e à noite, for a do pico, o gasto é de $15 por hora.
Economias de até 71%
Ambientes Dev / Test
Versão de Homologação
Versão Beta / MVP
Arquitetura de
Produção 1.0
1 2
3
Mas e as sessões?
Ideal é criar
aplicações stateless
Se não for possível,
há 3 opções…
Manter o estado no
servidor Web Se servidor cair sessão dos usuários
naquele servidor são perdidas. Não é
recomendado.
Manter o estado no Banco de Dados
Relacional Performance menor, pois o estado está
em disco. Bom usar para estado de longa duração (exemplo: carrinho da Amazon)
Manter o estado no
Banco de Dados
NoSQL Gerencie sessões com o DynamoDB
Manter o estado em
um Cache de Memória Solução escalável e que oferece excelente
performance e alta disponibilidade com cluster
Arquitetura de
Produção 2.0
Arquitetura de
Produção 3.0
Arquitetura de
Produção 4.0
“Companies are all about focus. AWS enables focus" Ray Bradford, Kleiner Perkins, Caulfield & Byers
Sua aplicação
Seu negócio e seu diferencial competitivo
Inovação, não gestão de hardware / data centers / software
Investir tempo dos profissionais de TI no que importa
Automatizar o máximo que puder
(Insight profundo: Tempo do Profissional de TI = Muito Dinheiro!)
Automação = Foco!
…cresceu para 14 milhões de usuários em menos de um ano
…chegou a 150 milhões de fotos e terabytes de dados
…1 milhão de usuários em 12 horas após lançar versão Android
…mais de 100 milhões de usuários ativos em Janeiro de 2013
na Nuvem da AWS… com 3 engenheiros
Automação
Total
Controle
Total
Elastic
Beanstalk
CloudFormation
“Só quero minha
aplicação funcionando,
com acesso a servidores
só se necessário”
“Eu quero colocar no
controle de versões
toda a definição do meu
data center”
Construa Aplicações, Não Infraestrutura
AWS
OpsWorks
“Quero usar o Chef com
simplicidade e
orquestração de recipes”
EC2 EBS
RDS ELB
Upload de sua aplicação Beanstalk faz deploy Você ainda tem controle
Elastic Beanstalk
Não construa seu próprio…
1. Disparador de Emails
2. Fila de Mensagens
3. Notificações
4. Transcoding
5. Busca
6. Monitoração
7. Gestão de Workflow
…Use serviços prontos quando possível
…mas use como serviço
Amazon Simple Email Service
Amazon Simple Queuing Service
Amazon Simple Notification Service
Amazon Elastic Transcoder
Amazon CloudSearch
Amazon CloudWatch
Amazon Simple Work Flow
DEMOS!!!
OBRIGADO! awshub.com.br
slideshare.net/AmazonWebServicesLATAM
José Papo
Amazon Evangelist
@josepapo