Planos de hospedagem para banco de dados

É comum aparecer alguém na lista do PostgreSQL perguntando sobre um bom plano de hospedagem para o PostgreSQL. Sei que existem alguns, mas nunca tive a oportunidade de testar um. Na verdade, seria uma boa idéia criar uma lista de provedores!

Então porque estou escrevendo sobre isso? Bom a questão é que hospedar um PostgreSQL não é tão simples assim. Se você está querendo hospedar uma aplicação que faz uso de banco de dados fora da empresa (ou fora da sua casa) é porque você quer se beneficiar com o ganho de escala de uma empresa de hospedagem, ou seja gastar menos com: banda de Internet, manutenção de servidores e segurança da rede. A opção de hospedar uma aplicação fora também tem várias opções com preços bem variados que aumentam geometricamente:

  • Hospedagem em servidor compartilhado com acesso FTP;
  • Hospedagem em servidor compartilhado com acesso SSH;
  • Hospedagem em máquina virtual compartilhada com acesso SSH e root;
  • Locação de servidor dedicado;
  • Locação de espaço físico Rack, banda de internet e outros serviços em Data Center;

Hospedagem em servidor compartilhado

Se você quer hospedar um blog ou um ou mais sites simples, um serviço de hospedagem com servidor compartilhado deve ser mais do que suficiente. Você não tem que se preocupar com a configuração dos servidores, segurança ou manutenção do servidor. Basta colocar o seu código numa pasta do servidor, criar um banco de dados e pronto. Se você tiver um mínimo de conhecimento com shell, poderá utilizar um acesso via SSH que é muito versátil e seguro. Com 10 dólares por mês, você consegue hospedar um site com milhares de visitas por dia.

E onde entra o banco de dados nisso? Bons provedores de hospedagem em servidores compartilhados possuem bancos de dados em servidores dedicados bem como um servidor de e-mail dedicado, um servidor web dedicado e por aí vai. Porém estes servidores são compartilhados com vários clientes do provedor. Isto significa que você não poderá ter acesso a várias configurações do banco de dados. Mas o pior mesmo é que você não poderá distribuir a carga de I/O do banco de dados em diversos discos. Note que em sites onde a maior parte das operações em banco de dados são de leitura e a maior parte das operações de leitura são executadas sobre as as mesmas páginas – quem já viu estatísticas de acesso de um site, sabe que mais de 90% dos acessos ocorre sobre menos de 10% do conteúdo. Isto significa que o servidor web (que na maior parte dos casos será o nosso amigo Apache) irá cachear estas páginas e o banco de dados irá cachear o resultado das consultas mais frequentes. O resultado disso é que os servidores raramente consultam os seus discos e você tem um site onde o maior gargalo é a velocidade de processamento e a banda de internet disponível.

Se você está utilizando uma aplicação onde a maior parte das operações são de leitura… você provavelmente não precisa do PostgreSQL!!! Já escrevi sobre isso por aqui, e sei que o tema é polêmico, mas o PostgreSQL é um exagero nestes casos. O SQLite seria mais que suficiente. No entanto a maioria dos provedores costuma ter um servidor de MySQL compartilhado e como muitas soluções livres para aplicações web o utilizam… acaba sendo a primeira opção dos projetos web.

Hospedagem em máquinas virtuais

As maquinas virtuais são o pior e o melhor de dois mundos. Você tem a flexibilidade de um servidor dedicado e pode instalar tudo o que você quiser nele, configurando exatamente como você quer. Por outro lado você pode ter recursos de máquina tão limitados ou mais que um servidor compartilhado. Isto significa que um projeto pequeno, mas que não se enquadre num plano de acesso compartilhado padrão pode se encaixar bem neste tipo de plano. Em geral, você também não conseguirá fazer muitos ajustes em bancos de dados em máquinas virtuais, pois você não tem muito controle sobre os discos do servidor. Isto pode variar um pouco de plano para plano. No entanto você pode ajustar os parâmetros de memória do seu servidor da forma com que desejar. Vale lembrar que a memória de um servidor virtual compartilhado costuma ser bem pequena, o que novamente não é uma boa notícia para quem quer utilizar o PostgreSQL. Em ambientes com pouca memória o SQLite e o BDB são opções muito interessantes.

Servidor Dedicado

Bom, não é segredo para nenhum DBA ou SysAdmin (e não deveria ser para nenhum desenvolvedor também) que se você tem um mínimo de preocupação o com desempenho dos seus bancos de dados, você precisa de um servidor dedicado só para o banco de dados. Discos SCSI ou SAS não são opcionais (esqueça definitivamente que existe SATA) e o uso do plural não é casual. Com alguns GB de memória ECC(não vale a pena passar muito de 4GB se você utiliza um SO de 32 bits…) você terá um bom servidor de Banco de Dados. É claro que é possível ser um pouco mais modesto. Se você for muito mais modesto, pode ser que você consiga se virar com um servidor compartilhado. Por outro lado, se você precisar hospedar um Oracle RAC num data center, pode ser que o ganho de escala comece a fazer pouco sentido e valha a pena hospedar tudo dentro da sua empresa.

Se você vai optar por alugar os seus servidores ou vai comprar as suas próprias máquinas dentro de um data center a decisão é sua. Em todo caso, vale a pena realizar alguns testes para saber se você realmente precisa de um servidor dedicado. Testes de carga são difíceis de se fazer, mas quando você está prestes a lançar mão de um orçamento considerável para hospedar alguns servidores dedicados, vale a pena fazer algumas considerações para ver se um bom servidor compartilhado não lhe atende.

