SlideShare uma empresa Scribd logo
1 de 41
Baixar para ler offline
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
O conceito de cloud computing refere-se à
   utilização da memória, armazenamento,
        processamento e/ou serviços de
computadores e servidores compartilhados e
interligados por meio da Internet, seguindo o
      princípio da computação em grade.
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?
E se os acessos quadruplicarem?
E se for 10 vezes, 100 vezes mais
              acessos?
Mas e seu servidor, aguenta o tranco?
Seu momento de glória...
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
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
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
Principais tipos de cloud
 IaaS - Infrastructure as a Service

 SaaS – Software as a Service

 PaaS – Plataform as a Service
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
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
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
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
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
Vantagens do GAE
 Escalabilidade infinita

 Elasticidade

 Disponibilidade

 Mais barato
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
Número de desenvolvedores usando
Número de aplicações no GAE
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
Gostei! Quero começar a usar!

       Quanto custa?
Começe sem pagar!
Armazenamento de dados
Custo real dos recursos
Gostei mais ainda dos preços e das cotas
               gratuitas!
    Como começo a desenvolver?
Ambiente de Desenvolvimento

 Eclipse + AppEngine SDK + Plugin

 One-click deploy
Fácil Gerenciamento
Fácil Gerenciamento
Fácil Gerenciamento
Fácil Gerenciamento
Padronização
 Servlets 2.5 e JSP 2

 JPA 1 e JDO 2

 java.net

 JavaMail

 Jcache

 JSE 5 e 6
O que podemos utilizar no GAE
 Struts 2
 JSF 1.2 e JSF 2.0
 Spring MVC
 Flex
 REST
 VRaptor
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
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
Alternativas

 Usar código específico

 Datastore Low-level API (muito complexa)

 Novos frameworks: Objectify, Twig, SimpleDS
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);
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
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
Obrigado!
  fredericomaia10@gmail.com

  @fredmaia

  Frederico Maia


  http://devsexperts.com

Mais conteúdo relacionado

Mais procurados

Criando um baseline de seu ambiente completo utilizando SSIS e SSRS
Criando um baseline de seu ambiente completo utilizando SSIS e SSRSCriando um baseline de seu ambiente completo utilizando SSIS e SSRS
Criando um baseline de seu ambiente completo utilizando SSIS e SSRSMarcos Freccia
 
Cloud & AWS: Da teoria à prática
Cloud & AWS: Da teoria à práticaCloud & AWS: Da teoria à prática
Cloud & AWS: Da teoria à práticaRicardo Martins ☁
 
Armazenamento em nuvens
Armazenamento em nuvensArmazenamento em nuvens
Armazenamento em nuvensAysllan Vieira
 
Azure e suas vantagens (Palestra 1)
Azure e suas vantagens (Palestra 1) Azure e suas vantagens (Palestra 1)
Azure e suas vantagens (Palestra 1) Marcus Garcia
 
Infraestrutura em nuvem com Amazon Web Services (AWS)
Infraestrutura em nuvem com Amazon Web Services (AWS)Infraestrutura em nuvem com Amazon Web Services (AWS)
Infraestrutura em nuvem com Amazon Web Services (AWS)Infosimples
 
Firebase dispensando o uso do tradicional backend parasincronização de dados
Firebase   dispensando o uso do tradicional backend parasincronização de dadosFirebase   dispensando o uso do tradicional backend parasincronização de dados
Firebase dispensando o uso do tradicional backend parasincronização de dadosFrancielly Moraes
 
Conta gratuita do Azure
Conta gratuita do AzureConta gratuita do Azure
Conta gratuita do AzureFabio Hara
 
FrontInVale 2016: Webpack - A evolução do asset pipeline (Lightning Talk)
FrontInVale 2016: Webpack - A evolução do asset pipeline (Lightning Talk)FrontInVale 2016: Webpack - A evolução do asset pipeline (Lightning Talk)
FrontInVale 2016: Webpack - A evolução do asset pipeline (Lightning Talk)Aryel Tupinambá
 
Cenários para vender Microsoft Azure
Cenários para vender Microsoft AzureCenários para vender Microsoft Azure
Cenários para vender Microsoft AzureSara Barbosa
 
