Banco de Dados

4 nov, 2010

É difícil trabalhar com Cluster?

Publicidade

Olá, pessoal. Sabemos que a tecnologia de
cluster é uma das opções de que o DBA dispõe para implementar uma solução de alta
disponibilidade (HA). Contudo, tenho percebido que é cada vez mais raro
encontrar profissionais que saibam trabalhar com essa tecnologia aqui no Brasil.
Neste artigo, abordo esse assunto e procuro explicar por que é tão difícil
trabalhar com cluster.

Recentemente, tive a oportunidade de comandar, como entrevistador, um processo de seleção para uma vaga que exigia um profissional de nível pleno ou sênior, que deveria possuir diversas habilidades e proficiência na utilização do SQL Server. Dentre as qualificações era necessário conhecimento de cluster, que envolvia a montagem, gerenciamento e troubleshooting em ambientes de alta disponibilidade. Para minha surpresa, aproximadamente 90% dos candidatos não tinham experiência ou não sabiam trabalhar com cluster.

Por que isso acontece?

Essa é uma habilidade que poucos candidatos possuem, mesmo sendo uma das opções mais procuradas pelas empresas, quando se fala em soluções de alta disponibilidade.

Para entender por que é difícil encontrar profissionais habilidosos e que conheçam a tecnologia de cluster no SQL Server, devemos analisar vários fatores do ponto de vista do candidato. Mas antes é preciso enxergar a necessidade do lado da empresa que precisa desse tipo de tecnologia.

Geralmente, depois de um incidente onde há perda significativa de dados, como no caso do Migre.me que comentei neste outro artigo, os gestores correm atrás de soluções de alta disponibilidade para banco de dados. Essas soluções basicamente devem atender ao seguinte requisito: se o banco de dados principal tive algum problema que o torne indisponível, outro banco de dados secundário deve assumir automaticamente sem downtime para não prejudicar o serviço. Contudo, implementar esse tipo de solução custa. E custa caro, tanto em termos de hardware, de software e de pessoal. Pela minha experiência constatei que, infelizmente, muitas empresas querem esse tipo de solução, mas poucas estão dispostas a pagar o investimento necessário para implementá-la. Logo mais adiante, detalharemos os custos envolvidos na montagem de um cluster no SQL Server.

Por causa desse custo elevado, muitas empresas de pequeno e de médio porte acabam não adotando a tecnologia de cluster, o que as deixa sem uma solução de alta disponibilidade restringindo esse ambiente a empresas de grande porte. Não obstante, existem diversas outras soluções que podem fornecer alta disponibilidade semelhante a um cluster, como Database Mirroring, Log Shipping, replicação e outras. Apesar de essas soluções não necessitarem de tantos recursos quanto um cluster, elas geralmente acarretam em algum downtime. Ou seja, se o servidor primário de banco de dados falhar, o servidor secundário não assume automaticamente, sendo necessário algum tipo de trabalho manual para colocar o banco de dados on-line novamente.

Esse cenário de alto investimento, tanto em recursos materiais como pessoais, acabou impulsionando a criação de soluções de bancos de dados na nuvem, como SQL Server Azure ou os serviços da Amazon. Uma das principais vantagens dessas soluções é que, por apenas alguns centavos por hora de acordo com o consumo de recursos, consegue-se montar soluções de alta disponibilidade sem a necessidade de um investimento tão alto no hardware, no software e no pessoal competente. Sem entrar em mais detalhes sobre soluções de bancos de dados na nuvem, recomendo àqueles que não possuem muitos recursos: investir em soluções de alta disponibilidade para o banco de dados procurarem se informar sobre essa alternativa.

Existem vários custos relacionados à montagem de um cluster no SQL Server

Talvez o mais restritivo deles seja o hardware, pois, em primeiro lugar, deve-se lembrar que é preciso montar um cluster do Windows para só depois montar o cluster do SQL Server. Apesar de utilizar outras tecnologias, o Oracle também está sujeito a restrições semelhantes.

Para começo de conversa, é preciso contar um servidor cujo hardware seja compatível com a HCL (Hardware Compatibility List) do Windows. Isso quer dizer que aquele servidor montado que não é de grife dificilmente vai suportar um cluster. Empresas como Dell, IBM e outras já fornecem servidores prontos para o cluster, porém seu custo é alto se comparado com servidores Web, de impressão, de arquivos etc.

Em segundo lugar, é preciso obrigatoriamente utilizar um storage (conjunto de discos prontos para armazenamento). Com certeza, esse é o principal empecilho quando se deseja montar um cluster. Infelizmente, não é possível montar um cluster em casa com um par de HDs e de boa vontade. É preciso controladoras especiais, canais de comunicação e muita configuração para fazer apenas a parte de armazenamento funcionar corretamente. Também é preciso no mínimo dois pares de adaptadores de redes e configurações adicionais entre os servidores.

Além disso, a quantidade de termos que devem ser compreendidos por quem quer trabalhar com um cluster é grande. Temos toda a tecnologia RAID, especificações da HD (Sata, UltraSATA), canal de comunicação fiber channel, opções de configuração específicas do storage de cada fabricante, NAS, e  diversos outros conceitos e opções.

