Comunidad #MicUP Dapr • Distributed application runtime • https://dapr.io • APIs para construir microservicios portables y confiables. • Funciona junto a otros marcos de trabajo. • No es específico del lenguaje.
Comunidad #MicUP Building Blocks • Service-to-Sercice: Llamadas directas y seguras a métodos de servicio a servicio. • Administración de estado: crea servicios con estado de ejecución prolongada. • Pub/Sub: mensajería segura y escalable entre servicios. • Binding: activadores desde sistemas externos. • Actores: encapsula codigo y objetos de actor con un patrón muy común. • Observabilidad: ver y medir llamadas de mensajes a componentes y entre servicios de red. • Secretos: acceso seguro a los secretos de tu aplicación. • Configuración: administra y notifica de cambios de configuración en la aplicación.
Comunidad #MicUP Ejemplo DAPR SIDECAR DAPR COMPONENTS SERVICE A SERVICE B SERVICE C Get Object Created Updated Deleted SUBCRIBE SUBSCRIBE Push new Object Push new Object
Comunidad #MicUP DEMO La herramienta • https://docs.dapr.io/getting-started/install-dapr-cli/ • dapr run --app-id myapp --app-port 5000 --dapr-http-port 3500 -- dotnet run In the Beginning... Was the Command Line Neal Stephenson (1999)
Comunidad #MicUP DEMO Bindings https://jmfloreszazo.com/net_dapr_microservices_bindings/ Y un apunte sobre los metadatos: https://jmfloreszazo.com/net-6-dapr-microservices-metadata/
Comunidad #MicUP DEMO Tye Service Discovery Persistencia https://github.com/atmiraio/meetupCordoba20220428 Y de paso Tye… si quieres ampliar más: https://speakerdeck.com/jmfloreszazo/introduccion-al-proyecto-tye https://youtu.be/wDGuHQfavSY
Comunidad #MicUP Otros Actors https://docs.dapr.io/developing-applications/building- blocks/actors/actors-overview/ Este building block, es una implementación del Virtual Action Pattern. En modo muy resumido lo que pretende es que tu código sea una unidad autónoma (llamada actor) que recibe mensajes y procesa uno cada vez, sin ningún tipo de concurrencia o subprocesamiento. Middleware Ser capaz de cambiar el comportamiento o ampliar la funcionalidad de una pieza de software, sin cambiarlo desde el interior, es bastante limpio. https://docs.dapr.io/reference/components-reference/supported- middleware/ Por ejemplo, tenemos: rate limit, OAuth2, Bearer, …