para Desenvolvedores Tuning Apache/MySQL/PHP€¦ · MySQL, max_connections Determina o número...

75
Tuning Apache/MySQL/PHP para Desenvolvedores By Douglas V. Pasqua Zend Certified Engineer / LPI / SCJP [email protected]

Transcript of para Desenvolvedores Tuning Apache/MySQL/PHP€¦ · MySQL, max_connections Determina o número...

Page 1: para Desenvolvedores Tuning Apache/MySQL/PHP€¦ · MySQL, max_connections Determina o número máximo de conexões simultâneas no MySQL. Aumentar de acordo com a necessidade. Receber

Tuning Apache/MySQL/PHPpara Desenvolvedores

By Douglas V. PasquaZend Certified Engineer / LPI / SCJP

[email protected]

Page 2: para Desenvolvedores Tuning Apache/MySQL/PHP€¦ · MySQL, max_connections Determina o número máximo de conexões simultâneas no MySQL. Aumentar de acordo com a necessidade. Receber

Objetivos

● Dicas de Tuning para Apache/MySQL e PHP. ● Parâmetros de configuração para tuning de Apache e MySQL ● Instalação e configuração de ferramentas de tuning. ● Análise de códigos PHP.● Identifcar Gargalos.● Voltado para desenvolvedores.

Page 3: para Desenvolvedores Tuning Apache/MySQL/PHP€¦ · MySQL, max_connections Determina o número máximo de conexões simultâneas no MySQL. Aumentar de acordo com a necessidade. Receber

Tópicos Apache

● AllowOverride● mod_status● SymLinks● KeepAlive● MaxClients ● Outras dicas

Page 4: para Desenvolvedores Tuning Apache/MySQL/PHP€¦ · MySQL, max_connections Determina o número máximo de conexões simultâneas no MySQL. Aumentar de acordo com a necessidade. Receber

Apache

● AllowOverride● mod_status● SymLinks● KeepAlive● MaxClients ● Outras Dicas

Page 5: para Desenvolvedores Tuning Apache/MySQL/PHP€¦ · MySQL, max_connections Determina o número máximo de conexões simultâneas no MySQL. Aumentar de acordo com a necessidade. Receber

Apache, AllowOverride

● Permite sobrescrever configurações do Apache através dos arquivos .htaccess:

Page 6: para Desenvolvedores Tuning Apache/MySQL/PHP€¦ · MySQL, max_connections Determina o número máximo de conexões simultâneas no MySQL. Aumentar de acordo com a necessidade. Receber

Apache, AllowOverride

● Caso habilitado, Apache terá que checar por arquivos .htaccess em todas requisições.

● Sempre que possível, manter desabilitado.

Page 7: para Desenvolvedores Tuning Apache/MySQL/PHP€¦ · MySQL, max_connections Determina o número máximo de conexões simultâneas no MySQL. Aumentar de acordo com a necessidade. Receber

Apache, AllowOverride

● Transportar as configurações de .htaccess para o arquivo de configuração principal

Page 8: para Desenvolvedores Tuning Apache/MySQL/PHP€¦ · MySQL, max_connections Determina o número máximo de conexões simultâneas no MySQL. Aumentar de acordo com a necessidade. Receber

Apache

● AllowOverride● ExtendedStatus ● SymLinks● KeepAlive● MaxClients ● Outras Dicas

Page 9: para Desenvolvedores Tuning Apache/MySQL/PHP€¦ · MySQL, max_connections Determina o número máximo de conexões simultâneas no MySQL. Aumentar de acordo com a necessidade. Receber

Apache, mod_status

● O mod_status permite acompanhar a performance do servidor Apache.

● Ideal para identificar se há necessidade de aumentar os recursos do apache.

Page 10: para Desenvolvedores Tuning Apache/MySQL/PHP€¦ · MySQL, max_connections Determina o número máximo de conexões simultâneas no MySQL. Aumentar de acordo com a necessidade. Receber

