desenvolvendo aplicacoes moveis com a nuvem
Post on 11-Jun-2015
542 Views
Preview:
TRANSCRIPT
Desenvolvendo aplicações
Móveis com a Nuvem da AWS
José Papo
AWS Tech Evangelist
@josepapo
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
O problema Uma em cada 4 apps móveis baixadas só é usada uma vez
Como melhorar suas chances?
Recursos sociais como leaderboards, achievements, troféus, etc
Integração com outros serviços e geolocalização
Personalização de conteúdo e preferências do usuário
Suportando as principais aplicações Móveis
O que realmente
precisamos é…
…capacidade ajustável
http://www.flickr.com/photos/purecaffeine/30268245
6/
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
In
stâ
ncia
s E
C2
5,000
0 Segunda Terça Quarta Quinta Sexta Sábado Domingo
Compute Storage
AWS Global Infrastructure
Database
App Services
Deployment & Administration
Networking
Infraestrutura Global
8 Regiões no Mundo
Conteúdo Dinâmico da
Aplicação Móvel
Amazon EC2 Servidores on-demand
Exemplo
Servidor Micro On-demand 100% - A partir de 15 dólares
Reservado 100% - A partir de 6,5 dólares
Bancos de Dados Relacional e NoSQL
Opções de Bancos de Dados
Relacional NoSQL
Conteúdo Estático da
Aplicação Móvel
Amazon S3 Armazenamento Elástico
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
1b Tb
SLA
99,999999999%
Durabilidade
Amazon S3
Amazon CloudFront Rede de Distribuição de Conteúdo Flexível
Locais Edge AWS (CloudFront & Route 53)
Exemplos de aplicações
móveis na Nuvem
SDKs para os principais smartphones
REST
SOAP
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];
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);
}
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];
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 );
Nuvem é Democracia!
Nuvem é Liberdade!
APRENDA MAIS
SOBRE A NUVEM
awshub.com.br
Dev Portal AppStore
• Distribuição de apps para o Brasil:
– Apps podem ter título, descrição, screenshots e release notes em português;
– Royalties serão pagos em Reais para vendas no mercado Brasileiro;
– O processo de publicação é simples!
• Confira:
https://developer.amazon.com/
OBRIGADO! aws.typepad.com/brasil
slideshare.net/AmazonWebServicesLATAM
José Papo
AWS Tech Evangelist
@josepapo
top related