image

Access unlimited bootcamps and 650+ courses

50
%OFF
Article image

FS

Fabio Simors22/06/2023 12:15
Share

Uma nova abordagem :MicroServiços

    Primeiro vamos entender um pouco melhor como funcionam os monolitos e seus contras.

    A arquitetura monolítica tem sido a abordagem dominante por muito tempo. Porque as linguagens da época não permitiam um uso mais fácil de microserviço ou porque o sistema em si não necessitava de outra abordagem. Monólitos são aplicativos complexos em que toda a funcionalidade é fortemente acoplada e implantada em uma unica linguagem e reside em um único projeto. No entanto, à medida que a tecnologia e as necessidades de negócios evoluem, um novo paradigma surgiu - microsserviços. Nesta postagem, exploraremos o conceito de microsserviços, suas vantagens e desvantagens. Tambem irei citar sobre 5 ferramentar para desenvolver um microserviço send elas: iframes, module-federation, web components, nginx e bibliotecas.

     

    Monólitos: prós e contras

    O monolito tem algumas vantagens, como desenvolvimento simplificado, facilidade de implantação e depuração direta. Os monólitos também fornecem uma visão unificada do sistema, facilitando o gerenciamento de recursos compartilhados e a manutenção da integridade dos dados. No entanto, à medida que os aplicativos crescem, os monólitos podem se tornar difíceis de manejar. Eles carecem de flexibilidade, escalabilidade e podem sofrer com ciclos de lançamento mais longos devido à sua natureza fortemente acoplada. Fazer o deploy de uma correção de erro pode tambem ser uma tarefa difícil quando 2 desenvolvedores estão mexendo em uma mesma parte do código.

    Microsserviços: prós e contras

    Os microsserviços, por outro lado, oferecem uma abordagem mais modular e distribuída. Em vez de um único aplicativo monolítico, o sistema é dividido em serviços menores e autônomos que se comunicam entre si por meio de APIs. Esse estilo arquitetônico traz inúmeros benefícios. Os microsserviços permitem desenvolvimento e implantação independentes, permitindo que as equipes trabalhem em diferentes serviços simultaneamente. Eles também facilitam a escalabilidade, o isolamento de falhas e a adoção de diversas tecnologias. No entanto, os microsserviços apresentam complexidade adicional em termos de descoberta de serviço, comunicação entre serviços e consistência de dados entre serviços. Não é muito recomendado para aplicações mais simples, um dos pontos é porque o deploy em produção pode se tornar mais complexo. Tendo em vista a quantidade de projetos que precisam ir para produção. No entanto, uma vantagem dos microserviços é que quando um microserviço para de funcionar ele não poê em risco toda a aplicação, mas é importante manter a análise de cada microserviço

    iframes: No contexto de microsserviços, iframes referem-se à incorporação de um serviço dentro de outro usando iframes, permitindo uma integração perfeita, nesse caso os componentes conseguem conversar entre si dentro da página.

    Module-federation : essa abordagem permite o compartilhamento de código entre microsserviços, carregando e executando dinamicamente módulos de serviços remotos. Ele promove a reutilização de código e facilita o desenvolvimento de serviços fracamente acoplados.

    NGINX: É um servidor web parecido com o apache porém ele funciona como proxy e é orientado a eventos, muito útil para processamento de muitas requisições simultâneos e altamente escalável.

    web components: Os componentes da Web são um conjunto de APIs de plataforma da Web que permitem a criação de elementos personalizados reutilizáveis. Essa abordagem facilita o desenvolvimento de microsserviços independentes e encapsulados que podem ser usados ​​em vários aplicativos.

    Bibliotecas: Disponibilizam componentes prontos para utilização, cortando o tempo para desenvolver novos componentes, porém você pode ficar refém de uma biblioteca caso ela pare de ser atualizada ou de algum problema.

    Os microserviços são muito uteis para aplicações complexas, a necessidade do seu produto ou projeto que irá definir qual a melhor abordagem ou linguagem para ser aplicada , lembrando que não existe melhor linguagem ou arquitetura, mas existe a que mais se aplica as suas necessidades.

    Share
    Comments (0)