Arquitetura de Software, Arquitetura Monolítica, Engenharia de Software, Microservices, Padrões de Projeto

Micros-serviços: características, benefícios e desvantagens em relação à arquitetura monolítica que impactam na decisão do uso desta arquitetura.

A busca por melhores formas de se construir sistemas
computacionais tem sido intensa e contínua. Nesta era de alta
disponibilidade de Internet, propagação dos dispositivos
móveis, juntamente com o advento da internet das coisas (IOT
– Internet of Things) e a computação nas nuvens, desenvolver
sistemas que utilizem destes recursos e que ainda possam
suportar a alta demanda de usuários e suas requisições, bem
como a diversidade de tipos de clientes existentes neste
cenário, pode ser um grande desafio.
De acordo com [1] no ano de 2016 estima-se que haverá 6,4
bilhões de “coisas” conectadas à rede mundial de
computadores, partindo de um aumento de 30% em 2015 e
chegando a 20,8 bilhões até 2020, sendo que em 2016 a
previsão é de 5,5 milhões de novas “coisas” que se conectarão
à rede todos os dias.
Diante deste cenário fatores como escalabilidade,
desempenho, disponibilidade e produtividade surgem como
pontos importantes a serem considerados no momento de se
construir uma aplicação. E para alcançar estes itens, muitos
conceitos têm sido discutidos e novas formas de se organizar e
construir sistemas computacionais vêm sendo colocadas em
prática, deixando de lado formas tradicionais de se
desenvolver uma aplicação, como é o caso das aplicações
monolíticas, cujo o perfil, nem sempre se encaixa nesta atual
perspectiva.
A arquitetura baseada em micros-serviços surge neste
panorama como uma alternativa ao tradicional padrão
arquitetural monolítico. Muito tem se falado deste estilo
arquitetural, colocando-a no topo das expectativas exageradas
de diversas pesquisas de 2015 do Gartner Hype Cycle,
explicado em [23], como por exemplo sobre serviços em [22],
desenvolvimento em [20] e arquitetura de aplicações em [21].
Este artigo tem como objetivo apresentar esta arquitetura
comparando suas características, vantagens e desvantagens em
relação ao estilo arquitetural monolítico, bem como, apresentar
os cenários onde a escolha deste estilo se torna conveniente.
Passando também pelos desafios de se construir um sistema
desde o início utilizando esta arquitetura e o de decompor um
sistema monolítico já existente, contribuindo na decisão de
quando e como utilizar ou não o padrão de arquitetura em
micros-serviços. Também é abordada a relação entre este
padrão arquitetural e Service Oriented Architecture – SOA,
comentando rapidamente também sobre o padrão de
linguagem existente para a construção de sistemas baseados
em micros-serviços.

Clique no link para fazer download do Artigo Completo Sobre Microservices.