SlideShare une entreprise Scribd logo
1  sur  55
Télécharger pour lire hors ligne
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
“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.”
O que você acha de sua aplicação
ficar famosa e dobrar os acessos
        da noite pro dia?
E se os acessos quadruplicarem?
E se for 10 vezes, 100 vezes mais
acessos? Seu servidor aguenta o
             tranco?
Seu momento de glória.. Fuu...
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
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
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
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
Google App Engine (PaaS)

 Infraestrutura e qualidade do Google

 Ambientes Java (Ruby, Groovy...) e Python
Google App Engine (PaaS)

 Infraestrutura e qualidade do Google

 Ambientes Java (Ruby, Groovy...) e Python

 Persistência com Big Table (NoSQL)
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
Vantagens do GAE

 Escalabilidade infinita
Vantagens do GAE

 Escalabilidade infinita

 Elasticidade
Vantagens do GAE

 Escalabilidade infinita

 Elasticidade

 Disponibilidade
Vantagens do GAE

 Escalabilidade infinita

 Elasticidade

 Disponibilidade

 Mais barato
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
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
É barato mesmo
Ambiente de Desenvolvimento

 Eclipse + AppEngine SDK + Plugin
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
Padronização
 Servlets 2.5 e JSP 2

 JPA 1 e JDO 2
Padronização
 Servlets 2.5 e JSP 2

 JPA 1 e JDO 2

 java.net
Padronização
 Servlets 2.5 e JSP 2

 JPA 1 e JDO 2

 java.net

 JavaMail
Padronização
 Servlets 2.5 e JSP 2

 JPA 1 e JDO 2

 java.net

 JavaMail

 Jcache
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
 API de imagens...
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
Desvantagens
 Sem funções de agregação (count, sum, max,
 min, group by...)
Desvantagens
 Sem funções de agregação (count, sum, max,
 min, group by...)
Desvantagens
 Transações não são comuns
Desvantagens
 Transações não são comuns

 Não existem joins
Desvantagens
 Transações não são comuns

 Não existem joins

 Código específico (JPQL, JDOQL) para JPA
Desvantagens
 Transações não são comuns

 Não existem joins

 Código específico (JPQL, JDOQL) para JPA

 Startup deve ser otimizado
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
Alternativas

 Usar código específico
Alternativas

 Usar código específico

 Datastore Low-level API (muito complexa)
Alternativas

 Usar código específico

 Datastore Low-level API (muito complexa)

 Novos frameworks: Objectify, Twig
Fique atento

 Datastore read-only (é bom estar preparado)

 Usar cache de dados e de página
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.
}
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
Dúvidas?
  fredericomaia10@gmail.com

  @fredmaia

  @gojava



  http://devsexperts.com

Contenu connexe

Tendances

Introdução ao Windows Azure - Sessão 1 (mais teórica)
Introdução ao Windows Azure - Sessão 1 (mais teórica)Introdução ao Windows Azure - Sessão 1 (mais teórica)
Introdução ao Windows Azure - Sessão 1 (mais teórica)Giovanni Bassi
 
Azure infrastructure as a service overview
Azure infrastructure as a service overviewAzure infrastructure as a service overview
Azure infrastructure as a service overviewFabio Hara
 
Azure Stack | Visão Geral
Azure Stack | Visão GeralAzure Stack | Visão Geral
Azure Stack | Visão GeralFabio Hara
 
Bibliotecas de interface rica no jsf 2
Bibliotecas de interface rica no jsf 2Bibliotecas de interface rica no jsf 2
Bibliotecas de interface rica no jsf 2Pablo Nóbrega
 
Cloud Computing com Windows Azure
Cloud Computing com Windows AzureCloud Computing com Windows Azure
Cloud Computing com Windows AzureMarcelo Paiva
 
Windows Server 2016 | Hyperconvergência
Windows Server 2016 | HyperconvergênciaWindows Server 2016 | Hyperconvergência
Windows Server 2016 | HyperconvergênciaFabio Hara
 
