Microservices - A escalabilidade natural para o enterprise
O conceito de microserviços existe há pouco tempo, é verdade. Mas foi só quando o Netflix anunciou a migração para esse padrão arquitetural que a coisa realmente bombou. E seguindo a linha de sucesso do grande player mundial, outros serviços de streaming anunciaram a migração e a superação das expectativas após a implementação desse conceito.
Mas afinal, o que é 'Arquitetura de Microserviços'?
O termo "Microservice Architecture" surgiu nos últimos anos para descrever uma determinada maneira de projetar aplicações de software como suites de serviços independentemente implementáveis. Embora não exista uma definição precisa deste estilo arquitetônico, há certas características comuns ao redor da organização, da capacidade de negócios, implantação automatizada, a inteligência nos terminais e controle descentralizado de idiomas e dados.
-- Traduzido de Martin Fowler
Quando falamos em aplicações enterprise, nos referimos à alta disponibilidade, alto volume de dados e tráfego. Geralmente aplicações unstoppable e altamente críticas para o negócio. E cada dia mais precisamos entregar melhorias com mais velocidade e consistência, já que o negócio não pode parar.
Por isso alguns preceitos de software moderno são necessários na hora de escrever uma aplicação enterprise: orientação à objetos, IoC, DDD e principalmente implementar testes unitários - TDD, visando garantir a qualidade das implementações de acordo com o negócio, o que nos possibilita automatizar o deployment das aplicações, elevando nossa aplicação para um nível de entrega contínua.
Com esse cenário começamos a planejar as diferentes vertentes da arquitetura de microserviços e para ajudar nessas decisões, apresento-lhes o cubo da escalabilidade.
Através dele é possível decidir como iremos decompor nossas aplicações monolíticas e quais recursos/features deverão ser segregadas em serviços menores. Por ele também é possível entender como a escalabilidade dos serviços deverá ser realizada.
É importante lembrar que em uma arquitetura de microserviços, as aplicações estão sujeitas à falhas, já que os serviços estão distribuídos, o que requer implementações resilientes.
Quer saber mais sobre como Escalar e distribuir aplicações usando Microservices? Então não deixe de conferir minha apresentação no Visual Studio Summit, dia 06/Junho na Microsoft Brasil em São Paulo.
--
Lucas Massena
Enterprise Architect @ 2PC IT Services
lucasmassena@2pc.com.br