ENIC/UFPB 2009. Arquitetura de Segurança Baseada em Security Paterns Para o O...ufpb
Slides apresentados no Encontro Nacional de Iniciação Científica 2009 - UFPB.
Aborda as atividades realizadas durante a pesquisa e implantação do projeto Arquitetura de Segurança Baseada em Security Patterns Para o OpenCTI.
ENIC/UFPB 2009. Arquitetura de Segurança Baseada em Security Paterns Para o O...ufpb
Slides apresentados no Encontro Nacional de Iniciação Científica 2009 - UFPB.
Aborda as atividades realizadas durante a pesquisa e implantação do projeto Arquitetura de Segurança Baseada em Security Patterns Para o OpenCTI.
Escalabilidade e alta disponibilidade no php com nginxSaveincloud
Se você tem um site, blog ou e-commerce com alto volume de acessos e busca por soluções que o tornem escalável e com melhor desempenho, então está na hora de entender melhor o que o NGINX pode fazer por você.
Prepare seu PHP pra receber mais visitas sem perder performance.
Instale e configure sua aplicação com NGINX escalável aqui na Saveincloud.
Faça um teste grátis com a gente por 14 dias. Acesse o link https://cloud.saveincloud.com.br/lp/nginx-escalavel-com-php/
Fale com a nossa equipe pelo whatsapp https://bit.ly/Saveincloud
Palestra feito na PHPConf - 2016
Tudo sobre cache em aplicativos PHP, comento sobre os pontos de falha, o problema de invalidação, estrategias de como aplicar cache, bem como todos os tipos de cache, opções e possibilidades de multiplos caches e afins.
Tópicos importantes:
-- Planejamento de cache
-- Estrátegias de invalidação
-- Cache em back end
-- Cache para front end
-- Cache reverso
-- Localstorage
Se você trabalha com Cloud PostgreSQL e está buscando melhor performance e escalabilidade, vamos conversar e detalhar de que forma você pode fazer isso aqui na Saveincloud.
O objetivo deste vídeo é te mostrar o passo a passo para instalar, configurar, replicar e otimizar seu Cloud PostgreSQL, e como obter melhor performance usando os conceitos de escalonamento e replicação tão desejados no mercado.
✅ Acesse o link a seguir para testar 14 dias grátis a ferramenta:
https://cloud.saveincloud.com.br/lp/postgresql-escalabilidade-e-replicacao-de-banco-de-dados/
Link para falar com nosso Suporte:
https://bit.ly/Saveincloud
Design Patterns para Tuning Pentaho com Ctoolse-Setorial
Uma "receita de bolo" com os passos comumente seguidos para tunar um dashboard, incluindo boas práticas, ferramentas e configurações. Os fontes do exemplo podem ser baixados livremente de http://www.e-setorial.com.br/pentahoday2017/DesignPatternsPentaho 09-12-57-284.zip
Palestra apresentada no CONSEGI 2013, na oficina sobre Joomla, organizada pela Joomla! Calango. A palestra serviu de suporte para a demonstração prática.
Há uma famosa frase que dita ser invalidação de cache uma das mais difícil tarefas da Ciências da Computação. Esta palestra traz diferentes abordagens para armazenar dados em cache para aplicações Web. Tecnologias como HTTP, NGINX, Redis, cache em memória entre outras serão analisadas juntamente com algumas práticas para endereçar cache em diferentes leveis.
Escalabilidade e alta disponibilidade no php com nginxSaveincloud
Se você tem um site, blog ou e-commerce com alto volume de acessos e busca por soluções que o tornem escalável e com melhor desempenho, então está na hora de entender melhor o que o NGINX pode fazer por você.
Prepare seu PHP pra receber mais visitas sem perder performance.
Instale e configure sua aplicação com NGINX escalável aqui na Saveincloud.
Faça um teste grátis com a gente por 14 dias. Acesse o link https://cloud.saveincloud.com.br/lp/nginx-escalavel-com-php/
Fale com a nossa equipe pelo whatsapp https://bit.ly/Saveincloud
Palestra feito na PHPConf - 2016
Tudo sobre cache em aplicativos PHP, comento sobre os pontos de falha, o problema de invalidação, estrategias de como aplicar cache, bem como todos os tipos de cache, opções e possibilidades de multiplos caches e afins.
Tópicos importantes:
-- Planejamento de cache
-- Estrátegias de invalidação
-- Cache em back end
-- Cache para front end
-- Cache reverso
-- Localstorage
Se você trabalha com Cloud PostgreSQL e está buscando melhor performance e escalabilidade, vamos conversar e detalhar de que forma você pode fazer isso aqui na Saveincloud.
O objetivo deste vídeo é te mostrar o passo a passo para instalar, configurar, replicar e otimizar seu Cloud PostgreSQL, e como obter melhor performance usando os conceitos de escalonamento e replicação tão desejados no mercado.
✅ Acesse o link a seguir para testar 14 dias grátis a ferramenta:
https://cloud.saveincloud.com.br/lp/postgresql-escalabilidade-e-replicacao-de-banco-de-dados/
Link para falar com nosso Suporte:
https://bit.ly/Saveincloud
Design Patterns para Tuning Pentaho com Ctoolse-Setorial
Uma "receita de bolo" com os passos comumente seguidos para tunar um dashboard, incluindo boas práticas, ferramentas e configurações. Os fontes do exemplo podem ser baixados livremente de http://www.e-setorial.com.br/pentahoday2017/DesignPatternsPentaho 09-12-57-284.zip
Palestra apresentada no CONSEGI 2013, na oficina sobre Joomla, organizada pela Joomla! Calango. A palestra serviu de suporte para a demonstração prática.
Há uma famosa frase que dita ser invalidação de cache uma das mais difícil tarefas da Ciências da Computação. Esta palestra traz diferentes abordagens para armazenar dados em cache para aplicações Web. Tecnologias como HTTP, NGINX, Redis, cache em memória entre outras serão analisadas juntamente com algumas práticas para endereçar cache em diferentes leveis.
Nestes slides apresento maneira de trabalhar com o PHP no Windows Azure, existem dois artigos onde publiquei os passo realizados durante a apresentação.
http://viniciussouza.azurewebsites.net/php-no-windows-azure-utilizando-linux/
http://viniciussouza.azurewebsites.net/php-no-windows-azure-utilizando-o-windows/
Algum tempo atrás estar preparado para um milhão de usuários simultâneos era somente para as grandes empresas como Google, twitter ou facebook. Mas com a explosão da Web 2.0 isso também é uma preocupação para qualquer que tenha um site de notícias ou mesmo um ecommerce. Somado as atualizações cada vez mais frenéticas (tecnológicas ou de regras denegócio) para fazê-lo sobreviver a concorrência acaba-se desprezando boas práticas para atender a audiência cada vez mais maior. Então, seu site está preparada para um milhão de usuários?
A cada dia surge novas tecnologias para produção de sistemas/site
tornando difícil acompanhar todas elas ou escolher as melhores. Porém
é possível escolher algumas técnicas e práticas importantes para
internet e seu ecossistema. A Web 2.0, expansão do comércio
eletrônico, redes sociais, a "Internet das Coisas" e outros buzzwords
tornam as escolhas tecnológicas cada vez mais difíceis de serem
tomadas pela enormidade de opções. Mas é possível considerar algumas
coisas para que um site/sistema proporcione uma boa experiência para
seu usuário e alguma vida para as equipes de TI.
3. Warning
"Premature optimization
is the root of all evil."
Donald Knuth
21.fev.2014
Marcos Sungaila – marcos@savant.com.br
CC Attribution-ShareAlike 3.0 Unported License
3
4. Configuração básica
●
●
●
A configuração padrão do Apache é bem
versátil
Usando servidores standard, o Apache pode
atender a alguns milhares de conexões por dia
sem otimizações
Essa configuração pode ser melhorada
ampliando ou reduzindo os recursos
disponíveis por meio de seus módulos
21.fev.2014
Marcos Sungaila – marcos@savant.com.br
CC Attribution-ShareAlike 3.0 Unported License
4
5. Otimização
●
Como medir a performance do Apache?
–
–
httperf
–
●
Apache HTTP server bench marking tool
The Grinder, a Java Load Testing Framework
Não há outra forma de medir essa
performance?
–
21.fev.2014
A mais importante métrica que pode ser verificada é
a percepção do usuário
Marcos Sungaila – marcos@savant.com.br
CC Attribution-ShareAlike 3.0 Unported License
5
7. RAM
●
Siga aquele ditado que diz:
Quanto mais, melhor!
●
●
●
Se possível tenha o máximo de memória que o
servidor, o sistema operacional e seu bolso
permitirem
Mais memória permite um maior número de
processos ou threads
Maior número de requests simultâneos
21.fev.2014
Marcos Sungaila – marcos@savant.com.br
CC Attribution-ShareAlike 3.0 Unported License
7
8. Módulos padrão
●
●
●
A carga de módulos usa mais memória e ativa
sequências de verificação adicionais
Inclui rotinas a serem executadas em todas as
chamadas
Vários módulos que vêm configurados por
padrão só são usados em casos específicos
21.fev.2014
Marcos Sungaila – marcos@savant.com.br
CC Attribution-ShareAlike 3.0 Unported License
8
10. Módulos padrão
●
●
O principal objetivo em desativar módulos não
é liberar memória mas sim reduzir o número de
rotinas executadas em cada request
A redução no consumo de memória acontece
como um bônus
21.fev.2014
Marcos Sungaila – marcos@savant.com.br
CC Attribution-ShareAlike 3.0 Unported License
10
11. mod_mem_cache
●
●
É útil para criar cache de conteúdo gerado
localmente ou quando o apache atua como um
proxy reverso
Este módulo cria um cache independente por
processo – não compartilhável entre processos
21.fev.2014
Marcos Sungaila – marcos@savant.com.br
CC Attribution-ShareAlike 3.0 Unported License
11
12. mod_disk_cache
●
●
●
Também é usado para criar cache de conteúdo
gerado localmente ou quando o apache atua
como um proxy reverso
O cache é criado em uma pasta especificada e
pode ser acessado por todos os processos/
threads do apache
Ao usar mod_disk_cache configure um disco
separado, de alta performance – SSD se
possível – , como cache
21.fev.2014
Marcos Sungaila – marcos@savant.com.br
CC Attribution-ShareAlike 3.0 Unported License
12
13. mod_disk_cache
●
●
●
●
Quantidade de pastas para cache pode ser
configurada com CacheDirLength e
CacheDirLevels
Cuidado com CacheDirLength para não criar
poucas pastas ou uma quantidade muito
grande
Prefira uma estrutura com CacheDirLevels=1
para reduzir o tempo de limpeza do cache
Execute o daemon htcacheclean para evitar o
acumulo desnecessário de arquivos sem uso
21.fev.2014
Marcos Sungaila – marcos@savant.com.br
CC Attribution-ShareAlike 3.0 Unported License
13
15. mod_disk_cache
●
Como saber se a página foi servida a partir do
cache ou processada?
LogFormat "%h %l %u %t "%r" %>s %b
"%{Referer}i" "%{User-Agent}i"
"%{Age}o"" combined
21.fev.2014
Marcos Sungaila – marcos@savant.com.br
CC Attribution-ShareAlike 3.0 Unported License
15
16. Logs
●
●
●
●
Uso intensivo de I/O
Deve usar um disco separado do disco do
conteúdo do apache
Preferencialmente discos SAS – não precisa
ser SSD
Considere o uso do log do sistema
21.fev.2014
Marcos Sungaila – marcos@savant.com.br
CC Attribution-ShareAlike 3.0 Unported License
16
17. Persistent connections
●
Vantagens
–
–
●
É mais eficiente manter uma conexão ativa para
enviar um segundo arquivo
Atender a mais de um request por conexão
Desvantagens
–
Pode prejudicar em sites onde só há solicitações
de um único arquivo
–
Mantém uma conexão ativa por mais tempo
21.fev.2014
Marcos Sungaila – marcos@savant.com.br
CC Attribution-ShareAlike 3.0 Unported License
17
18. Persistent connections
●
Opções de configuração
LoadModule headers_module modules/mod_headers.so
KeepAlive on
MaxKeepAliveRequests 100
KeepAliveTimeout 15
<ifModule mod_headers.c>
Header set Connection keep-alive
</ifModule>
21.fev.2014
Marcos Sungaila – marcos@savant.com.br
CC Attribution-ShareAlike 3.0 Unported License
18
19. .htaccess
●
●
Usado para tornar mais flexível a configuração
de sites no Apache
Deve ser habilitado no httpd.conf pela tag
AllowOverride
●
A tag AllowOverRide força o Apache a fazer
varreduras em todas as pastas a partir de / à
procura de arquivos .htaccess
21.fev.2014
Marcos Sungaila – marcos@savant.com.br
CC Attribution-ShareAlike 3.0 Unported License
19
20. .htaccess
●
Com esta configuração
DocumentRoot /var/www/html
<Directory />
AllowOverride all
</Directory>
●
Ao acessar este site, o Apache é forçado a
procurar por .htaccess em:
/.htaccess
/var/.htaccess
/var/www/.htaccess
/var/www/html/.htaccess
21.fev.2014
Marcos Sungaila – marcos@savant.com.br
CC Attribution-ShareAlike 3.0 Unported License
20
21. SymLinks
●
Há duas opções para permitir o uso de links
simbólicos
FollowSymLinks
SymLinksIfOwnerMatch
●
A segunda opção é mais segura porém, do
ponto de vista de performance, é
extremamente onerosa.
21.fev.2014
Marcos Sungaila – marcos@savant.com.br
CC Attribution-ShareAlike 3.0 Unported License
21
22. SymLinks
●
Com esta configuração
DocumentRoot /vaw/www/html
<Directory />
Options SymLinksIfOwnerMatch
</Directory>
●
Ao acessar este site, o Apache é forçado a
executar uma função lstat() em:
/var
/var/www
/var/www/html
/var/www/html/index.html
21.fev.2014
Marcos Sungaila – marcos@savant.com.br
CC Attribution-ShareAlike 3.0 Unported License
22
24. Carregar js depois da página
●
●
●
●
Não use async, defer ou posicione os scripts no
final da página: isso não funciona
Javascripts que não estão envolvidos na
exibição inicial da página só devem ser
carregados depois da página completa
Coloque em um arquivo separado, scripts que
monitoram clicks, posição de mouse e coisas
assim
Use o código mostrado a seguir ao final da sua
página, antes da tag </body>
21.fev.2014
Marcos Sungaila – marcos@savant.com.br
CC Attribution-ShareAlike 3.0 Unported License
24
25. Carregar js depois da página
●
Exemplo prático
<script type="text/javascript">
function downloadJSAtOnload() {
var element = document.createElement("script");
element.src = "scripts.js";
document.body.appendChild(element);
}
if (window.addEventListener)
window.addEventListener("load", downloadJSAtOnload, false);
else if (window.attachEvent)
window.attachEvent("onload", downloadJSAtOnload);
else window.onload = downloadJSAtOnload;
</script>
21.fev.2014
Marcos Sungaila – marcos@savant.com.br
CC Attribution-ShareAlike 3.0 Unported License
25
26. Outras otimizações
●
Apache Extended Status
●
Swapiness
●
Buffer Size
●
Max Open Files
●
PHP Safe Mode
●
etc...
21.fev.2014
Marcos Sungaila – marcos@savant.com.br
CC Attribution-ShareAlike 3.0 Unported License
26