Olá pessoal, tudo certo?
Um assunto que de tempos em tempos aparece em conversas com arquitetos e empresas do mercado é a Missão Crítica em projetos. Mas o que você entende por um projeto de Missão Crítica?
Do wikipedia temos que o termo Missão Crítica refere-se a qualquer fator (equipamento, processo, procedimento, software, etc.) que seja crucial para o sucesso ou completude de uma atividade ou projeto. Também pode se referir a um projeto cujo o sucesso é vital para a missão da organização ou negócio da empresa.
Falando em projetos, vejamos alguns exemplos que considero de Missão Crítica:
– Um sistema de controle e coleta de dados de um projeto em Física Experimental para criação de estado de plasma, rodando sobre sistema operacional Debian/Linux, com processos em C, usando pilha TCP, pode ser considerado de missão crítica para o laboratório, devido as restrições e riscos envolvidos na monitoração e controle de equipamentos;
– Um núcleo de negociação para o mercado financeiro, tratando milhões de operações/dia, envolvendo mensageria em banco de dados, cache distribuído, gerenciamento de recursos em memória, etc., com requisitos rígidos de baixa latência, também é um exemplo de missão crítica;
– Um SDCD – Sistema Digital de Controle Distribuído – para monitoração e atuação de bicos de óleo em caldeiras para a geração de vapor num planta industrial, também é um belo exemplo. Vapor é um elemento chave em diversos processos industriais, de petroquímicas a processamento de atum em lata!
– Um monitor transacional de alto desempenho, aplicando conceitos como ACID, MUTEX, CRITICAL SESSIONS, SEMÁFOROS, árvores de falhas, etc, é outro exemplo. Uma leitura obrigatória sobre o assunto é o livro Transaction Processing, confira aqui!
– Um sistema SaaS – Software as a Service – sobre algum provedor em nuvem, para uma solução multi-inquilino com interfaces Web, responsável pelo núcleo de faturamento da empresa, é de missão crítica, com requisitos de disponibilidade, responsividade e desempenho. Imagine um sistema SaaS para a venda de ingressos do show de Eric Clapton ou B.B. King!
– Um sistema de automação para controle de caixas margem de via, por exemplo, para determinação de presença de trens de metrô e vagões em trechos da via, abertura de portas, desvios de ramais, movimento, etc. O próprio controle do carrossel de composições na via também é crítico. Qual é o trem mais seguro? Um trem parado ou um trem na oficinal, fora da via?
– Um sistema para contabilidade e bilhetagem de chamadas em telefonia celular, também é crítico; – Em muitos cenários, até mesmo um sistema de emails é um sistema de missão crítica para a empresa. Algumas corporações simplesmente param ou perdem negócios em casos de falha em suas caixas postais, por mais commodities que possam parecer. Impacto financeiro a vista!;
– Um sistema de controle de equipamentos médicos, como scanners, tomógrafos, dispositivos de ultra-som, leitores dopplers em tempo real (opa!), entre outros mais sofisticados em medicina, são extremamente críticos em seus resultados.
Considero todos os exemplos acima como sistemas de Missão Crítica em diferentes níveis, pois envolvem riscos para o negócio da empresa. Assim, podemos destacar três tipos de riscos envolvidos:
- Riscos Materiais;
- Riscos Financeiros;
- Riscos envolvendo Vidas Humanas;
Alguns sistemas de Missão Crítica podem envolver requisitos de Tempo Real (Real Time), isto é, janelas de atuação e tempos resposta bem definidos, que devem ser respeitados. Nesses casos, o número de processos envolvidos, o volume ou o número de chamadas disparadas não deve interferir no tempo de resposta do sistema.
Qual é o tempo de resposta envolvido no tempo real (em milisegundos, por exemplo)? Dependerá do cenário que estamos tratando, seja um canal de feeders de notícias com filtros sobre política ou mensagens para a abertura de cofres em sistemas de segurança bancário. Normalmente, condições de tempo real estão envolvidas em cenários de missão crítica, mas não são obrigatórias.
Meu ponto aqui é que não podemos considerar como Missão Crítica apenas o aspecto de desempenho e tempo de resposta envolvidos. Para algumas indústrias, outros atributos são tão importantes quanto, como o impacto financeiro, disponibilidade e riscos diversos.
Quão crítico é o sistema em que você está trabalhando hoje? Ele envolve riscos financeiros, riscos humanos ou riscos materiais? Qual é o impacto de uma falha em seu sistema para a execução do negócio de sua empresa? Aspectos como recuperação de falhas, tratamento de exceções, árvore de falhas, etc., tornam-se importantes em muitos casos.
Mais recentemente, tenho acompanhado a plataforma Microsoft e seu suporte para aplicações de missão crítica em diferentes níveis.
Existem diversos recursos que atendem esses cenários, seja sobre a plataforma .NET ou mesmo sobre código não gerenciado, com processos em C++ sobre Windows Server. No ambiente gerenciado, recursos como interfaces de serviços em WCF – Windows Communication Foundation, mensageria com MSMQ, paralelismo, sincronização e sistemas de integração com baixa latência são alguns exemplos. Em todos os casos, o impacto para o negócio da empresa está presente.
Em breve, teremos ainda novos recursos disponíveis na plataforma, como o Dublin (para hospedagem de serviços e processos sobre o Windows Server), o Velocity (para cache distribuído e aplicações de alto desempenho), os novos WCF 4 e WF 4, além da integração com a plataforma de alta escalabilidade e disponibilidade do Windows Azure, que já está em contagem regressiva para seu lançamento, agora em novembro de 2009.
Finalizando, procure identificar em quais cenários de Missão Crítica você está pessoalmente envolvido e como será a evolução destes nos próximos meses. Você vai perceber que sua TI tem um impacto direto para o sucesso de sua empresa!
Um abraço!
Waldemir Cambiucci
Blog: http://blogs.msdn.com/wcamb/
Twitter: http://twitter.com/wcamb/