2. 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
3.
4. “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.”
5. O que você acha de sua aplicação
ficar famosa e dobrar os acessos
da noite pro dia?
9. 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
10. 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
11. 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
12. Principais tipos de cloud
IaaS - Infrastructure as a Service
SaaS – Software as a Service
PaaS – Plataform as a Service
13. 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
14. DropBox (SaaS)
Serviço para armazenamento de arquivos
Documentos sincronizados
Mantém versões de arquivos anteriores
Semelhante ao SVN usado por desenvolvedores
15. 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
16. 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
18. Google App Engine (PaaS)
Infraestrutura e qualidade do Google
Ambientes Java (Ruby, Groovy...) e Python
19. Google App Engine (PaaS)
Infraestrutura e qualidade do Google
Ambientes Java (Ruby, Groovy...) e Python
Persistência com Big Table (NoSQL)
20. 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
24. Vantagens do GAE
Escalabilidade infinita
Elasticidade
Disponibilidade
Mais barato
25. 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
26. 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
47. Desvantagens
Transações não são comuns
Não existem joins
Código específico (JPQL, JDOQL) para JPA
Startup deve ser otimizado
48. 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
53. 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.
}
54. 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