Nossa Visão

Nossa Visão

De fato, decompor aplicações em serviços distribuídos não é uma estratégia nova. Na verdade ela já existe há muito tempo, porém recentemente vimos crescer uma forma mais simples de percorrer esse caminha. Conhecida como Microservices Architecture, tal abordagem nos parece ser a forma correta de usar uma arquitetura baseada em serviços.

Do nosso ponto de vista, a arquitetura baseada em “micro” serviços é a forma mais natural de se aplicar o princípio da responsabilidade única ao nível arquitetural. Isso resulta em vários benefícios sobre as abordagens monolíticas tradicionais, como implantação independente, independência de tecnologias, escalabilidade produtiva, escalabilidade operacional e aumento da flexibilidade arquitetural.

Em seu livro sobre o assunto, Sam Newman explica como Microservices surgiram: “Domain-Driven Design. Entrega contínua. Virtualização sob demanda. Automação de infraestrutura. Pequenas equipes autônomas. Sistemas em grande escala. Microservices surgiram a partir deste mundo. Eles não foram inventados ou descritos antes do fato; eles emergiram como uma tendência ou um padrão, de uso no mundo real. Mas eles só existem por causa de tudo o que se passou antes”

Newman resume bem o caminho que queremos seguir: segundo ele “o livro Domain-Driven Design, de Eric Evans, ajudou a entender a importância de representar o mundo real em nosso código, e mostrou as melhores maneiras de modelar sistemas complexos, uma resposta sólida para cenários Big Ball of Mud. O conceito de entrega contínua mostrou como pode ser mais eficaz e mais eficiente colocar nosso software em produção, disseminando a ideia de que devemos tratar cada check-in como uma release candidate. O conceito de arquitetura hexagonal, de Alistair Cockburn, mostrou uma excelente alternativa para arquiteturas em camadas fortemente acopladas. Plataformas de virtualização nos permitem disponibilizar e redimensionar as nossas máquinas à vontade, com infraestrutura de automação que nos dá uma maneira extremamente simples de lidar com essas máquinas em larga escala. Algumas organizações bem sucedidas, como Amazon e Google, abraçaram a visão de pequenos times que possuem o ciclo de vida completo de seus serviços, algo perfeitamente aderente à Lei de Conway. E, mais recentemente, a Netflix deu-nos maneiras de construir sistemas altamente resistentes em uma escala que seria difícil de imaginar apenas 10 anos atrás.”