One of the advantages that cloud developers take from their increased use of microservice architectures is scalability and the ability to combine services and create independent rollouts. However, there are some limitations to microservice architecture. A new Microsoft service called Dapr aims to solve those limitations.
Building applications on microservice architecture is not easy. That's a problem according to Microsoft. The company points out 90% of all new apps are predicted to include microservice architecture by 2022.
Dapr has been created to make it easier for developers to build apps with microservice architectures.
The service provides dev's with tools to build portable microservice applications running on the cloud and edge computing. Microsoft says Dapr supports all languages and frameworks and will be accessible for new code apps or for mitigating legacy apps.
Dapr reflects Microsoft's general recent direct and is open source. The tool contains building blocks that function with gRPC and HTTP APIs across all programming languages. With these blocks, developers receive standardized and independent applications for creating microservices.
Microsoft details the following features of Dapr
- “Service Invocation – Resilient service-to-service invocation enables method calls, including retries, on remote services wherever they are running in the supported hosting environment.
- State management – With state management for key/value pairs, long running, highly available, stateful services can be easily written, alongside stateless services in the same application. The state store is pluggable and can include Azure Cosmos or Redis, with others such as AWS DynamoDB on the component roadmap.
- Publish and subscribe messaging between services – Publishing events and subscribing to topics between services enables event-driven architectures to simplify horizontal scalability and make them resilient to failure.
- Event driven resource bindings – Resource bindings and triggers build further on event-driven architectures for scale and resiliency by receiving and sending events to and from any external resources such as databases, queues, file systems, blob stores, webhooks, etc. Your code can be triggered by a message on an Azure EventHub service and write data to Azure CosmosDB.
- Virtual actors – A pattern for stateless and stateful objects that make concurrency simple with method and state encapsulation. Dapr provides many capabilities in its virtual actor runtime including concurrency, state, life-cycle management for actor activation/deactivation and timers and reminders to wake up actors.
- Distributed tracing between services – Easily diagnose and observe inter-service calls in production using the W3C Trace Context standard and push events to tracing and monitoring systems.”