PHP Conference 2014: Uma string em dez milhões de documentos em menos de um s...
PHP Conference 2014: Uma string em dez milhões de documentos em menos de um s...PHP Conference 2014: Uma string em dez milhões de documentos em menos de um s...
PHP Conference 2014: Uma string em dez milhões de documentos em menos de um s...Aryel Tupinambá
 
Visão geral do Windows Azure Backup
Visão geral do Windows Azure BackupVisão geral do Windows Azure Backup
Visão geral do Windows Azure BackupFabio Hara
 

Mais procurados (20)

Criando um baseline de seu ambiente completo utilizando SSIS e SSRS
Criando um baseline de seu ambiente completo utilizando SSIS e SSRSCriando um baseline de seu ambiente completo utilizando SSIS e SSRS
Criando um baseline de seu ambiente completo utilizando SSIS e SSRS
 
Compweek
CompweekCompweek
Compweek
 
Cloud & AWS: Da teoria à prática
Cloud & AWS: Da teoria à práticaCloud & AWS: Da teoria à prática
Cloud & AWS: Da teoria à prática
 
A plataforma Azure da Microsoft
A plataforma Azure da MicrosoftA plataforma Azure da Microsoft
A plataforma Azure da Microsoft
 
Armazenamento em nuvens
Armazenamento em nuvensArmazenamento em nuvens
Armazenamento em nuvens
 
Azure e suas vantagens (Palestra 1)
Azure e suas vantagens (Palestra 1) Azure e suas vantagens (Palestra 1)
Azure e suas vantagens (Palestra 1)
 
Azure @ Rio Cloud Meetup
Azure @ Rio Cloud MeetupAzure @ Rio Cloud Meetup
Azure @ Rio Cloud Meetup
 
Computação em Nuvem
Computação em NuvemComputação em Nuvem
Computação em Nuvem
 
Parte2b
Parte2bParte2b
Parte2b
 
Infraestrutura em nuvem com Amazon Web Services (AWS)
Infraestrutura em nuvem com Amazon Web Services (AWS)Infraestrutura em nuvem com Amazon Web Services (AWS)
Infraestrutura em nuvem com Amazon Web Services (AWS)
 
Firebase dispensando o uso do tradicional backend parasincronização de dados
Firebase   dispensando o uso do tradicional backend parasincronização de dadosFirebase   dispensando o uso do tradicional backend parasincronização de dados
Firebase dispensando o uso do tradicional backend parasincronização de dados
 
Flisol 2015
Flisol 2015 Flisol 2015
Flisol 2015
 
Conta gratuita do Azure
Conta gratuita do AzureConta gratuita do Azure
Conta gratuita do Azure
 
Overview AWS - Bemobi
Overview AWS - BemobiOverview AWS - Bemobi
Overview AWS - Bemobi
 
FrontInVale 2016: Webpack - A evolução do asset pipeline (Lightning Talk)
FrontInVale 2016: Webpack - A evolução do asset pipeline (Lightning Talk)FrontInVale 2016: Webpack - A evolução do asset pipeline (Lightning Talk)
FrontInVale 2016: Webpack - A evolução do asset pipeline (Lightning Talk)
 
Javaone2010
Javaone2010Javaone2010
Javaone2010
 
Cenários para vender Microsoft Azure
Cenários para vender Microsoft AzureCenários para vender Microsoft Azure
Cenários para vender Microsoft Azure
 
PHP Conference 2014: Uma string em dez milhões de documentos em menos de um s...
PHP Conference 2014: Uma string em dez milhões de documentos em menos de um s...PHP Conference 2014: Uma string em dez milhões de documentos em menos de um s...
PHP Conference 2014: Uma string em dez milhões de documentos em menos de um s...
 
Aws for Developers
Aws for DevelopersAws for Developers
Aws for Developers
 
Visão geral do Windows Azure Backup
Visão geral do Windows Azure BackupVisão geral do Windows Azure Backup
Visão geral do Windows Azure Backup
 

Destaque

Estruturas de dados e técnicas de programação
Estruturas de dados e técnicas de programaçãoEstruturas de dados e técnicas de programação
Estruturas de dados e técnicas de programaçãoEverson Wolf
 
Desenvolvimento Ria com Java
Desenvolvimento Ria com JavaDesenvolvimento Ria com Java
Desenvolvimento Ria com JavaTI Infnet
 
