Transcript
Page 1: PHP Classes - Desenvolvimento de sites de Web 2 0 em PHP para grandes audiências

PHP ClassesPHP ClassesDesenvolvimento de sites de Web 2.0 em

PHP para grandes audiênciasManuel [email protected]

http://www.ManuelLemos.net/

webdevcamp 2007

São Paulo, 2 de Dezembro de 2007

Page 2: PHP Classes - Desenvolvimento de sites de Web 2 0 em PHP para grandes audiências

Origem

● 1997 – Participação em listas de discussão

● 1998 – PHP 3 lançado com suporte a OOP

● Componentes prontos resolviam problemas frequentes de outros usuários

● Divulgação de classes prontas nas listas de discussão aumentaram muito a procura

● 1999 – Lançamento do site PHP ClassesPHP Classes →

Page 3: PHP Classes - Desenvolvimento de sites de Web 2 0 em PHP para grandes audiências

Objetivos

● Meio de distribuição automática de classes

Minimizar esforço dos autores na divulgação

● Aumentar a base de usuários das classes

Alertar usuários por e-mail sobre novas classes e suas atualizações

● Estimular a partilha de conhecimento

Contribuição de novas classes e mais conteúdo →

Page 4: PHP Classes - Desenvolvimento de sites de Web 2 0 em PHP para grandes audiências

Crescimento interminável

Web 2.0: Regra do 1%

● Site de conteúdo contribuído pelos usuários

● Por cada 100 novos usuários, 1 contribui

● Mais contribuições atraem mais usuários

● Quanto mais usuários, mais contribuidores →

Page 5: PHP Classes - Desenvolvimento de sites de Web 2 0 em PHP para grandes audiências

Propaganda viral

Divulgação que traz mais divulgação

● Troca de anúncios com sites parceiros

● Top de autores

● Iniciativa amigos do site

● Espelhos do site

● Lista de grupos regionais de usuários de PHP

● Divulgação de novidades através de RSS →

Page 6: PHP Classes - Desenvolvimento de sites de Web 2 0 em PHP para grandes audiências

As dores do crescimento

Problemas do crescimento interminável

1. Qualidade das contribuições

2. Custos de operação →

Page 7: PHP Classes - Desenvolvimento de sites de Web 2 0 em PHP para grandes audiências

Qualidade das contribuições

O problema de ter muito do mesmo

● Sistema de votação

– Utilidade, consistência, exemplos, documentação, tutoriais em vídeo, e testes de unidade

– Top das classes mais votadas

● Prêmio de inovação

– Nomeação de classes inovadoras em cada mês

– Prêmios patrocinados para todos nomeados →

Page 8: PHP Classes - Desenvolvimento de sites de Web 2 0 em PHP para grandes audiências

Custos de operação

Nada é de graça

● Custos de hospedagem– Capacidade de processamento

– Largura de banda

– Espaço em disco

● Custos de pessoal– Atendimento aos usuários

– Desenvolvimento de novas capacidades →

Page 9: PHP Classes - Desenvolvimento de sites de Web 2 0 em PHP para grandes audiências

Redução de custos

Melhor software consome menos recursos

● Cache e mais cache– Turck MMCache para cache de PHP compilado

– Classe File Cache em PHP para cache de conteúdo

– Lighttpd: cache de acessos a conteúdo estático

● Compressão de conteúdo– mod_gzip reduz tamanho de páginas até 5 vezes

– Todos os navegadores modernos suportam

– Páginas carregam mais rapidamente →

Page 10: PHP Classes - Desenvolvimento de sites de Web 2 0 em PHP para grandes audiências

Mais redução de custos

Aceleração com software automático

● Atendimento self-service– Robôs de resposta a e-mail de descadastramento

– Páginas com respostas a perguntas frequentes

● Ferramentas de geração de código– Metastorage gera código de acesso a objetos em

banco de dados definidos a partir de modelo

– Redução do tempo de escrita, teste e correção →

Page 11: PHP Classes - Desenvolvimento de sites de Web 2 0 em PHP para grandes audiências

Cobertura de custos

Alternativas consideradas

1. Doações

2. Publicidade paga

3. Serviços pagos exclusivos para assinantes →

Page 12: PHP Classes - Desenvolvimento de sites de Web 2 0 em PHP para grandes audiências

Doações

● Doação de hospedagem– Troca de hospedagem por publicidade

– Sites espelhos

● Doação de dinheiro– Não é garantido

– Não é recorrente →

Page 13: PHP Classes - Desenvolvimento de sites de Web 2 0 em PHP para grandes audiências

Publicidade paga

● Pagamento por: exibição, clique ou tempo

● Receita cresce com a audiência

● Negociação direta é difícil à distância

● Intermediação por agências– Google AdSense, Tribalfusion, Fastclick, etc.

– Facilidade de alcance a grandes anunciantes

– Agências ficam com comissão elevada

– Pagamento por cheque, Paypal ou transferência →

Page 14: PHP Classes - Desenvolvimento de sites de Web 2 0 em PHP para grandes audiências

Assinaturas pagas● Serviços exclusivos assinantes

– Navegação do site sem publicidade

– Acesso a fóruns de especialistas para resolver problemas difíceis

