DrupalCamp Campinas 2016 - Auditando performance, conteúdo e boas práticas em sites Drupal

32
Auditando performance, conteúdo e boas práticas em sites Drupal André Boscatto Arquiteto de Software CI&T Erick Jaccoud Arquiteto de Software CI&T

Transcript of DrupalCamp Campinas 2016 - Auditando performance, conteúdo e boas práticas em sites Drupal

Auditando performance, conteúdo e boas práticas em sites Drupal

André BoscattoArquiteto de SoftwareCI&T

Erick JaccoudArquiteto de SoftwareCI&T

CréditosJon Peck (Arquiteto de Software @Four Kitchens)

Palestra originalhttps://events.drupal.org/neworleans2016/sessions/how-audit-drupal-sites-performance-content-and-best-practices

Auditoria - o que é?● Inspeção e verificação● Valida o que está certo● Sugere o que pode ser melhorado

Por que auditar sites?● Performance● Compreender o conteúdo e a estrutura● Garantir uma configuração ótima● Extrair métricas de performance /

segurança / qualidade● Conhecer aspectos que podem ser

melhorados

Todo site é único, mas...● São construídos sobre o mesmo

framework● Possuem requisitos arquiteturais

semelhantes● Podem conter customizações

que poderiam ser implementadas de forma padronizada

Auditoria efetiva é● Consistente● Quantificável● Ciente de contexto● Fácil de entender

Deve conter recomendações / plano de ação

Ferramentas de análise e auditoria

● Site audit○ Cache audit○ Security review○ Outras extensões (detalhadas adiante)

● XHProf● XDebug

Site Audit

● https://www.drupal.org/project/site_audit● Para sites Drupal 7 e 8● Integrado ao drush (não é um módulo

tradicional)● Fornece suporte a auditoria de diversos

aspectos do site e é extensível

O que o Site Audit verifica?

● Boas práticas● Blocks● Cache● Código● Banco de dados● Conteúdo● Cron

● Extensões● Front-end● Segurança● Status do sistema● Usuários● Views● Watchdog

O que ele não verifica?

● Usabilidade e experiência do usuário

● Aspectos estéticos● Conteúdo semântico

Como usar?drush help --filter=site_audit

Audit Cache$ drush audit_cache

Resultados Detalhados $ drush ac --detail

JSON Output$ drush audit_cron --json

HTML Output$ drush audit_best_practices --html --detail --bootstrap

Auditando a coisa toda$ drush aa --skip=insights --html --bootstrap

Compartilhe seus reports

Em que pé estamos?

● 8.x-2.1 (Drupal 8)● 7.x-1.16 (Drupal 7)

Ferramentas que estendem o site_audit● Unused Modules● Security Review● Hacked!● Sensitive Data● Drupalgeddon● Cache Audit● PHP_CodeSniffer / Coder● PAReview.sh

Unused Modules● https://www.drupal.

org/project/unused_modules

● Lista com módulos que não estão sendo usados e podem ser removidos com segurança

● Ignora módulos "filhos" desabilitados

Certifique-se de que não tenha o módulo instalado como comando do drush e no site ao mesmo tempo (bug)

Security Review● Integração será portada na versão 8 (https://www.drupal.

org/node/2279283)● https://www.drupal.org/project/security_review ● Verifica configurações do site e do host● Conteúdo do site

Hacked!

● https://www.drupal.org/project/hacked

● Faz uma varredura, comparando módulos da comunidade contra suas versões "oficiais" procurando por mudanças realizadas.

Sensitive Data

● https://www.drupal.org/project/sensitive_data

● Buscar por conteúdos com informação sensível ao usuário (Número de cartão de crédito, IDs, etc)

Drupalgeddon

Drupalgeddon (with an "L") checks for backdoors and other traces of known Drupal exploits of "Drupageddon" (no "L"), aka SA-CORE-2014-005 SQL injection. Drupalgeddon is not a module; it's a Drush command.

Procura por exploits que podem ter sido instalados devido à falha de segurança presente até a versão Drupal 7.32.

Ferramentas que complementam o site_audit● Cache Audit● PHP_CodeSniffer / Coder● PAReview.sh

Cache Audit

● https://www.drupal.org/project/cacheaudit

● Configurações de cache do core do Drupal, Block, Views e Panels

PHP_CodeSniffer / Coder● https://github.

com/squizlabs/PHP_CodeSniffer● https://www.drupal.org/project/coder

○ Utilize sempre a versão Drupal 8, independente se for para D7 ou D8

● Conjuto de regras: Drupal e DrupalPractice

● Detecta violações dos padrões Drupal Coding Standards

● phpcbf pode corrigir algumas violações automaticamente

*Não tente resolver tudo de uma vez só!

PAReview.sh● http://pareview.sh ● Ferramenta hospedada que verifica

contrib módulos● Se tornou parte do processo de

publicação de módulos○ É extremamente recomendado

colocar sua sandbox!● Fornece reviews automaticos

Outras ferramentas para PHP

● XDebug - a powerful debugger for PHP○ Server para debugging,

tracing e profiling de aplicações PHP

○ Profiling pode ser visualizado com o Webgrind

○ Netbeans oferece suporte a breakpoints, watches etc.

Outras ferramentas para PHP

● XHProf “is a hierarchical profiler for PHP. It reports function-level call counts and inclusive and exclusive metrics such as wall (elapsed) time, CPU time and memory usage.”

● Extensão do PHP● Desenvolvido e utilizado pelo Facebook

(mais info)● Módulo Drupal: https://www.drupal.

org/project/xhprof

Perguntas?

Obrigado! :)