Samir Mamude - Sistemas Comerciais Java EE
Samir Mamude - Sistemas Comerciais Java EESamir Mamude - Sistemas Comerciais Java EE
Samir Mamude - Sistemas Comerciais Java EESamir Mamude
 
Apresentação Ruby no Dojo da UFBA
Apresentação Ruby no Dojo da UFBAApresentação Ruby no Dojo da UFBA
Apresentação Ruby no Dojo da UFBALuciano Borges
 
Applets - O Retorno: A Nova Geração do Java Plug-in
Applets - O Retorno: A Nova Geração do Java Plug-inApplets - O Retorno: A Nova Geração do Java Plug-in
Applets - O Retorno: A Nova Geração do Java Plug-inSerge Rehem
 
Solve elec programa de análise de circuitos elétricos
Solve elec programa de análise de circuitos elétricosSolve elec programa de análise de circuitos elétricos
Solve elec programa de análise de circuitos elétricosEverson Wolf
 
Árvore B estruturas de dados e técnicas de programação
Árvore B estruturas de dados e técnicas de programaçãoÁrvore B estruturas de dados e técnicas de programação
Árvore B estruturas de dados e técnicas de programaçãoEverson Wolf
 
Desenho de formas utizando netbeans
Desenho de formas utizando netbeansDesenho de formas utizando netbeans
Desenho de formas utizando netbeansokashi24
 
Integração de ferramentas de código aberto (java, pentaho e android) e mapas,...
Integração de ferramentas de código aberto (java, pentaho e android) e mapas,...Integração de ferramentas de código aberto (java, pentaho e android) e mapas,...
Integração de ferramentas de código aberto (java, pentaho e android) e mapas,...Caio Moreno
 
Tutorial sistema vendas_em_java_com_swing
Tutorial sistema vendas_em_java_com_swingTutorial sistema vendas_em_java_com_swing
Tutorial sistema vendas_em_java_com_swingEverson Wolf
 
Projeto calculadora em_java
Projeto calculadora em_javaProjeto calculadora em_java
Projeto calculadora em_javasamuelthiago
 
NãNãNã Nã - Python Refresca até Pensamento
NãNãNã Nã - Python Refresca até PensamentoNãNãNã Nã - Python Refresca até Pensamento
NãNãNã Nã - Python Refresca até PensamentoOsvaldo Santana Neto
 
Caminho das Pedras para Certificação Java
Caminho das Pedras para Certificação JavaCaminho das Pedras para Certificação Java
Caminho das Pedras para Certificação JavaÁtilla Silva Barros
 
Prática de ensino de Linguagem de Programação II
Prática de ensino de Linguagem de Programação IIPrática de ensino de Linguagem de Programação II
Prática de ensino de Linguagem de Programação IIEverson Wolf
 
Coding-Dojo: Uma forma rápida, eficiente e divertida de ensinar e aprender
Coding-Dojo: Uma forma rápida, eficiente e divertida de ensinar e aprenderCoding-Dojo: Uma forma rápida, eficiente e divertida de ensinar e aprender
Coding-Dojo: Uma forma rápida, eficiente e divertida de ensinar e aprenderSerge Rehem
 

Destaque (20)

Java 01 Java Visao Geral
Java 01 Java Visao GeralJava 01 Java Visao Geral
Java 01 Java Visao Geral
 
Estruturas de dados e técnicas de programação
Estruturas de dados e técnicas de programaçãoEstruturas de dados e técnicas de programação
Estruturas de dados e técnicas de programação
 
Desenvolvimento Ria com Java
Desenvolvimento Ria com JavaDesenvolvimento Ria com Java
Desenvolvimento Ria com Java
 
Samir Mamude - Sistemas Comerciais Java EE
Samir Mamude - Sistemas Comerciais Java EESamir Mamude - Sistemas Comerciais Java EE
Samir Mamude - Sistemas Comerciais Java EE
 
Apresentação Ruby no Dojo da UFBA
Apresentação Ruby no Dojo da UFBAApresentação Ruby no Dojo da UFBA
Apresentação Ruby no Dojo da UFBA
 
Applets - O Retorno: A Nova Geração do Java Plug-in
Applets - O Retorno: A Nova Geração do Java Plug-inApplets - O Retorno: A Nova Geração do Java Plug-in
Applets - O Retorno: A Nova Geração do Java Plug-in
 
