Por que o GNU/Linux é melhor que o OS X em servidores web

Iniciado por HD883, 08 de Agosto de 2008, 03:17

tópico anterior - próximo tópico

HD883

É comum ver o OS X da Apple, que é um sistema Unix certificado oficialmente já há algum tempo, operando como servidor web na internet e em intranets, servindo conteúdo dinâmico. Já trabalhei com configurações dessas por alguns anos, e trabalho com alternativas GNU/Linux há mais tempo ainda. Há pelo menos três razões para que os sistemas GNU/Linux sejam melhores nessa área.

Os servidores web são ativos importantes para as empresas, e a função dos administradores de sistemas é mantê-los funcionando a todo vapor, mas isso nem sempre é fácil. A segurança é sempre vital para os sites, como se pode ver pelos relatórios de vulnerabilidades e boletins de segurança. O desempenho, em termos de tempo de carregamento e tempo de resposta, é outro ponto chave. Os clientes se irritam quando demora mais tempo para adicionar algo ao carrinho de compras virtual do que para ir a uma loja física comprar o mesmo produto. Os sysadmins também devem focar a disponibilidade. Se o site sai do ar, perdem-se todos os benefícios que um site bem administrado ofereceria.

O GNU/Linux e os BSDs costumam ter uma ótima reputação como servidores web. Em termos de licença de software, eles possibilitam um serviço de hospedagem mais barata, abrigando sites dinâmicos que servem a dezenas de milhares de visitantes diariamente, por centenas de dias, sem maiores problemas.

Ultimamente, o Mac OS X vem pipocando em servidores web dedicados com mais freqüência, talvez devido ao sucesso do OS X e da Apple no desktop e seu conseqüente reflexo nas decisões de compras dos usuários da Apple que ocupam cargos relevantes. Eu co-administro várias máquinas da Apple que servem um aplicativo web baseado em PHP e MySQL, e não estou tão satisfeito com elas quanto estaria com ofertas GNU/Linux sólidas como o Debian. E as razões são essas:


O gerenciamento de software no OS X é inconveniente

O OS X não tem um gerenciador de pacotes adequado. É claro que instalar imagens dmg é fácil. O formato de arquivo .dmg define pacotes de aplicativos e é compreendido pelo programa de instalação da Apple. Só que nem todo software importante para um servidor web padrão vem empacotado como um arquivo .dmg. Muitas vezes, diretivas corporativas proíbem a instalação de software de terceiros como o Fink e o Portage. Você acaba tendo que instalar os programas da maneira "certa", lidando manualmente com tarballs (arquivos tar compactados), compilando e instalando outros programas por conta própria.

O Software Update da Apple não conhece todos os detalhes necessários para manter o bom funcionamento do sistema. Com freqüência você se verá esperando por correções de segurança cruciais por muito mais tempo do que em distribuições GNU/Linux bem suportadas, porque a Apple costuma lançar correções para softwares em grupo, em um dia específico.

É bem mais conveniente gerenciar todo o software por meio de uma ferramenta centralizada como o APT ou o RPM, como ocorre no GNU/Linux. Na maioria das distros GNU/Linux, o software empacotado é gerenciado por uma estrutura capaz de baixar e instalar correções de aplicativos automaticamente. Também é um processo trivial empacotar softwares de terceiros que não estejam nos repositórios de sua distribuição para que eles se integrem de maneira consistente aos outros softwares do sistema.


A configuração padrão de alguns programas populares é esquisita

A estratégia usada pela Apple para selecionar (ou configurar) software para servidores é estranha. Um aplicativo web padrão (que não rode em um servidor IIS) provavelmente vai precisar do PHP em algum momento, mas a versão que acompanha o OS X 10.5, o OS X mais recente (codinome Leopard), não traz por padrão algumas extensões extremamente úteis do PHP. O PHP Extension and Application Repository, ou PEAR, um vasto repositório de software com código reutilizável, não vem instalado por padrão, então cabe a você configurá-lo (e sem contar com um arquivo .dmg adequado). O build do PHP distribuído também não tem extensões convenientes como calendar, mcrypt e gd (uma biblioteca vital para a geração dinâmica de imagens), o que torna o pacote inteiro quase inútil para muitas aplicações. A única solução é abrir mão da instalação padrão do PHP da Apple e providenciar a sua, o que implica na tarefa inglória de configurar um ambiente de compilação e aprender a configurar cada recurso.

