BT

Disseminando conhecimento e inovação em desenvolvimento de software corporativo.

Contribuir

Tópicos

Escolha a região

Início Notícias Dapr visa simplificar a criação de microservices resilientes e portáteis

Dapr visa simplificar a criação de microservices resilientes e portáteis

O Microsoft Dapr é uma estrutura open source orientada a eventos, desenvolvida para criar microservices resilientes e portáteis para aplicações em nuvem e no Edge. O Dapr encapsula as melhores práticas para a criação de microservices, disse a Microsoft, e permite que os desenvolvedores se concentrem na lógica comercial das aplicações.

O Dapr fornece orientação a eventos em tempo de execução suportando os recursos fundamentais necessários para criar microservices, como chamada de serviço, gerenciamento de estado, mensagens de publicação e de assinatura. Além disso, apresenta vários recursos mais avançados.

Os atores virtuais visam simplificar o gerenciamento da computação assíncrona, encapsulando o estado e o comportamento em objetos individuais que podem ser ativados e desativados, além de apoiar o uso de temporizadores para acionar a execução do código. Os atores também podem ser stateless. No Dapr eles são virtuais, o que significa que a representação na memória não está ligada à identidade e ao tempo de vida do ator. Em particular, um ator pode ser coletado automaticamente quando não utilizado por um período de tempo e criado quando é solicitado pela primeira vez. Os atores também podem migrar para um nó diferente, por exemplo, quando o nó em que estão começa a falhar. Para facilitar o manuseio da simultaneidade, os atores são de thread única e estão sujeitos a uma política de acesso baseada em turnos. Além disso, o tempo de execução do Dapr usará tempos limite para detectar e resolver possíveis conflitos.

A Dapr também oferece um modelo avançado orientado a eventos, no qual serviços externos, como bancos de dados, filas e webhooks, podem ser registrados como fonte de eventos que irão acionar a execução do código ou como consumidores de eventos. Isso é realizado por meio de ligações que simplificam a interação com esses serviços, manipulam tentativas e falhas, e permitem a transferência de uma aplicação de um serviço para outro sem alterações no código. No momento da escrita desta notícia, as ligações existentes ainda são experimentais.

Por fim, o Dapr também suporta rastreamento distribuído entre serviços, sendo eles internos ou externos. O rastreamento não requer a instrumentação do código da aplicação, pois o Dapr usa um middleware HTTP/gRPC que intercepta todo o Dapr e o tráfego da aplicação e injeta automaticamente IDs de correlação para rastrear transações distribuídas. O Dapr é compatível com o OpenTelemetry, que permite o uso de vários backends, incluindo Azure Monitor, Datadog, Instana, Jaeger, SignalFX, Stackdriver, Zipkin e outros.

A arquitetura Dapr segue o padrão de sidecar, isso significa que os componentes podem ser implementados como processos independentes ou como containers para fornecer isolamento e encapsulamento, não precisando incluir um tempo de execução no código da aplicação. Isso facilita a integração do Dapr com outros tempos de execução e o uso em um ambiente Kubernetes.

A Dapr fornece SDKs para várias linguagens, incluindo Go, Java, JavaScript, Python e, claro, .NET. Os SDKs específicos da linguagem expõem a API Dapr de uma maneira idiomática e ocultam a complexidade do uso da API HTTP/gRPC.

Podemos instalar o Dapr usando os scripts de instalação disponíveis para os principais sistemas operacionais. Para Linux, podemos executar os comandos:

$ wget -q https://raw.githubusercontent.com/dapr/cli/master/install/install.sh -O - | /bin/bash
$ dapr init

Podemos executar o Dapr localmente digitando o comando dapr run ou configurar um cluster Kubernetes para explorar os recursos de dimensionamento automático. Se planejamos utilizar o Dapr com o Kubernetes, precisamos verificar também o OAM (Microsoft Open Application Model) anunciado recentemente para o Kubernetes e a implementação inicial, Rudr. O OAM e Rudr têm como objetivo ajudar os desenvolvedores a definir as aplicações de maneira clara e dissociadas da implementação e preservar a separação de esforço entre desenvolvimento e implantação.

Avalie esse artigo

Relevância
Estilo/Redação

Conteúdo educacional

BT