Microsserviço é uma arquitetura organizacional no desenvolvimento de software, onde a solução é dividida em pequenos serviços (componentes) independentes que se comunicam internamente.
Qual a diferença entre arquitetura monolítica e microsserviços?
A monolítica é baseada em uma solução única que contém, de forma integrada e dependente, todos os serviços da aplicação. Ou seja, por se caracterizar em uma única estrutura, qualquer manutenção ou alteração, por menor que seja, irá impactar em todo seu conjunto.
Por ser uma estrutura monolítica, as compilações e os deploys demoram muito mais tempo pois abrangem toda a aplicação e não apenas o ponto alterado.
Com ascensão do modelo de desenvolvimento ágil, a solução criada para enfrentar este problema foi a divisão da estrutura da aplicação em componentes independentes, que se comunicam através de APIs internas.
Essa divisão facilitou qualquer manutenção, modificação e criação de features, pois estes processos agora impactam somente seu serviço correspondente. Assim as compilações e deploys também ficam mais rápidos, pois são feitos apenas em seus módulos, não havendo mais a necessidade de serem feitos na solução completa.
Grande parte do mercado ainda utiliza o modelo monolítico, por ser uma arquitetura antiga e que está presente em sistemas legado.
Buscando melhorar a estrutura de cada componente de um sistema, bem como trazer mais agilidade e facilidade em sua manutenção, os microsserviços são distribuídos em equipes distintas, nas quais o foco principal é um componente. E, em determinado ponto do desenvolvimento, todos estes componentes serão integrados a solução final.
Qual a diferença entre uma API e um Microsserviço?
Ambos são muito parecidos, pois são camadas internas de um software e fazem o papel de comunicação da solução.
A principal diferença entre eles está na origem dos dados, pois uma API faz a transferência de dados externos das soluções de terceiros, já o microsserviço faz esse mesmo tipo de comunicação, porém com dados internos, seja de outros microsserviços ou do banco de dados. Isso acaba melhorando a segurança do software.
Quando devo usar as arquiteturas monolítica e de microsserviços?
Cada tipo de projeto pede um tipo de arquitetura.
Pensando nisso, podemos concluir que utilizar microsserviços em soluções pequenas, não vale a pena, pois não demanda a necessidade de se ter separações de cada componente e afins. Para este caso, a arquitetura monolítica serve muito bem, pois o desenvolvimento é simples, a manutenção acaba sendo mais fácil, onde o escalonamento exige apenas um deploy.
Agora, se o projeto é grande e complexo, a arquitetura de microsserviços será a melhor escolha, pois a definição de cada componente é individual, por exemplo, aquele dedicado a login no sistema.
Dependendo do tamanho da aplicação, pode-se utilizar mais de um tipo de tecnologia, facilitando sua construção. Assim cada componente terá uma tecnologia mais adequada às suas característica, o que não impede que se faça a comunicação entre eles com API’s internas. Isso simplifica a manutenção e aumenta o nível de segurança de grandes aplicações.
Quer um exemplo de microsserviços? Aí vai!
A Netflix foi uma das primeiras grandes empresas a utilizarem a arquitetura de microserviços!
Imagine você ter uma aplicação monolítica para levar um serviço de streaming para o mundo?
Os microsserviços auxiliaram na separação dos componentes como login, recomendações, últimos assistidos, busca, catálogo até chegar ao filme. Cada passo tem suas necessidades individuais e, com os microsserviços, essas particularidades puderam ser feitas de forma independente e executadas da melhor forma, atingindo maior performance.
Esperamos que você tenha entendido o que é, como é e porque é tão útil a utilização dos microsserviços, principalmente em grandes sistemas.
Comente conosco sobre o que achou e se curtiu nosso artigo!
Referencias:
https://blog.geekhunter.com.br/arquitetura-de-microsservicos-x-arquitetura-monolitica/
https://www.redhat.com/pt-br/topics/microservices/what-are-microservices
Consultor Técnico: Quirino Neto