Apache, mod_status

Page 11: para Desenvolvedores Tuning Apache/MySQL/PHP€¦ · MySQL, max_connections Determina o número máximo de conexões simultâneas no MySQL. Aumentar de acordo com a necessidade. Receber

Apache, mod_status

● Manter o parâmetro ExtendedStatus para Off, para melhor performance.

Page 12: para Desenvolvedores Tuning Apache/MySQL/PHP€¦ · MySQL, max_connections Determina o número máximo de conexões simultâneas no MySQL. Aumentar de acordo com a necessidade. Receber

Apache

● AllowOverride● mod_status● SymLinks● KeepAlive● MaxClients ● MaxRequestsPerChild● Outras Dicas

Page 13: para Desenvolvedores Tuning Apache/MySQL/PHP€¦ · MySQL, max_connections Determina o número máximo de conexões simultâneas no MySQL. Aumentar de acordo com a necessidade. Receber

Apache, SymLinks● Diz ao Apache para seguir/não seguir links simbólicos.

● Manter desabilitado faz com que o Apache realize checagens

extras. (verificando se o arquivo acessado é um link ou não)

Page 14: para Desenvolvedores Tuning Apache/MySQL/PHP€¦ · MySQL, max_connections Determina o número máximo de conexões simultâneas no MySQL. Aumentar de acordo com a necessidade. Receber

Apache

● AllowOverride● ExtendedStatus ● SymLinks● KeepAlive● MaxClients ● MaxRequestsPerChild● Outras Dicas

Page 15: para Desenvolvedores Tuning Apache/MySQL/PHP€¦ · MySQL, max_connections Determina o número máximo de conexões simultâneas no MySQL. Aumentar de acordo com a necessidade. Receber

Apache, KeepAlive

● KeepAlive. ○ Permite múltiplas requisições por uma mesma conexão TCP○ Melhora desempenho do site.○ Reduz utilização de CPU.○ Aumenta consumo de memória.

Page 16: para Desenvolvedores Tuning Apache/MySQL/PHP€¦ · MySQL, max_connections Determina o número máximo de conexões simultâneas no MySQL. Aumentar de acordo com a necessidade. Receber

Apache, KeepAlive

Page 17: para Desenvolvedores Tuning Apache/MySQL/PHP€¦ · MySQL, max_connections Determina o número máximo de conexões simultâneas no MySQL. Aumentar de acordo com a necessidade. Receber

Apache

● AllowOverride● ExtendedStatus ● SymLinks● KeepAlive● MaxClients ● Outras Dicas

Page 18: para Desenvolvedores Tuning Apache/MySQL/PHP€¦ · MySQL, max_connections Determina o número máximo de conexões simultâneas no MySQL. Aumentar de acordo com a necessidade. Receber

Apache, MaxClients

● Determina o limite máximo de conexões simultâneas no Apache.

● Aumentar também o ServerLimit quando > 256○ Padrão 256○ Setar antes de MaxClients

Page 19: para Desenvolvedores Tuning Apache/MySQL/PHP€¦ · MySQL, max_connections Determina o número máximo de conexões simultâneas no MySQL. Aumentar de acordo com a necessidade. Receber

Apache, MaxClients

MaxClients ≈ (RAM - memória outros processos) / (média do processo apache)

● RAM 6109184 Kb (free -m) ● Média de Memória do Apache

12000kb (ps -ylC apache2 --sort:rss) ● Reservar memória para outros processos

819200kb

MaxClients = (6109184 - 819200) / 12000 MaxClients = 441

Page 20: para Desenvolvedores Tuning Apache/MySQL/PHP€¦ · MySQL, max_connections Determina o número máximo de conexões simultâneas no MySQL. Aumentar de acordo com a necessidade. Receber

Apache

● AllowOverride● ExtendedStatus ● SymLinks● KeepAlive● MaxClients ● Outras Dicas

