Host-Tracker, serviço de monitoramento de sites, sob Windows Azure
Publicado por: Artem Prysyazhnuk 2014-03-07 all articlesEstes, que estão ativamente envolvidos com a Web, devem conhecer a HostTracker, uma empresa da Ucrânia, que tem apoiado um dos principais serviços de monitoramento global da Web desde 2004. Seu objetivo é monitorar a saúde e a acessibilidade do site em tempo quase real. Usando o sistema de mensagens de alerta, o HostTracker permite reduzir os tempos de inatividade, melhorar a qualidade do serviço para os usuários, localizar rapidamente os problemas, e etc.
Arquitecturalmente, o HostTracker inclui um hub baseado em servidor, atuando tanto como coletor de dados e centro de controle, como uma série de agentes de software, lançados em várias regiões – tipicamente utilizando os equipamentos operados pelos principais fornecedores, hosters e afiliados. A arquitetura geograficamente distribuída fornece confiabilidade comum ao sistema e também permite a coleta de dados em termos de velocidade de acesso, largura de banda e outras características-chave de desempenho em nível regional – uma característica extremamente importante para os negócios internacionais.
A primeira versão do HostTracker, que ainda está funcionando e prestando serviços para dezenas de milhares de clientes, foi baseada no Linux. Hoje, ele é suportado por nove servidores de controle, localizados e organizados em dois DPCs com base no princípio de co-instalação, e poucas dezenas de agentes. Considerando que o objetivo final do monitoramento web está focado em aumentar o tempo de atividade dos recursos web &ndash baseados no cliente; enquanto 95% dos clientes HostTracker conseguiram aumentá-lo até 99% – então, o desempenho e acessibilidade do serviço em si não são apenas parâmetros críticos, mas fundamentais que influenciam todo o negócio. Teoricamente, o HostTracker deveria demonstrar uma acessibilidade próxima a 100%. Entretanto, um amplo crescimento do serviço tornou esta tarefa difícil de ser resolvida.
HostTracker estava enfrentando um aumento constante do tráfego &ndash da rede; um problema para a operação sem problemas do serviço. A impossibilidade de adicionar novos servidores de controle on-the-fly, dificuldades na manutenção de hardware não uniforme e de múltiplas idades era outro fator limitante. Além disso, o desejo de desenvolver o serviço através de um protocolo mais amplo e suporte de serviços de rede estava encontrando certos obstáculos. “infelizmente, para o Linux havia uma escolha limitada de soluções e bibliotecas prontas para uso, enquanto inventar algo completamente novo era difícil”, diz Artem Prisyazhnyuk, diretor do HostTracker. “Tivemos a idéia de rever a pilha de tecnologias que usamos para uma mais sofisticada e depois de dar uma olhada mais de perto na plataforma .NET, seu potencial em termos de escalabilidade e suporte de rede, percebi que era exatamente isso que estávamos procurando.”
Tinha certeza de que a migração para uma plataforma completamente diferente deveria ser uma tarefa complexa – o projeto se estendeu por três anos. Entretanto, foi como uma bênção disfarçada: durante este período, o mundo viu a computação em nuvem que parecia uma ferramenta ideal para resolver tanto o problema de escalabilidade quanto para colocar de lado toda a infra-estrutura do próprio &rsquo. Além disso, o modelo PaaS permitiu remover a maior parte do esforço em termos de administrar a solução e controlar a aplicação como uma entidade autônoma, até o ponto de automação completa, e assim, o Windows Azure não tinha de fato nenhuma alternativa.
Como resultado, a segunda versão do HostTracker, cuja operação comercial começou em maio de 2012, já está funcionando sob o Windows Azure. Seu ingrediente central é realizado como Web Role e associado ao SQL Azure Database – ele fornece portal externo, análise e geração de relatórios, controle de aplicações de monitoramento. Estes últimos são garantidos com instâncias de Worker Role, que também utilizam o SQL Azure Database para armazenar seus dados e fornecer a escalabilidade do serviço dependendo da carga da rede. Os agentes estão funcionando como antes, com a viabilidade de sua transferência para o Windows Azure sendo considerada.
Agora, o HostTracker usa os protocolos HTTP/HTTPS e ICMP para monitorar portas específicas, incluindo vários métodos (HEAD/POST/GET), e etc.
Relatórios de alarme está disponível via e-mail, SMS e mensagens instantâneas. O cliente pode receber relatórios com estatísticas sobre os recursos sendo controlados e seus desempenhos. O cliente pode gastar apenas 6 minutos para fazer configurações de monitoramento para cinco sites, enquanto o tempo médio de resposta em caso de falha é limitado por alguns minutos, e leva de 1 a 3 minutos a mais para informar o cliente sobre o problema. Usando este serviço, qualquer pessoa pode verificar qualquer site, incluindo o acesso de várias regiões.
Como resultado, se por um lado a transferência para a própria plataforma .NET nos deu o potencial para modernizar o HostTracker, para otimizar a arquitetura da aplicação e realizar novas funções internas, então, por outro lado, a migração para a nuvem permitiu recusar atividades menos importantes, embora demoradas, como a administração da solução, e, em primeiro lugar, alcançar os indicadores de desempenho necessários. A Microsoft, para todos os serviços básicos do Windows Azure, declara 99,9% de acessibilidade e garante reembolsos mensais, caso este indicador seja menor. Isto cria um terreno firme para operar tais serviços como o HostTracker, já que a acessibilidade é o parâmetro mais crítico para estas aplicações. A utilização da infra-estrutura da nuvem também proporciona uma melhor proteção para o serviço: o acesso não autorizado à aplicação e muitos tipos de ataques são efetivamente excluídos, enquanto a segurança dos dados é garantida pela tripla reserva.
HostTracker recebeu outra vantagem ao abandonar sua própria infra-estrutura. As características de desempenho do serviço’s também são bastante críticas, pois afetam diretamente a operação do sistema de relatório de falhas. A este respeito, o Windows Azure é praticamente uma fonte de energia informática sem drenos. Isto significa que, ao iniciar oportunamente instâncias de monitoramento adicionais, você pode suportar parâmetros de funcionamento do HostTracker no nível necessário. Além disso, o ambiente de nuvem é exatamente o que você precisa para tornar este processo quase totalmente automático, excluindo a necessidade de mais controle direto.