Como escolher a melhor distribuição do Linux

logos-distros

RedHat, CentOS, Ubuntu, Debian, Fedora e OpenSuse têm muito mais semelhanças do que diferenças, mas escolher o errado para o trabalho pode tornar a vida muito mais difícil

Ao contrário da maioria dos outros sistemas operacionais de desktop e servidor, o Linux vem em uma ampla variedade de versões, cada uma baseada em um núcleo comum do kernel do Linux e vários utilitários GNU. Se você estiver executando servidores Linux – ou desktops Linux, você deve entender as diferenças importantes e ter discernimento sobre qual distribução de Linux é mais adequada para qualquer situação. Este artigo irá ajudá-lo a fazer exatamente isso.

Como o Linux é um software de código aberto, o número de distribuições discretas do Linux é difícil de saber com certeza. Mas uma pequena lista das principais distribuições representa a maior parte das implantações comerciais do Linux: Red Hat Enterprise Linux (RHEL), CentOS, Fedora, Ubuntu, Debian e OpenSuse.

Estilo e substância

A maioria das diferenças entre essas distribuições são cosméticas. Geralmente referem-se a detalhes de configurações e implementações, e não à funcionalidade principal. Os layouts do sistema de arquivos, as definições de configuração, os mecanismos de atualização e as ferramentas de configuração incluídas podem variar, mas as semelhanças superam as diferenças.

Mesmo assim, há delineações claras entre eles, principalmente na área de design de sistemas. Quando se trata de gerenciar o Linux em um ambiente de produção, você encontrará diferenças importantes em tudo, desde estabilidade a suporte para pacotes populares de código aberto. Não apreciar essas nuances pode significar a diferença entre navegar em águas calmas ou agitadas quando se trata de implantar e executar aplicativos.

Por exemplo o servidor Web. Todas as distribuições do Linux agrupam o servidor Web Apache, mas cada um implementa o Apache usando layouts de sistema de arquivos e convenções de configuração um pouco diferentes.

O Ubuntu chama o Apache versão 2 “apache2”, enquanto o CentOS e o RHEL o chamam de “httpd”. Isso afeta onde os arquivos de configuração do Apache estão localizados em cada distribuição. Você pode encontrá-los em: /etc/httpd no CentOS e Red Hat, ou /etc/apache2 no Ubuntu. Além disso, o Ubuntu e distribuições similares podem colocar a raiz do documento do Apache em /var/www, enquanto o CentOS e o RHEL optam por colocá-lo em /var/www/html.

Além disso, o Ubuntu oferece um esquema de gerenciamento de configuração Apache que permite que um administrador coloque trechos de configuração do Apache em /etc/apache2/sites-available e /etc/apache2/sites-enabled e gerencie-os com comandos personalizados como a2ensite e a2dissite mova esses trechos e recarregue o Apache. Isso significa que você pode ativar e desativar sites virtuais na linha de comando. O CentOS/RHEL não tem nada como isso, exigindo gerenciamento manual dos arquivos de configuração.

Mas a abordagem do Ubuntu não é necessariamente melhor ou pior – é uma questão de preferência pessoal. Por um lado, facilita operações como a criação de um site. Por outro lado, você precisa preparar suas configurações de maneira a trabalhar com comandos de configuração personalizados. Os administradores puristas do Apache provavelmente trabalhariam diretamente com os arquivos. Usuários mais novos podem achar a abordagem do Ubuntu útil. Em última análise, cabe a você decidir qual é preferível.

Existem outras diferenças. Por padrão, o Ubuntu bloqueia o usuário root, exigindo que um usuário local seja criado durante a instalação; esse usuário recebe privilégios “sudo”” para realizar tarefas como o usuário root. O CentOS/RHEL não tem essa restrição e permite o acesso geral pelo usuário root.

Algumas distribuições também possuem ferramentas de configuração personalizadas. O Suse Linux (e o OpenSuse) usam o YaST (Yet another Setup Tool), um gerenciador de configuração e configuração do sistema que não é usado em outras distribuições do Linux.

A clássica frase: The devil is in the daemon

Em outros casos, pode haver semelhanças gerais entre as distribuições atuais que não são compartilhadas por versões mais antigas. Por exemplo, o systemd foi introduzido como um substituto para o sysvinit em versões recentes das principais distribuições Linux, mudando fundamentalmente a forma como os servidores que executam essas distribuições inicializam, carregam e gerenciam serviços (e não sem controvérsia). Versões mais antigas dessas distribuições não terão systemd e, portanto, não se beneficiarão das maiores melhorias de eficiência e desempenho que elas trazem. Esse pode ser um fator que vale a pena considerar se você tiver várias versões de lançamento.

Outro elemento chave que diferencia as distribuições Linux é o mecanismo de atualização de pacotes e a frequência de atualizações de pacotes. No Ubuntu e Debian, usa-se o “apt” (Advanced Package Tool) para lidar com atualizações de distribuição. Esta ferramenta permite que se atualize pacotes individuais ou o sistema como um todo. No RHEL, CentOS, Fedora e outros, o “yum” (Yellowdog Updater, Modified) é o gerenciador de pacotes. O Apt e o Yum operam de maneira semelhante, permitindo que os administradores configurem repositórios de pacotes personalizados e atualizem facilmente os pacotes e mantenham o sistema.

De um modo geral, as principais distribuições do Linux são alinhadas conforme descrito na tabela abaixo.