Page 21: para Desenvolvedores Tuning Apache/MySQL/PHP€¦ · MySQL, max_connections Determina o número máximo de conexões simultâneas no MySQL. Aumentar de acordo com a necessidade. Receber

Apache, Outras Dicas

● mod_deflate ○ Habilita compressão de dados. ○ Ideal para arquivos estáticos (html, css, javascript, xml, etc.)○ Maioria dos navegadores modernos suportam nativamente.

● Separar conteúdo estático de conteúdo dinâmico.○ Usar um servidor Http mais leve para conteúdo estático.

Page 22: para Desenvolvedores Tuning Apache/MySQL/PHP€¦ · MySQL, max_connections Determina o número máximo de conexões simultâneas no MySQL. Aumentar de acordo com a necessidade. Receber

MySQL

● Monitorando consultas lentas● max_connections● table_cache● query_cache_size● thread_cache_size

Page 23: para Desenvolvedores Tuning Apache/MySQL/PHP€¦ · MySQL, max_connections Determina o número máximo de conexões simultâneas no MySQL. Aumentar de acordo com a necessidade. Receber

MySQL, Consultas Lentas

● Habilitar o log de consultas lentas permite identificar gargalos de maneira simples.

● Para Habiltiar, editar o my.cnf e acrescentar:

[mysqld] ... long_query_time = 1 log_slow_queries = /var/log/mysql-slow.log

Page 24: para Desenvolvedores Tuning Apache/MySQL/PHP€¦ · MySQL, max_connections Determina o número máximo de conexões simultâneas no MySQL. Aumentar de acordo com a necessidade. Receber

MySQL, Consultas Lentas

● Exemplo de Log /var/log/mysql-slow.log: # Time: 110406 17:00:00 # Query_time: 9 Lock_time: 0 Rows_sent: 1 Rows_examined: 5643851 select count(*) from backuplog;

Page 25: para Desenvolvedores Tuning Apache/MySQL/PHP€¦ · MySQL, max_connections Determina o número máximo de conexões simultâneas no MySQL. Aumentar de acordo com a necessidade. Receber

MySQL

● Monitorando consultas lentas● max_connections● table_cache● query_cache_size● thread_cache_size

Page 26: para Desenvolvedores Tuning Apache/MySQL/PHP€¦ · MySQL, max_connections Determina o número máximo de conexões simultâneas no MySQL. Aumentar de acordo com a necessidade. Receber

MySQL, max_connections

● Determina o número máximo de conexões simultâneas no MySQL. ● Aumentar de acordo com a necessidade.

● Receber “Too many connections” significa que excedeu esse

limite. ● Aumentar esse parâmetro influência:

○ Quantidade de Memória disponível.○ Quantidade de memória usada por cada conexão. ○ Número de file descriptors abertos.

Page 27: para Desenvolvedores Tuning Apache/MySQL/PHP€¦ · MySQL, max_connections Determina o número máximo de conexões simultâneas no MySQL. Aumentar de acordo com a necessidade. Receber

MySQL, max_connections

● Para aumentar o número de conexões simultâneas: [mysqld] ... max_connections = 200

Page 28: para Desenvolvedores Tuning Apache/MySQL/PHP€¦ · MySQL, max_connections Determina o número máximo de conexões simultâneas no MySQL. Aumentar de acordo com a necessidade. Receber

MySQL, max_connections

● Para aumentar o número de conexões simultâneas: [mysqld] ... max_connections = 200

● Para diagnósticos das conexões em processo no momento: mysql> show processlist\G

Page 29: para Desenvolvedores Tuning Apache/MySQL/PHP€¦ · MySQL, max_connections Determina o número máximo de conexões simultâneas no MySQL. Aumentar de acordo com a necessidade. Receber

MySQL

● Monitorando consultas lentas● max_connections● table_cache● query_cache_size● thread_cache_size

