Cloud Computing - Java no Google App Engine

1.396 visualizações

Publicada em

0 comentários
1 gostou
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
1.396
No SlideShare
0
A partir de incorporações
0
Número de incorporações
2
Ações
Compartilhamentos
0
Downloads
42
Comentários
0
Gostaram
1
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Cloud Computing - Java no Google App Engine

  1. 1. 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
  2. 2. “O conceito de cloud computing refere-se à utilização da memória e das capacidades de armazenamento e cálculode computadores e servidores compartilhados e interligados por meio da Internet, seguindo o princípio da computação em grade.”
  3. 3. O que você acha de sua aplicaçãoficar famosa e dobrar os acessos da noite pro dia?
  4. 4. E se os acessos quadruplicarem?
  5. 5. E se for 10 vezes, 100 vezes maisacessos? Seu servidor aguenta o tranco?
  6. 6. Seu momento de glória.. Fuu...
  7. 7. 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
  8. 8. 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
  9. 9. 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
  10. 10. Principais tipos de cloud IaaS - Infrastructure as a Service SaaS – Software as a Service PaaS – Plataform as a Service
  11. 11. 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
  12. 12. DropBox (SaaS) Serviço para armazenamento de arquivos Documentos sincronizados Mantém versões de arquivos anteriores Semelhante ao SVN usado por desenvolvedores
  13. 13. 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
  14. 14. 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
  15. 15. Google App Engine (PaaS) Infraestrutura e qualidade do Google
  16. 16. Google App Engine (PaaS) Infraestrutura e qualidade do Google Ambientes Java (Ruby, Groovy...) e Python
  17. 17. Google App Engine (PaaS) Infraestrutura e qualidade do Google Ambientes Java (Ruby, Groovy...) e Python Persistência com Big Table (NoSQL)
  18. 18. 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
  19. 19. Vantagens do GAE Escalabilidade infinita
  20. 20. Vantagens do GAE Escalabilidade infinita Elasticidade
  21. 21. Vantagens do GAE Escalabilidade infinita Elasticidade Disponibilidade
  22. 22. Vantagens do GAE Escalabilidade infinita Elasticidade Disponibilidade Mais barato
  23. 23. 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
  24. 24. 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
  25. 25. É barato mesmo
  26. 26. Ambiente de Desenvolvimento Eclipse + AppEngine SDK + Plugin
  27. 27. Ambiente de Desenvolvimento Eclipse + AppEngine SDK + Plugin One-click deploy
  28. 28. Fácil Gerenciamento
  29. 29. Fácil Gerenciamento
  30. 30. Fácil Gerenciamento
  31. 31. Fácil Gerenciamento
  32. 32. Padronização Servlets 2.5 e JSP 2
  33. 33. Padronização Servlets 2.5 e JSP 2 JPA 1 e JDO 2
  34. 34. Padronização Servlets 2.5 e JSP 2 JPA 1 e JDO 2 java.net
  35. 35. Padronização Servlets 2.5 e JSP 2 JPA 1 e JDO 2 java.net JavaMail
  36. 36. Padronização Servlets 2.5 e JSP 2 JPA 1 e JDO 2 java.net JavaMail Jcache
  37. 37. Padronização Servlets 2.5 e JSP 2 JPA 1 e JDO 2 java.net JavaMail Jcache JSE 5 e 6
  38. 38. O que podemos utilizar no GAE Struts 2 JSF 1.2 e JSF 2.0 Spring MVC Flex REST VRaptor API de imagens...
  39. 39. 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
  40. 40. Desvantagens Sem funções de agregação (count, sum, max, min, group by...)
  41. 41. Desvantagens Sem funções de agregação (count, sum, max, min, group by...)
  42. 42. Desvantagens Transações não são comuns
  43. 43. Desvantagens Transações não são comuns Não existem joins
  44. 44. Desvantagens Transações não são comuns Não existem joins Código específico (JPQL, JDOQL) para JPA
  45. 45. Desvantagens Transações não são comuns Não existem joins Código específico (JPQL, JDOQL) para JPA Startup deve ser otimizado
  46. 46. 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
  47. 47. Alternativas Usar código específico
  48. 48. Alternativas Usar código específico Datastore Low-level API (muito complexa)
  49. 49. Alternativas Usar código específico Datastore Low-level API (muito complexa) Novos frameworks: Objectify, Twig
  50. 50. Fique atento Datastore read-only (é bom estar preparado) Usar cache de dados e de página
  51. 51. 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.}
  52. 52. 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
  53. 53. Dúvidas? fredericomaia10@gmail.com @fredmaia @gojava http://devsexperts.com

×