Introdução à computação na nuvem e Windows Azure
Introdução à computação na nuvem e Windows AzureIntrodução à computação na nuvem e Windows Azure
Introdução à computação na nuvem e Windows AzureGiovanni Bassi
 
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
 
DevOps, Chef, Puppet, Ansible e como vender milhões na Black Friday com 100% ...
DevOps, Chef, Puppet, Ansible e como vender milhões na Black Friday com 100% ...DevOps, Chef, Puppet, Ansible e como vender milhões na Black Friday com 100% ...
DevOps, Chef, Puppet, Ansible e como vender milhões na Black Friday com 100% ...Bruno Luiz Pereira da Silva
 
Segurança e automação na Amazon: Lições das trincheiras
Segurança e automação na Amazon: Lições das trincheirasSegurança e automação na Amazon: Lições das trincheiras
Segurança e automação na Amazon: Lições das trincheirasBruno Luiz Pereira da Silva
 
Banco de dados na nuvem e isso é possível
Banco de dados na nuvem e isso é possívelBanco de dados na nuvem e isso é possível
Banco de dados na nuvem e isso é possívelMarcos Freccia
 
Apresentando o OpsWorks - Bemobi
Apresentando o OpsWorks - BemobiApresentando o OpsWorks - Bemobi
Apresentando o OpsWorks - BemobiRicardo Martins ☁
 
Windows Azure Pack - Visão Geral
Windows Azure Pack - Visão GeralWindows Azure Pack - Visão Geral
Windows Azure Pack - Visão GeralFabio Hara
 
Arquitetando sua aplicação de nova geração com MySQL 5.7
Arquitetando sua aplicação de nova geração com MySQL 5.7Arquitetando sua aplicação de nova geração com MySQL 5.7
Arquitetando sua aplicação de nova geração com MySQL 5.7Mathias Brem
 

Tendances (20)

Introdução ao Windows Azure - Sessão 1 (mais teórica)
Introdução ao Windows Azure - Sessão 1 (mais teórica)Introdução ao Windows Azure - Sessão 1 (mais teórica)
Introdução ao Windows Azure - Sessão 1 (mais teórica)
 
Azure infrastructure as a service overview
Azure infrastructure as a service overviewAzure infrastructure as a service overview
Azure infrastructure as a service overview
 
Azure Backup
Azure BackupAzure Backup
Azure Backup
 
Azure Stack | Visão Geral
Azure Stack | Visão GeralAzure Stack | Visão Geral
Azure Stack | Visão Geral
 
Bibliotecas de interface rica no jsf 2
Bibliotecas de interface rica no jsf 2Bibliotecas de interface rica no jsf 2
Bibliotecas de interface rica no jsf 2
 
A plataforma Azure da Microsoft
A plataforma Azure da MicrosoftA plataforma Azure da Microsoft
A plataforma Azure da Microsoft
 
What's New On Azure IaaS
What's New On Azure IaaSWhat's New On Azure IaaS
What's New On Azure IaaS
 
Cloud Computing com Windows Azure
Cloud Computing com Windows AzureCloud Computing com Windows Azure
Cloud Computing com Windows Azure
 
Windows Server 2016 | Hyperconvergência
Windows Server 2016 | HyperconvergênciaWindows Server 2016 | Hyperconvergência
Windows Server 2016 | Hyperconvergência
 
Introdução à computação na nuvem e Windows Azure
Introdução à computação na nuvem e Windows AzureIntrodução à computação na nuvem e Windows Azure
Introdução à computação na nuvem e Windows Azure
 
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
 
SQL over SMB3
SQL over SMB3SQL over SMB3
SQL over SMB3
 
DevOps, Chef, Puppet, Ansible e como vender milhões na Black Friday com 100% ...
DevOps, Chef, Puppet, Ansible e como vender milhões na Black Friday com 100% ...DevOps, Chef, Puppet, Ansible e como vender milhões na Black Friday com 100% ...
DevOps, Chef, Puppet, Ansible e como vender milhões na Black Friday com 100% ...
 
