Depois de testar e revisar o software JPEG.webpmini Pro, percebi como esse software é poderoso não apenas para exportar imagens e fazer parte de um fluxo de trabalho do Lightroom, mas também para muitos outros usos, incluindo a otimização de imagens que já estão em nosso grandes dispositivos de armazenamento. Outro uso em que pensei imediatamente foi o servidor web de onde o tráfego da Photography-Secret.com se origina. Considerando a quantidade de tráfego que a Photography-Secret.com atende em todo o mundo no dia-a-dia e o fato de que as imagens sozinhas respondem por cerca de 5 Terabytes de tráfego por mês, a ideia de ser capaz de compactar imagens JPEG.webp usando o mecanismo JPEG.webpmini era algo que eu realmente queria implementar mais cedo ou mais tarde. Então, embarquei em um novo projeto - para economizar tráfego e dinheiro no longo prazo para a PL, usando o servidor JPEG.webpmini.
Fotógrafos, cuidado: esta é uma revisão muito técnica de software que não está relacionado à fotografia. Decidi publicar a análise na PL, pois sinto que outros sites com grande volume de fotografia poderiam se beneficiar enormemente com a implementação do servidor JPEG.webpmini.
1) Visão geral do ambiente de servidor
Antes de iniciar a revisão, gostaria de apontar algumas informações potencialmente importantes sobre a configuração do meu servidor web. Em primeiro lugar, executo o CentOS Linux em todos os servidores (e existem alguns deles). Os dois servidores web back-end que lidam com chamadas PHP do balanceador de carga é onde eu instalei o servidor JPEG.webpmini, embora apenas o primeiro realmente importe, pois é o que lida com todos os uploads para o site (o WordPress não pode lidar com isso diretamente, então só é possível observar as chamadas wp-admin e direcioná-las para o servidor apropriado via nginx / apache). Infelizmente, não há uma maneira fácil de executar mais de um servidor WordPress sem complicações de upload de arquivo, pois ele não foi projetado para ser usado em um ambiente de cluster (mover tudo para AWS com EC2 executando instâncias de servidor, RDS executando o banco de dados e S3 lidando com o arquivos seria uma boa solução, mas depois de testá-lo, não era uma solução barata de forma alguma, especialmente depois que você começou a gerar alguns servidores EC2 que lidariam com a carga de back-end). Portanto, tenho sincronizado todos os uploads via rsync. Não é uma solução elegante, mas funciona muito bem. Eu tenho o rsync monitorando a pasta “wp-content”, então todas as mudanças são replicadas de uma maneira (basicamente, uma vez que as imagens são carregadas para o server01, elas são automaticamente selecionadas pelo server02). Leva um ou dois segundos para sincronizar, mas quando isso acontece, as imagens são exibidas facilmente para as solicitações do balanceador de carga.
Todas as chamadas de servidor da web são tratadas por um balanceador de carga, que atende apenas o tráfego da web https. Todas as imagens são tratadas por um CDN externo. O principal motivo para implementar o JPEG.webpmini foi reduzir os custos de CDN, que só aumentam a cada mês à medida que continuamos a publicar mais conteúdo.
Lembre-se de que seu servidor da web deve estar executando um tipo de Linux - o servidor JPEG.webpmini não funciona em servidores Windows. Aqui está a lista de plataformas de servidor suportadas.
2) Instalação do servidor JPEG.webpmini
A instalação do servidor JPEG.webpmini é muito fácil, especialmente se você executa RHEL, CentOS e outras distribuições Linux populares. Para meu servidor CentOS, JPEG.webpmini forneceu um arquivo RPM, então foi uma instalação fácil com um único comando. Depois que o arquivo binário foi instalado (/ usr / bin / jpeg.webpmini por padrão), a próxima etapa foi copiar o arquivo de licença .jpeg.webpmini.cfg no diretório inicial do usuário. A partir daí, a execução de “jpeg.webpmini” deve produzir algo como o seguinte:
===============================
Inicie o jpeg.webpmini 3.14.2.84235
===============================
A opção -f é necessária: -f =
Use -help para obter ajuda
===============================
Concluir jpeg.webpmini 3.14.2.84235
===============================
Meu teste inicial começou com a versão 3.13 do servidor JPEG.webpmini, mas depois de algumas alterações solicitadas no executável, o JPEG.webpmini forneceu um arquivo RPM 3.14 atualizado. A principal adição à versão 3.14 é a capacidade de pular arquivos já otimizados, o que foi um grande negócio para mim, pois eu uso a versão desktop do software e não queria que o servidor JPEG.webpmini re-otimize as imagens JPEG.webp carregadas.
3) Manuseio de arquivo de imagem WordPress
Quando uma imagem é carregada para o WordPress, os scripts de administração usam GD ou ImageMagick para processar essas imagens. Por padrão, o WordPress cria imagens de três tamanhos, além da imagem carregada (miniatura, tamanho médio e tamanho grande), mas dependendo de quantas chamadas add_image_size podem ser adicionadas pelo tema e plug-ins, pode haver muito mais! Por causa disso, um único upload de imagem pode gerar vários arquivos no servidor, permitindo que a pasta Uploads cresça muito rapidamente. E essas imagens menores são criadas por GD ou ImageMagick, então os arquivos, por padrão, serão removidos de ambos os perfis de cores ICC e dados EXIF, o que não é desejável em um site de fotografia. Eles também não serão otimizados de maneira adequada para o tamanho, uma vez que nem o GD nem o ImageMagick têm um algoritmo inteligente como o JPEG.webpmini para poder compactar imagens JPEG.webp corretamente. Na verdade, o WordPress faz um trabalho horrível com o redimensionamento de imagens, muitas vezes resultando em imagens mal coloridas (devido à remoção de perfis ICC), imagens suaves e turvas (devido à compressão pesada). Para evitar esse problema na PL, tenho usado o ImageMagick apenas para otimizar imagens, com opções especiais. Nós apenas retiramos os dados EXIF das miniaturas e os compactamos um pouco mais agressivamente para uma experiência de navegação rápida. Uma vez em uma postagem, nem os perfis ICC, nem os dados EXIF são retirados de imagens maiores para que tenham a melhor aparência possível. Dessa forma, não forçamos nossos leitores a clicar em uma imagem para ver a “versão certa” - as imagens parecem consistentes desde as visualizações até os tamanhos nativos carregados.
Portanto, para aproveitar ao máximo o servidor JPEG.webpmini, é melhor executar o executável para cada processo de redimensionamento - não apenas para a única versão carregada, pois você deseja que cada arquivo seja otimizado pelo mecanismo, seja um miniatura, uma versão média ou grande do original. Isso significa essencialmente que JPEG.webpmini deve interceptar todas as chamadas para redimensionamento_de_imagem.
4) Integração com servidor JPEG.webpmini e WordPress
Infelizmente, JPEG.webpmini não fornece um plugin que se integra automaticamente ao WordPress para fazer isso, então eu tive que encontrar uma solução sozinho. Comecei com a base de código do plugin ImageMagick Engine (um plugin bem desatualizado, mas ainda funciona), depois adicionei chamadas ao executável JPEG.webpmini na função ime_im_cli_resize (executo uma versão de linha de comando do ImageMagick em vez de um módulo PHP). Se esta versão modificada do plugin é algo do seu interesse, deixe-me saber na seção de comentários abaixo e eu enviarei o arquivo do plugin. Não tenho certeza se o pessoal do JPEG.webpmini está planejando lançar um plugin para WordPress, mas ficaria feliz em contribuir com algum código para uma boa causa.
O código funciona e foi testado com JPEG.webpmini 3.14. Assim que cada versão redimensionada é criada, o código primeiro otimiza essas imagens e, em seguida, otimiza e sobrescreve a imagem JPEG.webp original.
5) Resultados do teste do servidor JPEG.webpmini
Tem havido um monte de besteiras técnicas até agora, então vamos direto ao assunto. Quanto espaço em disco consegui recuperar e quanto economizei em custos de CDN? Para executar o executável JPEG.webpmini recursivamente em todas as pastas, tive que solicitar um script aos engenheiros do JPEG.webpmini, que eles forneceram muito rapidamente. O arquivo fornecido era um script Python chamado “jpeg.webpmini_recursive.py”, que só precisava de dois comandos - um para inserir a pasta de origem e um para inserir a pasta de destino (eu modifiquei o script um pouco depois de obter a nova versão RPM que pode pular automaticamente imagens JPEG.webp já otimizadas). Depois de fazer o backup de tudo, criei uma pasta chamada “uploads_jpeg.webpmini” e foi isso que usei como pasta de destino. Executei o script e demorou um pouco para examinar cada um dos arquivos. Voltei depois de algumas horas e a execução do script terminou.
Uma vez que JPEG.webpmini otimiza apenas imagens JPEG.webp e não toca em PNG, GIF ou outros uploads de arquivo, como vídeo, tive que ter certeza de copiar a pasta resultante de volta para minha pasta de uploads. Mais uma vez, certifique-se de fazer backup completo de tudo antes de executar esta etapa, pois é irreversível. Antes de fazer isso, alterei recursivamente as permissões na pasta uploads_jpeg.webpmini executando “chown -R nobody: nobody / uploads_jpeg.webpmini”. Então, o próximo comando foi “/ bin / cp -Rpf uploads_jpeg.webpmini / * uploads /”, que sobrescreveu os arquivos de imagem existentes com suas versões otimizadas JPEG.webpmini.
Vamos dar uma olhada no antes e no depois. Aqui está a aparência de minhas pastas antes de eu copiar todo o conteúdo:
du --max-depth = 1 | sort -k2 1252 ./2006 5272 ./2007 23332 ./2008 154872 ./2009 819580 ./2010 599084 ./2011 2124952 ./2012 2176548 ./2013 4504720 ./2014 6164472 ./2015 3812759 ./2016 559012 ./ 2017 Tamanho total: 20.945.855
Aproximadamente 21 gigabytes de imagens. Agora vamos dar uma olhada na aparência da pasta depois que todas as imagens foram otimizadas pelo JPEG.webpmini:
du --max-depth = 1 | sort -k2 1000 ./2006 2852 ./2007 15972 ./2008 127708 ./2009 647896 ./2010 461800 ./2011 1099676 ./2012 1252836 ./2013 3049696 ./2014 4378464 ./2015 2858628 ./2016 479416 ./ 2017 Tamanho total: 14.375.944
Uau, isso é apenas 14,4 gigabytes agora! Apenas no espaço do disco rígido, consegui recuperar mais de 6,5 GB de espaço, o que se traduz em cerca de 31% em economia de espaço. Isso é basicamente um terço da minha conta do CDN, que é um grande número. E tenha em mente que os últimos dois anos não economizaram tanto espaço quanto antes, pois eu já comecei a otimizar minhas imagens em meu desktop com JPEG.webpmini Pro antes de enviar, então os números que você vê são carregamentos de outros membros da equipe que não estão usando JPEG.webpmini.
Aqui está um exemplo de relatório resumido do JPEG.webpmini para junho de 2012:
----------------------------------
INFO: Relatório resumido para a pasta photographylife.com/wp-content/uploads/2012/06 (incluindo subpastas):
INFO: Número total de arquivos: 372
INFO: Tamanho total dos arquivos de entrada: 42900 KB
INFO: Tamanho total dos arquivos de saída: 28480 KB
INFO: Taxa de recompressão: 1,51X (economia de 34%)
INFO: ----------------------------------
Pastas diferentes geravam números diferentes, mas em média ficava entre 30-35%, o que é muito, considerando que nossa equipe sabe muito bem como manter os tamanhos de arquivo pequenos durante o processo de exportação (geralmente mantemos nossas configurações de exportação no Nível 10 no Photoshop , que é equivalente à “Qualidade” de 77-84% do Lightroom, de acordo com nosso artigo Níveis de compactação JPEG.webp no Photoshop e Lightroom).
5) Configurações de qualidade e metadados do servidor JPEG.webpmini
Para sites que não necessariamente se preocupam com a preservação de imagens JPEG.webp de alta qualidade com seus metadados, o JPEG.webpmini pode otimizar imagens de forma muito mais agressiva. Eu não queria que as imagens JPEG.webp parecessem piores do que as carregadas originalmente, então mantive a configuração padrão de “qual = 0”, que preserva a melhor qualidade. Outros sites podem optar por executar com qualidade alta ou média, o que reduzirá a área ocupada pelos arquivos JPEG.webp de forma muito mais agressiva. Além disso, pode-se remover completamente todos os metadados com o comando “rmt = 1” e se isso não for suficiente, há até uma opção para forçar a saída JPEG.webp progressiva em cada imagem. Tenho certeza de que sites de mídia social como o Facebook utilizam amplamente essas ferramentas, uma vez que imagens e vídeos são uma grande parte de suas contas de hospedagem. Para obter uma lista dos comandos disponíveis com o servidor JPEG.webpmini, visite esta página.
6. Conclusão
Embora o produto JPEG.webpmini Server definitivamente não seja voltado para fotógrafos, o software é uma ferramenta muito versátil para aqueles que possuem grandes sites com muitas imagens e tráfego. Como pode ser visto no meu projeto de implementação, o JPEG.webpmini Server foi capaz de economizar mais de 6,5 gigabytes de espaço, traduzindo-se em cerca de 31% em espaço e redução de custos de CDN, o que é muito para uma empresa de qualquer tamanho. Com preço inicial de US $ 199 por mês, o JPEG.webpmini Server não é barato para uma pequena empresa, mas para uma empresa em crescimento com uma grande área de hospedagem onde uma única instância de servidor pode custar mais do que isso a cada mês, o produto pode valer a pena uma análise mais séria . Se você faz parte de uma empresa de hospedagem, se possui um site carregado com muitas imagens como PL ou seus custos de CDN estão ficando exorbitantes, convém entrar em contato com o pessoal da JPEG.webpmini e falar com eles sobre como podem ajudar você. Para começar, você pode experimentar esta página, onde pode inserir seu site e ver quanto pode esperar economizar em custos de CDN.
Se você tiver alguma dúvida sobre qualquer um dos itens acima, sinta-se à vontade para deixar um comentário abaixo.
Servidor JPEG.webpmini
- Características- 100% / 100
- Valor- 100% / 100
- Fácil de usar- 80% / 100
- Velocidade e Desempenho- 100% / 100
- Estabilidade- 100% / 100
- Apoiar- 100% / 100
Classificação geral da Photography-Secret.com
4.8- 96% / 100