PHP para aplicações de alta performance

um breve resumo sobre o universo da performance

/me

William Correa

@wilcorrea

  • contextualização
  • breve história do PHP
  • escalonamento horizontal e vertical
  • ajustes finos
  • balanceamento de carga
  • mensageria

Principais Tópicos

PHP escala?

1

PHP nasce como uma linguagem de template

3

extensão para o apache

5

extensões como swoole

2

sintaxe parecida com linguagens como Shell e C

4

php-fpm

Vai ser só sucesso

Só que não

Quem escala é a aplicação e não a linguagem

– MESMO, Eu

Quanto mais algo faz por você

menos você pode fazer

  • Armazenamento externo
  • Instâncias descartáveis
  • Centralizar autorizações

Fazer

Evitar

  • Usar o I/O da instância
  • Acessar arquivos
  • Pensar localmente

Há tantas soluções quanto para cada solução há tantos problemas

Para cada problema

E agora?

A aplicação tá morrendo!

Todo novo componente deve ser minuciosamente pensado para não ser um detrator

Monitorar performance

Escalonamento

Vertical

Aumentar a quantidade de recursos da(s) máquina(s) da aplicação

Diretivas do PHP-FPM

Diretiva Possíveis Valores
pm dynamic
pm.max_children int
pm.start_servers int
pm.min_spare_servers int
pm.max_spare_servers int

Ajustes finos no nginx

  • ajustar o tamanho do buffer
  • fazer cache do que for estático
  • comprimir conteúdo
  • quantidade de workers

Preparo para a guerra

  • limite de memória proporcional
  • cadin de swap não faz mal a ninguém
  • proteger-se de DDoS
  • APM, logs e error tracker

Era só isso...

mas é um pouco mais

a culpa é minha

então eu coloco em quem eu quiser

Escalonamento

Horizontal

Distribuir a aplicação em múltiplas instâncias que operam juntas

Balanceamento de carga

Ferramentas que ficam na borda de uma estrutura e distribuem os pedidos entre os recursos disponíveis

cloud arretado

Escalonamento automático

Ferramentas capazes de iniciar novas instâncias quando uma métrica é atingida

infra rocheda

Estrutura Distribuída

Distribuir a aplicação em múltiplas instâncias que operam juntas

uma filazinha

não faz mal a ninguém

Ferramentas

vamos de ChatGPT

o que tá ruim

pode sempre piorar

pode melhorar

mas não é sobre código

orquestração: saga pattern

Mudança de Hábito

Performance é mais do que apenas um aparato técnico

pensar de forma assincrona

Pensamento linear

Nossa primeiro impulso é sempre

tentar fazer uma linha reta para chegar

ao destino

Dividir para conquistar

E o tal do swoole?

E o tal do swoole?

E o tal do swoole?

Micro frameworks

hora das palmas

perguntas?

Made with Slides.com