Segurança e automação na Amazon: Lições das trincheiras
Segurança e automação na Amazon: Lições das trincheirasSegurança e automação na Amazon: Lições das trincheiras
Segurança e automação na Amazon: Lições das trincheiras
 
Banco de dados na nuvem e isso é possível
Banco de dados na nuvem e isso é possívelBanco de dados na nuvem e isso é possível
Banco de dados na nuvem e isso é possível
 
Apresentando o OpsWorks - Bemobi
Apresentando o OpsWorks - BemobiApresentando o OpsWorks - Bemobi
Apresentando o OpsWorks - Bemobi
 
Windows Azure Pack - Visão Geral
Windows Azure Pack - Visão GeralWindows Azure Pack - Visão Geral
Windows Azure Pack - Visão Geral
 
Aceleracao+conteudo+dinamico
Aceleracao+conteudo+dinamicoAceleracao+conteudo+dinamico
Aceleracao+conteudo+dinamico
 
Arquitetando sua aplicação de nova geração com MySQL 5.7
Arquitetando sua aplicação de nova geração com MySQL 5.7Arquitetando sua aplicação de nova geração com MySQL 5.7
Arquitetando sua aplicação de nova geração com MySQL 5.7
 
Java: Por onde começar nos dias de hoje?
Java: Por onde começar nos dias de hoje?Java: Por onde começar nos dias de hoje?
Java: Por onde começar nos dias de hoje?
 

En vedette

Cloud for Developers: Azure vs. Google App Engine vs. Amazon vs. AppHarbor
Cloud for Developers: Azure vs. Google App Engine vs. Amazon vs. AppHarborCloud for Developers: Azure vs. Google App Engine vs. Amazon vs. AppHarbor
Cloud for Developers: Azure vs. Google App Engine vs. Amazon vs. AppHarborSvetlin Nakov
 
Linkbaiting - SEMSEO 2011
Linkbaiting - SEMSEO 2011Linkbaiting - SEMSEO 2011
Linkbaiting - SEMSEO 2011get on top gmbh
 
Tecnicas SEO
Tecnicas SEOTecnicas SEO
Tecnicas SEObluekiu
 
Adforallprsentation 100914100808 Phpapp02
Adforallprsentation 100914100808 Phpapp02Adforallprsentation 100914100808 Phpapp02
Adforallprsentation 100914100808 Phpapp02fabrice_TALAZAC
 
produção de games com tecnologia livre ou proprietária, Qual usar?
produção de games com tecnologia livre ou proprietária, Qual usar?produção de games com tecnologia livre ou proprietária, Qual usar?
produção de games com tecnologia livre ou proprietária, Qual usar?Renan Nespolo
 
коллекция Audi в миниатюре
коллекция Audi в миниатюреколлекция Audi в миниатюре
коллекция Audi в миниатюреVag-Express
 
Digital Training (SEO: search engine optimization)
Digital Training (SEO: search engine optimization)Digital Training (SEO: search engine optimization)
Digital Training (SEO: search engine optimization)Carlos De La Ossa
 
Performance im Fokus
Performance im FokusPerformance im Fokus
Performance im FokusInxmail GmbH
 
Python, Google App Engine e Webapp-CE
Python, Google App Engine e Webapp-CE Python, Google App Engine e Webapp-CE
Python, Google App Engine e Webapp-CE Renzo Nuccitelli
 
Social Media für Unternehmen und Institutionen
Social Media für Unternehmen und InstitutionenSocial Media für Unternehmen und Institutionen
Social Media für Unternehmen und InstitutionenChristian Moeller
 
TDD com Python e App Engine
TDD com Python e App EngineTDD com Python e App Engine
TDD com Python e App EngineRicardo Bánffy
 