Page 30: para Desenvolvedores Tuning Apache/MySQL/PHP€¦ · MySQL, max_connections Determina o número máximo de conexões simultâneas no MySQL. Aumentar de acordo com a necessidade. Receber

MySQL, table_cache

● Toda vez que o MySQL abre uma tabela, coloca ela em cache. ● table_cache define o número de tabelas abertas em cache para

todas threads. ● Está diretamente relacionado com o parâmetro max_connections:

table_cache = max_connections * n ● n é o número máximo de tabelas usadas na query em que você

possui mais Joins no sistema.

Page 31: para Desenvolvedores Tuning Apache/MySQL/PHP€¦ · MySQL, max_connections Determina o número máximo de conexões simultâneas no MySQL. Aumentar de acordo com a necessidade. Receber

MySQL, table_cache

● table_cache é limitado pelo número de file descriptors disponiveis pelo S.O.

● Utiliza mais memória, porém melhora a performance.

● Lembre-se que precisa reservar extra file descriptors para tabelas temporárias e arquivos.

● Verificar número de file descriptors do S.O. (Linux):

# cat /proc/sys/fs/file-max # lsof -p $(pidof mysqld) | wc -l

Page 32: para Desenvolvedores Tuning Apache/MySQL/PHP€¦ · MySQL, max_connections Determina o número máximo de conexões simultâneas no MySQL. Aumentar de acordo com a necessidade. Receber

MySQL

● Monitorando consultas lentas● max_connections● table_cache● query_cache_size● thread_cache_size

Page 33: para Desenvolvedores Tuning Apache/MySQL/PHP€¦ · MySQL, max_connections Determina o número máximo de conexões simultâneas no MySQL. Aumentar de acordo com a necessidade. Receber

MySQL, query_cache_size

● Quantidade de memória alocada para guardar resultado das queries. ● Por padrão o valor é 0 (Desabilitado).

● Os valores para esse parâmetro devem ser múltiplos de 1024.

● Cuidado para não setar para um valor muito alto. As threads

precisam fazer lock no cache durante updates. ● O valor mínimo é 40Kb, para alocação das estruturas.

Page 34: para Desenvolvedores Tuning Apache/MySQL/PHP€¦ · MySQL, max_connections Determina o número máximo de conexões simultâneas no MySQL. Aumentar de acordo com a necessidade. Receber

MySQL, query_cache_size

[mysqld] ... query_cache_size = 128M

Page 35: para Desenvolvedores Tuning Apache/MySQL/PHP€¦ · MySQL, max_connections Determina o número máximo de conexões simultâneas no MySQL. Aumentar de acordo com a necessidade. Receber

MySQL

● Monitorando consultas lentas● max_connections● table_cache● query_cache_size● thread_cache_size

Page 36: para Desenvolvedores Tuning Apache/MySQL/PHP€¦ · MySQL, max_connections Determina o número máximo de conexões simultâneas no MySQL. Aumentar de acordo com a necessidade. Receber

MySQL, thread_cache_size

● Quantidade de threads em cache. (Conexões persistentes). ● Diminuir o máximo possível a criação de novas threads.

● Equação para testar a eficiência do cache:

100 - ((Threads_created / Connections) * 100) = 99%

Page 37: para Desenvolvedores Tuning Apache/MySQL/PHP€¦ · MySQL, max_connections Determina o número máximo de conexões simultâneas no MySQL. Aumentar de acordo com a necessidade. Receber

MySQL, thread_cache_size

● Equação para testar a eficiência do cache: 100 - ((Threads_created / Connections) * 100) Threads_created Número de Threads criadas desde que o MySQL foi iniciado.

Connections Número total de conexões desde que o MySQL foi iniciado.

Page 38: para Desenvolvedores Tuning Apache/MySQL/PHP€¦ · MySQL, max_connections Determina o número máximo de conexões simultâneas no MySQL. Aumentar de acordo com a necessidade. Receber

