Por que o Alpine Linux é a Melhor Distro de Servidor Leve

Uma fotografia de uma pessoa trabalhando em frente a um computador desktop.

Alpine Linux é uma distro de alto desempenho e ultra-minimalista projetada para máquinas virtuais (VM), contêineres Docker e dispositivos embarcados. Eu a venho usando nos últimos seis meses em várias imagens de VM e Docker. Aqui, vou passar pelos motivos pelos quais o Alpine Linux é a melhor distro Linux leve para o seu servidor, e também alguns dos pontos problemáticos ao usá-lo.

O Alpine Linux apareceu pela primeira vez no meu radar enquanto estudava libvirt no Red Hat Enterprise Linux (RHEL). Depois de ler uma visão geral do sistema, criei uma VM de teste para ele, me perguntando se poderia substituir meu cluster de servidores pesado em Ubuntu no RHEL. Com cerca de seis meses de uso, estou impressionado com o que ele pode fazer pelo pacote que vem.

1. Funciona Bem em Servidores de Baixo Desempenho

O maior ponto de venda que me interessou no Alpine é que ele pode funcionar com apenas 128 MB de RAM dentro de um hipervisor. Isso facilita para o meu servidor de baixo desempenho executar várias instâncias de servidor sem consumir sua memória disponível.

Um terminal mostrando o Alpine Linux rodando com apenas 128MB de RAM.

O Alpine conseguiu isso removendo todos os programas e utilitários desnecessários que vêm com a maioria das distros Linux. Por exemplo, ele não vem com as utilidades padrão do núcleo GNU. Em vez disso, usa o Busybox para ferramentas semelhantes ao UNIX.

Vindo do Ubuntu e do RHEL, realmente acho a abordagem minimalista do Alpine em sua instalação padrão refrescante. Com ele, raramente me vejo lutando com o sistema operacional (SO) apenas para fazê-lo fazer o que eu quero que ele faça.

2. Vem com Múltiplas Opções de Download

Outro ponto de venda do Alpine é que é uma das poucas distros Linux que oferecem um meio de instalação para várias plataformas. Além de x86_64, ele também suporta SoCs ARM, como o Raspberry Pi e hipervisores como o Xen.

Uma captura de tela mostrando as diferentes opções de download para o Alpine Linux.

Pessoalmente, realmente gosto desse nível de diversidade de plataformas, pois me permite executar o mesmo SO em diferentes arquiteturas e sistemas. Além disso, também reduz meu tempo de inatividade para configurar uma nova máquina, já que posso facilmente importar meu ambiente existente sem me preocupar se é compatível ou não.

A propósito: você é um usuário do Raspberry Pi? Aprenda algumas das melhores maneiras de usar seu Pi para tarefas de produtividade.

3. Muito Fácil de Manter e Atualizar

O Alpine Linux é uma das poucas distros que fornece uma experiência de servidor Linux sem complicações. Logo de cara, vem com o APK, um programa confiável para gerenciar pacotes. Com cerca de seis meses de uso, nunca tive nenhuma instância em que o APK resolveu uma dependência errada ou quebrou um pacote durante uma atualização.

Um terminal mostrando a rápida resolução de pacotes no Alpine Linux.

Falando em atualizações, o gerenciador de pacotes APK também é incrivelmente rápido. Com ele, posso facilmente atualizar meu sistema e seus pacotes de terceiros em 5-10 segundos. Para mim, isso é um grande benefício, pois reduz significativamente o tempo de inatividade geral de manutenção dos meus servidores em comparação com uma distro Linux padrão.

4. Executa Contêineres Docker Muito Bem

Além de ser um servidor sólido, o Alpine Linux também é um ótimo sistema host para Docker. Com seus baixos requisitos de recursos, é muito fácil executar vários contêineres Docker sem sobrecarregar muito o sistema base.

Além disso, o Alpine Linux fornece uma versão muito enxuta de seu sistema que você pode colocar dentro de um contêiner Docker. Acho isso útil em casos onde preciso executar um contêiner em um sistema embarcado com pouco espaço em disco e memória.