Open Source BPM - iteratec Architekturtag
Open Source BPM - iteratec ArchitekturtagOpen Source BPM - iteratec Architekturtag
Open Source BPM - iteratec Architekturtagcamunda services GmbH
 
Was User lieben, was sie hassen - Gregor Urech, Sibylle Peuker, Zeix AG
Was User lieben, was sie hassen - Gregor Urech, Sibylle Peuker, Zeix AGWas User lieben, was sie hassen - Gregor Urech, Sibylle Peuker, Zeix AG
Was User lieben, was sie hassen - Gregor Urech, Sibylle Peuker, Zeix AGONE Schweiz
 
Congreso visión 2012 - taller introducción app engine
Congreso visión 2012 - taller introducción app engineCongreso visión 2012 - taller introducción app engine
Congreso visión 2012 - taller introducción app engineNigeŗ Arce
 
Presentation SEO/SEM
Presentation SEO/SEMPresentation SEO/SEM
Presentation SEO/SEMHicham SBINI
 

En vedette (20)

Cloud for Developers: Azure vs. Google App Engine vs. Amazon vs. AppHarbor
Cloud for Developers: Azure vs. Google App Engine vs. Amazon vs. AppHarborCloud for Developers: Azure vs. Google App Engine vs. Amazon vs. AppHarbor
Cloud for Developers: Azure vs. Google App Engine vs. Amazon vs. AppHarbor
 
Smart Industry
Smart IndustrySmart Industry
Smart Industry
 
Linkbaiting - SEMSEO 2011
Linkbaiting - SEMSEO 2011Linkbaiting - SEMSEO 2011
Linkbaiting - SEMSEO 2011
 
Pictures mix
Pictures mixPictures mix
Pictures mix
 
SMM-SEO.SEM
SMM-SEO.SEMSMM-SEO.SEM
SMM-SEO.SEM
 
Tecnicas SEO
Tecnicas SEOTecnicas SEO
Tecnicas SEO
 
Adforallprsentation 100914100808 Phpapp02
Adforallprsentation 100914100808 Phpapp02Adforallprsentation 100914100808 Phpapp02
Adforallprsentation 100914100808 Phpapp02
 
produção de games com tecnologia livre ou proprietária, Qual usar?
produção de games com tecnologia livre ou proprietária, Qual usar?produção de games com tecnologia livre ou proprietária, Qual usar?
produção de games com tecnologia livre ou proprietária, Qual usar?
 
коллекция Audi в миниатюре
коллекция Audi в миниатюреколлекция Audi в миниатюре
коллекция Audi в миниатюре
 
Digital Training (SEO: search engine optimization)
Digital Training (SEO: search engine optimization)Digital Training (SEO: search engine optimization)
Digital Training (SEO: search engine optimization)
 
Performance im Fokus
Performance im FokusPerformance im Fokus
Performance im Fokus
 
Python, Google App Engine e Webapp-CE
Python, Google App Engine e Webapp-CE Python, Google App Engine e Webapp-CE
Python, Google App Engine e Webapp-CE
 
Social Media für Unternehmen und Institutionen
Social Media für Unternehmen und InstitutionenSocial Media für Unternehmen und Institutionen
Social Media für Unternehmen und Institutionen
 
TDD com Python e App Engine
TDD com Python e App EngineTDD com Python e App Engine
TDD com Python e App Engine
 
Open Source BPM - iteratec Architekturtag
Open Source BPM - iteratec ArchitekturtagOpen Source BPM - iteratec Architekturtag
Open Source BPM - iteratec Architekturtag
 
Was User lieben, was sie hassen - Gregor Urech, Sibylle Peuker, Zeix AG
Was User lieben, was sie hassen - Gregor Urech, Sibylle Peuker, Zeix AGWas User lieben, was sie hassen - Gregor Urech, Sibylle Peuker, Zeix AG
Was User lieben, was sie hassen - Gregor Urech, Sibylle Peuker, Zeix AG
 