MySQL, thread_cache_size

Threads_created

Threads_created: 1294

Page 39: para Desenvolvedores Tuning Apache/MySQL/PHP€¦ · MySQL, max_connections Determina o número máximo de conexões simultâneas no MySQL. Aumentar de acordo com a necessidade. Receber

MySQL, thread_cache_size

Connections:

Connections: 7321961

Page 40: para Desenvolvedores Tuning Apache/MySQL/PHP€¦ · MySQL, max_connections Determina o número máximo de conexões simultâneas no MySQL. Aumentar de acordo com a necessidade. Receber

MySQL, thread_cache_size

Threads_created: 1294 Connections: 7321961 100 - ((1294 / 7321961) * 100) = 99,98%

Page 41: para Desenvolvedores Tuning Apache/MySQL/PHP€¦ · MySQL, max_connections Determina o número máximo de conexões simultâneas no MySQL. Aumentar de acordo com a necessidade. Receber

PHP

● Identificando gargalos em aplicação PHP● memcached● Opções de aceleradores de código php● Usando APC (Alternative PHP Cache)● Caching com Zend_Cache● PHP e Computação em Nuvem

Page 42: para Desenvolvedores Tuning Apache/MySQL/PHP€¦ · MySQL, max_connections Determina o número máximo de conexões simultâneas no MySQL. Aumentar de acordo com a necessidade. Receber

PHP, Profiler

● O Profiler do xdebug permite identificar gargalhos e/ou partes mais lentas de sua aplicação.

● Ideal para saber em quais pontos você pode melhor o desempenho.

Page 43: para Desenvolvedores Tuning Apache/MySQL/PHP€¦ · MySQL, max_connections Determina o número máximo de conexões simultâneas no MySQL. Aumentar de acordo com a necessidade. Receber

PHP, Profiler

● Habilitando o Profiler do xdebug no PHP: $ sudo apt-get install php5-xdebug ● Editando o arquivo /etc/php5/apache2/conf.d/xdebug.ini:

zend_extension=/usr/lib/php5/20090626/xdebug.so xdebug.profiler_enable = 1 xdebug.profiler_output_dir = /log/xdebug ● Finalizando:

$ sudo chown www-data /log/xdebug $ sudo service apache2 restart

Page 44: para Desenvolvedores Tuning Apache/MySQL/PHP€¦ · MySQL, max_connections Determina o número máximo de conexões simultâneas no MySQL. Aumentar de acordo com a necessidade. Receber

PHP, Profiler

Page 45: para Desenvolvedores Tuning Apache/MySQL/PHP€¦ · MySQL, max_connections Determina o número máximo de conexões simultâneas no MySQL. Aumentar de acordo com a necessidade. Receber

PHP, Profiler

● webgrind - https://code.google.com/p/webgrind/○ Ferramenta para análise de logs do xdebug profiler

● config.php:

Page 46: para Desenvolvedores Tuning Apache/MySQL/PHP€¦ · MySQL, max_connections Determina o número máximo de conexões simultâneas no MySQL. Aumentar de acordo com a necessidade. Receber

PHP, Profiler

Page 47: para Desenvolvedores Tuning Apache/MySQL/PHP€¦ · MySQL, max_connections Determina o número máximo de conexões simultâneas no MySQL. Aumentar de acordo com a necessidade. Receber

PHP

● Identificando gargalos em aplicação PHP● memcached● Opções de aceleradores de código php● Usando APC (Alternative PHP Cache)● Caching com Zend_Cache● PHP e Computação em Nuvem

Page 48: para Desenvolvedores Tuning Apache/MySQL/PHP€¦ · MySQL, max_connections Determina o número máximo de conexões simultâneas no MySQL. Aumentar de acordo com a necessidade. Receber

PHP, memcached

● Sistema de cache de alta perfomance com dados armazenados em memória.

