Computação em Nuvem com PHP usando Zend Framework

57

description

Como utilizar

Transcript of Computação em Nuvem com PHP usando Zend Framework

Page 1: Computação em Nuvem com PHP usando Zend Framework
Page 2: Computação em Nuvem com PHP usando Zend Framework

Título daApresentação

Palestrante: 00/00/0000

COMPUTAÇÃO EM NUVEM COM PHP USANDO ZEND FRAMEWORK

Flávio Gomes da Silva Lisboa

Page 3: Computação em Nuvem com PHP usando Zend Framework

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

Page 4: Computação em Nuvem com PHP usando Zend Framework

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

Page 5: Computação em Nuvem com PHP usando Zend Framework

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

Page 6: Computação em Nuvem com PHP usando Zend Framework

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

Page 7: Computação em Nuvem com PHP usando Zend Framework

Computação em Nuvem com PHP usando Zend Framework

+ 1/3 das aplicações da Internet usam PHP

Utilização do PHP no mundo

Page 8: Computação em Nuvem com PHP usando Zend Framework

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)

Page 9: Computação em Nuvem com PHP usando Zend Framework

Computação em Nuvem com PHP usando Zend Framework

PHP e a nuvem

Expondo serviços!

Page 10: Computação em Nuvem com PHP usando Zend Framework

Computação em Nuvem com PHP usando Zend Framework

PHP e a nuvem

Consumindo serviços!

Page 11: Computação em Nuvem com PHP usando Zend Framework

Computação em Nuvem com PHP usando Zend Framework

Zend Framework

MVCController

View

Data

Database

XML

Search

PDF

i18n

Locale

Translate

Measure

Date

Calendar

Currency

Web Services

Feed

Client

Server

Services

Core

Config

Log

Registry

Session

CacheSecurity

Acl

Auth

Filter

Validate

Page 12: Computação em Nuvem com PHP usando Zend Framework

Computação em Nuvem com PHP usando Zend Framework

Zend Framework

Web Services

Feed

Client

Server

Services

REST SOAP XML-RPC

Page 13: Computação em Nuvem com PHP usando Zend Framework

Computação em Nuvem com PHP usando Zend Framework

Zend Framework

Web Services

Feed

Client

Server

Services

Page 14: Computação em Nuvem com PHP usando Zend Framework

Computação em Nuvem com PHP usando Zend Framework

Estudos de caso: Amazon

Page 15: Computação em Nuvem com PHP usando Zend Framework

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.

Page 16: Computação em Nuvem com PHP usando Zend Framework

Computação em Nuvem com PHP usando Zend Framework

Armazenamento

SONHO!

Page 17: Computação em Nuvem com PHP usando Zend Framework

Computação em Nuvem com PHP usando Zend Framework

Armazenamento

~∞

REALIDADE!

Page 18: Computação em Nuvem com PHP usando Zend Framework

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

Page 19: Computação em Nuvem com PHP usando Zend Framework

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

Page 20: Computação em Nuvem com PHP usando Zend Framework

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

Page 21: Computação em Nuvem com PHP usando Zend Framework

FATO:

A maioria dos serviços possui uma interface REST ou SOAP

Computação em Nuvem com PHP usando Zend Framework

Armazenamento

Page 22: Computação em Nuvem com PHP usando Zend Framework

FATO:

REST e SOAPnão são específicos de linguagem

Computação em Nuvem com PHP usando Zend Framework

Armazenamento

Page 23: Computação em Nuvem com PHP usando Zend Framework

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

Page 24: Computação em Nuvem com PHP usando Zend Framework

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

Page 25: Computação em Nuvem com PHP usando Zend Framework

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

Page 26: Computação em Nuvem com PHP usando Zend Framework

Computação em Nuvem com PHP usando Zend Framework

Armazenamento

Web Services

Feed

Client

Server

Services

REST SOAP XML-RPC

Page 27: Computação em Nuvem com PHP usando Zend Framework

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.

Page 28: Computação em Nuvem com PHP usando Zend Framework

Computação em Nuvem com PHP usando Zend Framework

Armazenamento

DEPÓSITO ∞OBJETO

OBJETO

OBJETO

OBJETO DADOS

METADADOS

Page 29: Computação em Nuvem com PHP usando Zend Framework

Computação em Nuvem com PHP usando Zend Framework

Armazenamento

Web Services

Feed

Client

Server

Services

Zend_Service_Amazon_S3

Page 30: Computação em Nuvem com PHP usando Zend Framework

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.

Page 31: Computação em Nuvem com PHP usando Zend Framework

Computação em Nuvem com PHP usando Zend Framework

Máquinas Virtuais

Servidores, servidores, servidores...

Page 32: Computação em Nuvem com PHP usando Zend Framework

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.

Page 33: Computação em Nuvem com PHP usando Zend Framework

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.

Page 34: Computação em Nuvem com PHP usando Zend Framework

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.

Page 35: Computação em Nuvem com PHP usando Zend Framework

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.

Page 36: Computação em Nuvem com PHP usando Zend Framework

Computação em Nuvem com PHP usando Zend Framework

Máquinas Virtuais

Page 37: Computação em Nuvem com PHP usando Zend Framework

Computação em Nuvem com PHP usando Zend Framework

Máquinas Virtuais

Elastic Compute Cloud

Page 38: Computação em Nuvem com PHP usando Zend Framework

Computação em Nuvem com PHP usando Zend Framework

Máquinas Virtuais

Servers On Demand

Page 39: Computação em Nuvem com PHP usando Zend Framework

Computação em Nuvem com PHP usando Zend Framework

Máquinas Virtuais

Fast Food de Servidores

Page 40: Computação em Nuvem com PHP usando Zend Framework

Computação em Nuvem com PHP usando Zend Framework

Máquinas Virtuais

Self-service de servidores

Page 41: Computação em Nuvem com PHP usando Zend Framework

Computação em Nuvem com PHP usando Zend Framework

Máquinas Virtuais

Podemos mandar os servidores para casa!

Page 42: Computação em Nuvem com PHP usando Zend Framework

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?

Page 43: Computação em Nuvem com PHP usando Zend Framework

Computação em Nuvem com PHP usando Zend Framework

Máquinas Virtuais

Zend_Service_Amazon_Ec2

Page 44: Computação em Nuvem com PHP usando Zend Framework

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.

Page 45: Computação em Nuvem com PHP usando Zend Framework

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

Page 46: Computação em Nuvem com PHP usando Zend Framework

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

Page 47: Computação em Nuvem com PHP usando Zend Framework

Computação em Nuvem com PHP usando Zend Framework

Fila de Mensagens

Mensagens

Page 48: Computação em Nuvem com PHP usando Zend Framework

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.

Page 49: Computação em Nuvem com PHP usando Zend Framework

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

Page 50: Computação em Nuvem com PHP usando Zend Framework

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?

Page 51: Computação em Nuvem com PHP usando Zend Framework

Computação em Nuvem com PHP usando Zend Framework

Mensagens

Zend_Service_Amazon_Sqs

Page 52: Computação em Nuvem com PHP usando Zend Framework

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

Page 53: Computação em Nuvem com PHP usando Zend Framework

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

Page 54: Computação em Nuvem com PHP usando Zend Framework

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

Page 55: Computação em Nuvem com PHP usando Zend Framework

Computação em Nuvem com PHP usando Zend Framework

Para saber mais...

Page 56: Computação em Nuvem com PHP usando Zend Framework

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

Page 57: Computação em Nuvem com PHP usando Zend Framework

Computação em Nuvem com PHP usando Zend Framework

Fim

[email protected]