cloud computing - java no google app engine
DESCRIPTION
TRANSCRIPT
![Page 1: Cloud Computing - Java no Google App Engine](https://reader033.vdocuments.com.br/reader033/viewer/2022051818/54b8303c4a79592a028b472f/html5/thumbnails/1.jpg)
![Page 2: Cloud Computing - Java no Google App Engine](https://reader033.vdocuments.com.br/reader033/viewer/2022051818/54b8303c4a79592a028b472f/html5/thumbnails/2.jpg)
Apresentação
Frederico Maia Arantes / @fredmaia
Programador Java EE
Oracle Certified Java SE 6 Programmer (OCJP 6)
Instrutor Java (Supera Tecnologia)
Membro do grupo Gojava, onde mantém um blog
Artigo publicado na Easy Java Magazine 6
http://devsexperts.com
![Page 3: Cloud Computing - Java no Google App Engine](https://reader033.vdocuments.com.br/reader033/viewer/2022051818/54b8303c4a79592a028b472f/html5/thumbnails/3.jpg)
![Page 4: Cloud Computing - Java no Google App Engine](https://reader033.vdocuments.com.br/reader033/viewer/2022051818/54b8303c4a79592a028b472f/html5/thumbnails/4.jpg)
“O conceito de cloud computing refere-se à utilização da memória e das capacidades de
armazenamento e cálculo de computadores e servidores compartilhados e
interligados por meio da Internet, seguindo o princípio da computação em grade.”
![Page 5: Cloud Computing - Java no Google App Engine](https://reader033.vdocuments.com.br/reader033/viewer/2022051818/54b8303c4a79592a028b472f/html5/thumbnails/5.jpg)
O que você acha de sua aplicação ficar famosa e dobrar os acessos
da noite pro dia?
![Page 6: Cloud Computing - Java no Google App Engine](https://reader033.vdocuments.com.br/reader033/viewer/2022051818/54b8303c4a79592a028b472f/html5/thumbnails/6.jpg)
E se os acessos quadruplicarem?
![Page 7: Cloud Computing - Java no Google App Engine](https://reader033.vdocuments.com.br/reader033/viewer/2022051818/54b8303c4a79592a028b472f/html5/thumbnails/7.jpg)
E se for 10 vezes, 100 vezes mais acessos? Seu servidor aguenta o
tranco?
![Page 8: Cloud Computing - Java no Google App Engine](https://reader033.vdocuments.com.br/reader033/viewer/2022051818/54b8303c4a79592a028b472f/html5/thumbnails/8.jpg)
Seu momento de glória.. Fuu...
![Page 9: Cloud Computing - Java no Google App Engine](https://reader033.vdocuments.com.br/reader033/viewer/2022051818/54b8303c4a79592a028b472f/html5/thumbnails/9.jpg)
Cloud Computing
Surgiu por volta de 2008
Também conhecido como Computação em Nuvem
Google, IBM e Microsoft foram pioneiras
Especialistas consideram a nova fronteira da era digital
![Page 10: Cloud Computing - Java no Google App Engine](https://reader033.vdocuments.com.br/reader033/viewer/2022051818/54b8303c4a79592a028b472f/html5/thumbnails/10.jpg)
Entendendo a Cloud Computing
Estamos acostumados a salvar tudo em nossos
computadores físicos, locais
Em um ambiente empresarial pode ser diferente,
podemos acessar arquivos e aplicações em um servidor
Uma vantangem é não precisar da internet
![Page 11: Cloud Computing - Java no Google App Engine](https://reader033.vdocuments.com.br/reader033/viewer/2022051818/54b8303c4a79592a028b472f/html5/thumbnails/11.jpg)
Entendendo a Cloud Computing...
Internet muito acessível e rápida
Aplicativos e dados não precisam estar no computador
do usuário ou em um servidor próximo
Este conteúdo fica nas “nuvens”, na internet
![Page 12: Cloud Computing - Java no Google App Engine](https://reader033.vdocuments.com.br/reader033/viewer/2022051818/54b8303c4a79592a028b472f/html5/thumbnails/12.jpg)
IaaS - Infrastructure as a Service
SaaS – Software as a Service
PaaS – Plataform as a Service
Principais tipos de cloud
![Page 13: Cloud Computing - Java no Google App Engine](https://reader033.vdocuments.com.br/reader033/viewer/2022051818/54b8303c4a79592a028b472f/html5/thumbnails/13.jpg)
Google Docs (SaaS)
Serviço na nuvem, onde usuários podem editar textos
planilhas, slides e outros, tudo na internet
É necessário apenas um browser
Não importa o SO ou o computador
Sem necessidade de nada instalado no computador
![Page 14: Cloud Computing - Java no Google App Engine](https://reader033.vdocuments.com.br/reader033/viewer/2022051818/54b8303c4a79592a028b472f/html5/thumbnails/14.jpg)
DropBox (SaaS)
Serviço para armazenamento de arquivos
Documentos sincronizados
Mantém versões de arquivos anteriores
Semelhante ao SVN usado por desenvolvedores
![Page 15: Cloud Computing - Java no Google App Engine](https://reader033.vdocuments.com.br/reader033/viewer/2022051818/54b8303c4a79592a028b472f/html5/thumbnails/15.jpg)
E2C Amazon (IaaS)
O cloud IaaS mais conhecido do mundo
Fornecimento de infraestrutura
Virtualização de servidores e também pode envolver
DNS, Redes, Firewall, E-mail e etc...
O propósito é algo como substituir o seu servidor local
![Page 16: Cloud Computing - Java no Google App Engine](https://reader033.vdocuments.com.br/reader033/viewer/2022051818/54b8303c4a79592a028b472f/html5/thumbnails/16.jpg)
Google App Engine (PaaS)
Plataforma como serviço
Ambiente completo para desenvolvimento,
configuração e gerenciamento de suas aplicações
Simulação do ambiente (sandbox)
Outro exemplo: Windows Azure
![Page 17: Cloud Computing - Java no Google App Engine](https://reader033.vdocuments.com.br/reader033/viewer/2022051818/54b8303c4a79592a028b472f/html5/thumbnails/17.jpg)
Google App Engine (PaaS)
Infraestrutura e qualidade do Google
![Page 18: Cloud Computing - Java no Google App Engine](https://reader033.vdocuments.com.br/reader033/viewer/2022051818/54b8303c4a79592a028b472f/html5/thumbnails/18.jpg)
Google App Engine (PaaS)
Infraestrutura e qualidade do Google
Ambientes Java (Ruby, Groovy...) e Python
![Page 19: Cloud Computing - Java no Google App Engine](https://reader033.vdocuments.com.br/reader033/viewer/2022051818/54b8303c4a79592a028b472f/html5/thumbnails/19.jpg)
Google App Engine (PaaS)
Infraestrutura e qualidade do Google
Ambientes Java (Ruby, Groovy...) e Python
Persistência com Big Table (NoSQL)
![Page 20: Cloud Computing - Java no Google App Engine](https://reader033.vdocuments.com.br/reader033/viewer/2022051818/54b8303c4a79592a028b472f/html5/thumbnails/20.jpg)
Google App Engine (PaaS)
Infraestrutura e qualidade do Google
Ambientes Java (Ruby, Groovy...) e Python
Persistência com Big Table (NoSQL)
Pague apenas pelo que usar
![Page 21: Cloud Computing - Java no Google App Engine](https://reader033.vdocuments.com.br/reader033/viewer/2022051818/54b8303c4a79592a028b472f/html5/thumbnails/21.jpg)
Vantagens do GAE
Escalabilidade infinita
![Page 22: Cloud Computing - Java no Google App Engine](https://reader033.vdocuments.com.br/reader033/viewer/2022051818/54b8303c4a79592a028b472f/html5/thumbnails/22.jpg)
Vantagens do GAE
Escalabilidade infinita
Elasticidade
![Page 23: Cloud Computing - Java no Google App Engine](https://reader033.vdocuments.com.br/reader033/viewer/2022051818/54b8303c4a79592a028b472f/html5/thumbnails/23.jpg)
Vantagens do GAE
Escalabilidade infinita
Elasticidade
Disponibilidade
![Page 24: Cloud Computing - Java no Google App Engine](https://reader033.vdocuments.com.br/reader033/viewer/2022051818/54b8303c4a79592a028b472f/html5/thumbnails/24.jpg)
Vantagens do GAE
Escalabilidade infinita
Elasticidade
Disponibilidade
Mais barato
![Page 25: Cloud Computing - Java no Google App Engine](https://reader033.vdocuments.com.br/reader033/viewer/2022051818/54b8303c4a79592a028b472f/html5/thumbnails/25.jpg)
Mais vantagens do GAE
Desenvolvimento fácil, ambiente de desenvolvimento
local simulando todos os recursos do GAE
Confiável, mesmo com uma carga pesada e grandes
quantidades de dados
Ajuste e balanceamento de carga automático
APIs para autenticação de usuários e envio de email
usando as contas do Google
![Page 26: Cloud Computing - Java no Google App Engine](https://reader033.vdocuments.com.br/reader033/viewer/2022051818/54b8303c4a79592a028b472f/html5/thumbnails/26.jpg)
Cotas e limites
Até 2000 (dois mil) emails por mês
500MB de armazenamento
5 milhões de visualizações por mês
Até 10 aplicativos por cada conta do Google
Resposta em no máximo 30 segundos
Consulta pode retornar no máximo 1000 resultados
![Page 27: Cloud Computing - Java no Google App Engine](https://reader033.vdocuments.com.br/reader033/viewer/2022051818/54b8303c4a79592a028b472f/html5/thumbnails/27.jpg)
É barato mesmo
![Page 28: Cloud Computing - Java no Google App Engine](https://reader033.vdocuments.com.br/reader033/viewer/2022051818/54b8303c4a79592a028b472f/html5/thumbnails/28.jpg)
Ambiente de Desenvolvimento
Eclipse + AppEngine SDK + Plugin
![Page 29: Cloud Computing - Java no Google App Engine](https://reader033.vdocuments.com.br/reader033/viewer/2022051818/54b8303c4a79592a028b472f/html5/thumbnails/29.jpg)
Ambiente de Desenvolvimento
Eclipse + AppEngine SDK + Plugin
One-click deploy
![Page 30: Cloud Computing - Java no Google App Engine](https://reader033.vdocuments.com.br/reader033/viewer/2022051818/54b8303c4a79592a028b472f/html5/thumbnails/30.jpg)
Fácil Gerenciamento
![Page 31: Cloud Computing - Java no Google App Engine](https://reader033.vdocuments.com.br/reader033/viewer/2022051818/54b8303c4a79592a028b472f/html5/thumbnails/31.jpg)
Fácil Gerenciamento
![Page 32: Cloud Computing - Java no Google App Engine](https://reader033.vdocuments.com.br/reader033/viewer/2022051818/54b8303c4a79592a028b472f/html5/thumbnails/32.jpg)
Fácil Gerenciamento
![Page 33: Cloud Computing - Java no Google App Engine](https://reader033.vdocuments.com.br/reader033/viewer/2022051818/54b8303c4a79592a028b472f/html5/thumbnails/33.jpg)
Fácil Gerenciamento
![Page 34: Cloud Computing - Java no Google App Engine](https://reader033.vdocuments.com.br/reader033/viewer/2022051818/54b8303c4a79592a028b472f/html5/thumbnails/34.jpg)
Padronização
Servlets 2.5 e JSP 2
![Page 35: Cloud Computing - Java no Google App Engine](https://reader033.vdocuments.com.br/reader033/viewer/2022051818/54b8303c4a79592a028b472f/html5/thumbnails/35.jpg)
Padronização
Servlets 2.5 e JSP 2
JPA 1 e JDO 2
![Page 36: Cloud Computing - Java no Google App Engine](https://reader033.vdocuments.com.br/reader033/viewer/2022051818/54b8303c4a79592a028b472f/html5/thumbnails/36.jpg)
Padronização
Servlets 2.5 e JSP 2
JPA 1 e JDO 2
java.net
![Page 37: Cloud Computing - Java no Google App Engine](https://reader033.vdocuments.com.br/reader033/viewer/2022051818/54b8303c4a79592a028b472f/html5/thumbnails/37.jpg)
Padronização
Servlets 2.5 e JSP 2
JPA 1 e JDO 2
java.net
JavaMail
![Page 38: Cloud Computing - Java no Google App Engine](https://reader033.vdocuments.com.br/reader033/viewer/2022051818/54b8303c4a79592a028b472f/html5/thumbnails/38.jpg)
Padronização
Servlets 2.5 e JSP 2
JPA 1 e JDO 2
java.net
JavaMail
Jcache
![Page 39: Cloud Computing - Java no Google App Engine](https://reader033.vdocuments.com.br/reader033/viewer/2022051818/54b8303c4a79592a028b472f/html5/thumbnails/39.jpg)
Padronização
Servlets 2.5 e JSP 2
JPA 1 e JDO 2
java.net
JavaMail
Jcache
JSE 5 e 6
![Page 40: Cloud Computing - Java no Google App Engine](https://reader033.vdocuments.com.br/reader033/viewer/2022051818/54b8303c4a79592a028b472f/html5/thumbnails/40.jpg)
O que podemos utilizar no GAE
Struts 2
JSF 1.2 e JSF 2.0
Spring MVC
Flex
REST
VRaptor
API de imagens...
![Page 41: Cloud Computing - Java no Google App Engine](https://reader033.vdocuments.com.br/reader033/viewer/2022051818/54b8303c4a79592a028b472f/html5/thumbnails/41.jpg)
Fique atento
BigTable não é relacional (Nosql)
Acessar BigTable com JPA pode ser complicado
Suas aplicações não serão tão portáveis
![Page 42: Cloud Computing - Java no Google App Engine](https://reader033.vdocuments.com.br/reader033/viewer/2022051818/54b8303c4a79592a028b472f/html5/thumbnails/42.jpg)
Desvantagens
Sem funções de agregação (count, sum, max,
min, group by...)
![Page 43: Cloud Computing - Java no Google App Engine](https://reader033.vdocuments.com.br/reader033/viewer/2022051818/54b8303c4a79592a028b472f/html5/thumbnails/43.jpg)
Desvantagens
Sem funções de agregação (count, sum, max,
min, group by...)
![Page 44: Cloud Computing - Java no Google App Engine](https://reader033.vdocuments.com.br/reader033/viewer/2022051818/54b8303c4a79592a028b472f/html5/thumbnails/44.jpg)
Desvantagens
Transações não são comuns
![Page 45: Cloud Computing - Java no Google App Engine](https://reader033.vdocuments.com.br/reader033/viewer/2022051818/54b8303c4a79592a028b472f/html5/thumbnails/45.jpg)
Desvantagens
Transações não são comuns
Não existem joins
![Page 46: Cloud Computing - Java no Google App Engine](https://reader033.vdocuments.com.br/reader033/viewer/2022051818/54b8303c4a79592a028b472f/html5/thumbnails/46.jpg)
Desvantagens
Transações não são comuns
Não existem joins
Código específico (JPQL, JDOQL) para JPA
![Page 47: Cloud Computing - Java no Google App Engine](https://reader033.vdocuments.com.br/reader033/viewer/2022051818/54b8303c4a79592a028b472f/html5/thumbnails/47.jpg)
Desvantagens
Transações não são comuns
Não existem joins
Código específico (JPQL, JDOQL) para JPA
Startup deve ser otimizado
![Page 48: Cloud Computing - Java no Google App Engine](https://reader033.vdocuments.com.br/reader033/viewer/2022051818/54b8303c4a79592a028b472f/html5/thumbnails/48.jpg)
Desvantagens
Transações não são comuns
Não existem joins
Código específico (JPQL, JDOQL) para JPA
Startup deve ser otimizado
Não pode gravar no sist. de arquivos, apenas ler
![Page 49: Cloud Computing - Java no Google App Engine](https://reader033.vdocuments.com.br/reader033/viewer/2022051818/54b8303c4a79592a028b472f/html5/thumbnails/49.jpg)
Alternativas
Usar código específico
![Page 50: Cloud Computing - Java no Google App Engine](https://reader033.vdocuments.com.br/reader033/viewer/2022051818/54b8303c4a79592a028b472f/html5/thumbnails/50.jpg)
Alternativas
Usar código específico
Datastore Low-level API (muito complexa)
![Page 51: Cloud Computing - Java no Google App Engine](https://reader033.vdocuments.com.br/reader033/viewer/2022051818/54b8303c4a79592a028b472f/html5/thumbnails/51.jpg)
Alternativas
Usar código específico
Datastore Low-level API (muito complexa)
Novos frameworks: Objectify, Twig
![Page 52: Cloud Computing - Java no Google App Engine](https://reader033.vdocuments.com.br/reader033/viewer/2022051818/54b8303c4a79592a028b472f/html5/thumbnails/52.jpg)
Fique atento
Datastore read-only (é bom estar preparado)
Usar cache de dados e de página
![Page 53: Cloud Computing - Java no Google App Engine](https://reader033.vdocuments.com.br/reader033/viewer/2022051818/54b8303c4a79592a028b472f/html5/thumbnails/53.jpg)
Devemos estar preparados
EntityManager em =
EntityManagerFactory.createEntityManager();
try {
em.persist(entidade);
em.close();
}catch(CapabilityDisabledException e) {
// informa que o Datastore está em modo read-only.
// Tente novamente mais tarde.
}
![Page 54: Cloud Computing - Java no Google App Engine](https://reader033.vdocuments.com.br/reader033/viewer/2022051818/54b8303c4a79592a028b472f/html5/thumbnails/54.jpg)
Conclusão
Existem vantagens e desvantagens como em
qualquer tecnologia
Perdemos características como BD relacional,
porém ganhamos em outras
Preocupação com coisas novas
É preciso confiar no seu fornecedor