Congreso visión 2012 - taller introducción app engine
Congreso visión 2012 - taller introducción app engineCongreso visión 2012 - taller introducción app engine
Congreso visión 2012 - taller introducción app engine
 
Noções de Search Engine
Noções de Search EngineNoções de Search Engine
Noções de Search Engine
 
Presentation SEO/SEM
Presentation SEO/SEMPresentation SEO/SEM
Presentation SEO/SEM
 
Aula de Risoto
Aula de Risoto Aula de Risoto
Aula de Risoto
 

Similaire à Cloud Computing - Java no Google App Engine

Pangea - Plataforma digital com Google Cloud Platform
Pangea - Plataforma digital com Google Cloud PlatformPangea - Plataforma digital com Google Cloud Platform
Pangea - Plataforma digital com Google Cloud PlatformAndré Paulovich
 
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
 
Produtividade em Java com Grails
Produtividade em Java com GrailsProdutividade em Java com Grails
Produtividade em Java com GrailsWanderson Oliveira
 
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
 
Inovando na plataforma Java
Inovando na plataforma JavaInovando na plataforma Java
Inovando na plataforma JavaEteg
 
Spring roo produtividade no java
Spring roo produtividade no javaSpring roo produtividade no java
Spring roo produtividade no javaPedro Cavalero
 
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
 
Java Web Dev Introdução
Java Web Dev IntroduçãoJava Web Dev Introdução
Java Web Dev IntroduçãoMarcio Marinho
 
Apostila de Fundamentos Java
Apostila de Fundamentos JavaApostila de Fundamentos Java
Apostila de Fundamentos JavaMarcio Marinho
 
Técnicas e recursos para desenvolvimento Web em cenários de grande escala
Técnicas e recursos para desenvolvimento Web em cenários de grande escalaTécnicas e recursos para desenvolvimento Web em cenários de grande escala
Técnicas e recursos para desenvolvimento Web em cenários de grande escalaAlexandre Tarifa
 
Criando Aplicações .NET com o TheWebMind
Criando Aplicações .NET com o TheWebMindCriando Aplicações .NET com o TheWebMind
Criando Aplicações .NET com o TheWebMindJaydson Gomes
 
Mongo Db - PHP Day Workshop
Mongo Db - PHP Day WorkshopMongo Db - PHP Day Workshop
Mongo Db - PHP Day WorkshopDiego Sana
 

Similaire à Cloud Computing - Java no Google App Engine (20)

Pangea - Plataforma digital com Google Cloud Platform
Pangea - Plataforma digital com Google Cloud PlatformPangea - Plataforma digital com Google Cloud Platform
Pangea - Plataforma digital com Google Cloud Platform
 
Compweek
CompweekCompweek
Compweek
 
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)
 
Produtividade em Java com Grails
Produtividade em Java com GrailsProdutividade em Java com Grails
Produtividade em Java com Grails
 
Trabalho de sgbd
Trabalho de sgbdTrabalho de sgbd
Trabalho de sgbd
 
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...
 
Inovando na plataforma Java
Inovando na plataforma JavaInovando na plataforma Java
Inovando na plataforma Java
 
Inovando na Plataforma Java
Inovando na Plataforma JavaInovando na Plataforma Java
Inovando na Plataforma Java
 
Spring roo produtividade no java
Spring roo produtividade no javaSpring roo produtividade no java
Spring roo produtividade no java
 
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
 
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
 
Cursos
CursosCursos
Cursos
 
Java Web Dev Introdução
Java Web Dev IntroduçãoJava Web Dev Introdução
Java Web Dev Introdução
 
XPT Framework
XPT FrameworkXPT Framework
XPT Framework
 
Apostila de Fundamentos Java
Apostila de Fundamentos JavaApostila de Fundamentos Java
Apostila de Fundamentos Java
 
Técnicas e recursos para desenvolvimento Web em cenários de grande escala
Técnicas e recursos para desenvolvimento Web em cenários de grande escalaTécnicas e recursos para desenvolvimento Web em cenários de grande escala
Técnicas e recursos para desenvolvimento Web em cenários de grande escala
 
