Microsserviços: estruturas de código aberto e arquitetura de software

Microsserviços: uma arquitetura de software moderna

Microsserviços: uma arquitetura de software moderna

Continuando com o tema da evolução e mudanças de paradigmas e métodos de trabalho aconteceu na área de desenvolvimento de software, que abordamos recentemente nos artigos chamados "Desenvolvimento de software: uma revisão histórica até os dias atuais", "Interoperabilidade através da nuvem: como alcançá-la?" y "XaaS: Cloud Computing - Everything as a Service", hoje vamos falar sobre Microsserviços.

Os microsserviços são uma arquitetura de software moderna, não uma API (Interface de Programação de Aplicativo) ou uma tecnologia em si, que pode ser instalada e usada. As arquiteturas de software, também conhecidas como padrões de software, são completamente estranhas às linguagens de programação, uma vez que apenas estabelecem a forma como as tecnologias devem funcionar e não como são implementadas.

Microsserviços: Introdução

Introdução

Os microsserviços podem ser vistos como uma evolução da Arquitetura SOA (Arquitetura Orientada a Serviços), que orienta os desenvolvedores a criar aplicativos mais modulares, funcionais e autônomos, com alta capacidade de serem reutilizados de forma eficiente, como é feito de forma semelhante, quando otimizamos o uso de algum hardware, no qual ele apenas desdobra o que é realmente necessário, em vez de desdobrar todo o seu potencial desnecessariamente.

A arquitetura de microsserviços, na prática não se tornou tão difundido como na teoria, ou seja, é mais conhecido do que usado. No entanto, a cada dia mais, muitos desenvolvedores estão implementando porque é um modelo de desenvolvimento de software que Melhora as variáveis ​​tempo, desempenho e estabilidade dentro dos projetos onde é aplicado. Além disso, o seu escalabilidade simples associada torna-o especialmente adequado em desenvolvimentos onde a compatibilidade entre plataformas (Web, Mobile, Wearables, IoT) é essencial.

Microsserviços: Esquema de Trabalho

Mas enquanto SOA é uma arquitetura de nível superior, ou seja, uma arquitetura onde aplicativos baseados em serviços são construídos, onde um serviço é a menor e mais funcional unidade de trabalho dentro de um aplicativo criado, Arquitetura de microsserviços também nos permite criar serviços, mas esses serviços são projetados de uma forma muito pequena e específica para que cumpram uma funcionalidade muito precisa e pontual, de forma a que possam ser dissociadas das restantes aplicações e funcionem de forma totalmente autónoma em relação ao resto da aplicação onde foi criada.

Microsserviços: o que são e o que são?

O que são arquiteturas de software (padrões)?

Para entender bem a Arquitetura de Software de Microsserviços, é bom saber um pouco sobre todas as arquiteturas de software existentes mais conhecidas. São muitos existentes, como pode ser verificado no site da oodesign ou simplesmente em Wikipedia, mas de acordo com o famoso livro chamado "Livro de Design de Padrões" (Livro de padrões de design) padrões existentes podem ser classificados como:

Criativo

Aqueles que lidam com formas de instanciar objetos e cujo objetivo é abstrair o processo de instanciação e ocultar os detalhes de como os objetos são criados ou inicializados. Nesta aula estão os seguintes:

  • Fábrica Abstrata
  • Construtor
  • Método de Fábrica
  • Protótipo
  • Filho único

Estrutural

Aqueles que descrevem como classes e objetos (simples ou compostos) podem ser combinados para formar grandes estruturas e fornecer novas funcionalidades. Nesta aula estão os seguintes:

  • adaptador
  • ponte
  • composto
  • decorador
  • fachada
  • Peso mosca
  • procuração

Comportamento

Aqueles que nos ajudam a definir a comunicação e iteração entre os objetos de um sistema. O objetivo deste padrão é reduzir o acoplamento entre objetos. Nesta aula estão os seguintes:

  • Cadeia de Responsabilidade
  • Command
  • Intérprete
  • Iterador
  • Mediador
  • lembrete
  • Observador
  • Estado
  • Estratégia
  • Método de Template
  • Visitante

outros