– Buscas e páginas favoritas personalizadas

– Diretório de profissionais disponíveis para prestar consultoria paga

● Adesão de uma pequena parte dos usuários

● Pagamento pelo Paypal ou PagSeguro

● Receita recorrente →

Page 15: PHP Classes - Desenvolvimento de sites de Web 2 0 em PHP para grandes audiências

Riscos

Quem semeia e não segura pode colher amargura! (provérbio popular)

O que pode comprometer o projeto?

● Perda de informação por danos no servidor

● Perda de informação por invasão de crackers

● Número de acessos excessivos

● Ausência de simulação de problemas →

Page 16: PHP Classes - Desenvolvimento de sites de Web 2 0 em PHP para grandes audiências

Cópias de segurança

● Cópias de segurança diárias dos bancos de dados e arquivos de conteúdo

– mysqldump + tar

● Replicação das cópias para outros servidores

– gnupg ou truecrypt + rsync

– Amazon S3 + Jungle Disk →

Page 17: PHP Classes - Desenvolvimento de sites de Web 2 0 em PHP para grandes audiências

Auditoria de segurança

● Auditoria regular com ferramentas dedicadas

– nessus: testes de exploração de buracos de segurança conhecidos

● Desativação de serviços não usados e bloqueio das respectivas portas na firewall

● Eliminação de indícios do tipo e versão dos programas usados →

Page 18: PHP Classes - Desenvolvimento de sites de Web 2 0 em PHP para grandes audiências

Vulnerabilidades comunsComo evitar?

● XSS: Cross-site Scripting– Conteúdo não confiável é servido por domínio

distinto: safe.phpclasses.net

● SQL Injection– Validação com a classe de formulários

– “Escape” de valores com Metabase →

● CSRF: Cross-site Request Forgery– Plug-in “secure submit” da classe de formulários

Page 19: PHP Classes - Desenvolvimento de sites de Web 2 0 em PHP para grandes audiências

Limitação de acessos● Redirecionamento de usuários para espelhos

● Verificação CAPTCHA para parar robôs

● lighttpd: servidor para conteúdo estático

● Limitação dos processos do Apache

● mod_throttle: limitação de acessos simultâneos

● mod_fastcgi: balanceamento de carga usando mais computadores servidores

● Uso de filas para retardar tarefas pesadas →

Page 20: PHP Classes - Desenvolvimento de sites de Web 2 0 em PHP para grandes audiências

Curiosidades● Linhas de código: ~135.000 em PHP (4.6MB)● Cadastros: ~540.000 (~10.300 novos por mês)● Autores: ~1.800 contribuiram ~3.600 componentes● Consumo de banda: ~200GB por mês● Cache de conteúdo: ~184.000 arquivos (1.5GB)● Servidor: dedicado com Pentium 4 HT 3.2GHz 1GB● Sistema operacional: Linux SuSE 9.2● Discos: 18GB SCSI com controlador RAID● Base de dados: MySQL 4 em partição dedicada 2.7GB● Maior tabela: 5.9 milhões de registros● Servidor e-mail: qmail ~2 milhões de e-mails/mês →

Page 21: PHP Classes - Desenvolvimento de sites de Web 2 0 em PHP para grandes audiências

Futuro● Mais serviços pagos para assinantes

● Reclassificação de classes em sub-categorias

● Sincronização de classes a partir de repositórios CVS ou Subversion

● Canais PEAR

● Concurso de novo design para o site

● Divisão de lucros com os melhores autores

● O que mais os usuários sugerirem →

Page 22: PHP Classes - Desenvolvimento de sites de Web 2 0 em PHP para grandes audiências

Perguntas?

● Manuel Lemos

[email protected]

● Repositório PHPClasses

http://www.phpclasses.org/

Page 23: PHP Classes - Desenvolvimento de sites de Web 2 0 em PHP para grandes audiências

Conclusão

Lembrem-se sempre:

Cooperar é melhor que competir

Abracem a comunidade com vontade, que a comunidade vos abraçará muito mais

Obrigado pela atenção

Page 24: PHP Classes - Desenvolvimento de sites de Web 2 0 em PHP para grandes audiências

Referências● Classe File Cache

http://www.phpclasses.org/filecache

● Classe Forms generation and validationhttp://www.phpclasses.org/formsgeneration

● Metabasehttp://www.phpclasses.org/metabase

● Metastoragehttp://www.metastorage.net/

● Google AdSensehttps://www.google.com/adsense/

● Tribalfusionhttp://www.tribalfusion.com/

● Fastclickhttp://www.fastclick.com/

● Paypalhttps://www.paypal.com/

● PagSegurohttps://pagseguro.uol.com.br/

● Amazon S3http://aws.amazon.com/s3

● Jungle Diskhttp://www.jungledisk.com/

● Gnupghttp://www.gnupg.org/

● TrueCrypthttp://www.truecrypt.org/

● Rsynchttp://rsync.samba.org/

● Nessushttp://www.nessus.org/

● lighttpdhttp://www.lighttpd.net/

● Turck MMCachehttp://turck-mmcache.sourceforge.net/index_old.html

● mod_gziphttp://www.schroepl.net/projekte/mod_gzip/

● FastCGIhttp://www.fastcgi.com/


Top Related