Solve elec programa de análise de circuitos elétricos
Solve elec programa de análise de circuitos elétricosSolve elec programa de análise de circuitos elétricos
Solve elec programa de análise de circuitos elétricos
 
Árvore B estruturas de dados e técnicas de programação
Árvore B estruturas de dados e técnicas de programaçãoÁrvore B estruturas de dados e técnicas de programação
Árvore B estruturas de dados e técnicas de programação
 
Desenho de formas utizando netbeans
Desenho de formas utizando netbeansDesenho de formas utizando netbeans
Desenho de formas utizando netbeans
 
Integração de ferramentas de código aberto (java, pentaho e android) e mapas,...
Integração de ferramentas de código aberto (java, pentaho e android) e mapas,...Integração de ferramentas de código aberto (java, pentaho e android) e mapas,...
Integração de ferramentas de código aberto (java, pentaho e android) e mapas,...
 
Java básico
Java básicoJava básico
Java básico
 
Tutorial sistema vendas_em_java_com_swing
Tutorial sistema vendas_em_java_com_swingTutorial sistema vendas_em_java_com_swing
Tutorial sistema vendas_em_java_com_swing
 
Projeto calculadora em_java
Projeto calculadora em_javaProjeto calculadora em_java
Projeto calculadora em_java
 
NãNãNã Nã - Python Refresca até Pensamento
NãNãNã Nã - Python Refresca até PensamentoNãNãNã Nã - Python Refresca até Pensamento
NãNãNã Nã - Python Refresca até Pensamento
 
Android
AndroidAndroid
Android
 
Caminho das Pedras para Certificação Java
Caminho das Pedras para Certificação JavaCaminho das Pedras para Certificação Java
Caminho das Pedras para Certificação Java
 
Prática de ensino de Linguagem de Programação II
Prática de ensino de Linguagem de Programação IIPrática de ensino de Linguagem de Programação II
Prática de ensino de Linguagem de Programação II
 
Jazoon 08
Jazoon 08Jazoon 08
Jazoon 08
 
Coding-Dojo: Uma forma rápida, eficiente e divertida de ensinar e aprender
Coding-Dojo: Uma forma rápida, eficiente e divertida de ensinar e aprenderCoding-Dojo: Uma forma rápida, eficiente e divertida de ensinar e aprender
Coding-Dojo: Uma forma rápida, eficiente e divertida de ensinar e aprender
 
Visão Geral de EJB 3.0
Visão Geral de EJB 3.0Visão Geral de EJB 3.0
Visão Geral de EJB 3.0
 

Semelhante a Java no Google App Engine - TDC2011

Produtividade em Java com Grails
Produtividade em Java com GrailsProdutividade em Java com Grails
Produtividade em Java com GrailsWanderson Oliveira
 
Apresentação CEJS - Do nada para a nuvem
Apresentação CEJS - Do nada para a nuvemApresentação CEJS - Do nada para a nuvem
Apresentação CEJS - Do nada para a nuvemRodrigo Valerio
 
Mongo Db - PHP Day Workshop
Mongo Db - PHP Day WorkshopMongo Db - PHP Day Workshop
Mongo Db - PHP Day WorkshopDiego Sana
 
Vitor Hugo Bastos Cardoso apresenta voando alto com WordPress: um guia prátic...
Vitor Hugo Bastos Cardoso apresenta voando alto com WordPress: um guia prátic...Vitor Hugo Bastos Cardoso apresenta voando alto com WordPress: um guia prátic...
Vitor Hugo Bastos Cardoso apresenta voando alto com WordPress: um guia prátic...WordCamp Floripa
 
De zero a cem em cloud computing transformando idéias em aplicações em pouco...
De zero a cem em cloud computing  transformando idéias em aplicações em pouco...De zero a cem em cloud computing  transformando idéias em aplicações em pouco...
De zero a cem em cloud computing transformando idéias em aplicações em pouco...Ricardo Martinelli de Oliveira
 
Spring roo produtividade no java
Spring roo produtividade no javaSpring roo produtividade no java
Spring roo produtividade no javaPedro Cavalero
 
Apostila de Fundamentos Java
Apostila de Fundamentos JavaApostila de Fundamentos Java
Apostila de Fundamentos JavaMarcio Marinho
 
