62
Arquiteturas de Software para o Século XXI José Papo Amazon Evangelist @josepapo

Arquiteturas de Software para o Século XXI

Embed Size (px)

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/74964108

Citation preview

Page 1: Arquiteturas de Software para o Século XXI

Arquiteturas de Software

para o Século XXI

José Papo

Amazon Evangelist

@josepapo

Page 2: Arquiteturas de Software para o Século XXI

On demand Pague pelo uso

Self Service Automatizado

Utility computing

Page 3: Arquiteturas de Software para o Século XXI

Utility computing

Page 4: Arquiteturas de Software para o Século XXI

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

Page 5: Arquiteturas de Software para o Século XXI
Page 6: Arquiteturas de Software para o Século XXI
Page 7: Arquiteturas de Software para o Século XXI

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)

Page 8: Arquiteturas de Software para o Século XXI

Arquiteturas de Alta Disponibilidade na Nuvem

Cliente pode decidir onde suas aplicações e dados residem

Page 9: Arquiteturas de Software para o Século XXI
Page 10: Arquiteturas de Software para o Século XXI
Page 11: Arquiteturas de Software para o Século XXI

Acelerando o boom das startups e novos devices

Page 12: Arquiteturas de Software para o Século XXI

Otimizando as Grandes Corporações

Page 13: Arquiteturas de Software para o Século XXI

Dezenas de Milhares de Clientes na América Latina

Page 14: Arquiteturas de Software para o Século XXI

Com AWS, cresça de um servidor

Page 15: Arquiteturas de Software para o Século XXI

…para milhares

Totalmente automatizado!

Page 16: Arquiteturas de Software para o Século XXI

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

Page 17: Arquiteturas de Software para o Século XXI

‘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

Page 18: Arquiteturas de Software para o Século XXI

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

Page 19: Arquiteturas de Software para o Século XXI
Page 20: Arquiteturas de Software para o Século XXI
Page 21: Arquiteturas de Software para o Século XXI

Volume de Storage no S3

Page 22: Arquiteturas de Software para o Século XXI

Números de Horas de Servidores EC2

Page 23: Arquiteturas de Software para o Século XXI

Fevereiro de 2013

48,7 milhões de usuários

Levantou $338M de capital

Valuation de $2.5B

Page 24: Arquiteturas de Software para o Século XXI

Web Application

Servers

Sharded Database

Cache Servers Internal

Web Services

File Storage

Page 25: Arquiteturas de Software para o Século XXI

Servidores de Aplicação Python

150 instancias EC2 High-CPU

Web Application

Servers

Sharded Database

Cache Servers Internal

Web Services

File Storage

Page 26: Arquiteturas de Software para o Século XXI

Web Services em Python

35 instancias EC2 High-CPU

Web Application

Servers

Sharded Database

Cache Servers Internal

Web Services

File Storage

Page 27: Arquiteturas de Software para o Século XXI

Caches Memcache e Redis

90 instancias EC2 High-Memory

Web Application

Servers

Sharded Database

Cache Servers Internal

Web Services

File Storage

Page 28: Arquiteturas de Software para o Século XXI

Servidores de Bancos de Dados MySQL

70 Pares Master/Slave

Web Application

Servers

Sharded Database

Cache Servers Internal

Web Services

File Storage

Page 29: Arquiteturas de Software para o Século XXI

Srorage no Amazon S3

8 Bilhões de Objetos • 410 Terabytes

Web Application

Servers

Sharded Database

Cache Servers Internal

Web Services

File Storage

Page 30: Arquiteturas de Software para o Século XXI

Serviços Auxiliares

60 Instancias EC2

Development

Logging

Operational Tools

Asynchronous

Task Workers Search

Data Analysis

Elastic MapReduce Continuous Integration

Page 31: Arquiteturas de Software para o Século XXI

• 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%

Page 32: Arquiteturas de Software para o Século XXI

Ambientes Dev / Test

Page 33: Arquiteturas de Software para o Século XXI

Versão de Homologação

Page 34: Arquiteturas de Software para o Século XXI

Versão Beta / MVP

Page 35: Arquiteturas de Software para o Século XXI

Arquitetura de

Produção 1.0

1 2

3

Page 36: Arquiteturas de Software para o Século XXI

Mas e as sessões?

Page 37: Arquiteturas de Software para o Século XXI

Ideal é criar

aplicações stateless

Page 38: Arquiteturas de Software para o Século XXI

Se não for possível,

há 3 opções…

Page 39: Arquiteturas de Software para o Século XXI

Manter o estado no

servidor Web Se servidor cair sessão dos usuários

naquele servidor são perdidas. Não é

recomendado.

Page 40: Arquiteturas de Software para o Século XXI

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)

Page 41: Arquiteturas de Software para o Século XXI

Manter o estado no

Banco de Dados

NoSQL Gerencie sessões com o DynamoDB

Page 42: Arquiteturas de Software para o Século XXI
Page 43: Arquiteturas de Software para o Século XXI
Page 44: Arquiteturas de Software para o Século XXI
Page 45: Arquiteturas de Software para o Século XXI
Page 46: Arquiteturas de Software para o Século XXI

Manter o estado em

um Cache de Memória Solução escalável e que oferece excelente

performance e alta disponibilidade com cluster

Page 47: Arquiteturas de Software para o Século XXI
Page 48: Arquiteturas de Software para o Século XXI
Page 49: Arquiteturas de Software para o Século XXI
Page 50: Arquiteturas de Software para o Século XXI
Page 51: Arquiteturas de Software para o Século XXI

Arquitetura de

Produção 2.0

Page 52: Arquiteturas de Software para o Século XXI

Arquitetura de

Produção 3.0

Page 53: Arquiteturas de Software para o Século XXI

Arquitetura de

Produção 4.0

Page 54: Arquiteturas de Software para o Século XXI

“Companies are all about focus. AWS enables focus" Ray Bradford, Kleiner Perkins, Caulfield & Byers

Page 55: Arquiteturas de Software para o Século XXI

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!

Page 56: Arquiteturas de Software para o Século XXI

…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

Page 57: Arquiteturas de Software para o Século XXI

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”

Page 58: Arquiteturas de Software para o Século XXI

EC2 EBS

RDS ELB

Upload de sua aplicação Beanstalk faz deploy Você ainda tem controle

Elastic Beanstalk

Page 59: Arquiteturas de Software para o Século XXI

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

Page 60: Arquiteturas de Software para o Século XXI

DEMOS!!!

Page 61: Arquiteturas de Software para o Século XXI
Page 62: Arquiteturas de Software para o Século XXI

OBRIGADO! awshub.com.br

slideshare.net/AmazonWebServicesLATAM

José Papo

Amazon Evangelist

@josepapo