Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Cloud Computing - Java no Google App Engine

2,110 views

Published on

  • Be the first to comment

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

×