Arquitetura de um sistema crítico de alta disponibilidade com soluções open s...
Arquitetura de um sistema crítico de alta disponibilidade com soluções open s...Arquitetura de um sistema crítico de alta disponibilidade com soluções open s...
Arquitetura de um sistema crítico de alta disponibilidade com soluções open s...Daniel Destro Do Carmo
 
Infraestrutura como código Terraform aws openshift Ansible
Infraestrutura como código Terraform aws openshift AnsibleInfraestrutura como código Terraform aws openshift Ansible
Infraestrutura como código Terraform aws openshift AnsibleClaudemir de Almeida Rosa
 
Introdução sobre desenvolvimento web
Introdução sobre desenvolvimento webIntrodução sobre desenvolvimento web
Introdução sobre desenvolvimento webRodrigo Rodrigues
 
Apresentação Minas - Desenvolvendo Sites
Apresentação Minas - Desenvolvendo SitesApresentação Minas - Desenvolvendo Sites
Apresentação Minas - Desenvolvendo Sitesthiagolima
 
Big Data, Performance, Posix, RTB no mercado de publicidade online
Big Data, Performance, Posix, RTB no mercado de publicidade onlineBig Data, Performance, Posix, RTB no mercado de publicidade online
Big Data, Performance, Posix, RTB no mercado de publicidade onlineTiago Peczenyj
 

Semelhante a Java no Google App Engine - TDC2011 (20)

Cursos
CursosCursos
Cursos
 
Produtividade em Java com Grails
Produtividade em Java com GrailsProdutividade em Java com Grails
Produtividade em Java com Grails
 
Apresentação CEJS - Do nada para a nuvem
Apresentação CEJS - Do nada para a nuvemApresentação CEJS - Do nada para a nuvem
Apresentação CEJS - Do nada para a nuvem
 
Java Nuvem Appengine
Java Nuvem AppengineJava Nuvem Appengine
Java Nuvem Appengine
 
Mongo Db - PHP Day Workshop
Mongo Db - PHP Day WorkshopMongo Db - PHP Day Workshop
Mongo Db - PHP Day Workshop
 
Vitor Hugo Bastos Cardoso apresenta voando alto com WordPress: um guia prátic...
Vitor Hugo Bastos Cardoso apresenta voando alto com WordPress: um guia prátic...Vitor Hugo Bastos Cardoso apresenta voando alto com WordPress: um guia prátic...
Vitor Hugo Bastos Cardoso apresenta voando alto com WordPress: um guia prátic...
 
Palestra
PalestraPalestra
Palestra
 
OpenShift
OpenShiftOpenShift
OpenShift
 
De zero a cem em cloud computing transformando idéias em aplicações em pouco...
De zero a cem em cloud computing  transformando idéias em aplicações em pouco...De zero a cem em cloud computing  transformando idéias em aplicações em pouco...
De zero a cem em cloud computing transformando idéias em aplicações em pouco...
 
Ruby on Rails for beginners 2.0
Ruby on Rails for beginners 2.0Ruby on Rails for beginners 2.0
Ruby on Rails for beginners 2.0
 
Spring roo produtividade no java
Spring roo produtividade no javaSpring roo produtividade no java
Spring roo produtividade no java
 
Java Seminar
Java SeminarJava Seminar
Java Seminar
 
Apostila de Fundamentos Java
Apostila de Fundamentos JavaApostila de Fundamentos Java
Apostila de Fundamentos Java
 
Arquitetura de um sistema crítico de alta disponibilidade com soluções open s...
Arquitetura de um sistema crítico de alta disponibilidade com soluções open s...Arquitetura de um sistema crítico de alta disponibilidade com soluções open s...
Arquitetura de um sistema crítico de alta disponibilidade com soluções open s...
 
Infraestrutura como código Terraform aws openshift Ansible
Infraestrutura como código Terraform aws openshift AnsibleInfraestrutura como código Terraform aws openshift Ansible
Infraestrutura como código Terraform aws openshift Ansible
 
Introdução sobre desenvolvimento web
Introdução sobre desenvolvimento webIntrodução sobre desenvolvimento web
Introdução sobre desenvolvimento web
 
Apresentação Minas - Desenvolvendo Sites
Apresentação Minas - Desenvolvendo SitesApresentação Minas - Desenvolvendo Sites
Apresentação Minas - Desenvolvendo Sites
 
Tecnologia Java
Tecnologia JavaTecnologia Java
Tecnologia Java
 