Praticamente todas as distribuições GNU/Linux que trazem pacotes binários permitem uma prática instalação desses módulos, e algumas delas até permitem a recompilação dos pacotes dos repositórios a partir dos fontes, com opções personalizadas definidas no momento da configuração. Sendo assim, as distribuições que oferecem um servidor LAMP costumam vir com todas as extensões PHP mais comuns habilitadas por padrão, de modo que você provavelmente não terá que se preocupar com isso.


O OS X se afasta do "caminho único e verdadeiro" do Unix

Embora o OS X seja um sistema Unix de verdade, como o departamento de marketing da Apple gritou aos quatro ventos em 2007, ele não é tão parecido com o Unix quanto deveria. Por exemplo, a maior parte do usuários versados no GNU/Linux sabem para que serve o /etc/fstab e o /etc/resolv.conf, e ficam surpresos ao ver a função deles no OS X: nenhuma. O /etc/resolv.conf só se aplica a alguns programas; há várias maneiras independentes de se resolver nomes de domínios no OS X, o que é um fonte potencial de confusão. Várias das ferramentas comuns do Unix funcionam de maneira inesperada. Por exemplo, montar um sistema de arquivos remoto pela linha de comando se torna uma verdadeira aventura quando você quer conceder o acesso a outros usuários que não sejam aquele que executou a montagem. Além disso, o manjado arquivo /etc/passwd não determina o shell do usuário, e o chsh, programa usado para alterar essa configuração quando não se deseja fazer alterações manuais em arquivos de configuração, atua em dados diferentes e ainda não revelados. Além disso, as permissões octais do Unix não necessariamente representam a realidade; você pode acabar obtendo um erro de "permissão negada" ao tentar acessar um determinado diretório, mesmo que a visão POSIX do sistema aparentemente permita que você o faça sem problemas, porque alguma outra API de programação (provavelmente a Cocoa, da Apple) tem prioridade. As ferramentas habituais não permitem a ordenação de argumentos de linha de comando da maneira que você preferir, o que pode ser extremamente inconveniente. A lista de discrepâncias e chateações é grande.

Você também não vai topar com o System V no OS X. O sistema usa um serviço chamado launchd para controlar a maior parte dos serviços (e suporta um sistema legado que controla funções parecidas em paralelo), e realiza tarefas como inicialização, interrupção e reinicialização automáticas de serviços quando necessário. A configuração desses serviços reside em arquivos XML, o que os torna um tanto complicados de ler e ainda mais complicados de se escrever do zero. De modo geral, o OS X não lhe ajuda muito na administração via SSH pela linha de comando. A maioria dos guias e tutoriais da web presume que você esteja sentado diante do shell do OS X e próximo à maquina física em que ele está sendo executado, e dependem do mouse e de uma interface gráfica. Mas isso nem sempre é possível.

Em sistemas GNU/Linux, uma interface gráfica (como o X Window System) não é necessária, e muitos servidores nem a têm instalada. A maior parte da configuração relevante dos servidores se passa na linha de comando, porque é uma maneira eficiente de se trabalhar e scripts podem ser usados facilmente para automatizar processos.


Algumas coisas boas do OS X

O que eu gosto no OS X é o MTA (agente de transporte de email) padrão, o Postfix, devido a minha preferência pessoal por esse programa diante de seus inúmeros competidores. Ele pode ser instalado em todas as distribuições GNU/Linux tradicionais, mas não é o padrão em distribuições populares como o Red Hat Enterprise Linux ou o Debian. As páginas de manual do OS X também são excelentes.

Entretanto, apesar dessas qualidades, não vejo vantagem alguma em usar um Mac como servidor web. Atualizar e instalar software pode ser complicado, e o GNU/Linux oferece soluções mais baratas, flexíveis, eficientes e de melhor desempenho.

Johannes Truschnigg é estudante de ciência da computação em Viena, na Áustria, onde também trabalha como freelancer em administração de sistemas GNU/Linux e Darwin, da Apple.

Créditos a Johannes Truschnigg - linux.com
Tradução por Roberto Bechtlufft <robertobech at gmail.com>