Português do Brasil English
Devin no Facebook  Devin no Twitter  RSS do Site 
Linux    

Verificação automática dos sistemas de arquivos (auto-fsck)


Comentários  15
Visualizações  
76.665

Não importa que sistema ou distribuição Linux você esteja usando, sempre há um sistema de arquivos armazenando os seus dados. Há alguns anos atrás, os sistemas de arquivos (ou filesystems, em inglês) não eram tão modernos e precisam de alguns cuidados. Por exemplo: ao usar o sistema de arquivos ext2, se o computador fosse reiniciado ou desligado de forma forçada (o famoso dedoff, ou seja, mete o dedo no botão), logo na inicialização do Linux era feita a verificação de todo o sistema de arquivos, procurando por inconsistências, erros, arquivos e dados perdidos, essas coisas. Dependendo do tamanho do disco, isso poderia demorar vários minutos ou até horas…

Com os sistemas de arquivos mais modernos isso não acontece. Exemplo: ext3, ext4, XFS, ReiserFS, brtfs, entre outros. Todos esses sistemas de arquivos possuem uma funcionalidade muito útil chamada de journaling, uma espécie de meu querido diário. Com o journaling, as operações do sistema de arquivos são gravadas em um log, antes de começar e depois que acabou a operação. Assim, se algo falhar no caminho, o sistema de arquivos lê o log e sabe exatamente como consertar ou refazer (ou não fazer). Isso evita termos que ficar esperando uma verificação completa em todo o sistema de arquivos….

Mas quando acontece algum erro, é hora do fsck entrar em ação. Que tal a gente automatizar ele?

Leia mais

Programação    

Balanceando bancos de dados do WordPress com o HyperDB


Comentários  19
Visualizações  
537.814

O WordPress ao longo do tempo se tornou mais do que uma ferramenta para criar simples blogs e acabou virando uma plataforma de CMS completa. Muitos sites começaram a adotá-lo, incluindo sites com grande acesso e interação. Estes grandes volumes, por sua vez, ocasionaram algumas deficiências em termos de desempenho do site em algumas partes da infraestrutura, principalmente nos servidores web e bancos de dados.

O HyperDB é um plugin do WordPress usado para balancear e controlar as consultas MySQL e ajudar a melhorar o desempenho do site. Aprenda a usá-lo!

Leia mais

Programação    

php-gettext: Múltiplos idiomas em um sistema PHP


Comentários  16
Visualizações  
565.642

O php-gettext é uma biblioteca em PHP que emula as funcionalidades do gettext, que por sua vez é uma poderosa biblioteca para suporte de múltiplos idiomas em qualquer sistema (inclusive o sistema operacional). O gettext é utilizado pela maioria dos programas GNU e do Linux e por isso é o preferido da galera também em muitos sistemas PHP.

No PHP, existem duas formas de usar os métodos gettext: uma extensão nativa e uma biblioteca separada. Neste tutorial, vamos aprender a usar a biblioteca separada. A extensão nativa do PHP é rápida e bem suportada pelo PHP, mas ela é uma extensão nativa! Isso quer dizer que o PHP precisa ter essa extensão compilada como módulo e habilitada nas configurações. Por experiência própria, esse tipo de dependência gera dificuldades na hora de instalar sistemas em, por exemplo, servidores de hostings compartilhados e distribuições Linux que não tem os pacotes já prontos. Enquanto isso, o php-gettext é totalmente auto-suficiente: é só colocar uns arquivos php no sistema, carregá-los via include/require e pronto, já está funcionando. Apesar da biblioteca ser um pouquinho (só um pouquinho) mais lenta que a extensão nativa, vale muito à pena pela praticidade.

Leia mais

Programas    

s3cmd: mandando arquivos para a Amazon S3


Comentários  7
Visualizações  
542.097

Quando a computação em nuvem da Amazon Web Services surgiu, um dos primeiros produtos a serem oferecidos foi o S3, que permite armazenar arquivos em um storage distribuído. No S3, cada arquivo é um objeto compartilhado entre vários servidores, distribuindo entre eles cópias de segurança.

Existem algumas maneiras para se manipular um storage S3. A AWS fornece uma interface API para conversar com seus serviços, e é através desta API que diversos programas conversam com o S3. Inclusive, o próprio gerenciador web é feito em cima dessa API principal. Por ser uma API pública, qualquer pessoa pode fazer programas ou interfaces para trabalhar com o S3.

Conheça o s3cmd…

Leia mais

Linux    

Upstart – Scripts Init no Linux – Parte 2


Comentários  10
Visualizações  
524.021

O Upstart foi concedido para resolver as limitações do SystemV init para a distribuição Ubuntu e logo foi adotado por outras distribuições Linux. Seu princípio é ser baseado em eventos: o Upstart cria um ou vários eventos e os serviços podem ser associados à estes eventos. Ele é quem define o que fazer quando um evento começa, muda ou termina (por exemplo: iniciando e parando serviços).

