Post on 06-Jun-2015
description
Título daApresentação
Palestrante: 00/00/0000
COMPUTAÇÃO EM NUVEM COM PHP USANDO ZEND FRAMEWORK
Flávio Gomes da Silva Lisboa
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
Computação em Nuvem com PHP usando Zend Framework
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ódigoManipulaçã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 plataformasJava, Perl, Python, ASP, COM, .NET
Utilização do PHP no mundo
Computação em Nuvem com PHP usando Zend Framework
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...
Utilização do PHP no mundo
Computação em Nuvem com PHP usando Zend Framework
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!
Utilização do PHP no mundo
Computação em Nuvem com PHP usando Zend Framework
+ 1/3 das aplicações da Internet usam PHP
Utilização do PHP no mundo
Computação em Nuvem com PHP usando Zend Framework
Aplicações corporativas em PHP estão crescendo...
Utilização do PHP no mundo
Prog
ram
mer
s (M
illio
ns)
2006 2007 2008 2009 2010 2011 2012 2013
Part-Time DevelopersAnd Hobbyists
Independent Software Vendors
Corporate IT Developers
Source: Gartner (December 2007)
Computação em Nuvem com PHP usando Zend Framework
PHP e a nuvem
Expondo serviços!
Computação em Nuvem com PHP usando Zend Framework
PHP e a nuvem
Consumindo serviços!
Computação em Nuvem com PHP usando Zend Framework
Zend Framework
MVCController
View
Data
Database
XML
Search
i18n
Locale
Translate
Measure
Date
Calendar
Currency
Web Services
Feed
Client
Server
Services
Core
Config
Log
Registry
Session
CacheSecurity
Acl
Auth
Filter
Validate
Computação em Nuvem com PHP usando Zend Framework
Zend Framework
Web Services
Feed
Client
Server
Services
REST SOAP XML-RPC
Computação em Nuvem com PHP usando Zend Framework
Zend Framework
Web Services
Feed
Client
Server
Services
Computação em Nuvem com PHP usando Zend Framework
Estudos de caso: Amazon
Computação em Nuvem com PHP usando Zend Framework
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
Armazenamento
∞
SONHO!
Computação em Nuvem com PHP usando Zend Framework
Armazenamento
~∞
REALIDADE!
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
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
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
Armazenamento
FATO:
A maioria dos serviços possui uma interface REST ou SOAP
Computação em Nuvem com PHP usando Zend Framework
Armazenamento
FATO:
REST e SOAPnão são específicos de linguagem
Computação em Nuvem com PHP usando Zend Framework
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
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
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
Armazenamento
Computação em Nuvem com PHP usando Zend Framework
Armazenamento
Web Services
Feed
Client
Server
Services
REST SOAP XML-RPC
Computação em Nuvem com PHP usando Zend Framework
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
Armazenamento
DEPÓSITO ∞OBJETO
OBJETO
OBJETO
OBJETO DADOS
METADADOS
Computação em Nuvem com PHP usando Zend Framework
Armazenamento
Web Services
Feed
Client
Server
Services
Zend_Service_Amazon_S3
Computação em Nuvem com PHP usando Zend Framework
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
Máquinas Virtuais
Servidores, servidores, servidores...
Computação em Nuvem com PHP usando Zend Framework
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
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
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
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
Máquinas Virtuais
Computação em Nuvem com PHP usando Zend Framework
Máquinas Virtuais
Elastic Compute Cloud
Computação em Nuvem com PHP usando Zend Framework
Máquinas Virtuais
Servers On Demand
Computação em Nuvem com PHP usando Zend Framework
Máquinas Virtuais
Fast Food de Servidores
Computação em Nuvem com PHP usando Zend Framework
Máquinas Virtuais
Self-service de servidores
Computação em Nuvem com PHP usando Zend Framework
Máquinas Virtuais
Podemos mandar os servidores para casa!
Computação em Nuvem com PHP usando Zend Framework
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
Máquinas Virtuais
Zend_Service_Amazon_Ec2
Computação em Nuvem com PHP usando Zend Framework
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
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
Mensagens
Computação em Nuvem com PHP usando Zend Framework
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.
Mensagens
Computação em Nuvem com PHP usando Zend Framework
Fila de Mensagens
Mensagens
Computação em Nuvem com PHP usando Zend Framework
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
Mensagens
Simple Queue Servicefornece as funções básicas de um sistema de enfileiramento de mensagens
Computação em Nuvem com PHP usando Zend Framework
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
Mensagens
Zend_Service_Amazon_Sqs
Computação em Nuvem com PHP usando Zend Framework
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.
Conclusão
Computação em Nuvem com PHP usando Zend Framework
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.
Perspectivas
Computação em Nuvem com PHP usando Zend Framework
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
Para saber mais...
Computação em Nuvem com PHP usando Zend Framework
Para saber mais...
● Zend Framework website http://framework.zend.com
● Zend Developer Zone http://devzone.zend.com
● ZFTutorials forum http://www.zftutorials.com
● Blogs
– Matthew Weier O'Phinney: http://weierophinney.net/matthew
– Cal Evans: http://blog.calevans.com
– Andries Seutens: http://andries.systray.be/blog
– Rob Allen: http://akrabat.com
● Zend Framework Brasil
– http://www.zfbrasil.com
– http://groups.google.com/group/zfbrasil
Computação em Nuvem com PHP usando Zend Framework
Fim
Obrigado!flavio.lisboa@serpro.gov.br