Page 49: para Desenvolvedores Tuning Apache/MySQL/PHP€¦ · MySQL, max_connections Determina o número máximo de conexões simultâneas no MySQL. Aumentar de acordo com a necessidade. Receber

PHP, memcached

● Sistema de cache de alta perfomance com dados armazenados em memória.

● Principal propósito:

○ Diminuir a carga em banco de dados de aplicações web.

● Instalável através de uma extensão PECL.

Page 50: para Desenvolvedores Tuning Apache/MySQL/PHP€¦ · MySQL, max_connections Determina o número máximo de conexões simultâneas no MySQL. Aumentar de acordo com a necessidade. Receber

PHP, memcached

● Inserindo e obtendo dados do cache:

Page 51: para Desenvolvedores Tuning Apache/MySQL/PHP€¦ · MySQL, max_connections Determina o número máximo de conexões simultâneas no MySQL. Aumentar de acordo com a necessidade. Receber

PHP, memcached

● Limpando dados do cache:

Page 52: para Desenvolvedores Tuning Apache/MySQL/PHP€¦ · MySQL, max_connections Determina o número máximo de conexões simultâneas no MySQL. Aumentar de acordo com a necessidade. Receber

PHP

● Identificando gargalos em aplicação PHP● memcached● Opções de aceleradores de código php● Usando APC (Alternative PHP Cache)● Caching com Zend_Cache● PHP e Computação em Nuvem

Page 53: para Desenvolvedores Tuning Apache/MySQL/PHP€¦ · MySQL, max_connections Determina o número máximo de conexões simultâneas no MySQL. Aumentar de acordo com a necessidade. Receber

PHP, aceleradores de código

● APC - Alternative PHP Cache.○ Ideal para WebServers muito carregados e aplicações com

muitos componentes.○ Software Livre ○ Mantido pelos desenvolvedores do core do PHP.○ Distribuído através de um pacote PECL.○ Previsão para estar integrado junto com o PHP versão 5.4 ○ Compatibilidade com Zend Optimizer ○ Fácil administração○ Suporte para Windows ○ Suporte para PHP 5.4

Page 54: para Desenvolvedores Tuning Apache/MySQL/PHP€¦ · MySQL, max_connections Determina o número máximo de conexões simultâneas no MySQL. Aumentar de acordo com a necessidade. Receber

PHP, aceleradores de código

● XCache○ Mantido pelo mesmo desenvolvedor do lighttpd.○ Performance semelhante APC ou até melhor. ○ Suporte para PHP 5.4.

● Zend Server○ Possui cache de opcode interno○ Opção comercial

Page 55: para Desenvolvedores Tuning Apache/MySQL/PHP€¦ · MySQL, max_connections Determina o número máximo de conexões simultâneas no MySQL. Aumentar de acordo com a necessidade. Receber

PHP

● Identificando gargalos em aplicação PHP● memcached● Opções de aceleradores de código php● Usando APC (Alternative PHP Cache)● Caching com Zend_Cache● PHP e Computação em Nuvem

Page 56: para Desenvolvedores Tuning Apache/MySQL/PHP€¦ · MySQL, max_connections Determina o número máximo de conexões simultâneas no MySQL. Aumentar de acordo com a necessidade. Receber

PHP, APC

Page 57: para Desenvolvedores Tuning Apache/MySQL/PHP€¦ · MySQL, max_connections Determina o número máximo de conexões simultâneas no MySQL. Aumentar de acordo com a necessidade. Receber

PHP, APC

● Interface Administrativa:

Page 58: para Desenvolvedores Tuning Apache/MySQL/PHP€¦ · MySQL, max_connections Determina o número máximo de conexões simultâneas no MySQL. Aumentar de acordo com a necessidade. Receber

PHP, APC

● Usando APC como cache de dados:

Page 59: para Desenvolvedores Tuning Apache/MySQL/PHP€¦ · MySQL, max_connections Determina o número máximo de conexões simultâneas no MySQL. Aumentar de acordo com a necessidade. Receber

