Métricas em SOA: quais são importantes?

Neste artigo Mark Little, CTO da Red Hat discute um pouco sobre governança SOA e algumas métricas importantes neste mundo de arquitetura orientada a serviços.

Apesar de um pouco superficial (não apresenta qualquer fórmula ou exemplos práticos), o texto nos mostra quais indicadores importantes devemos colocar nosso foco. Abaixo a lista de Mark Little:

- Return on Investment (ROI) per service
Medir o ROI é complicado em qualquer cenário/arquitetura de software. Em SOA, mais complicado ainda. “Holísticamente”, como diz este artigo do Leo Shuster, estrategista SOA do National City Bank (EUA), o ROI do seu programa (conjunto de projetos) SOA pode ser calculado através da seguinte equação:

SOA ROI ($) = Cost Savings/Efficiencies Achieved – All SOA-Related Investments

or

SOA ROI (%) = SOA ROI ($) All SOA-Related Investment

Um dos “complicômetros” desta métrica é que alguns serviços são dependentes de outros para executar a regra de negócio à qual ele se propõe (objetivo). Assim, o ROI deste serviço deve ser medido ao longo de toda cadeia de dependência dos outros serviços/componentes. O autor lembra também que medir o ROI não significa necessáriamente que um serviço específico vai gerar receita.

- Revenue per service

Receita por serviço. Métrica diretamente relacionada com o ROI. A proposta é priorizar os serviços pelos retornos “teóricos” de investimento, classificando-os pela receita que eles produzirão.

- Service grow rate/reuse

Uma das grandes vantagens de SOA é o reuso de serviços. Pelo menos é isto que eu falo quando tento vender a idéia por trás da arquitetura. Na verdade, uma boa arquitetura, no mínimo, avalia esta possibilidade e projeto o serviço para que o mesmo seja reutilizado, gerando enormes economia de tempo/recurso e manutenção daquele código.

Este indicador é importante para definir o ROI e acompanhar o quanto um serviço vai ser/está sendo reutilizado força seu time a revisitar as implementações e avaliar a performance.

O que geralmente ocorre é que, mesmo que você tenha desenhado um serviço com a preocupação no reuso, dificilmente você sabe por quantos sistemas e sub-rotinas o mesmo está sendo invocado. No momento de stress com performance você tem esta informação na mão? I guess no.

- Business agility

Quanto tempo leva entre o planejamento do serviço e seu deployment? SOA traz agilidade, correto? Não foi isto que voê vendeu para seu cliente? Então, esta é uma métrica excelente para você exibir para seu patrocinador, mostrando que, de fato, o quanto esta nova forma de conceber soluções de software traz ganho para a empresa.

- Reliability

Métricas de confiabilidade (SLA) já utilizadas em outros ambientes (SOA ou não):

mean time to failure (MTTF) e

mean time to recovery (MTTR)

- Service inter-dependencies

Nada no mundo está isolado. Quanto um serviço depende de outro? A idéia é classificar e documentar o “nível” de interdependência dos serviços. Este serviço tem uma dependência “fraca” ou “forte” destes outros? Estes serviços com alta dependência podem ser classificados como uma única “unidade lógica”?

Como em muitos projetos que utilizam esta arquitetura, a idéia é começar a medir e extrair algumas métricas do seu ambiente. As coisas tendem a ficar um pouco mais complexas. Exemplo: Cloud Computing. Imaginar que parte destes serviços e infra-estrutura pode estar em qualquer lugar da “nuvem” é uma idéia que deve dar pesadelo em todo gestor de TI, mas já é uma realidade que não tem volta.

Melhor começarmos a medir este indicadores agora.

Mais sobre métricas de SOA nesta nota.

2 comments on “Métricas em SOA: quais são importantes?

  1. [...] Na Parte I deste post mostrei a proposta do CTO da Red Hat sobre quais métricas são, de fato, relevantes quando se trata de arquiteura orientada a serviço (SOA). [...]
  2. Davi, Muito bom seu artigo parabéns. No entanto, gostaria de ver métricas para mensurar o esforço de desenvolvimento e custo do projeto. Ex.: Aplicação da APF neste conceito.

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>