A performance das aplicações Python com servidores Apache no Linux é bastante reconhecida, mas é possível extrair ainda mais
A performance das aplicações Python com servidores Apache no Linux é bastante reconhecida, mas é possível extrair ainda mais performance separando a aplicação Python do servidor web, movendo-a para um servidor exclusivo de aplicação como o UWSGI e adicionando um cache de sessão compartilhado entre as várias réplicas da aplicação.
Uma camada de cache entre o cliente e a aplicação, por exemplo Squid ou Varnish, podem melhorar ainda mais a performance das aplicações.
Esta arquitetura pode ser transferida para um cenário de contêineres, por exemplo Kubernetes, praticamente sem modificação no diagrama. Uma fila – usando RabbitMQ – também pode ser adicionada para trabalhos pesados, evitando que as aplicações “segurem” a conexão.
Qualquer máquina, ou contêiner, neste diagrama pode ser replicado para mais ou para menos e independente das quantidades escolhidas o comportamento será semelhante, sendo mais performático ou menos performático dependendo da quantidade escolhida.
O cache entre o cliente e as aplicações pode ser eliminado em um cenário menos exigente, economizando recursos, ou mesmo transferido para uma outra máquina, ou contêiner, para extrair o máximo de performance em cenários extremos.