Essa é uma pergunta comum, particularmente para quem está começando a mexer com o PostgreSQL. A resposta pode ser simples ou um pouco mais complicada. Como todo consultor gosta de responder, tudo começa com um “depende”.
Resposta simples
Linux
Resposta longa
Depende… vejamos algumas opções mais comuns.
Windows
Desde a versão 8.0, o PostgreSQL pode ser compilado e rodar nativamente no Windows. O Windows nunca foi o Sistema Operacional preferido dos DBAs, com exceção daqueles que usam o Microsoft SQL Server. O PostgreSQL nasceu e cresceu rodando em sistemas Unix e depois Linux. Ele parece ficar bem confortável nesse ambiente, e nem todas as ferramentas externas ao PostgreSQL funcionam no Windows. Mesmo assim, é verdade que a equipe de desenvolvimento fez um bom trabalho, e o Windows é considerado um ambiente funcional, seguro e plenamente capaz de rodar o PostgreSQL. Pode não ter o mesmo desempenho, faltar uma ferramenta aqui ou ali, mas funciona e funciona bem.
Você deveria utilizar o Windows se:
- Você tem uma equipe limitada, só com experiência em Windows e sem condições de contratar alguém para administrar servidores Linux para você;
- O banco de dados deve rodar no mesmo servidor que a aplicação, e a aplicação só roda em Windows;
- Você não precisa se preocupar com o desempenho do banco de dados ou pode escalar verticalmente (utilizando um servidor com hardware mais potente) caso precise de mais desempenho.
FreeBSD
O PostgreSQL nasceu rodando em FreeBSD lá atrás. E funciona muito bem, obrigado! Há anos atrás, havia testes demonstrando que o PostgreSQL rodava ligeiramente mais rápido no FreeBSD comparado ao Linux. Nos últimos testes que encontramos, de uns 5 anos atrás, o Linux ganha com certa folga. No entanto, a maior dificuldade em utilizar o FreeBSD é encontrar profissionais qualificados para operá-lo. Com o tempo, ele deixou de ser uma opção popular, ficando restrito a uma comunidade pequena, embora seja um Sistema Operacional muito seguro e robusto.
Utilize o FreeBSD se:
- Você é um aficionado por FreeBSD;
- Você não tem problemas em encontrar outros profissionais para manter esse ambiente;
- Você vai rodar o PostgreSQL em bare metal, ou o seu provedor de nuvem oferece suporte ao FreeBSD.
Outros sistemas UNIX (AIX, HP-UX, Solaris etc.)
O PostgreSQL funciona perfeitamente em praticamente qualquer sistema Unix, sem problemas. No entanto, conforme o Linux foi dominando o mercado de servidores, esses sistemas operacionais foram sumindo, assim como o FreeBSD.
Hoje, esses Sistemas Operacionais estão restritos a fornecedores específicos com equipamentos que se ajustam ao SO do seu fornecedor. Mesmo assim, isso hoje é considerado uma raridade.
Utilize outros sistemas UNIX se:
- Você possui uma equipe treinada e ambientada para trabalhar nesse SO específico;
- Você precisa rodar o PostgreSQL em um servidor que só possui suporte rodando esse Sistema Operacional.
Linux
O Linux se provou um Sistema Operacional leve, robusto, confiável e rápido. A maioria esmagadora de todos os servidores na nuvem roda em Linux. Ele funciona bem para um servidor leve e simples e em um servidor enorme e complexo. Ele possui uma ampla gama de profissionais treinados e experientes.
Mas o Linux tem ainda uma pegadinha: ele possui várias distribuições Linux disponíveis para escolher. Nós recomendamos aquelas que possuem pacotes distribuídos pela comunidade, em vez de se utilizar os pacotes nativos da distribuição. Atualmente, a comunidade suporta as seguintes distribuições:
- Debian / Ubuntu;
- Família Red Hat (Red Hat Enterprise Linux, Rocky Linux, AlmaLinux, CentOS (6 ou 7), Fedora e Oracle Linux;
- Suse, com pacotes zypper.
Você pode, obviamente, rodar o PostgreSQL em qualquer distribuição Linux da sua preferência. No entanto, se não for utilizar uma das distribuições da lista acima, você terá que utilizar apenas a versão do PostgreSQL disponível para a sua distribuição ou terá que compilar manualmente a versão que você quiser dentro da sua distribuição, o que daria um pouco mais de trabalho.
Como escolher a sua distribuição:
Vejamos alguns critérios para escolher:
- Se a sua equipe está acostumada e tem mais familiaridade e suporte com uma distribuição específica, utilize essa distribuição;
- Se a sua equipe tiver familiaridade com mais de uma distribuição, escolha uma que tenha pacotes da comunidade na lista acima;
- Se você precisa de suporte do fornecedor da distribuição, escolha uma que tenha suporte a pacotes da comunidade na lista acima, como Red Hat, Oracle Linux ou Ubuntu LTS;
- Nos demais casos, escolha o Debian;
- Algumas distribuições possuem mais de uma versão disponível. Em servidores de produção, você deve sempre escolher a mais estável, com maior ciclo de atualizações e suporte. No Debian, escolha a versão “Stable”, no Ubuntu, a versão “LTS” e assim por diante.
Nós gostamos do Debian. Gostamos da comunidade, da seriedade de como as coisas são feitas e das ferramentas adicionais que ele (e por herança o Ubuntu também) possui, que facilitam um pouco o trabalho de administração. No entanto, como se diz na comunidade Linux: Linux é Linux. Um bom administrador de sistemas vai tirar o melhor da distribuição que ele está acostumado a utilizar. Por isso, a cultura da equipe é o critério mais importante na nossa opinião.
Conclusão
O PostgreSQL roda praticamente em qualquer sistema. Já até vimos pessoas rodarem o PostgreSQL em um PS2 (não, nós não recomendamos, é só uma nerdice mesmo). Em sistemas operacionais UNIX / Linux, o PostgreSQL vai rodar mais rápido. Está nos nossos planos fazer um teste comparativo entre o Windows e o Linux em breve, aguarde! Os pacotes da comunidade são uma facilidade que conta muito para nós. No entanto, no final das contas, não adianta nada ter o melhor Sistema Operacional se a sua equipe não sabe trabalhar com ele.
Esperamos que esses critérios que apresentamos ajudem a tirar essa dúvida que assombra muitos dos que estão iniciando. Logo na sequência, vamos apresentar como instalar e operar minimamente o PostgreSQL em alguns cenários mais comuns.
Até breve!