Preparação de um servidor de aplicação versus máquinas virtuais com servidores de aplicação prontos para uso (parte 1)

A virtualização de servidores traz algumas vantagens bastante interessantes:

  1. Otimização dos recursos disponíveis. O mesmo servidor físico pode ser multiplicado em vários servidores virtuais, economizando equipamento e energia.
  2. Independência de plataforma. Uma máquina virtual pode conter um sistema operacional diferente da máquina hospedeira.
  3. Flexibilização através de Máquinas Virtuais. Podem ser instaladas, trocadas, congeladas, salvas e até mesmo adquiridas prontas para uso com facilidade.

A aquisição de uma máquina virtual com um servidor de aplicação costuma ser extremamente viável. Afinal, preparar um servidor de aplicação é trabalhoso e complicado. Entender as aplicações desejadas, descobrir as dependências, pesquisar e testar alternativas de configuração e analisar os resultados é bastante demorado, chegando facilmente a semanas de trabalho.

Uma caso possível (baseado em fatos reais):

“Robervaldo faz parte da equipe de administração de redes de uma empresa. Em uma segunda-feira qualquer, chega ao serviço e recebe a notícia que precisa preparar um servidor com o Redmine e o Mercurial (pra ontem, claro). Sem fazer a menor ideia do que sejam essas aplicações, só lhe resta recorrer ao Google. Descobre que Redmine é uma aplicação web para gerenciamento de projetos feita em Ruby on Rails e que Mercurial é uma ferramenta de controle distribuído de versão. O próximo passo é instalar.

Quase tão ruim quanto não achar nenhuma solução é achar dezenas delas. No site do Redmine existem várias e várias sugestões de como fazer a instalação em diversos sistemas operacionais e versões. Nenhuma dessas receitas é ‘oficial’, feita por membros do projeto; são todas feitas por colaboradores externos com diferentes graus de conhecimento da ferramenta. Algumas receitas estão claramente desatualizadas, mas continuam listadas no site. Outras recomendam passos e pacotes diferentes para instalação. Qual é a melhor maneira? O jeito é experimentar.

Robervaldo instala a versão mais nova do Ruby, mais a versão X do pacote tal e assim por diante. Mas opa! O Redmine na versão Y não funciona com o pacote tal na versão X nem com o Ruby mais atual! E agora? Desinstala tudo e começa de novo? A instalação bagunçou outros aplicativos que estavam instalados antes? Formata, ué.

Tem de escolher um tipo de banco de dados. Mas qual? Postgres? MySql? Sqlite3? Uni-duni-tê…

Passados três dias, depois de aprender que o teste de instalação deve ser feito em uma máquina virtual, usando snapshots, o Redmine parece estar funcionando. A próxima instalação é a do Mercurial.

Parece mais fácil. Poucas opções. Exe ou msi? Precisa ou não do TortoiseHg? Qual Python 2.X? Salamê-minguê…

Ah… não é só instalar, tem de publicar os repositórios pela rede. HTTP? SSH? NFS? Sorvete-colorê…

Uma semana se passou e o chefe em cima, cobrando. Robervaldo anda pelo corredor e os desenvolvedores que esperam o servidor olham torto. A demora deixa todo mundo tão irritado que nem a mulher do café o cumprimenta mais.

Mais dois dias. Acabou? Quase. Falta juntar o Redmine com o Mercurial. Robervaldo encontra um artigo promissor sobre integração dos dois. Epa! De 2009??? Funciona ainda? Outro link para autenticação do Apache pelo MySql. Também de 2009??? Mas e agora, Roberval, se você usou Postgres? Planos par ao fim de semana são cancelados…

Mais três dias e tudo entregue. Fim da história!?!

Epílogo: Duas horas tranquilas depois da entrega do servidor e o telefone toca. Coisa boa não deve ser:

- Roberval, o pessoal quer que o Redmine crie automaticamente os repositórios, precisa também fazer um script de backup e, aproveitando, dá uma olhada em como fazer blá blá blá…”

Mas tudo isso poderia ser mais simples. No próximo artigo, vamos abordar como a aquisição de uma máquina virtual economiza dinheiro e tempo, além de fornecer um servidor tecnicamente mais bem preparado.

This entry was posted in gerência de configuração de software, mercurial, redmine, suporte técnico and tagged , . Bookmark the permalink.

2 Responses to Preparação de um servidor de aplicação versus máquinas virtuais com servidores de aplicação prontos para uso (parte 1)

  1. Pingback: Servidores de aplicação e máquinas virtuais | Linux Ajuda

  2. Pingback: Blog Pronus » Blog Archive » Servidor de aplicação através de uma máquina virtual (parte 2)

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>