Big Data, Performance, Posix, RTB no mercado de publicidade online
Big Data, Performance, Posix, RTB no mercado de publicidade onlineBig Data, Performance, Posix, RTB no mercado de publicidade online
Big Data, Performance, Posix, RTB no mercado de publicidade online
 
Azure Overview
Azure OverviewAzure Overview
Azure Overview
 

Mais de Frederico Maia Arantes

The best way to create and deploy web apps with full-stack type safety - Mete...
The best way to create and deploy web apps with full-stack type safety - Mete...The best way to create and deploy web apps with full-stack type safety - Mete...
The best way to create and deploy web apps with full-stack type safety - Mete...Frederico Maia Arantes
 
Produtividade e deploy na criação de apps NodeJS com MeteorJS - Join Communit...
Produtividade e deploy na criação de apps NodeJS com MeteorJS - Join Communit...Produtividade e deploy na criação de apps NodeJS com MeteorJS - Join Communit...
Produtividade e deploy na criação de apps NodeJS com MeteorJS - Join Communit...Frederico Maia Arantes
 
Java 8 - Afinal onde usamos no dia a dia? GOJava 15 anos!
Java 8 - Afinal onde usamos no dia a dia? GOJava 15 anos!Java 8 - Afinal onde usamos no dia a dia? GOJava 15 anos!
Java 8 - Afinal onde usamos no dia a dia? GOJava 15 anos!Frederico Maia Arantes
 
Apresentando meteor! Join Community - Goiânia
Apresentando meteor! Join Community - GoiâniaApresentando meteor! Join Community - Goiânia
Apresentando meteor! Join Community - GoiâniaFrederico Maia Arantes
 
Java 8 - Afinal onde usamos no dia a dia? TDC 2015 - Porto Alegre
Java 8 - Afinal onde usamos no dia a dia? TDC 2015 - Porto AlegreJava 8 - Afinal onde usamos no dia a dia? TDC 2015 - Porto Alegre
Java 8 - Afinal onde usamos no dia a dia? TDC 2015 - Porto AlegreFrederico Maia Arantes
 
Meteor - Nunca foi tão fácil desenvolver pra web e mobile
Meteor - Nunca foi tão fácil desenvolver pra web e mobileMeteor - Nunca foi tão fácil desenvolver pra web e mobile
Meteor - Nunca foi tão fácil desenvolver pra web e mobileFrederico Maia Arantes
 
Introdução a JPA e Hibernate - TDC 2012
Introdução a JPA e Hibernate - TDC 2012Introdução a JPA e Hibernate - TDC 2012
Introdução a JPA e Hibernate - TDC 2012Frederico Maia Arantes
 
Boas práticas com jpa 2 e hibernate flisol 2012
Boas práticas com jpa 2 e hibernate   flisol 2012Boas práticas com jpa 2 e hibernate   flisol 2012
Boas práticas com jpa 2 e hibernate flisol 2012Frederico Maia Arantes
 
Visão Geral do Java para Iniciantes - FLISOL 2011
Visão Geral do Java para Iniciantes - FLISOL 2011Visão Geral do Java para Iniciantes - FLISOL 2011
Visão Geral do Java para Iniciantes - FLISOL 2011Frederico Maia Arantes
 
JSF 2 e Primefaces - 4º Encontro Mensal do Gojava
JSF 2 e Primefaces - 4º Encontro Mensal do GojavaJSF 2 e Primefaces - 4º Encontro Mensal do Gojava
JSF 2 e Primefaces - 4º Encontro Mensal do GojavaFrederico Maia Arantes
 

Mais de Frederico Maia Arantes (13)

The best way to create and deploy web apps with full-stack type safety - Mete...
The best way to create and deploy web apps with full-stack type safety - Mete...The best way to create and deploy web apps with full-stack type safety - Mete...
The best way to create and deploy web apps with full-stack type safety - Mete...
 
Produtividade e deploy na criação de apps NodeJS com MeteorJS - Join Communit...
Produtividade e deploy na criação de apps NodeJS com MeteorJS - Join Communit...Produtividade e deploy na criação de apps NodeJS com MeteorJS - Join Communit...
Produtividade e deploy na criação de apps NodeJS com MeteorJS - Join Communit...
 