PHP

● Identificando gargalos em aplicação PHP● memcached● Opções de aceleradores de código php● Usando APC (Alternative PHP Cache)● Caching com Zend_Cache● PHP e Computação em Nuvem

Page 60: para Desenvolvedores Tuning Apache/MySQL/PHP€¦ · MySQL, max_connections Determina o número máximo de conexões simultâneas no MySQL. Aumentar de acordo com a necessidade. Receber

PHP, Zend_Cache

● Classe de Cache distribuído junto com o Zend Framework. ● Pode ser utilizado como Stand Alone ou junto com o MVC.

● Provê uma forma genérica de realizar cache de dados.

Page 61: para Desenvolvedores Tuning Apache/MySQL/PHP€¦ · MySQL, max_connections Determina o número máximo de conexões simultâneas no MySQL. Aumentar de acordo com a necessidade. Receber

PHP, Zend_Cache

● Adapters○ APC○ Dba○ Filesystem○ Memcached○ Memory○ WinCache○ ZendServerDisk○ ZendServerShm

Page 62: para Desenvolvedores Tuning Apache/MySQL/PHP€¦ · MySQL, max_connections Determina o número máximo de conexões simultâneas no MySQL. Aumentar de acordo com a necessidade. Receber

PHP, Zend_Cache

● Exemplo de utilização do Zend_Cache

Page 63: para Desenvolvedores Tuning Apache/MySQL/PHP€¦ · MySQL, max_connections Determina o número máximo de conexões simultâneas no MySQL. Aumentar de acordo com a necessidade. Receber

PHP

● Identificando gargalos em aplicação PHP● memcached● Opções de aceleradores de código php● Usando APC (Alternative PHP Cache)● Caching com Zend_Cache● PHP e Computação em Nuvem

Page 64: para Desenvolvedores Tuning Apache/MySQL/PHP€¦ · MySQL, max_connections Determina o número máximo de conexões simultâneas no MySQL. Aumentar de acordo com a necessidade. Receber

PHP, Cloud

● IaaS (Infrastructure-as-a-Service)○ Infraestrutura (Recursos) são contratados como serviço.

■ rede, armazenamento, memória, cpu, etc.○ Alta escalabilidade.○ Sistema de monitoramento avançado.○ Sistemas IaaS mais conhecidos:

■ EC2 Amazon■ IBM SmartCloud

Page 65: para Desenvolvedores Tuning Apache/MySQL/PHP€¦ · MySQL, max_connections Determina o número máximo de conexões simultâneas no MySQL. Aumentar de acordo com a necessidade. Receber

PHP, Cloud

● PaaS (Plataforme-as-a-Service)○ Plataforma para criação, hospedagem e controle de Software.○ Fácil Escalabilidade.○ Não se preocupe mais com administração de infraestrutura. ○ Segurança Integrada. ○ Sistemas PaaS mais conhecidos:

■ Google AppEngine■ Force.com ■ Zend Developer Cloud

Page 66: para Desenvolvedores Tuning Apache/MySQL/PHP€¦ · MySQL, max_connections Determina o número máximo de conexões simultâneas no MySQL. Aumentar de acordo com a necessidade. Receber

PHP, Cloud

● SaaS (Software-as-a-Service).○ Não se preocupe mais com instalação de software○ Software utilizado 100% via Web.○ Não há aquisição de licenças.○ Pague somente pela utilização do serviço.○ Disponibiliza API para integrações externas. ○ Sistemas SaaS mais conhecidos:

■ Google Docs■ Gmail ■ Hotmail

Page 67: para Desenvolvedores Tuning Apache/MySQL/PHP€¦ · MySQL, max_connections Determina o número máximo de conexões simultâneas no MySQL. Aumentar de acordo com a necessidade. Receber

PHP, Cloud