Há também a dificuldade de se configurar o array de discos no hardware. Geralmente, é preciso instalar um software proprietário do storage ou configurar na BIOS do servidor. Esses softwares não são fáceis de serem utilizados, estão em inglês, possuem documentação escassa e variam muito de fabricante para fabricante. Sem contar que as suas interfaces de usuário não são muito amigáveis.

Uma vez que se tenha conseguido ultrapassar a barreira do hardware, é preciso pensar no software. Novamente, não são todas as edições (eu disse edições e não versões!) dos softwares que permitem a montagem do cluster. No caso do SQL Server, é preciso contar com, no mínimo, a edição Standard. E no caso do Windows, é preciso contar com a edição Enterprise. Obviamente, como estamos tratando de tecnologia da Microsoft, essas licenças não são baratas e requerem o conhecimento de detalhes de licenciamento.

Já com o hardware e com o software prontos é preciso agora ir para a parte relativamente fácil: a criação e a configuração. Aqui é que entra o DBA que precisa ter alguma experiência para conseguir instalar, configurar e, não menos importante, manter o cluster. Muitos profissionais até conseguem deixar a solução pronta, mas geralmente sofrem quando algo que já estava funcionando simplesmente para de funcionar da noite para o dia. Aí é que entra a capacidade de resolver problemas, também conhecida na área como troubleshooting.

Sob o ponto de vista de quem é estudante e está pleiteando uma vaga como DBA, infelizmente o caminho não é fácil. Como citado nos parágrafos acima, se já é raro aqui no Brasil encontrar uma empresa que tenha um cluster, mais raro ainda é encontrar os recursos de hardware e de software para estudo em um ambiente real. Mesmo no bom momento econômico que estamos presenciando atualmente ainda é muito raro observar investimentos em soluções de cluster nas empresas de pequeno e médio porte.

Alguns fabricantes de hardware até fornecem cursos específicos sobre suas soluções, mas infelizmente isso está fora do alcance de estudantes e de quem está procurando emprego, ficando restrito a quem já está em uma empresa que investe no treinamento de seus funcionários e colaboradores. Algo similar acontece com softwares como o SAP, onde basicamente existem duas opções para se aprender a utilizá-lo: ou se trabalha em uma empresa que comprou a licença (algo não muito barato) ou procura-se uma academia SAP (algo que também não é muito barato).

É muito bonito ler sobre soluções de cluster em uma apostila, livro, revista, artigo em um site ou em um vídeo, mas na realidade poucos profissionais possuem experiência prática com essa tecnologia. E isso não é culpa dos profissionais, mas sim de vários fatores, como já explicado neste texto.

Mesmo nas escolas de informática e centros oficiais de treinamento, é difícil encontrar os recursos de hardware e de software para implementar um cluster. E em muitas situações, é preciso esperar formar turmas para poder fazer um curso que envolva cluster. Mais raro ainda é estudar esse tipo de tecnologia na prática em faculdades. E em eventos técnicos, como o TechEd, demonstrações práticas de clusters reais quase nunca acontecem.

Sem escolha, os estudantes simplesmente não conseguem obter o conhecimento e a prática necessária para aprender a trabalhar com cluster. E por isso o mercado cada vez mais fica à procura desses profissionais.

Mais existe uma luz no fim do túnel!

Para quem é esforçado, sempre há como obter algum tipo de experiência prática sem efetivamente trabalhar em uma empresa que utiliza essa tecnologia. Sugeri algo similar no artigo “Ganhando experiência em banco de dados“.

O estudante deve se inteirar bem com a teoria, os conceitos e toda a documentação que puder encontrar. O próximo passo é partir para a utilização prática de tecnologias similares ao cluster do SQL Server. Para um bom começo, basta procurar os bancos de dados de software livre. As soluções de software livre, em particular o MySQL, são uma boa pedida. Já escrevi alguns artigos mostrando como montar um cluster no MySQL e como utilizar o MySQL Proxy.

Outra solução, bem mais interessante, é a utilização de ambientes virtuais e simulação. Na verdade, aproximadamente 5% dos candidatos que disseram trabalhar com cluster, na entrevista de emprego comentada no começo deste artigo, indicaram que se esforçaram e montaram um cluster em ambiente virtual. Os outros 5% efetivamente trabalharam em empresas que já possuíam um cluster montado e foi lá que aprenderam a trabalhar com essa tecnologia.

Sim, é possível simular de forma fidedigna um cluster em ambiente virtual

Notem que esse tipo de atitude coloca a favor do candidato o esforço necessário para aprender. Essas soluções não são tão simples e poucos estudantes e candidatos se esforçam para montá-las, é preciso persistência e uma boa dose de vontade para fazê-las funcionar.

Para finalizar, infelizmente, o cenário não é muito favorável para quem quer trabalhar com cluster e não possui muitos recursos. Como essa tecnologia é cara, o mercado fica cada vez mais deficiente de bons profissionais. Isso é válido tanto para o SQL Server como o Oracle e para outras tecnologias de outros fabricantes e de fornecedores de software.