Diese Präsentation wurde erfolgreich gemeldet.
Die SlideShare-Präsentation wird heruntergeladen. ×

Cloud Computing - Java no Google App Engine

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Wird geladen in …3
×

Hier ansehen

1 von 55 Anzeige

Weitere Verwandte Inhalte

Diashows für Sie (20)

Andere mochten auch (20)

Anzeige

Ähnlich wie Cloud Computing - Java no Google App Engine (20)

Weitere von Frederico Maia Arantes (13)

Anzeige

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álculo de 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ção ficar 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 mais acessos? 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

×