Criando Aplicações .NET com o TheWebMind
Criando Aplicações .NET com o TheWebMindCriando Aplicações .NET com o TheWebMind
Criando Aplicações .NET com o TheWebMind
 
Mongo Db - PHP Day Workshop
Mongo Db - PHP Day WorkshopMongo Db - PHP Day Workshop
Mongo Db - PHP Day Workshop
 
OpenShift
OpenShiftOpenShift
OpenShift
 
Java Seminar
Java SeminarJava Seminar
Java Seminar
 

Plus 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
 

Plus 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
 

Cloud Computing - Java no Google App Engine

  • 1.
  • 2. 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
  • 3.
  • 4. “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.”
  • 5. O que você acha de sua aplicação ficar famosa e dobrar os acessos da noite pro dia?
  • 6. E se os acessos quadruplicarem?
  • 7. E se for 10 vezes, 100 vezes mais acessos? Seu servidor aguenta o tranco?
  • 8. Seu momento de glória.. Fuu...
  • 9. 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
  • 10. 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
  • 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
  • 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
  • 18. Google App Engine (PaaS)  Infraestrutura e qualidade do Google  Ambientes Java (Ruby, Groovy...) e Python
  • 19. Google App Engine (PaaS)  Infraestrutura e qualidade do Google  Ambientes Java (Ruby, Groovy...) e Python  Persistência com Big Table (NoSQL)
  • 20. 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
  • 21. Vantagens do GAE  Escalabilidade infinita
  • 22. Vantagens do GAE  Escalabilidade infinita  Elasticidade
  • 23. Vantagens do GAE  Escalabilidade infinita  Elasticidade  Disponibilidade
  • 24. Vantagens do GAE  Escalabilidade infinita  Elasticidade  Disponibilidade  Mais barato
  • 25. 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
  • 26. 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
  • 28. Ambiente de Desenvolvimento  Eclipse + AppEngine SDK + Plugin
  • 29. Ambiente de Desenvolvimento  Eclipse + AppEngine SDK + Plugin  One-click deploy
  • 35. Padronização  Servlets 2.5 e JSP 2  JPA 1 e JDO 2
  • 36. Padronização  Servlets 2.5 e JSP 2  JPA 1 e JDO 2  java.net
  • 37. Padronização  Servlets 2.5 e JSP 2  JPA 1 e JDO 2  java.net  JavaMail
  • 38. Padronização  Servlets 2.5 e JSP 2  JPA 1 e JDO 2  java.net  JavaMail  Jcache
  • 39. Padronização  Servlets 2.5 e JSP 2  JPA 1 e JDO 2  java.net  JavaMail  Jcache  JSE 5 e 6
  • 40. O que podemos utilizar no GAE  Struts 2  JSF 1.2 e JSF 2.0  Spring MVC  Flex  REST  VRaptor  API de imagens...
  • 41. 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
  • 42. Desvantagens  Sem funções de agregação (count, sum, max, min, group by...)
  • 43. Desvantagens  Sem funções de agregação (count, sum, max, min, group by...)
  • 45. Desvantagens  Transações não são comuns  Não existem joins
  • 46. Desvantagens  Transações não são comuns  Não existem joins  Código específico (JPQL, JDOQL) para JPA
  • 47. Desvantagens  Transações não são comuns  Não existem joins  Código específico (JPQL, JDOQL) para JPA  Startup deve ser otimizado
  • 48. 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
  • 50. Alternativas  Usar código específico  Datastore Low-level API (muito complexa)
  • 51. Alternativas  Usar código específico  Datastore Low-level API (muito complexa)  Novos frameworks: Objectify, Twig
  • 52. Fique atento  Datastore read-only (é bom estar preparado)  Usar cache de dados e de página
  • 53. 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. }
  • 54. 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
  • 55. Dúvidas? fredericomaia10@gmail.com @fredmaia @gojava http://devsexperts.com