Se vários serviços estão dentro de um evento e ele ocorre, o Upstart pode por exemplo, iniciar todos estes serviços paralelamente. Se um evento tem que ocorrer apenas depois de outro, quando o primeiro evento terminar, ele começa a rodar este outro dependente. Mas vamos ver isso melhor.

Como antes, quando o kernel é iniciado, ele chama o daemon do Upstart, o /sbin/init. Este daemon, quando iniciado, carrega todos os arquivos de configuração do diretório /etc/init. São todos os arquivos que tem extensão .conf. Cada um desses arquivos define um Job. Este Job significa uma tarefa ou serviço. Vale notar também que qualquer alteração nos arquivos vai ser imediatamente lida pelo Upstart, sem precisar recarregar ou algo parecido.

Leia mais

Linux    

Scripts Init no Linux – Parte 1


Comentários  13
Visualizações  
552.116

Os scripts de inicialização do Linux são utilizados desde os primórdios dos tempos (oh!) para não apenas colocar serviços e daemons para rodar na inicialização, mas para controlar os serviços em si no dia-a-dia. Tarefas como: descobrir se o postfix está rodando; iniciar aquele serviço que não subiu direito; reiniciar ou recarregar um daemon que você mudou a configuração; entre outros. E neste quesito, durante anos os scripts init no Linux foram lineares e simples… Entretanto, muita coisa mudou e foram surgindo outras funcionalidades.

Quando falamos em Init, podemos dizer que é o primeiro processo executado pelo Linux. Logo após o kernel ser carregado em memória, ele tem a opção de executar um programa. Este programa é o que chamamos de init. O init geralmente é o responsável por dizer quais os programas e/ou serviços devem ser iniciados logo após o carregamento do kernel e a detecção de hardware da máquina. Curiosamente, se você utilizar o comando ps, verá que o processo de PID número 1 é o sistema de init da sua distribuição.

Leia mais

Servidores    

Dissecando logs no Varnish


Comentários  8
Visualizações  
576.311

Imagine você, sentado no sofá assistindo algo interessante, quando lhe vem de repente na sua mente: “Caramba! Será que meu Varnish está rodando bem o suficiente?” Então se levanta, bebe alguma coisa e se depara com o terminal do servidor. E agora, o que fazer? :-) Logs! Logs e estatísticas são sempre seus amigos para você fazer esse tipo de avaliação: desempenho, resolução de problemas, estatísticas…

O varnish, sendo um ótimo programa, fornece várias ferramentas que te ajudam a ver o que exatamente está acontecendo em seu servidor. Neste tutorial, vamos ver como usar essas ferramentas ao seu favor. Lembre-se que é sempre importante você avaliar o que está acontecendo e mexer para sempre deixar melhor do que estava!

Leia mais

Servidores    

Replicação MySQL


Comentários  49
Visualizações  
603.057

Tem quem goste, tem quem não goste, mas uma coisa é certa: o MySQL é hoje um dos bancos de dados mais utilizados em sistemas Web. Se você é um dos muitos que usam, com certeza deve se preocupar bastante com os dados que estão dentro do banco. A última coisa que queremos é perder os dados, né? :-) Este tutorial mostra um pouco sobre como podemos nos precaver e manter o servidor MySQL funcionando de forma correta e com mais segurança.

A primeira forma de se manter uma segurança adicional do serviço funcionando e de seus dados é a replicação MySQL. A replicação é utilizada para que caso um servidor caia (e se machuque), o HD exploda ou algo parecido, haverá um segundo servidor com todos os dados atualizados e pronto para o uso. Sites sérios que precisam se manter sempre funcionando, com o mínimo de downtime quando algo falha devem utilizar sempre uma forma de replicação.

Leia mais

Servidores    

Uma introdução ao Varnish


Comentários  16
Visualizações  
548.138

Um dos problemas mais clássicos dos sistemas dinâmicos na Web é a carga que estes sistemas causam nos servidores. Diferentemente de servir apenas itens estáticos, os conteúdos dinâmicos precisam interpretar códigos, transformá-los, acessar bancos de dados, entre outras operações que tornam a carga de sistema maior. O Varnish é um software de código aberto que serve como uma camada intermediária entre o usuário e o servidor Web. Ele funciona fazendo cache do conteúdo dinâmico, transformando-o em uma página estática em memória, e então mandando para o usuário. Com isso, para todo usuário seguinte, o Varnish serve a página que já está em cache, ao invés do sistema dinâmico ter que efetuar todo o processamento novamente.

Leia mais

Servidores    

Varnish e backends com IPs dinâmicos


Comentários  1
Visualizações  
518.919

Até as versões atuais do Varnish, existe uma limitação na hora de especificar backends na configuração do VCL: não é possível usar IPs dinâmicos ao definir um backend. Em outras palavras, você não pode ter backends que você não saiba o IP. Em alguns casos, é necessário colocar na definição de backend um hostname, ao invés de um IP fixo. Se por acaso você mudar o IP deste hostname, o Varnish não vai ser atualizado com o novo IP, a não ser que você recompile o VCL (vcl.load e vcl.use). Existe uma solução de contorno (também conhecido como gambiarra) para resolver isso: usar um servidor nginx como intermediador.

Leia mais