En los últimos años, las arquitecturas de microservicios se han convertido en una opción popular entre los desarrolladores de la nube debido a sus ventajas, como la escabilidad, el acoplamiento de servicio flexible y las implementaciones independientes.
Cada servicio tiene que implementar una clase de almacén de datos como relacional, clave / valor, NoSQL y base de datos gráfica alineada con la funcionalidad. Los microservicios deben tener un mecanismo robusto de descubrimiento de servicios para la conectividad dinámica. Deben estar acoplados libremente para lograr autonomía y escalamiento independiente.
Los microservicios son políglotas donde cada servicio se implementa en el lenguaje, el marco y el tiempo de ejecución más apropiados.
Aunque la adopción de contenedores y motores de orquestación como Kubernetes abordan los desafíos en el empaquetado, la implementación y el escalado, el proceso de desarrollo sigue siendo complejo.
A fines del año pasado, Microsoft anunció un nuevo enfoque para desarrollar aplicaciones modernas basadas en el Tiempo de ejecución de aplicaciones distribuidas (Dapr), que es un tiempo de ejecución agnóstico de plataforma y lenguaje para microservicios y aplicaciones nativas de la nube.
Hay muchas consideraciones al diseñar aplicaciones de microservicios. Dapr proporciona las mejores prácticas para capacidades comunes al crear aplicaciones de microservicio que los desarrolladores pueden usar de manera estándar e implementar en cualquier entorno. Lo hace al proporcionar bloques de construcción del sistema distribuido.
Para hacer que el uso de Dapr sea más natural para diferentes idiomas, también incluye SDK específicos de idioma para Go, Java, JavaScript, .NET y Python. Estos SDK exponen la funcionalidad en los bloques de construcción Dapr, como guardar el estado, publicar un evento o crear un actor, a través de una API de idioma escrita en lugar de llamar a la API http / gRPC. Esto le permite escribir una combinación de funciones y actores sin estado y con estado, todo en el idioma que elija. Y debido a que estos SDK comparten el tiempo de ejecución de Dapr, obtienes soporte de actores y funciones en varios idiomas.
Además, Dapr se puede integrar con cualquier marco de desarrollador. Por ejemplo, en Dapr .NET SDK puede encontrar la integración de ASP.NET Core, que trae controladores de enrutamiento con estado que responden a eventos pub / sub de otros servicios. Y en Dapr Java SDK puede encontrar la integración de Spring Boot.
Saludos!