No mundo atual temos algumas mudanças arquiteturais que compreendem uma evolução de SOA. E por esse motivo temos a visão que o novo modelo arquitetural almejado para uma empresa, é não apenas a maturidade SOA, mas sim o modelo arquitetural de Microserviços.Para isso, o post De Soa a Microserviços consegue orientar uma arquitetura baseada em SOA até implementação do modelo de Microserviços, deste modo recomendo profundamente a leitura deste post para conseguir avançar o seu modelo arquitetural nas últimas tendências de mercado.No ano passado estive envolvido em um projeto com Workshops com grandes fornecedores de soluções SOA como a HP, a SUN, entre outros. Um dos objetivos desse projeto era aprofundar o conhecimento em SOA e perceber como funciona na prática o seu processo de implantação, através da apresentação de modelos de implantação, experiência dos consultores em grandes clientes e ainda cases de sucesso de grandes multinacionais.
Segundo a revista Decision Report [1] uma boa implementação de SOA com boas práticas de governança pode trazer um excelente resultado para a organização. Se o projeto por implementado de uma forma eficiente o reuso em futuros sistemas pode chegar a 80% que é uma taxa muito elevada e com uma probabilidade muito pequena de acontecer comparada com uma arquitetura tradicional. Com essa taxa o custo de um projeto de desenvolvimento se torna muito menor e o retorno sobre o investimento é grande.
Ao final do projeto foi possível constatar que a implantação de um cenário SOA em uma grande organização não é uma tarefa fácil. É necessário um comprometimento dos funcionários da organização para o projeto poder ser executado com sucesso. Além disso, outra característica importante para o sucesso de uma implantação é a divisão por etapas para a implantação SOA.
Um erro muito comum é organizações desejarem alterar todo seu cenário de softwares de uma só vez. Essa é uma estratégia que tem traz sérios problemas: é alterado de uma só vez o dia a dia dos funcionários que lidam com os sistemas. Outro fator importante é que normalmente quando se tenta fazer uma mudança brusca dessas não se consegue fazer uma boa migração, pois passam a existir muitos sistemas para se trabalhar e dessa forma não é possível concentrar os esforços em cada detalhe necessário.
Pela experiência dos consultores pode-se perceber que projetos com elevado grau de sucesso são feitos em fases: primeiro se escolhe alguns sistemas, realiza-se a migração e observa o funcionamento para depois repetir o mesmo processo para outros sistemas até que se tenha realizado para toda a organização.
A figura 1 representa as etapas que segundo Gartner (adaptado) é o cenário ideal para uma organização de grande porte, com centenas de sistemas distribuídos, implantar um processo de SOA utilizando práticas de governança.
A primeira etapa, que se for bem realizada pode durar em torno de 1 ano, é a que a organização começa a migrar alguns serviços para SOA. Nesse momento, conforme citado anteriormente, o importante não é se preocupar em implantar vários serviços, mas fazer alguns que possam já trazer o quanto antes algum beneficio. Com esses serviços implantados não é necessário ter um repositório final de serviços e as práticas de governança começam a ser definidas.
O importante nesse período é testar o comportamento dos serviços, verem as políticas de governança que devem ser aplicadas e começar a trabalhar com as questões de repositório de serviços, controle de acessos, contratos de utilização, controle de consumidores entre outros.
Além disso, outro fator importante é a escolha de sistemas simples, para serem utilizados nessa fase. Essa escolha é importante para que daqui a algum tempo quando surgir um projeto novo que utilize características dos projetos piloto já se possam constatar as vantagens que trouxeram a implantação do projeto piloto como, por exemplo, a reutilização de componentes e com isso aceleramento no tempo de desenvolvimento do novo projeto.
A etapa seguinte é a de um período muito grande, podendo levar até 4 anos, dependendo da infra-estrutura existente e da quantidade de sistemas que necessitam ser migrados. Essa etapa é muito importante, pois nessa fase que os outros serviços da organização começam a ser migrados. Essa é a fase chamada de cenário intermediário, pois até o seu final vai existir uma coexistência entre serviços com SOA e sistemas antigos.
Durante esse processo as políticas de governança devem ser implantadas aos poucos conforme forem existindo as necessidades. Além disso, o repositório de serviços deve obrigatoriamente ser utilizado, pois é através dele que serão procurados os serviços que já estão implantados para poderem ser utilizados ou reaproveitados por outros serviços.
Nesse ponto a organização começa a perceber um dos principais benefícios trazidos por SOA: o reaproveitamento de serviços. Com isso os novos projetos começam a se tornar mais rápidos, baratos e com menos problemas, pois quanto maior for o nível de reutilização, menor o desenvolvimento e assim chance de problemas. Ao final dessa etapa chega-se a um bom cenário organizacional: serviços estão implantados, existe reaproveitamento, controle do ambiente, registro de serviços e políticas de governança implantadas.
A última fase é o cenário estável para a organização. Os sistemas existem com conceitos de serviços, todos estão no repositório, não existem serviços duplicados e existe alta taxa de reuso. Todas as políticas de governança, processos de desenvolvimento de software foram implantados e estão estáveis. Nesse ponto, o importante é manter o ambiente para o futuro: novos serviços devem seguir o processo desenvolvimento e as políticas organizacionais, utilização de serviços deve ser feita via repositório com um contrato formal de prestação de serviços, entre outras.
O modelo sugerido acima só se aplica a grandes organizações. Para empresas médias pode ser realizado um modelo alternativo. Ele deve ser feito considerando o número de sistemas existentes e de áreas da organização.
Assim como no outro modelo proposto, o primeiro passo é a realização de um projeto piloto. No projeto piloto devem ser definidas as ferramentas que serão utilizadas no ambiente SOA. Além disso, devem ser escolhidos, da mesma maneira que no processo anterior, os sistemas pilotos.
Ao final dessa etapa devem ser analisados os resultados do piloto para verificar se os resultados da ferramenta escolhida e dos sistemas pilotos foram satisfatórios. Caso não sejam, devem ser repetidos tantos pilotos quanto necessários até a organização estar confiante para avançar para a próxima fase.
Na segunda etapa, primeiramente deve ser feito a migração dos sistemas da área onde foi feito o piloto anteriormente. Durante esse trabalho as práticas de governança devem ser definidas conforme a necessidade da implantação. Ao final de todos os sistemas da área o processo deve ser repetido quantas vezes forem necessárias para cada área da empresa. O tempo dessa fase vai depender da quantidade de setores ou divisões dos sistemas da organização. Esse processo acaba quando todas as áreas da empresa forem migradas.
A última etapa, assim como no modelo anterior, é quando a organização já está com toda a política de governança definida e serviços implantados. O importante nesse momento é garantir que todos os colaboradores da organização sigam as políticas adotadas, como por exemplo, a verificação de serviços antes no repositório antes da criação de um novo, padrões de desenvolvimento, desenvolvimento orientado a serviços, entre outras práticas definidas.
Os modelos propostos nesse artigo são modelos de cenários e etapas para implantação SOA indicados para o perfil das empresas. Porém, não pode se pode dizer com total confiança que este é o processo ideal para todas as organizações de mesmo porte sem que seja feita uma profunda análise do seu cenário e do seu contexto.
Para conseguir analisar o cenário de sua empresa entre em contato conosco.
Referências:
Autor:
Daniel Waldman é Analista de Sistemas. Bacharel em Ciência da Computação e Pós-graduado em Gestão Estratégica de Tecnologia da Informação pela PUC-RS. Atualmente trabalha com SOA e Integração Aplicacional utilizando tecnologias Seebeyound e Jcaps.