Os padrões de projeto anteriores expressavam esquemas que definem estruturas de projeto com as quais construir sistemas de software. Mas quando queremos expressar melhor um esquema organizacional e estrutural fundamental para os sistemas de software criados, geralmente encontramos esta outra classificação:

  • Arquitetura de ardósia
  • DAO: objeto de acesso a dados
  • DTO: objeto de transferência de dados
  • EDA: Arquitetura Orientada a Eventos
  • Invocação implícita
  • Objetos nus
  • Programação em camadas
  • Pessoa para pessoa
  • Pipeline
  • SOA: Arquitetura Orientada a Serviços
  • Três níveis

Há também o "Modelo de visualização do controlador" que é bem conhecido e usado, e é dividido em:

  • Modelo / Visualização / Controlador
  • Modelo / Visualização / Apresentador
  • Model / View / Presenter com Model Presenter
  • Model / View / View-Model
  • Modelo / Visualização / Apresentador com Visualização Passiva
  • Modelo / Visualização / Apresentador com Controlador Supervisor

Sendo o "Controller View Model" um dos mais conhecidos e implementados hoje, é insuficiente para fornecer as funcionalidades necessárias a um aplicativo corporativo, e este é um dos principais motivos pelos quais, a arquitetura de microsserviços está substituindo o Model-View-Controller (MVC).

Microsserviços: vantagens

Vantagens da arquitetura de microsserviços

Quando uma plataforma da web faz uso da arquitetura de microsserviços, geralmente apresenta as seguintes vantagens:

  • Resolver facilmente cada problema ou problema apresentado ao abordar cada pequeno microsserviço envolvido em uma situação específica.
  • Para mitigar Falhas gerais ou globais dos serviços, pois quando um Microsserviço falha não afeta os demais, pois são totalmente independentes.
  • Facilitar o lançamento e incorporação de funcionalidades ou serviços completos ou específicos, uma vez que cada Microsserviço pode ser adicionado ou retirado e atualizado de forma separada e progressiva.
  • Melhorar acesso a aplicativos ou serviços criados a partir de todos os tipos de dispositivos e plataformas.
  • Aumentar a versatilidade da plataforma, pois os microsserviços podem ser distribuídos em diferentes servidores e escritos em diferentes idiomas.

Microsserviços: Frameworks

Frameworks de código aberto

Existem muitos opções de código aberto que os desenvolvedores de software podem usar para desenvolver soluções que fazem parte das arquiteturas de microsserviços. Especificamente para Java, que é uma tecnologia amplamente utilizada para isso, existem o seguinte:

Microsserviços: Webs

Exemplos de arquiteturas da Web com microsserviços

Entre o grande número de sites que prestam serviços de aplicativos em larga escala e têm implementado progressivamente a Arquitetura de Microsserviços para melhorar a manutenção e escalabilidade de sua plataforma de serviços e produtos, tornando-a simples, eficaz e rápida, podemos citar três dos principais do setor que são:

  • Amazon
  • Ebay
  • Netflix

Microsserviços: Conclusão

Conclusão

É claro que Os microsserviços contribuem muito para o desenvolvimento moderno de software baseado na WebMas também significam enfrentar muitos novos desafios a serem resolvidos. Problemas que não só têm a ver com a aprendizagem e funcionamento eficiente do Framework, mas também como estes novos desenvolvimentos são complementados e implementados nos departamentos de TI, que no final são aqueles que os colocam online e gerem, e têm o voto de peso nas decisões finais sobre cada empreendimento. Mas Esta Arquitetura está aqui e veio para ficar há muito tempo.


Deixe um comentário

Seu endereço de email não será publicado. Campos obrigatórios são marcados com *

*

*

  1. Responsável pelos dados: Miguel Ángel Gatón
  2. Finalidade dos dados: Controle de SPAM, gerenciamento de comentários.
  3. Legitimação: Seu consentimento
  4. Comunicação de dados: Os dados não serão comunicados a terceiros, exceto por obrigação legal.
  5. Armazenamento de dados: banco de dados hospedado pela Occentus Networks (UE)
  6. Direitos: A qualquer momento você pode limitar, recuperar e excluir suas informações.