Java no Google App Engine - TDC2011

799 visualizações

Publicada em

Publicada em: Tecnologia
  • Seja o primeiro a comentar

Java no Google App Engine - TDC2011

  1. 1. Apresentação Frederico Maia Arantes / @fredmaia Programador Java EE na PC Sistemas Oracle Certified Java SE 6 Programmer (OCJP 6) Instrutor Java na Supera Tecnologia Um dos coordenadores do grupo Gojava Artigo publicado na Easy Java Magazine 6 http://devsexperts.com
  2. 2. O conceito de cloud computing refere-se à utilização da memória, armazenamento, processamento e/ou serviços decomputadores e servidores compartilhados einterligados 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 você começar a ter 200 mil acessos por dia? E se ela dobrar estes acessos da noite pro dia?
  4. 4. E se os acessos quadruplicarem?
  5. 5. E se for 10 vezes, 100 vezes mais acessos?Mas e seu servidor, aguenta o tranco?
  6. 6. Seu momento de glória...
  7. 7. Cloud Computing Surgiu por volta de 2008 Também conhecido como Computação em Nuvem Google, IBM e Microsoft foram pioneiras Nova fronteira da era digital
  8. 8. Entendendo a Cloud Computing Estamos acostumados a salvar tudo em nossos computadores físicos, localmente Em um ambiente empresarial 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, porém mais simples
  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 Ambientes Java (JRuby, Groovy...) e Python Persistência com Big Table (NoSQL) Pague apenas pelo que usar
  16. 16. Vantagens do GAE Escalabilidade infinita Elasticidade Disponibilidade Mais barato
  17. 17. Mais vantagens do GAE Desenvolvimento fácil Ambiente simulado localmente Confiável, mesmo com uma carga pesada e grandes quantidades de dados Ajuste e balanceamento de carga automático
  18. 18. Número de desenvolvedores usando
  19. 19. Número de aplicações no GAE
  20. 20. APIs de Serviço Cache de memória (implementa JCache) Solicitações HTTP e HTTPS (java.net) Mensagens de email (JavaMail) Manipulação de Imagens Login com contas do Google Cron, ferramenta que agenda tarefas
  21. 21. Gostei! Quero começar a usar! Quanto custa?
  22. 22. Começe sem pagar!
  23. 23. Armazenamento de dados
  24. 24. Custo real dos recursos
  25. 25. Gostei mais ainda dos preços e das cotas gratuitas! Como começo a desenvolver?
  26. 26. Ambiente de Desenvolvimento Eclipse + AppEngine SDK + Plugin One-click deploy
  27. 27. Fácil Gerenciamento
  28. 28. Fácil Gerenciamento
  29. 29. Fácil Gerenciamento
  30. 30. Fácil Gerenciamento
  31. 31. Padronização Servlets 2.5 e JSP 2 JPA 1 e JDO 2 java.net JavaMail Jcache JSE 5 e 6
  32. 32. O que podemos utilizar no GAE Struts 2 JSF 1.2 e JSF 2.0 Spring MVC Flex REST VRaptor
  33. 33. Fique atento BigTable não é relacional (Nosql) Acessar BigTable com JPA pode ser complicado Mesmo com JPA suas aplicações podem não ser mais tão portáveis
  34. 34. Desvantagens Sem funções de agregação (count, sum, max...) 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
  35. 35. Alternativas Usar código específico Datastore Low-level API (muito complexa) Novos frameworks: Objectify, Twig, SimpleDS
  36. 36. Objectify Objectify ofy = ObjectifyService.begin(); // Simple create Car porsche = new Car("2FAST", "red"); ofy.put(porsche); assert porsche.id != null; // id was autogenerated // Get it back Car fetched1 = ofy.get(new Key<Car>(Car.class, porsche.id)); Car fetched2 = ofy.get(Car.class, porsche.id); // equivalent assert areEqual(porsche, fetched1, fetched2); // Delete it ofy.delete(porsche);
  37. 37. Concluindo Existem vantagens e desvantagens Perdemos características como BD relacional, porém ganhamos em outras Preocupação com coisas novas Em cloud é preciso confiar no seu fornecedor
  38. 38. Novidade! Google Cloud SQL Ambiente MySQL com acesso Java via JDBC Backup e escalonamento (quando necessário), são feitos automaticamente pela plataforma. Alta disponibilidade e confiabilidade: dados replicados em múltiplos datacenters; Falhas de hardware em um servidor, rack ou mesmo datacenter inteiro, são gerenciadas pela plataforma
  39. 39. Obrigado! fredericomaia10@gmail.com @fredmaia Frederico Maia http://devsexperts.com

×