Particularmente, eu acredito que aplicações com muita escrita em banco de dados se sentem mais a vontade quando guardados dentro da sua empresa e perto dos olhos do seu DBA. Se você estiver falando de dados confidenciais, então fique longe de Data Centers. Lembre-se que ao fim e ao cabo, quem tem acesso físico ao servidor sempre tem acesso aos dados. O ganho de escala, neste momento, está limitado principalmente a banda de internet, já que num servidor de dicado você tem que arcar com o equipamento e com a manutenção do SO e SGDB. Já ouvi falar de algumas empresas que tem seus negócios completamente hospedados fora, mas também já ouvi falar de roubo de informações confidenciais. No entanto, uma aplicação de Supply Chain, por exemplo, podem se uma boa pedida para um data center respeitável.

Conclusão

Quando você decide por hospedar um banco de dados fora da sua companhia, é fundamental conhecer bem quais as opções de mercado e o que se pode esperar destas soluções em termos de escalabilidade, segurança e desempenho:

  • Utilize um serviço que lhe permita crescer sem transtornos. As demandas sempre crescem e você não vai querer ficar trocando de provedor a cada vez que precisar de mais recursos de sistema. Fique sempre atento a opções de memória e discos se o desempenho do banco de dados for um fator importante para você;
  • Faça uma boa pesquisa sobre a confiabilidade da empresa que você pretende contratar. Se vai armazenar dados que são relativamente sigilosos, triplique os esforços neste sentido. Conheça bem as opções de backup e SLA do provedor antes de fechar negócio;
  • Conheça a sua aplicação e saiba como ela utiliza o banco de dados. Quanto mais leve for a demanda sobre o banco de dados, mais compensador será hospedar fora. Se o desempenho do banco de dados for um gargalo, então um estudo mais minucioso com testes de carga são recomendados. As aplicações web, tradicionalmente não utilizam muita escrita ou consultas complexas, o que pode lhe deixar menos preocupado com isso. Mas isso tem mudado muito nos últimos anos, com aplicações web cada vez mais complexas. Neste caso avalie se realmente vale a pena hospedar os seus SGBS fora.

5 comentários sobre “Planos de hospedagem para banco de dados

  1. Gostei muito do post!!
    Só é importante ressaltar que além da segurança e disponibilidade 24/7 a banda é um ponto muito importante a ser analisado.
    Se sua aplicação ou banco estiver fora de casa, é importante mensurar antes de tudo o quanto de banda ela irá consumir e assim saber o quanto será necessário para que tudo corra sem gargalos.
    A banda deve ser o suficiente nas 2 pontas, não adianta contratar uma banda grande no IDC e manter a mesma banda em casa.
    Outro ponto é a concorrência de banda, uma vez que a aplicação até então era trafegada na rede interna e agora esta em concorrência com a navegação e trafego de email, sendo assim uma banda separada somente para a aplicação é essencial para evitar problemas.
    E para terminar, se você esta fazendo um investimento para levar sua aplicação pra fora de casa, por favor, contrate um servidor dedicado, o compartilhado é recomendável apenas para pequenas aplicações com pouco trafego, pois como o nome já diz sua aplicação esta compartilhando um servidor com sabe la Deus quantas outras aplicações. Se uma dessas aplicações “sugar” o servidor e afetar a performance dele … acredite você vai sentir.

    Abraços

    Kenia

    Curtir

  2. Olá Kenia, você realmente tem razão. Gostaria apenas de acrescentar…

    … existem centenas de empresas pequenas e médias que precisam de um site institucional que podem utilizar um servidor compartilhado com o pé nas costas. Veja por exemplo um site como o http://www.br-linux.org que utiliza uma conta padrão do http://www.dreamhost.com e é considerado um dos maiores blogs do Brasil. Já hospedei um site localmente e falhei miseravelmente. O site ficava invariavelmente lento por causa do baixo upload do link e eu comecei a ficar paranóico com segurança (fomos invadidos 2 vezes nos primeiros meses de operação do site). Tenho amigos que já tentaram hospedar blogs em casa e sofreram muito com o efeito slashdot.

    Agora, aplicações de gente grande realmente precisam de investimentos de gente grande. Particularmente eu acho pertinente o ítem de prever banda nas 2 pontas. Não basta o provedor ter uma banda adequada, a sua empresa também deverá ter banda suficiente para suportar os acessos dos próprios usuários da sua empresa ao sistema e também para a sincronização de dados entre os seus sistemas locais e os hospedados fora. Quanto maior o volume de dados a serem sincronizados e a frequência destas operações, mais complicada fica a sua situação. Além de reservar uma banda para a sincronia de dados, você precisará de redundância com operadoras distintas para não ficar na mão quando uma delas falhar.

    Curtir

  3. Bom dia! Trabalho em uma empresa que de informática em Bauru/SP, e damos suporte para farmácias. Trabalhamos com o Sistema de SNGPC, no momento temos o banco de dados na própria empresa, gostaria de hospedar esse banco, para que os meus clientes possam acessar. O banco é for windows SQL Server.

    Curtir

  4. Meu cliente necessita hospedagem remota de imagens de seu sistema de monitoramento. O volume estimado é de 9TB, sendo que a cada 1/2 hora são gerados aproximadamente 80 arquivos (1 para cada câmera).
    Peço que entrem em contato para detalharmos a demanda.

    Grato,
    Edison Carlson
    21-9986-2956

    Curtir

  5. Olá pessoal, gostei da matéria. Estou nesta situação, quero contratar um serviço para hospedar, externamente, as aplicações que utilizo na minha empresa (processo folha de pagamento para diversas empresas). Gostaria de contratar um especialista para avaliar minhas necessidades, para ter uma transição segura. Poderiam indicar alguém ?

    Curtir

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s