desenvolvendo aplicações móveis na nuvem
DESCRIPTION
Slides da apresentação sobre desenvolvimento móvel utilizando a Nuvem para processamento e storage de dados.TRANSCRIPT
![Page 1: Desenvolvendo aplicações móveis na Nuvem](https://reader033.vdocuments.net/reader033/viewer/2022061218/54b6b0b74a79599f7b8b4655/html5/thumbnails/1.jpg)
Desenvolvendo aplicações
Móveis na Nuvem da AWS
José Papo
AWS Tech Evangelist
@josepapo
![Page 2: Desenvolvendo aplicações móveis na Nuvem](https://reader033.vdocuments.net/reader033/viewer/2022061218/54b6b0b74a79599f7b8b4655/html5/thumbnails/2.jpg)
Suportando as principais aplicações Móveis
![Page 3: Desenvolvendo aplicações móveis na Nuvem](https://reader033.vdocuments.net/reader033/viewer/2022061218/54b6b0b74a79599f7b8b4655/html5/thumbnails/3.jpg)
5 bilhões de celulares no mundo
Mais de 1 milhão de apps nas App Stores
32 bilhões de apps serão baixadas em 2012
50 bilhões de dólares em apps e músicas
![Page 4: Desenvolvendo aplicações móveis na Nuvem](https://reader033.vdocuments.net/reader033/viewer/2022061218/54b6b0b74a79599f7b8b4655/html5/thumbnails/4.jpg)
![Page 5: Desenvolvendo aplicações móveis na Nuvem](https://reader033.vdocuments.net/reader033/viewer/2022061218/54b6b0b74a79599f7b8b4655/html5/thumbnails/5.jpg)
![Page 6: Desenvolvendo aplicações móveis na Nuvem](https://reader033.vdocuments.net/reader033/viewer/2022061218/54b6b0b74a79599f7b8b4655/html5/thumbnails/6.jpg)
O problema Onde hospedar os dados
de meus usuários?
![Page 7: Desenvolvendo aplicações móveis na Nuvem](https://reader033.vdocuments.net/reader033/viewer/2022061218/54b6b0b74a79599f7b8b4655/html5/thumbnails/7.jpg)
Infraestrutura Tradicional é Cara e Complexa
Negociação de Contratos
Provedores Lentos para Atender a Demanda de Infra
Instalação de Patches
Data Center sem Espaço
Preços Altos para Infraestrutura de TI
Implantações Demoradas
Altos Investimentos de Capital
Recursos de TI com Baixa Utilização
Falta de foco no negócio
Gerenciar Crescimento Físico
“TI gasta 80% de seu tempo e recursos mantendo as luzes acesas”
Gartner Press Release, 2006
![Page 8: Desenvolvendo aplicações móveis na Nuvem](https://reader033.vdocuments.net/reader033/viewer/2022061218/54b6b0b74a79599f7b8b4655/html5/thumbnails/8.jpg)
O que realmente
precisamos é…
…capacidade ajustável
http://www.flickr.com/photos/purecaffeine/30268245
6/
![Page 9: Desenvolvendo aplicações móveis na Nuvem](https://reader033.vdocuments.net/reader033/viewer/2022061218/54b6b0b74a79599f7b8b4655/html5/thumbnails/9.jpg)
![Page 10: Desenvolvendo aplicações móveis na Nuvem](https://reader033.vdocuments.net/reader033/viewer/2022061218/54b6b0b74a79599f7b8b4655/html5/thumbnails/10.jpg)
Escalabilidade simples e automática
App de Vídeos com Amazon EC2:
De 50 a 5,000 servidores em 3 dias! N
úm
ero
de I
nstâ
ncia
s E
C2
5,000
0 Segunda Terça Quarta Quinta Sexta Sábado Domingo
![Page 11: Desenvolvendo aplicações móveis na Nuvem](https://reader033.vdocuments.net/reader033/viewer/2022061218/54b6b0b74a79599f7b8b4655/html5/thumbnails/11.jpg)
Conteúdo Dinâmico da
Aplicação Móvel
![Page 12: Desenvolvendo aplicações móveis na Nuvem](https://reader033.vdocuments.net/reader033/viewer/2022061218/54b6b0b74a79599f7b8b4655/html5/thumbnails/12.jpg)
Amazon EC2 Servidores on-demand
![Page 13: Desenvolvendo aplicações móveis na Nuvem](https://reader033.vdocuments.net/reader033/viewer/2022061218/54b6b0b74a79599f7b8b4655/html5/thumbnails/13.jpg)
Precificação por
hora
![Page 14: Desenvolvendo aplicações móveis na Nuvem](https://reader033.vdocuments.net/reader033/viewer/2022061218/54b6b0b74a79599f7b8b4655/html5/thumbnails/14.jpg)
Exemplo
Servidor Micro On-demand 100% - A partir de 15 dólares
Reservado 100% - A partir de 6,5 dólares
![Page 15: Desenvolvendo aplicações móveis na Nuvem](https://reader033.vdocuments.net/reader033/viewer/2022061218/54b6b0b74a79599f7b8b4655/html5/thumbnails/15.jpg)
Bancos de Dados Relacional e NoSQL
![Page 16: Desenvolvendo aplicações móveis na Nuvem](https://reader033.vdocuments.net/reader033/viewer/2022061218/54b6b0b74a79599f7b8b4655/html5/thumbnails/16.jpg)
Opções de Bancos de Dados
Relacional NoSQL
![Page 17: Desenvolvendo aplicações móveis na Nuvem](https://reader033.vdocuments.net/reader033/viewer/2022061218/54b6b0b74a79599f7b8b4655/html5/thumbnails/17.jpg)
Modelos de Bancos de Dados
Banco de Dados no
Amazon EC2
Sua escolha de software
de banco de dados
Bring Your Own License
(BYOL)
Amazon Relational
Database Service (RDS)
Oracle ou MySQL
oferecidos como serviço
Licenciamento Flexível:
BYOL ou Licença Incluída
Amazon DynamoDB
NoSQL
Modelo não relacional
Overhead zero de
administração
Auto-gestão Database as a Service
![Page 18: Desenvolvendo aplicações móveis na Nuvem](https://reader033.vdocuments.net/reader033/viewer/2022061218/54b6b0b74a79599f7b8b4655/html5/thumbnails/18.jpg)
Conteúdo Estático da
Aplicação Móvel
![Page 19: Desenvolvendo aplicações móveis na Nuvem](https://reader033.vdocuments.net/reader033/viewer/2022061218/54b6b0b74a79599f7b8b4655/html5/thumbnails/19.jpg)
Amazon S3 Armazenamento Elástico
![Page 20: Desenvolvendo aplicações móveis na Nuvem](https://reader033.vdocuments.net/reader033/viewer/2022061218/54b6b0b74a79599f7b8b4655/html5/thumbnails/20.jpg)
Q4 2007 Q4 2008 Q4 2009 Q4 2010 Q4 2011 Q2 2012
14 Bilhões 40 Bilhões
102 Bilhões
262 Bilhões
762 Bilhões
Crescimento do Amazon S3 Número de Objetos Armazenados no Amazon S3 1
Trilhão
![Page 21: Desenvolvendo aplicações móveis na Nuvem](https://reader033.vdocuments.net/reader033/viewer/2022061218/54b6b0b74a79599f7b8b4655/html5/thumbnails/21.jpg)
1b Tb
![Page 22: Desenvolvendo aplicações móveis na Nuvem](https://reader033.vdocuments.net/reader033/viewer/2022061218/54b6b0b74a79599f7b8b4655/html5/thumbnails/22.jpg)
SLA
99,999999999%
Durabilidade
![Page 23: Desenvolvendo aplicações móveis na Nuvem](https://reader033.vdocuments.net/reader033/viewer/2022061218/54b6b0b74a79599f7b8b4655/html5/thumbnails/23.jpg)
![Page 24: Desenvolvendo aplicações móveis na Nuvem](https://reader033.vdocuments.net/reader033/viewer/2022061218/54b6b0b74a79599f7b8b4655/html5/thumbnails/24.jpg)
Amazon S3
![Page 25: Desenvolvendo aplicações móveis na Nuvem](https://reader033.vdocuments.net/reader033/viewer/2022061218/54b6b0b74a79599f7b8b4655/html5/thumbnails/25.jpg)
![Page 26: Desenvolvendo aplicações móveis na Nuvem](https://reader033.vdocuments.net/reader033/viewer/2022061218/54b6b0b74a79599f7b8b4655/html5/thumbnails/26.jpg)
Amazon CloudFront Rede de Distribuição de Conteúdo Flexível
![Page 27: Desenvolvendo aplicações móveis na Nuvem](https://reader033.vdocuments.net/reader033/viewer/2022061218/54b6b0b74a79599f7b8b4655/html5/thumbnails/27.jpg)
Locais Edge AWS (CloudFront & Route 53)
![Page 28: Desenvolvendo aplicações móveis na Nuvem](https://reader033.vdocuments.net/reader033/viewer/2022061218/54b6b0b74a79599f7b8b4655/html5/thumbnails/28.jpg)
![Page 29: Desenvolvendo aplicações móveis na Nuvem](https://reader033.vdocuments.net/reader033/viewer/2022061218/54b6b0b74a79599f7b8b4655/html5/thumbnails/29.jpg)
Benefícios da Nuvem
para aplicações móveis
![Page 30: Desenvolvendo aplicações móveis na Nuvem](https://reader033.vdocuments.net/reader033/viewer/2022061218/54b6b0b74a79599f7b8b4655/html5/thumbnails/30.jpg)
Aberta e flexível
Sistemas Operacionais Linguagens e Bibliotecas Aplicações Certificadas
![Page 31: Desenvolvendo aplicações móveis na Nuvem](https://reader033.vdocuments.net/reader033/viewer/2022061218/54b6b0b74a79599f7b8b4655/html5/thumbnails/31.jpg)
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)
![Page 32: Desenvolvendo aplicações móveis na Nuvem](https://reader033.vdocuments.net/reader033/viewer/2022061218/54b6b0b74a79599f7b8b4655/html5/thumbnails/32.jpg)
![Page 33: Desenvolvendo aplicações móveis na Nuvem](https://reader033.vdocuments.net/reader033/viewer/2022061218/54b6b0b74a79599f7b8b4655/html5/thumbnails/33.jpg)
![Page 34: Desenvolvendo aplicações móveis na Nuvem](https://reader033.vdocuments.net/reader033/viewer/2022061218/54b6b0b74a79599f7b8b4655/html5/thumbnails/34.jpg)
Construída com altos padrões de segurança
Infraestrutura de Segurança AWS
SOC 1/SSAE 16/ISAE 3402,
ISO 27001, PCI DSS, HIPAA, ITAR,
FISMA Moderate, FIPS 140-2
Suas
Apps
![Page 35: Desenvolvendo aplicações móveis na Nuvem](https://reader033.vdocuments.net/reader033/viewer/2022061218/54b6b0b74a79599f7b8b4655/html5/thumbnails/35.jpg)
Exemplos de aplicações
móveis na Nuvem
![Page 36: Desenvolvendo aplicações móveis na Nuvem](https://reader033.vdocuments.net/reader033/viewer/2022061218/54b6b0b74a79599f7b8b4655/html5/thumbnails/36.jpg)
SDKs para os principais smartphones
REST
SOAP
![Page 37: Desenvolvendo aplicações móveis na Nuvem](https://reader033.vdocuments.net/reader033/viewer/2022061218/54b6b0b74a79599f7b8b4655/html5/thumbnails/37.jpg)
![Page 38: Desenvolvendo aplicações móveis na Nuvem](https://reader033.vdocuments.net/reader033/viewer/2022061218/54b6b0b74a79599f7b8b4655/html5/thumbnails/38.jpg)
DynamoDBKeySchemaElement *kse = [[[DynamoDBKeySchemaElement alloc]
initWithAttributeName:@"userNo"
andAttributeType:@"N"] autorelease];
DynamoDBKeySchema *ks = [[[DynamoDBKeySchema alloc]
initWithHashKeyElement:kse] autorelease];
DynamoDBProvisionedThroughput *pt = [[[DynamoDBProvisionedThroughput alloc] init]
autorelease];
pt.readCapacityUnits = [NSNumber numberWithInt:10];
pt.writeCapacityUnits = [NSNumber numberWithInt:5];
DynamoDBCreateTableRequest *request = [[DynamoDBCreateTableRequest alloc]
initWithTableName:TEST_TABLE_NAME
andKeySchema:ks
andProvisionedThroughput:pt];
DynamoDBCreateTableResponse *response = [[AmazonClientManager ddb]
createTable:request];
[request release];
![Page 39: Desenvolvendo aplicações móveis na Nuvem](https://reader033.vdocuments.net/reader033/viewer/2022061218/54b6b0b74a79599f7b8b4655/html5/thumbnails/39.jpg)
![Page 40: Desenvolvendo aplicações móveis na Nuvem](https://reader033.vdocuments.net/reader033/viewer/2022061218/54b6b0b74a79599f7b8b4655/html5/thumbnails/40.jpg)
AmazonDynamoDBClient ddb = UserPreferenceDemoActivity.clientManager.ddb();
KeySchemaElement kse = new KeySchemaElement().withAttributeName(
"userNo").withAttributeType(ScalarAttributeType.N);
KeySchema ks = new KeySchema().withHashKeyElement(kse);
ProvisionedThroughput pt = new ProvisionedThroughput()
.withReadCapacityUnits(10l).withWriteCapacityUnits(5l);
CreateTableRequest request = new CreateTableRequest()
.withTableName(PropertyLoader.getInstance().getTestTableName())
.withKeySchema(ks).withProvisionedThroughput(pt);
ddb.createTable(request);
RegisterDeviceRequest registerDeviceRequest = new RegisterDeviceRequest(
this.endpoint, this.useSSL, uid, key);
ResponseHandler handler = new ResponseHandler();
response = this.processRequest(registerDeviceRequest, handler);
if (response.requestWasSuccessful()) {
AmazonSharedPreferencesWrapper.registerDeviceId(
this.sharedPreferences, uid, key);
}
![Page 41: Desenvolvendo aplicações móveis na Nuvem](https://reader033.vdocuments.net/reader033/viewer/2022061218/54b6b0b74a79599f7b8b4655/html5/thumbnails/41.jpg)
![Page 42: Desenvolvendo aplicações móveis na Nuvem](https://reader033.vdocuments.net/reader033/viewer/2022061218/54b6b0b74a79599f7b8b4655/html5/thumbnails/42.jpg)
UIImagePickerController *imagePicker = [[UIImagePickerController alloc] init];
imagePicker.delegate = self;
[self presentModalViewController:imagePicker animated:YES];
AmazonS3Client *s3 = [[[AmazonS3Client alloc]
initWithAccessKey:MY_ACCESS_KEY_ID withSecretKey:MY_SECRET_KEY]
autorelease];
S3PutObjectRequest *por = [[[S3PutObjectRequest alloc]
initWithKey:MY_PICTURE_NAME inBucket:MY_PICTURE_BUCKET] autorelease];
por.contentType = @"image/jpeg";
por.data = imageData;
[s3 putObject:por];
![Page 43: Desenvolvendo aplicações móveis na Nuvem](https://reader033.vdocuments.net/reader033/viewer/2022061218/54b6b0b74a79599f7b8b4655/html5/thumbnails/43.jpg)
![Page 44: Desenvolvendo aplicações móveis na Nuvem](https://reader033.vdocuments.net/reader033/viewer/2022061218/54b6b0b74a79599f7b8b4655/html5/thumbnails/44.jpg)
Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.setType("image/*");
startActivityForResult(intent, PHOTO_SELECTED);
AmazonS3Client s3Client = new AmazonS3Client( new BasicAWSCredentials(
MY_ACCESS_KEY_ID, MY_SECRET_KEY ) );
PutObjectRequest por = new PutObjectRequest( Constants.getPictureBucket(),
Constants.PICTURE_NAME, new java.io.File( filePath) );
s3Client.putObject( por );
![Page 45: Desenvolvendo aplicações móveis na Nuvem](https://reader033.vdocuments.net/reader033/viewer/2022061218/54b6b0b74a79599f7b8b4655/html5/thumbnails/45.jpg)
![Page 46: Desenvolvendo aplicações móveis na Nuvem](https://reader033.vdocuments.net/reader033/viewer/2022061218/54b6b0b74a79599f7b8b4655/html5/thumbnails/46.jpg)
![Page 47: Desenvolvendo aplicações móveis na Nuvem](https://reader033.vdocuments.net/reader033/viewer/2022061218/54b6b0b74a79599f7b8b4655/html5/thumbnails/47.jpg)
Nuvem é Democracia!
![Page 48: Desenvolvendo aplicações móveis na Nuvem](https://reader033.vdocuments.net/reader033/viewer/2022061218/54b6b0b74a79599f7b8b4655/html5/thumbnails/48.jpg)
Nuvem é Liberdade!
![Page 49: Desenvolvendo aplicações móveis na Nuvem](https://reader033.vdocuments.net/reader033/viewer/2022061218/54b6b0b74a79599f7b8b4655/html5/thumbnails/49.jpg)
OFERTA
GRATUITA! aws.amazon.com/pt/free
![Page 50: Desenvolvendo aplicações móveis na Nuvem](https://reader033.vdocuments.net/reader033/viewer/2022061218/54b6b0b74a79599f7b8b4655/html5/thumbnails/50.jpg)
OBRIGADO! aws.typepad.com/brasil
slideshare.net/jpapo
José Papo
AWS Tech Evangelist
@josepapo
![Page 51: Desenvolvendo aplicações móveis na Nuvem](https://reader033.vdocuments.net/reader033/viewer/2022061218/54b6b0b74a79599f7b8b4655/html5/thumbnails/51.jpg)