Principais distribuições do Linux

  • RHEL e CentOS: Pacotes kernel e base antigos e estáveis. Há um longo ciclo de lançamento, e pacotes “atuais” baseados em lançamentos de dois anos são comuns. Indiscutivelmente a distribuição Linux mais implantada. Um favorito dos veteranos do Linux;
  • Ubuntu: Uma mistura de versões mais antigas e estáveis com a manutenção atual e revisões menos atualizadas e muito mais estáveis. Os lançamentos LTS são os únicos a observar a estabilidade e o suporte de longo prazo. Mais fácil para novatos;
  • Fedora: Atualizações de kernel e pacote menos estáveis, mas muito mais frequentes. Pode ser considerado a distribuição de teste para o RHEL/CentOS;
  • Debian: O Ubuntu é baseado no Debian, e você ainda encontrará algumas semelhanças entre os dois. Funções Debian com três versões concorrentes: “estável”, “teste” e “instável”. As cargas de trabalho de produção devem estar usando “estável” e esse ciclo de lançamento pode ser bastante longo.
  • OpenSuse: Apesar de ser parecido com o Red Hat, o OpenSuse é bem diferente de todas as outras distribuições Linux. Ele se baseia na ferramenta de configuração do YaST e, embora uma distribuição capaz, foi bastante prejudicada pelo envolvimento da Novell e da Microsoft.

Conclusão: Fazendo a escolha certa

A escolha de qual distribuição usar normalmente reduz a alguns elementos principais:

Familiaridade. As vantagens de manter uma distribuição do Linux com a qual você está extremamente familiarizado geralmente superam as vantagens de adotar uma distribuição diferente. Se o CentOS e o RHEL são o que você sabe, manter essas distribuições provavelmente será mais fácil a longo prazo. A menos que os requisitos do servidor determinem o contrário, siga o que você sabe.

Simplicidade. Há muito a ser dito sobre a homogeneidade nas pilhas de aplicativos. Manter a mesma distribuição na sua pilha é quase sempre o caminho a seguir. Se seus servidores de aplicativos executarem o CentOS, seus servidores de banco de dados também devem, a menos que haja um motivo preponderante para seguir uma direção diferente para esses servidores.

Requisitos do servidor. Por fim, sua escolha de distro será limitada pelos aplicativos e serviços que você precisa implantar. Por exemplo, se o servidor deve executar as versões mais recentes de um pacote comum como MySQL ou PHP, escolher uma distribuição estável como o CentOS ou o RHEL com um cronograma de liberação mais longo complicará as coisas. É provável que você precise recorrer a repositórios de pacotes adicionais de terceiros e usar pacotes criados por vários colaboradores, em vez dos lançamentos oficiais suportados pela distribuição. Em alguns casos, você pode ter que criar seus próprios pacotes RPMs ou compilações de pacotes personalizados para lançamentos de pacotes muito recentes.

Alternativamente, uma pequena pesquisa pode mostrar que o Fedora já tem a versão do MySQL ou PHP que você precisa, portanto, usar o Fedora economizará tempo e esforço valiosos. Em outros casos, o Ubuntu ou o Debian podem se aproximar mais dos requisitos de software do seu servidor e, portanto, valerá a pena considerar, mesmo que você não esteja tão familiarizado com eles.

Você também pode descobrir que seu aplicativo ou pilha de serviços planejados vem com sugestões ou recomendações sobre qual distribuição é mais adequada. Além disso, você pode encontrar algumas soluções com pacotes pré-construídos para algumas distribuições Linux. Sua melhor aposta será ficar com essas versões para garantir a compatibilidade.

Estabilidade. Finalmente, vale a pena ser conservador. Confiar em versões estáveis ​​do SO deve sempre ser a abordagem padrão. Se uma versão estável não atender aos requisitos de software do servidor, a mudança para uma versão mais recente pode fazer mais sentido do que adaptar a versão antiga e mais estável com pacotes mais recentes.

Raramente um servidor de produção deve ser executado em versões instáveis ​​ou de teste de qualquer fornecedor. Alguns administradores interpretam esta orientação para significar que as versões Fedora e não-LTS do Ubuntu nunca devem ser executadas em servidores de produção. Embora essa seja uma boa regra em geral, sempre há exceções. Entenda os riscos envolvidos e esteja preparado para encontrar os problemas ocultos que geralmente surgem ao lidar com versões instáveis ​​ou de teste.

Em muitos casos, a escolha da distribuição do Linux não depende inteiramente de você. Se você estiver comprando um VPS (servidor privado virtual) ou uma instância do servidor de nuvem, ou mesmo para um servidor dedicado em um recurso de hospedagem, verá que os provedores oferecem um conjunto limitado de distribuições com suporte para escolher. Para a grande maioria desses provedores, essas distribuições suportadas serão um subconjunto do RHEL, CentOS, Fedora, Ubuntu, Debian e OpenSuse.

Não é incomum encontrar provedores que ofereçam apenas CentOS e Ubuntu, ou talvez aquelas distribuições junto com o Fedora e o Debian. Menos oferecerá o OpenSuse, então predominantemente a escolha se resume a essas quatro ou cinco distribuições. As diretrizes acima e a tabela abaixo devem ajudá-lo a descobrir qual é o melhor para o seu projeto.

Naturalmente, seu melhor caminho é se sentir confortável com o maior número possível de distribuições diferentes do Linux, então você está preparado para usar cada uma delas quando seus pontos fortes forem compatíveis com o trabalho em mãos.

*** A OctalMind é uma empresa especializada no desenvolvimento de sistemas de alta tecnologia.