O documento discute Java e Cloud Computing, definindo Cloud Computing como o uso de recursos computacionais oferecidos como serviço através da internet. Ele descreve características-chave como provisionamento dinâmico de recursos sob demanda e escalabilidade, e discute serviços populares de Cloud Computing como SaaS, IaaS e PaaS.
5. Uso de recursos computacionais (software e hardware)
que são oferecidos como serviço através de uma rede,
tipicamente a internet.
Cloud Computing
6. Caracteristicas
• Provisionamento dinâmico de recursos sob demanda, com
mínimo de esforço;
• Escalabilidade;
• Uso de "utilility computing", onde a cobrança é baseada
no uso do recurso ao invés de uma taxa fixa;
• Visão única do sistema;
• Distribuição geográfica dos recursos de forma
transparente ao usuário.
7. era uma vez..
1969 - Multitasking;
1970 - Create Internet;
1991 - Releases Internet for General Use;
1993 .. 1995 - eBay & Amazon founded;
1999 - SaaS salesforce.com launched;
2000 - Economy loses speed;
2006 - Amazon Web Service (IaaS);
2008 - Google App Engine (PaaS) [Go Java Python]
2011 - Google App Engine deixou de ser preview
2013 - Google Cloud Plataform (IaaS/PaaS) [PHP]
16. http://cloud.google.com/appengine
Goole App Engine
✓ Execute seus aplicativos da web na infraestrutura do Google;
✓ Suporte à aplicações em Java, Python, GO! e PHP*;
✓ Todos os recursos dentro da mesma plataforma;
✓ Quota gratuita renovada diariamente;
17. Hospedagem livre de preocupações
Suporte a Python, Java, PHP e Go
Alta disponibilidade do serviço
NoSQL e SQL
18.
19. BackendSem limite de tempo de processamento
Maior quantidade de RAM
Gerenciamente manual/programático
Instancias
Frontend
Limite de tempo de request RAM limitada
Gerenciado pelo AppEngine
20. Ambiente Java
Servlet 2.5, Java 7 e suporte a multithread
Datastore baixo nível assíncrono, JPA e JDO
Deploy utilizando GAE Console, toolkit do Eclipse,
scripts ou Maven;
Configurações para escalabilidade via GAE Console
e XML;
Não é possível realizar chamadas a recursos
externos com tempo de resposta maior que 60s;
38. ✓Instâncias de MySQL na nuvem;
✓Utilização com JDBC;
✓Maximo Request e Response Size 16MB
✓Inicia em $1.46/dia ou $0.10/hora;
Cloud SQL
39. ✓NOSql (BigTable) com as entidades sendo
representadas por um tipo, um identificador e seu
conteúdo;
✓Implementação utilizando JDO, JPA ou uma
biblioteca de serviços específicos;
✓Consultas baseadas em índices pré-”buildados”;
✓Free 50k de operações;
✓$0.09/100k de operações de escrita e $0.06/100k
de operações de leitura
Datastore
40.
41. File menu > New > Web Application Project
Desmarque
Use Google Web
Toolkit
Desmarque
Generateproject
samplecode
48. ✓Serviço para o envio e recebimento de e-
mails através do GAE;
✓Pode ser implementado utilizando JavaMail
ou uma biblioteca específica;
✓Tamanho maximo 100MB e 10 MB/minute
✓ $0.0001 por destinatário após sua
quota diária de 100 destinatários;
Mail
57. ✓Autenticar usuários através de Contas do
Google, contas do Google Apps ou OpenID.
✓Redirecioná-lo para a página de login;
✓Detectar se o usuário atual é administrador;
User
60. ✓execução de tarefas em background;
✓Possibilidade de se configurar a taxa de
processamento para uma determinada fila;
✓É um serviço gratuito mas que precisa seguir
algumas restrições definidas pelo GAE;
Task Queue
61. ✓Cache em memória compatível com o
protocolo memcached;
✓Precisa seguir algumas restrições;
Memcache
62.
63. Esta obra está licenciada sob a licença Creative Commons
Atribuição-CompartilhaIgual 3.0 Não Adaptada. Para ver uma cópia
desta licença, visite http://creativecommons.org/licenses/by-sa/3.0/.
64. Java e
Cloud Computing
Mario Jorge Pereira
Como me encontrar?
http://www.mariojp.com.br
twitter.com/@mariojp
mariojp@ufba.br
mariojp@gmail.com