● Amazon○ Amazon S3 (Simple Storage Service)○ Simple Queue Service (SQS)○ SimpleDB○ EC2 (Elastic Compute Cloud) ○ Auto Scaling○ ...

http://aws.amazon.com/pt/php/

Page 68: para Desenvolvedores Tuning Apache/MySQL/PHP€¦ · MySQL, max_connections Determina o número máximo de conexões simultâneas no MySQL. Aumentar de acordo com a necessidade. Receber

PHP, Cloud

● Windows Azure○ Blob Storage○ Table Service○ Queue Storage○ SQL Database○ SendGrid Email Service○ ...

http://www.windowsazure.com/en-us/develop/php/

Page 69: para Desenvolvedores Tuning Apache/MySQL/PHP€¦ · MySQL, max_connections Determina o número máximo de conexões simultâneas no MySQL. Aumentar de acordo com a necessidade. Receber

PHP, Cloud

● www.phpcloud.com (Zend Developer Cloud)

● O que é ?○ Ambiente para rodar aplicações em php na Nuvem.○ Criado pela própria Zend. ○ Ambiente PaaS.○ Infraestrutura interna usando Zend Server.

● Elástico○ Fácil escalabilidade.○ Permite que você aumente ou diminui recursos conforme

necessidade.

Page 70: para Desenvolvedores Tuning Apache/MySQL/PHP€¦ · MySQL, max_connections Determina o número máximo de conexões simultâneas no MySQL. Aumentar de acordo com a necessidade. Receber

PHP, Cloud

● www.phpcloud.com (Zend Developer Cloud)

● Rápido○ Ambiente otimizado para diminuir tempo de resposta de

requisições.○ Acelerador de código.○ Cache de bytecode.○ Cache de dados.○ Cache total de páginas.

Page 71: para Desenvolvedores Tuning Apache/MySQL/PHP€¦ · MySQL, max_connections Determina o número máximo de conexões simultâneas no MySQL. Aumentar de acordo com a necessidade. Receber

PHP, Cloud

● www.phpcloud.com (Zend Developer Cloud)

● Seguro○ Alta disponibilidade.○ Monitoração de Aplicação. ○ Hot Fixes.

● Plataformas○ RightScale○ Amazon○ Rackspace○ IBM SmartCloud

Page 72: para Desenvolvedores Tuning Apache/MySQL/PHP€¦ · MySQL, max_connections Determina o número máximo de conexões simultâneas no MySQL. Aumentar de acordo com a necessidade. Receber

PHP, Cloud

● www.phpcloud.com (Zend Developer Cloud)

Page 73: para Desenvolvedores Tuning Apache/MySQL/PHP€¦ · MySQL, max_connections Determina o número máximo de conexões simultâneas no MySQL. Aumentar de acordo com a necessidade. Receber

PHP, Cloud

● Simple Cloud API○ Interface comum para diversos serviços de aplicações em cloud.○ Distribuído junto com Zend Framework.

● File Storage ○ Amazon S3.○ Table Storage Windows Azure. ○ Cloud Storage Nirvanix○ Rackspace

Page 74: para Desenvolvedores Tuning Apache/MySQL/PHP€¦ · MySQL, max_connections Determina o número máximo de conexões simultâneas no MySQL. Aumentar de acordo com a necessidade. Receber

PHP, Cloud

● Simple Cloud API

● Document Service ○ Amazon SimpleDB.○ Table Service Windows Azure

● Queue Service○ Amazon Sqs○ Queue Service Windows Azure

● Infrastructure Services○ Amazon EC2 ○ Rackspace Cloud Servers

Page 75: para Desenvolvedores Tuning Apache/MySQL/PHP€¦ · MySQL, max_connections Determina o número máximo de conexões simultâneas no MySQL. Aumentar de acordo com a necessidade. Receber

Obrigado por assistir!

Para saber mais:http://dpasqua.wordpress.com

[email protected]