Por fim, o Alpine Linux também fornece um pacote para Docker e seus plugins em seu repositório comunitário. Aprecio isso, pois reduz o tempo necessário para configurar um host Docker e elimina qualquer necessidade de manter repositórios externos.

FYI: aprenda como instalar e personalizar um contêiner Docker hoje.

5. Personalizável para Diferentes Cargas de Trabalho

As distros Linux são bem conhecidas por serem sistemas operacionais de propósito geral que podem se adaptar a qualquer carga de trabalho. Na prática, no entanto, é raro encontrar um sistema que você possa personalizar facilmente sem desmontar estruturas já existentes fornecidas por seus desenvolvedores.

O Alpine é uma das poucas distros que fornece uma experiência Linux de “tela limpa”. Isso, juntamente com o repositório comunitário da distro, significa que é simples configurar o Alpine para qualquer propósito que você desejar. Na minha configuração pessoal, uso o Alpine para meu servidor web, meu planeta Urbit e até mesmo meu servidor Minecraft.

Um terminal mostrando o binário do servidor Minecraft rodando no Alpine Linux.

O Alpine Linux também fornece diferentes esquemas de instalação diretamente de seu ISO de instalação. Por exemplo, você pode configurar o Alpine como um sistema tradicional com um disco rígido ou criar uma configuração portátil gravando o SO em um pen drive e executando-o completamente a partir da RAM.

Bom saber: procurando um SO portátil totalmente funcional? Confira nosso guia para instalar e usar o Dynebolic.

Os Contras de Usar o Alpine Linux

Embora o Alpine Linux seja um ótimo sistema leve para servidores, ele não vem sem suas armadilhas. Nesta seção, vamos analisar alguns dos problemas que encontrei ao usar a distro.

1. Usa musl para sua biblioteca padrão C

A maior desvantagem do Alpine Linux é que ele usa musl em vez de glibc para sua biblioteca padrão C. Como essas duas bibliotecas variam em detalhes de implementação, alguns programas que dependem das peculiaridades do glibc podem se comportar mal no Alpine.

Um terminal mostrando a versão do musl que o Alpine Linux usa.

Uma diferença notável entre musl e glibc é a resolução de DNS. Em distros baseadas em glibc, o sistema passa pelo arquivo “/etc/resolv.conf” sequencialmente ao tentar resolver consultas DNS. Enquanto isso, musl envia uma consulta para todas as entradas em paralelo. Isso às vezes resulta em casos onde minha consulta DNS falha no musl se o servidor DNS que responde não tiver o registro correto que estou procurando.

Dica: aprenda o que são registros DNS e como o DNS funciona verificando nosso guia sobre como usar dig no Linux.

2. Alguns dos pacotes estão atrasados nas atualizações

Outra desvantagem do Alpine Linux é que ele geralmente está atrasado em relação às últimas atualizações em comparação com outras distros minimalistas. Isso ocorre porque os desenvolvedores do Alpine projetaram-no para ser uma distro de lançamento fixo que recebe atualizações de versão para seu sistema e repositórios a cada seis meses.

Um terminal mostrando a versão atual do Alpine Linux.

Pessoalmente, isso não tem sido um grande problema para mim ao usar o sistema como servidor. No entanto, encontrei um problema em que meu sistema Alpine ficou preso em uma versão do Tailscale com uma vulnerabilidade crítica. Dito isso, resolvi isso mudando para o ramo de lançamento contínuo do Alpine.

3. Usa OpenRC em vez de Systemd

Além do musl e pacotes mais antigos, um ponto problemático que tive ao usar o Alpine Linux é com seu sistema init. Ao contrário do RHEL e do Ubuntu, o Alpine usa OpenRC em vez de Systemd para gerenciar serviços e controlar funções do sistema.

Um terminal mostrando os diferentes comandos do OpenRC para gerenciar e verificar serviços.

