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?

PHP para aplicações de alta performance

By William Correa

PHP para aplicações de alta performance

Há uma lenda sobre PHP ter dificuldade para lidar com uma escala maior de processamento. Esta palestra é sobre a jornada de uma aplicação escrita em PHP para escalar de uma pequena aplicação que atende a pouquíssimas requisições simultâneas a uma que lida com centenas de milhares de solicitações por segundo

  • 188