Alta disponibilidade de ambientes de aplicação IIS – Parte 1- O Problema

Salve, salve galera.

Acredito que a maioria de nós já passou pela situação de ter uma aplicação rodando e o servidor nem sempre aguentar ou quando é preciso dar manutenção nele é um verdadeiro “parto”, temos janelas minusculas (quando elas existem) de manutenção e temos um over head administrativo muito grande. Vale ressaltar que estou falando aqui de ambientes corporativos que não possuem um cloud privada ou publica, nem componentes de infraestrutura para suportar tais recursos.

Nessa série de artigos vamos ver como montar uma Farm de servidores IIS para podermos fazer o balanceamento de carga entre eles dividindo nosso processamento, e apoiado nisso uma forma de podermos dar manutenção ou mesmo adicionar/remover servidores desse balanceamento sem que a disponibilidade da aplicação seja afetada.

O Ambiente

Nosso ambiente é composto hoje de um único servidor que atende as requisições externas vindas das mais diversas origens como por exemplo mais de 1000 vendedores que utilizam o sistema de força de vendas da empresa, aplicativos de integração com terceiros (operados logísticos, fornecedores, e clientes que tem acesso a uma área exclusiva deles). Todos os acessos são feitos através de webservices que disponibilizam as regras para cada acesso.

O servidor é único não havendo janela de manutenção para ele sem que, os aplicativos fiquem fora do ar. A empresa trabalha no formato 24×7 (uma industria por exemplo) e tem a necessidade de acessos constantes por parte de todos os usuários.

Por trás desse servidor temos toda uma infraestrutura de servidores de banco e tudo mais, porém nosso ponto de entrada é único e está começando a ficar “indisponível”.

Alguns irão dizer, que basta modificarmos a aplicação para apontar para outro IP ou criar uma parâmetro de configuração ou 100 outras possibilidades, mas vale lembrar que precisamos de um PROBLEMA. 😀

O Problema

Nosso servidor começou a ficar carregado, não consegue mais gerenciar todas as requisições e além disso tivemos algumas mudanças administrativas que estão implicando em constantes atualizações de aplicações o que gera a indisponibilidade momentânea de aplicativos isolados durante todo o dia mas que geram certo desconforto para os usuários e certa desconfiança também, do tipo “será que a empresa esta preparada para suportar a carga de trabalho atual ?”. Além é claro da inclusão de aplicações novas, recursos novos (e geralmente muito acessados). Em resumo um ambiente que está em plena evolução.

A solução

Para minimizar esse problemas temos o recurso de Load Balance (balanceamento de carga) que não é exclusivo do ISS, mas sim da arquitetura de servidores. Existe N maneiras de fazermos load balance de aplicações, seja a nível de rede, nível de aplicação ou nível de sistema operacional.

A ideia aqui é termos uma distribuição na carga de processamento da aplicação dividida entre servidores, existem conceitos que dizem que o processamento pode ser feito um pouco em cada máquina, ou todo em uma máquina e se ela não aguentar desviamos o fluxo para outra, e etc.

Vamos fazer um laboratório bem simples, prático e funcional de load balance de servidores IIS a nível de aplicação utilizando o Application Request Routing (ARR), uma feature do próprio IIS.

No nosso caso, todas as requisições são disparadas contra o servidor SRVCORPAPP, esse servidor possui apenas o IIS configurado com o balanceamento de carga e por trás dele temos os outros servidores trabalhando para o processamento.

Por trás desse servidor teremos diversos servidores (que iremos construir com o tempo) para suportar as aplicações.

Resumindo

Temos um ambiente que não pode (ou não deveria) ficar parado, e que tem que atender a constantes evoluções e crescimento de maneira simples e que os aplicativos já existentes não tenham que ser modificados.

 

Pessoal nos próximos posts iremos fazer o passo-a-passo da configuração do nosso ambiente até deixa-lo funcional.

Até a próxima.

 

Anúncios

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 )

Foto do Google+

Você está comentando utilizando sua conta Google+. 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 )

w

Conectando a %s