Assim, usar o Alpine Linux pode ser um choque cultural se você está acostumado a lidar com arquivos de serviço e daemons de sistema com o Systemd. Embora eu já esteja familiarizado com o OpenRC através do Gentoo, tive que rapidamente revisar meu conhecimento antes de conseguir usar o Alpine como meu servidor de forma confiável.

Comparando o Alpine Linux com Distros de Servidor Leves Populares

O Alpine Linux não é a única distro leve que usei como servidor em minhas máquinas. Nesta seção, vamos ver como o Alpine se compara a alguns dos sistemas Linux minimalistas populares que experimentei ao longo dos anos.

Ubuntu vs. Alpine Linux

O Ubuntu Linux Server é uma das primeiras distros que usei como SO de servidor. Seu instalador fácil de usar, juntamente com seus aplicativos incluídos, tornou realmente simples começar a hospedar serviços em uma rede. Por exemplo, seu instalador vem com uma caixa de seleção prática onde posso imediatamente instalar qualquer aplicativo de terceiros no meu servidor.

Um terminal mostrando os diferentes aplicativos que você pode instalar no Ubuntu Linux Server diretamente no ISO do instalador.

Dito isso, rapidamente descobri que o Ubuntu Server era limitante e intensivo em recursos. Comparado ao Alpine Linux, uma instalação básica do Ubuntu Server requer pelo menos 1GB de RAM e 5GB de espaço em disco. Isso tornou impossível para mim executar várias instâncias do Ubuntu Server sem consumir todos os recursos do meu hipervisor RHEL.

Debian vs. Alpine Linux

Depois de um tempo, movi algumas das minhas máquinas de servidor para o Debian Linux. Esta é a distro upstream para o Ubuntu Server e fornece um sistema mais estável e leve em comparação com seu SO downstream. No entanto, encontrei alguns problemas com o Debian que me impediram de usá-lo em tempo integral.

Para começar, os pacotes no Debian Linux estão frequentemente significativamente atrasados em atualizações de recursos. Enquanto o Alpine Linux pode às vezes estar atrasado, ele se atualiza com os pacotes mais recentes em seis meses. Comparado ao Debian, esse é um prazo mais gerenciável para mim.

Um terminal mostrando a tela padrão para o servidor Debian Linux.

Além disso, o Debian Stable também não fornece alguns aplicativos críticos, como o Docker, em seus repositórios padrão. Isso me forçou a executar repositórios externos, tornando um pouco mais difícil manter um sistema Debian a longo prazo. Com o Alpine Linux, por outro lado, nunca me senti faltando um pacote que precisava para meu servidor.

Arch Linux vs. Alpine Linux

O Arch Linux serviu como minha distro de servidor de fato antes de descobrir o Alpine. É um SO rápido e leve que posso iniciar sempre que preciso de um servidor. Também vem com os pacotes mais recentes, facilitando a experimentação com tecnologias de ponta para Linux.

Um terminal mostrando uma instalação mínima do Arch Linux rodando como um SO de servidor.

Dito isso, a natureza de lançamento contínuo do Arch rapidamente se tornou uma responsabilidade para mim. A necessidade de atualizar ocasionalmente a cada uma ou duas semanas dificultou a manutenção dos meus servidores atualizados. Juntamente com a preocupação com vulnerabilidades de dia zero, mudei para o Alpine Linux assim que percebi que ele cobria a maioria do que eu precisava, enquanto ainda era leve e fácil de implantar.

No final, o Alpine Linux é um SO de servidor leve que encontra um equilíbrio entre recursos, flexibilidade e eficiência de recursos. Como tal, recomendo totalmente o Alpine a qualquer pessoa que procure um sistema Linux enxuto que possa rodar tanto em hardware físico quanto em VMs.

Explorar o que fez do Alpine uma boa distro Linux leve para servidores e como ele se compara a outras é o primeiro passo para explorar sistemas operacionais enxutos e eficientes em recursos. Aprenda como reviver seu PC antigo e desatualizado olhando algumas das melhores distros Linux de desktop leves hoje.

Crédito da imagem: Tim van der Kuip via Unsplash. Todas as alterações e capturas de tela por Ramces Red.