Java 8 - Afinal onde usamos no dia a dia? GOJava 15 anos!
Java 8 - Afinal onde usamos no dia a dia? GOJava 15 anos!Java 8 - Afinal onde usamos no dia a dia? GOJava 15 anos!
Java 8 - Afinal onde usamos no dia a dia? GOJava 15 anos!
 
Apresentando meteor! Join Community - Goiânia
Apresentando meteor! Join Community - GoiâniaApresentando meteor! Join Community - Goiânia
Apresentando meteor! Join Community - Goiânia
 
Java 8 - Afinal onde usamos no dia a dia? TDC 2015 - Porto Alegre
Java 8 - Afinal onde usamos no dia a dia? TDC 2015 - Porto AlegreJava 8 - Afinal onde usamos no dia a dia? TDC 2015 - Porto Alegre
Java 8 - Afinal onde usamos no dia a dia? TDC 2015 - Porto Alegre
 
Meteor - Nunca foi tão fácil desenvolver pra web e mobile
Meteor - Nunca foi tão fácil desenvolver pra web e mobileMeteor - Nunca foi tão fácil desenvolver pra web e mobile
Meteor - Nunca foi tão fácil desenvolver pra web e mobile
 
Java Web Fácil com VRaptor
Java Web Fácil com VRaptorJava Web Fácil com VRaptor
Java Web Fácil com VRaptor
 
Introdução a JPA e Hibernate - TDC 2012
Introdução a JPA e Hibernate - TDC 2012Introdução a JPA e Hibernate - TDC 2012
Introdução a JPA e Hibernate - TDC 2012
 
Boas práticas com jpa 2 e hibernate flisol 2012
Boas práticas com jpa 2 e hibernate   flisol 2012Boas práticas com jpa 2 e hibernate   flisol 2012
Boas práticas com jpa 2 e hibernate flisol 2012
 
Minicurso jpa e hibernate
Minicurso jpa e hibernateMinicurso jpa e hibernate
Minicurso jpa e hibernate
 
Visão Geral do Java para Iniciantes - FLISOL 2011
Visão Geral do Java para Iniciantes - FLISOL 2011Visão Geral do Java para Iniciantes - FLISOL 2011
Visão Geral do Java para Iniciantes - FLISOL 2011
 
JSF 2 e Primefaces - 4º Encontro Mensal do Gojava
JSF 2 e Primefaces - 4º Encontro Mensal do GojavaJSF 2 e Primefaces - 4º Encontro Mensal do Gojava
JSF 2 e Primefaces - 4º Encontro Mensal do Gojava
 
Java e orientação a objetos
Java e orientação a objetosJava e orientação a objetos
Java e orientação a objetos
 

Java no Google App Engine - TDC2011

  • 1.
  • 2. 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
  • 3.
  • 4. O conceito de cloud computing refere-se à utilização da memória, armazenamento, processamento e/ou serviços 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 você começar a ter 200 mil acessos por dia? E se ela dobrar estes acessos da noite pro dia?
  • 6. E se os acessos quadruplicarem?
  • 7. E se for 10 vezes, 100 vezes mais acessos? Mas e seu servidor, aguenta o tranco?
  • 8. Seu momento de glória...
  • 9. 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
  • 10. 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
  • 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, porém mais simples
  • 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
  • 17. 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
  • 18. Vantagens do GAE  Escalabilidade infinita  Elasticidade  Disponibilidade  Mais barato
  • 19. 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
  • 22. 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
  • 23. Gostei! Quero começar a usar! Quanto custa?
  • 26. Custo real dos recursos
  • 27. Gostei mais ainda dos preços e das cotas gratuitas! Como começo a desenvolver?
  • 28. Ambiente de Desenvolvimento  Eclipse + AppEngine SDK + Plugin  One-click deploy
  • 33. Padronização  Servlets 2.5 e JSP 2  JPA 1 e JDO 2  java.net  JavaMail  Jcache  JSE 5 e 6
  • 34. O que podemos utilizar no GAE  Struts 2  JSF 1.2 e JSF 2.0  Spring MVC  Flex  REST  VRaptor
  • 35. 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
  • 36. 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
  • 37. Alternativas  Usar código específico  Datastore Low-level API (muito complexa)  Novos frameworks: Objectify, Twig, SimpleDS
  • 38. 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);
  • 39. 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
  • 40. 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
  • 41. Obrigado! fredericomaia10@gmail.com @fredmaia Frederico Maia http://devsexperts.com