Arquiteturas de Software para o Século XXI

Post on 18-Dec-2014

2.546 views 1 download

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

Transcript of Arquiteturas de Software para o Século XXI

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