Computação em Nuvem com PHP usando Zend Framework

Post on 06-Jun-2015

3.024 views 1 download

description

Como utilizar

Transcript of 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

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

PDF

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