BT

Uma Introdução a arquitetura de Microservices

por Jan Stenberg , traduzido por Thiago Bolivar em 07 Jul 2014 |

Os softwares eram construídos de forma monolítica, como grandes peças de softwares, depois foram migrados para uma estratégia SOA, mas ainda tiveram problemas. Agora estamos migrando para microservices. Russ Mile recentemente descreveu esta situação sobre o desenvolvimento de software em uma introdução ao projeto e construção de microservices rígidos, usando a plataforma Java.

Russ faz uma comparação com pedregulhos, rochas e cristais, onde softwares monolíticos são como pedregulhos que são difíceis de mudar ou mover. SOA é como rochas, que ainda é difícil de mudar e não dá o retorno esperado. Microservices são como os cristais, muito fácil de mudar.

Quando Russ fala em rigidez, devemos considerar uma quebra do sistema; simplesmente aceitar que haverá mudança não é suficiente, é necessário prosperar nela, pensando sempre em melhoria contínua. Para Russ, uma maneira simples de iniciar é fazer com que a união de pequenas coisas façam um trabalho maior. Cada coisa tem um único propósito. Projetos que definem componentes atômicos e sistemas mais simples, são a chave para quem quer migrar para uma estratégia de microservice. O foco está na evolução dos componentes e em como construímos sistemas que permitem tanto evolução como mudanças.

Russ define microservice como um serviço com um único propósito e que execute bem a sua tarefa dentro de um nível de granularidade e suporte as mudanças do sistemas que são consideradas importantes tanto em tempo de projeto quanto em tempo de execução. O foco principal é tentar construir software que pode se adaptar e isto só é possível de ser feito se as partes forem pequenas suficientes para se ajustar às diferenças nas mudanças de sua arquitetura.

Microservices não está praticando SOA de forma correta? Um problema que Russ vê com o SOA é a forma de como a definição é aplicada. Ele argumenta que a grande diferença arquitetural entre SOA e Microservice é o fluxo de dados no sistema, onde o encadeamento é chave para a abstração, comparando com o sistema de encadeamento do UNIX. Russ acredita que o encadeamento foi um fator de motivação para a criação dos microservices. Já SOA normalmente trabalha com hierarquia de serviços organizados em camadas, neste caso é perdido o fluxo de dados, pois a orquestração é realizada nos serviços.

Um grande problema que Russ expõe é sobre os problemas de gerenciamento e monitoramento de sistemas que trabalham com muitos serviços granulares. Ele não aconselha a construção de um serviço específico de tratamento de erro e estado do sistema, e sim fazer com que o serviço retorne como uma informação adicional, o seu estado. Isso torna o serviço independente da arquitetura.

Olá visitante

Você precisa cadastrar-se no InfoQ Brasil ou para enviar comentários. Há muitas vantagens em se cadastrar.

Obtenha o máximo da experiência do InfoQ Brasil.

Dê sua opinião

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber mensagens dessa discussão
Comentários da comunidade

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber mensagens dessa discussão

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber mensagens dessa discussão

Dê sua opinião

Conteúdo educacional

Feedback geral
Bugs
Publicidade
Editorial
InfoQ Brasil e todo o seu conteúdo: todos os direitos reservados. © 2006-2014 C4Media Inc.
Política de privacidade
BT