2. Título da EM NUVEM
COMPUTAÇÃO
Apresentação
COM PHP USANDO
ZEND FRAMEWORK
Flávio Gomes da Silva Lisboa
Palestrante: 00/00/0000
3. Nossa Agenda
►Utilização de PHP no mundo
►PHP e a nuvem
►Zend Framework
►Estudo de caso: Amazon
►Serviço de armazenamento S3
►Usando máquinas virtuais da EC2
►Filas de mensagens com SQS
►Perspectivas
4. Utilização do PHP no mundo
O que é PHP?
►Linguagem nascida e pensada para aplicações Web
►Multiparadigma (estruturada, orientada a objetos e com
suporte para orientação a aspectos)
►Suporte a inúmeras de bibliotecas de código
Manipulação de formatos de áudio, autenticação, calendário e
eventos, compressão de arquivos, cartão de crédito,
criptografia, banco de dados, sistema de arquivos, linguagem
humana, e-mail, computação científica, controle de processo,
mecanismo de busca, processamento de texto, web services,
XML, ...
►Integração com outras linguagens e plataformas
Java, Perl, Python, ASP, COM, .NET
Computação em Nuvem com PHP usando Zend Framework
5. Utilização do PHP no mundo
O que é PHP?
►Software livre sem restrições de uso comercial
A licença não é contaminante
►Objetiva e fácil de aprender
Vasta documentação
►Multi-plataforma e portável
►Disponibilidade de hospedagem de baixo custo
E ainda é possível hospedar milhares de clientes por
servidor
►Muitas aplicações prontas para todos fins
Open Source e comerciais: CMS, fóruns, web mail,
SGBD, monitoração, gerenciamento de projetos...
Computação em Nuvem com PHP usando Zend Framework
6. Utilização do PHP no mundo
Como o PHP é utilizado
►Criação de scripts
►Aplicações Web (incluindo as acessíveis por celular)
►Aplicações Desktop (PHP-GTK)
►Aplicações Android NOVIDADE!
Computação em Nuvem com PHP usando Zend Framework
7. Utilização do PHP no mundo
+ 1/3 das aplicações da Internet usam PHP
Computação em Nuvem com PHP usando Zend Framework
8. Utilização do PHP no mundo
Aplicações corporativas em PHP estão crescendo...
Part-Time Independent Corporate
Developers Software
And Hobbyists Vendors IT
Developers
Programmers (Millions)
2006 2007 2008 2009 2010 2011 2012 2013
Source: Gartner (December 2007)
Computação em Nuvem com PHP usando Zend Framework
9. PHP e a nuvem
Expondo serviços!
Computação em Nuvem com PHP usando Zend Framework
10. PHP e a nuvem
Consumindo
serviços!
Computação em Nuvem com PHP usando Zend Framework
11. Zend Framework
Data
Database
MVC XML
Controller Search
View PDF
Core
Security
Cache i18n
Web Services
Acl Config Locale Date
Auth Feed
Log Translate Calendar
Filter Client
Registry Measure Currency
Validate Server
Session
Services
Computação em Nuvem com PHP usando Zend Framework
12. Zend Framework
Web Services
Feed
Client
Server
Services
REST SOAP XML-RPC
Computação em Nuvem com PHP usando Zend Framework
14. Estudos de caso: Amazon
Computação em Nuvem com PHP usando Zend Framework
15. Armazenamento
Como seria
maravilhoso se
houvesse
espaço em disco
ilimitado para
usuários e
aplicativos...
O´Reilly Media All rights reserved.
Computação em Nuvem com PHP usando Zend Framework
18. Armazenamento
Em um mundo ideal, acessar o
armazenamento virtual de
uma nuvem seria tão fácil quanto
acessar um disco rígido local
Computação em Nuvem com PHP usando Zend Framework
19. Armazenamento
Porém, as APIs básicas da
maioria dos serviços de
armazenamento em nuvem
obrigam os programadores a pensar
sobre detalhes de configuração em
vez de somente trabalhar com os
dados
Computação em Nuvem com PHP usando Zend Framework
20. Armazenamento
O desafio para construir
aplicativos que funcionem
na nuvem é a interface
para os próprios serviços
Computação em Nuvem com PHP usando Zend Framework
21. Armazenamento
FATO:
A maioria dos serviços possui uma
interface REST ou SOAP
Computação em Nuvem com PHP usando Zend Framework
22. Armazenamento
FATO:
REST e SOAP
não são específicos de linguagem
Computação em Nuvem com PHP usando Zend Framework
23. Armazenamento
VANTAGEM:
É possível invocar um serviço REST ou
SOAP com qualquer linguagem de
programação
Computação em Nuvem com PHP usando Zend Framework
24. Armazenamento
DESVANTAGEM:
O programador pensa nos detalhes da
solicitação em vez de pensar nos
dados que está usando
Computação em Nuvem com PHP usando Zend Framework
25. Armazenamento
FATO:
Uma abordagem de alto nível que
permita ao programador se concentrar
nos dados e não nos detalhes
melhora a produtividade
Computação em Nuvem com PHP usando Zend Framework
26. Armazenamento
Web Services
Feed
Client
Server
Services
REST SOAP XML-RPC
Computação em Nuvem com PHP usando Zend Framework
27. Armazenamento
S3 é um sistema de arquivos distribuído que
fornece armazenagem ilimitada.
Seu modelo de dados tem dois conceitos:
o depósito e o objeto.
Computação em Nuvem com PHP usando Zend Framework
28. Armazenamento
OBJETO
DADOS
OBJETO
∞
METADADOS
DEPÓSITO
OBJETO
OBJETO
Computação em Nuvem com PHP usando Zend Framework
29. Armazenamento
Web Services
Feed
Client
Server
Services
Zend_Service_Amazon_S3
Computação em Nuvem com PHP usando Zend Framework
30. Armazenamento
Usando Zend Framework, um programador não
precisa calcular assinaturas nem precisa considerar
códigos de resposta HTTP ou envelopes XML.
Ele simplesmente trabalha com os dados.
Computação em Nuvem com PHP usando Zend Framework
32. Máquinas Virtuais
Meus servidores
ficam ociosos
por horas
durante o mês...
e eu tenho que
gastar usando
ou não...
O´Reilly Media All rights reserved.
Computação em Nuvem com PHP usando Zend Framework
33. Máquinas Virtuais
E em
determinados
momentos
preciso de mais
servidores...
que não usarei
depois!
O´Reilly Media All rights reserved.
Computação em Nuvem com PHP usando Zend Framework
34. Máquinas Virtuais
Como seria
maravilhoso se
fosse possível
criar imagens de
máquinas
virtuais e
executá-las na
nuvem...
O´Reilly Media All rights reserved.
Computação em Nuvem com PHP usando Zend Framework
35. Máquinas Virtuais
Assim poderia
adicionar e
remover
servidores sem
ficar com dor nas
costas...
O´Reilly Media All rights reserved.
Computação em Nuvem com PHP usando Zend Framework
41. Máquinas Virtuais
Podemos mandar
os servidores para casa!
Computação em Nuvem com PHP usando Zend Framework
42. Máquinas Virtuais
MAS...
Como manipular as instâncias em execução, e os
pares de chaves e grupos de segurança que
permitem gerenciar as máquinas virtuais?
ou trocando em miúdos...
Como ter uma interface simples de gerenciamento
para as máquinas virtuais?
Computação em Nuvem com PHP usando Zend Framework
44. Máquinas Virtuais
InformationWeek, 16/08/2010
Novell irá oferecer o SUSE Linux Enterprise Server,
versões 10 e 11, pelo EC2.
O que isso quer dizer?
O cliente contrata o uso do sistema operacional e
paga somente pelas horas usadas.
Computação em Nuvem com PHP usando Zend Framework
45. Mensagens
Sistemas de Informação produzem mensagens
Pra quê?
►Trocar dados com outra aplicação
►Conduzir o usuário em um workflow
►Informar que ocorreu um erro (ou foi lançada uma
exceção)
►Enviar um indicador para um agente de monitoramento
►Armazenar dados para auditoria
►Trocar dados entre processos
Computação em Nuvem com PHP usando Zend Framework
46. Mensagens
Comunicação entre Processos
Comunicação Assíncrona
►Às vezes, o remetente e o destinatário da mensagem
não precisam interagir ao mesmo tempo.
►As mensagens podem ser enfileiradas e armazenadas
até que o destinatário as processe.
►Isso é extremamente útil quando a probabilidade de
desconexão não pode ser desprezada.
Computação em Nuvem com PHP usando Zend Framework
48. Mensagens
Como seria
maravilhoso se
houvesse uma
infraestrutura pra
filas de
mensagens que
eu pudesse usar
sem ter que
manter...
O´Reilly Media All rights reserved.
Computação em Nuvem com PHP usando Zend Framework
49. Mensagens
Simple Queue Service
fornece as funções básicas de um sistema de enfileiramento de mensagens
Computação em Nuvem com PHP usando Zend Framework
50. Mensagens
Mas como eu faço pra...
listar todas as filas de mensagens em uma conta, incluindo o número de
mensagens em cada uma?
criar uma fila de mensagens?
criar uma mensagem e a coloca em uma fila?
receber uma mensagem de uma determinada fila?
excluir uma mensagem recebida?
excluir uma fila de mensagens juntamente com as mensagens presentes
nela?
Tudo isso de modo SIMPLES?
Computação em Nuvem com PHP usando Zend Framework
52. Conclusão
Amo Muito Zend Framework
Os detalhes técnicos das solicitações que são
de fato enviadas para a Amazon ficam ocultos
em objetos PHP.
O uso do Zend Framework oferece um refinado
conjunto de objetos para trabalhar com a
computação em nuvem.
Computação em Nuvem com PHP usando Zend Framework
53. Perspectivas
Zend Framework e as nuvens
Zend Framework possui a infraestrutura necessária para
a construção de componentes que atuem como interface
amigável para o consumo de serviços em nuvem.
Provavelmente, conforme as grandes nuvens forem se
estabelecendo, componentes Zend Framework para elas
serão criados.
Você pode oferecer um diferencial na sua nuvem, se já
distribuir um componente que facilite o consumo dos
serviços (e que não te dê trabalho).
E lembrando que tudo na nuvem é fornecido como
serviço, Zend Framework possui a infraestrutura para
expor serviços com os protocolos mais utilizados.
Computação em Nuvem com PHP usando Zend Framework
54. Referências
Esta apresentação resume os artigos de Douglas
Tidwell, que foi extremamente gentil em
disponibilizar todo o código-fonte dos exemplos no
developerWorks da IBM.
Você pode encontrar os artigos aqui:
http://www.ibm.com/developerworks/br/technology/library/os-php-cloud1
http://www.ibm.com/developerworks/br/opensource/library/artigo/os-php-cloud2
http://www.ibm.com/developerworks/br/opensource/library/os-php-cloud3
Computação em Nuvem com PHP usando Zend Framework