Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Manos a la obra con: Microsoft Orleans Framework

Manos a la obra con: Microsoft Orleans Framework

Entra y lee de que va esto, de momento tienes el primer y segundo capítulo de este monográfico.

5087adcbce3dd0ff6155daa8f0948a95?s=128

Jose María Flores Zazo

June 12, 2022
Tweet

More Decks by Jose María Flores Zazo

Other Decks in Technology

Transcript

  1. Manos a la obra con: Microsoft Orleans Framework Ver. 1.0.0

  2. Bienvenidos Acerca de… ¡Hola! Gracias por leer “Manos a la

    obra con: Microsoft Orleans Framework”. Espero poder aportarte los conocimientos mínimos y necesarios para que puedas iniciarte en este apasionante mundo. Jose María Flores Zazo, autor
  3. Licencia bajo… Creative Commons Atribución 4.0 Internacional ¡Esta es una

    Licencia de Cultura Libre!
  4. Apúntate a la comunidad AZURE IOT # ESP https://jmfloreszazo.com/azure-iot-esp/

  5. Índice Resumen Sección 1 Orígenes Microsoft Orleans y Modelo de

    Actor Sección 2 Introducción ¿Cómo nos puede ayudar?
  6. Sección 4 Un Ejemplo Vamos a la parte más práctica

    Sección 5 Puntos importantes Detalles a tener en cuenta y conclusión Sección 3 Ciclos de Vida Teoría que dominar y como mejora tus actuales arquitecturas. Índice Resumen
  7. Requisitos previos y herramientas Resumen Conocimientos sobre codificación en C#

    Entorno de desarrollo Visual Studio 2022 y cuenta de Azure Y mucha paciencia para un tema tan árido
  8. Sección 1 Orígenes

  9. Microsoft Orleans y Modelo de Actor Orígenes(1/4) Microsoft Orleans es

    un proyecto Open Source que proporciona un modelo simple de programación que permite construir software que puede escalar desde una sola máquina a cientos de servidores. Podríamos asociar a Orleans como un runtime distribuido que permite desarrollar en .NET software capaz de procesar grandes volúmenes de datos y desplegar en la nube u on-premises. Orleans es un marco de trabajo que provee de muchas características de sistemas distribuidos. Pero antes debemos saber ¿qué es un Modelo de Actor?. Un Modelo de Actor se define como: un modelo matemático de computación concurrente que trata al “actor” como primitiva universal de las computación concurrente. Los frameworks de Modelo de Actor se basan en pasar mensajes entre actores, y los actores se crean según sean necesario. Estos modelos pueden aprovechar la concurrencia de procesadores con múltiples núcleos y las abstracciones del software. Esto quiere decir que son capaces de procesar millones y millones de mensajes en tiempo real o casi. ¿Qué es? – Un proyecto Open Source
  10. Microsoft Orleans y Modelo de Actor Orígenes(2/4) En 2010 Microsoft

    crea Orleans, y estamos en 2022 cuando publico este libro. Este proyecto llama mi atención cuando comienzo a investigar y poner en práctica el Modelo de Actor con Dapr. Gracias a soluciones precocinadas como Dapr, veo que el uso de estas librerías para personas con poca experiencia logra crear soluciones distribuidas globalmente de forma robusta así como de alta disponibilidad y muy elásticas. Esta biblioteca logra una abstracción tal que nos evita mucha complejidad. Por último Orleans nos permite que un solo desarrollador pueda crear un entorno escalable sin tener a una persona experta en desarrollo de sistemas distribuidos. Otros marcos de Modelo de Actor requieren mucho más trabajo tales como la monitorización y el ciclo de vida. Con Orleans nos evitamos todo esto; Orleans es una solución muy probada, tanto que se usa en muchas aplicaciones IoT. Inicialmente, Orleans se construyó para poder ayudar a expandir la computación en la nube a los desarrolladores cuando la nube aun era algo muy nuevo. Orleans tiene la capacidad de proporcionar servicios interactivos hiper-escalables que admiten un alto rendimiento y disponibilidad con la baja latencia de la nube y los sistemas locales.
  11. Microsoft Orleans y Modelo de Actor Orígenes(3/4) Un Marco de

    Actores existe para satisfacer unas necesidades técnicas; sin embargo, la sobrecarga adicional de conocimiento, experiencia, y la alta complejidad algorítmica hace que sea difícil lograr el objetivo del problema. Intentar satisfacer estos requisitos es un gran desafío y gracias a herramientas como Orleans, esto se hace más sencillo. Si nos vamos a las aplicaciones monolíticas que se usan y usaban para realizar múltiples proyectos, por ejemplo suelen usar un servidor donde tenemos la lógica de negocio de pedidos y envíos (estamos en una tienda on-line), esto es una mala opción, ya que cada elemento suele depender de un equipo de desarrollo, donde la comunicación no es todo lo fluida que debe con mucho acoplamiento y debería escalar de forma independiente, entre otras cosa casi siempre se vuelve compleja de mantener… pero no todo es malo en los monolitos. Los microservicios son aplicaciones de alcance granular que interactúan enter sí para completar un holístico comportamiento. Este termino se refiere al ámbito de trabajo que acopla débilmente la aplicación. Por ejemplo envíos y pedidos estará separados por su propio servicio. Desacoplar elimina la necesidad de escalar la aplicación como un todo, si no, con las piezas que nos interesen a demanda. Tambien nos permite diseñar sistemas complejos y desplegarlos de forma individual.
  12. Microsoft Orleans y Modelo de Actor Orígenes(4/4) He trabajado en

    diversos microservicios y en todos ellos al final se usan arquitecturas consolidadas, en este caso Orleans viene a aprovechar al máximo la computación en la nube con una solución casi lista para montar, lo que nos permite centrarnos en el negocio y no tanto en la arquitectura. Los modelos de actores de Bernstein y Bykov (2016) nos permiten mantener los ciclos de vida, la elasticidad y concurrencia. Los acores, objetos aislados de grano fino que permiten enviar y recibir mensajes asíncronos. Esta fase poco te podrá decir, ya que suelen ser complicados de entender, complejos y no se suelen ver hasta que no tienes un problema e empiezas a indagar. Por regla general un sistema de actores necesita de un equipo con mucha experiencia y conocimientos… Aquí viene Orleans que nos ayuda a reducir esa barreras. Orleans nacen en 2015 por parte de Microsoft y con una gran comunidad apoyándolo. Orleans es una solución viable para crear servicios distribuidos, elásticos, mantenibles e independientes de la nube (Azure, AWS, …). Este proyecto es capad de permitir a un solo desarrollador, sin un conocimiento profundo de actores, crear proyectos descentralizados a nivel mundial sin requerir desarrolladores especializados. Además, la curva de aprendizaje es baja, permite que cualquier desarrollador comience a construir modelos desde ya.
  13. Microsoft Orleans y Modelo de Actor Explicando el modelo de

    actor(1/3) El término actor se puede definir para nuestro propósito: utilizar una aplicación como abstracción del procesador con actores que pasan mensajes asíncronos por concurrencia. Los actores realizan el trabajo dentro de estas tres funciones: 1. Comunicaciones definidas por otros actores. 2. Lógica realizada en el mensaje antes de pasarlo al siguiente actor. 3. Crear nuevos actores. En resumen: cada actor sabe como manejar el trabajo que se le envía y dónde se pasará a continuación el mensajes, además un actor puede crear otros actores. Los actores se comunican mediante colas y mensajes. Cada actor tendrá su cola, procesará sus mensajes y los pasará al siguiente actor. Práctica común de procesar un solo mensaje a la vez. Los actores estan en un lugar aislado, es decir, que no necesitan compartir el acceso, de modo que si una instancia falla, no afectará a las demás instancias. Una vez completada la lógica, el actor para el mensaje de forma asíncrona a la cola del actor existente/creado. Cada actor se define de una forma única mediante un GUID o una URI. La garantía de entrega de mensaje determinará la confiabilidad de la entrega de mensajes. Existen tres tipos de garantías que varían en torno al uso del recursos. Actor – Partícipe de una acción o suceso
  14. Microsoft Orleans y Modelo de Actor Explicando el modelo de

    actor(2/3) 1. At-Most-Once, como máximo una vez. El mensaje se entregará cero o una vez. Esto es lo que implementa Orleans. Un mensaje nunca se entregará dos veces, pero se entregará una o ninguna vez. 2. At-Least-Once, al menos una vez. Se realizan varios intentos de entrega. 3. Exactly-One, exactamente una vez. Se entregará un solo mensaje cada vez, lo que incide en los gastos de un recurso. Actor Mensaje Mensaje Actor Mensaje Actor Estado aislado Mensaje Buzón de correo electrónico
  15. Microsoft Orleans y Modelo de Actor Explicando el modelo de

    actor(3/3) Un actor puede hacer todo el trabajo o enviarlo a otro para que complete el trabajo. Dependerá del diseño arquitectónico y la implementación. Se puede llamar al actor adicional para que procese un trabajo específico, como un microservicio. Los actores pueden tener fácilmente miles e incluso millones de transacciones concurrentes en una red global. Los framework de actores son comúnmente usados en IoT, IA y juegos. Pueden considerarse como una clase o varias clases que contienen lógica de negocio para crear una red que permiten computar para un mismo propósito.
  16. Microsoft Orleans y Modelo de Actor Modelo de actor impulsado

    con Orleans(1/4) El modelo esta basado en cualidades de granularidad para ahorrar en gastos, colas, mantener asincronía y concurrencia. La reducción del gasto se debe a la gestión del ciclo de vida de los actores, denominados actores virtuales o granos dentro del framework de Orleans. Los ciclos de vida son un trabajo tedioso para cualquier desarrollador ya que la configuración de la activación, espera entre trabajos y saber cuando desactivar una tarea, no esta al alcance de cualquier desarrollador. Al mismo tiempo los desarrolladores deben, saber inicia una nuevo actor o se extralimita en su tiempo, o gestionar uno que acapara recursos. Estos son los retos a los que se enfrenta cualquier persona que construye sistemas distribuidos. Orleans reduce estos requisitos de bajo nivel del ciclo de vida del grano. Es decir, que no necesitas personas altamente cualificadas, ya que lo que nos permite Orleans es centrarnos en la lógica de negocio. Como decía antes, incluso una sola persona será capad de dejar un proyecto bien armado, con un riesgo mínimo gracias a este framework. Ya he comentado que la garantía de entrega del mensaje es de 0 o 1 vez. Esto significa que se pueden perder, aunque se devuelva un mensaje de reconocimiento cuando el mensaje se entrega. Basado en granularidad – Reducción de gastos
  17. Microsoft Orleans y Modelo de Actor Modelo de actor impulsado

    con Orleans(2/4) Orleans mantiene actores virtuales (en memoria). Para poder diferenciarlos de los actores tradicionales, se usa ese término o bien granos. Los silos manejan los granos. Los silos son las aplicaciones de administración de recurso distribuidos que se ubican entre los clientes y los granos , realizan la verificación de los granos para garantizar la confiabilidad. Administración de Recursos Ciclo de vida Gestión de Recuperación Gestión de Fallos Guardado del Estado Creación del Actor Silo Creación de un Actor Virtual Interface Actores Necesidad de un sistema experto y recursos de bajo nivel. Actores Virtuales Elimina cualquier complejidad de bajo nivel.
  18. Microsoft Orleans y Modelo de Actor Modelo de actor impulsado

    con Orleans(3/4) Podemos usar grupos que son múltiples silos que pueden comunicarse y funciona entre ellos. Los silos pueden crear granos o enviar mensajes a los granos ya activos en nombre de la solicitud del cliente. Además, monitorizan la salud de los granos, y en caso de fallo, reactivación o recolección de basura, un silo puede necesitar un reinicio, o inicializar nuevos granos. Los silos tambien pueden solicitar granos a través de otros silos y por tanto pueden compartir comunicaciones. Los granos tambien pueden compartir átomos, consistentes, aislados y duraderos (ACID). Las transacciones tienen aislamiento serializable, es decir, que esta más aislado. Adémás, los controles de concurrencia basados en bloqueos eliminan las colisiones de escritura. Las transacciones en Orleans no utilizan un administración de transacciones centralizado (un orquestador), que limitaría el rendimiento y la escalabilidad. Los granos admiten secuencias administradas (Managed Streams)y disparadores por tiempo (Time Triggers). Los streams son ampliamente usados para sistemas de colas. Tambien admienten procesamiento de lotes con colas y puntos de control. Los puntos de control permiten que la transmisión está al tanto de los últimos elementos eliminados para serguir enviando el elemento siguiente de la cola.
  19. Microsoft Orleans y Modelo de Actor Modelo de actor impulsado

    con Orleans(4/4) Tanto Azure, como AWS u otras nubes pueden usar Orleans a través de colas y proveedores de streams. Tambien existen otro mecanismo llamado recordatorios (Reminders) que junto a los temporizadores pueden programarse (schedule) incluso cuando el grano no está activo. Es decir, que podemos programar trabajo para lotes o informes diarios. En resumen, los podemos programar para realizar tareas periódicas. Es agnóstico de la nube y debido a que Orleans usa .Net Core y .Net 6, nos permiten usarlo tanto en Windows como Linux o Mac. Eliminando la barrear y dependencia de un host o nube. Las interfaces, es importante comentarlo, hacen referencia a todos los granos para mantener el desacoplamiento basado en principios SOLID. Los granos y silos se llaman unos a otros basándose en interfaces que heredan el desacoplamiento y preparan el escenario para las pruebas unitarias. Nos voy a entrar a discutir los principios SOLID, supongo que ya los conoce, en caso contrario puedes visitar cualquier artículo al respecto y ponerte al dia. A nivel de arquitectura un solo apunte sobre SOLID, podemos hacer que las interfaces se incrusten dentro de la aplicación cliente o bien en un cliente proxy, permitiendo que otros clientes llamen al los endpoints del proxy sin estar acopladas las interfaces a los granos.
  20. Microsoft Orleans y Modelo de Actor Ciclo de Vida de

    los Granos Orleans implementa ciclos de vida automatizados para los granos. Esto reduce la sobrecargar en el equipo de desarrollo y hace que la implementación de actores sea mucho más sencilla. Este aspecto da mucha potencia a Orleans. Nos simplifica la forma de trabajar con frameworks distribuidos. Otros framework como Akka, depende de que los desarrolladores dediquen recursos a como activar y disponer de instancias, tambien no exige que exista un mecanismo para determinar si la instancia esta activa o no, alargar la vida para que se complete el trabajo, etc. Implementación automatizada – Orleans nos resuelve el problema
  21. Microsoft Orleans y Modelo de Actor Un solo desarrollador Ya

    lo he dicho antes, los gastos decrecen exponencialmente, hasta el punto que una sola persona puede crear una solución distribuida. Esto nos permite centrarnos en la lógica de negocio y no en las configuraciones y codigo complejo. Por ejemplo si quieres usar Erlang en vez de Orleans, tendrás que crear una arquitectura muy minuciosa. La aplicación Erlang necesita ser preparada cuidadosamente antes de construir los elementos estructurales, como los tiempos de los actores y aplicar el código de nivel básico antes de implementar la lógica de negocio. En cambio, Orleans tiene estos elementos incorporados en el marco y permite a los desarrolladores configurarlos según sea necesario. En resumen Orleans nos permite ponernos manos a la obra con los que realmente importa desde casi el minuto 0. Tu podrás con todo – No necesitas personas altamente cualificadas
  22. Microsoft Orleans y Modelo de Actor Casos de uso Orleans

    desde su creación en 2010, ha demostrado fiabilidad en entornos de producción. Parece que os estoy dando algo obsoleto, pero esto casi seguro que poca gente conoce esto y si estas con Dapr como yo te habrá picado la curiosidad. Estoy seguro que alguna de estas aplicaciones has usado y no sabías que se basaban en este framework: • Microsoft Skype. • Microsoft Hallo 4 y 5. • Gears of War 4. • Honeywell para su plataforma de IoT. Y en la actualidad se está usando en: • Microsoft Studios. • Visa. • YouScan. • DigitalOceans • Atlas Reality. Inc. Como veis no esta nada muerto, puedes ir a GitHub y luego meterte en el Discord de Orleans. Un poco de historia – Nos ayudará a ver que cosas hemos usado o usan Actores
  23. Sección 2 Introducción

  24. ¿Qué puede hacer Orleans por nosotros? Introducción Nos ayuda a

    crear aplicaciones nativas en la nube, elásticas y de alta disponibilidad. Nos permite aprovechar un framework de actor con concurrencia, elasticidad y alta disponibilidad, sin ser expertos en sistemas distribuidos. Aquellas aplicaciones de IoT, bolsas de valores, correo electrónico son casos de uso de manual de los framework de actor. Lo que realmente debes tener en cuenta es que un solo desarrollador con conocimientos de codificación, algunos paquetes NuGet y el framework de Orleans, te permitirán implementar soluciones de alta complejidad, como si fuera un juego de niños. Sencillez – Facilitarnos el trabajo
  25. Nativo en la Nube, Elasticidad y Alta disponibilidad Las tres

    palabras mágicas Los framework de actores se pueden aprovechar de las características innatas de las nubes: la distribución y la concurrencia. Orleans, nos permite usar distintas nubes, es multi-cloud. La elasticidad y disponibilidad son el resultado de varios factores en los objetos granulares que colaboran en un marco que supervisa y mantiene los cluster. La elasticidad se da principalmente por: • Tamaño del grano. Los granos no estan restringido a tamaño, pero si se construyen a tamaño monolítico y no implementan no podrá ser todo lo elástico que quisiéramos. Es mejor ir a los microservicios que nos permite una activación más rápida y por tanto ejecución. • Monitorización de la salud. Los silos monitorizan la salud en cada cluster. • Ciclos de vida. La orquestación inteligente de los ciclos de vida permiten la posibilidad de que los recursos estén disponibles cuando los granos necesitan ser creados. Orleans puede eliminar el usos de herramientas adicionales en la plataforma, como la gestión de la cache o un API. Los cluster y silos los podemos desplegar en Kubernetes. Los silos estan disponibles sin gestiones de red, cortafuegos o herramientas de terceros. Pero claro, algo tenía que tener: Orleans nos hace un vendor lock-in que es .NET. Mientras que la filosofía de los microservicios es poder hacerlos en cualquier lenguaje… Tenga en cuenta esto. Problemas de los sistemas distribuidos – Los que debemos resolver
  26. ¿Cómo se está usando Orleans? Casos de Uso(1/2) No todos

    los proyectos deben ser tan grandes como los que he mencionado antes. Para ver si Orleans se alinea con tu proyecto puedes considerar las siguientes restricciones: • Cientos o incluso billones de objetos que estan débilmente acoplados. • Entidades atómicas que pueden ejecutarse en un solo subproceso. • Actividades interactivas, como son resquest & responses. • El requerimiento de crecimiento en más de un servidor. • No se requiere un manejo holístico ya que los granos mantienen su funciones. Estos casos de usos cumplen al 100% las anteriores restricciones: • IoT. Miles o millones o … de señales de dispositivos que se comunican con el cluster, que desencadena eventos, que mantienen transacciones individuales a escala global, alta concurrencia, elasticidad, … IoT es el más representativo, cada grano representa un dispositivo IoT, IoT esta descentralizado y requiere concurrencia de transacciones consistentes des de cada dispositivo. • Mensajería Instantánea. Se necesita organizar gran cantidad de transacciones para los clientes que pueden estar en cualquier parte del mundo. Los granos representan a cada grupo. Algo ya hemos visto – Repasamos los principales casos de uso
  27. ¿Cómo se está usando Orleans? Casos de Uso(2/2) • Juegos.

    Los jugadores viven en todo el mundo, las estadísticas de juego deben ser muy elásticas, ya que deben mantener salas de jugadores, personajes, etc. Etc. Solo tienes que pasarte por el grupo de Discord (job) y ver la cantidad de trabajos ofertados al respecto. • Reservas. Se requiere elasticidad, descentralización, concurrencia, alta demanda, … Las aerolíneas y los hoteles tienen alta demanda durante las vacaciones, y la fluctuación suele ser repentina. Los clientas además, pueden realizar las transacciones desde cualquier parte del mundo, y evitar una doble reserva, para ello los actores virtuales se comunican entre sí y con la base de datos para resolver el problema. • Bolsa de valores. Este software requiere alta concurrencia, elasticidad y velocidad para calcular precios o estadísticas. • Juegos de azar. Es como la bolsa de valores. • Telecomunicaciones. Para conmutación de nodos, servicios, torres… deben crear sistemas simultáneos que permitan flexibilidad. • Correo electrónico. Solución escalable y robusta que pueda pasar por diferentes protocolos.
  28. Ejemplo, librerías, grupos de discusión… Un solo desarrollador(1/2) En la

    anterior dirección podrás encontrar un tutorial que podrás seguir y ver como un solo desarrollador es capad de poner en práctica Orleans. Las paquetes de NuGet son: Donde Microsoft.Orleans.Server y Microsoft.Orleans.Client son los meta-Packages que nos dan las dependencias que probablemente usaras en los Silos y Clientes. Ejemplo – https://dotnet.github.io/orleans/docs/tutorials_and_samples/tutorial_1.html Project Nuget Package Silo Microsoft.Orleans.Server Silo Microsoft.Extensions.Logging.Console Client Microsoft.Extensions.Logging.Console Client Microsoft.Orleans.Client Grain Interfaces Microsoft.Orleans.Core.Abstractions Grain Interfaces Microsoft.Orleans.CodeGenerator.MSBuild Grains Microsoft.Orleans.CodeGenerator.MSBuild Grains Microsoft.Orleans.Core.Abstractions Grains Microsoft.Extensions.Logging.Abstractions
  29. Ejemplo, librerías, grupos de discusión, … Un solo desarrollador(2/2) Microsoft.Orleans.Abstractions,

    casi seguro que lo usaras en todas partes. Se incluye en Microsoft.Orleans.Server y Microsoft.Orleans.Client. Microsoft.Orleans.CodeGenerator.MSBuild genera automáticamente el código que se necesita para realizar llamadas a granos a través de los límites de la máquina. Por lo tanto, es necesario tanto en proyectos Grain Interfaces como Grains. Sitios donde encontrar más información: • https://docs.microsoft.com/es-es/dotnet/orleans/ • https://gitter.im/dotnet/orleans • https://aka.ms/orleans-discord • https://dotnet.github.io/orleans/ • https://twitter.com/msftorleans?lang=es
  30. Para tener en cuenta Aspectos fundamentales(1/3) Diversas opciones de alojamiento

    Este framework puede ejecutarte en local, en cualquier nube que admita .NET o se puede desplegar en Kubernetes. Podemos poner en práctica DevOps, lo que permite CI/CD. Se actualiza constantemente, a la hora de escribir este monográfico esta en beta la versión 4.0 de Orleans que es capada de aprovechar las nuevas características de .NET 7. Gestión de recursos y ampliaciones Ya he comentado que el ciclo de vida de Orleans gestiona los recursos mediante activación y desactivación de granos. Por tanto, estamos hablando de la capacidad de escalar en función de diversas medidas de los recuros: CPU, transacciones, etc. Es capad de funcionar en aplicaciones monolíticas y de microservicios, logicamente el tiempo de activación/desactivación es menor en un microservicio. Nos evita el escalado horizontal ya que las instancias de granos son creadas en tiempo de ejecución. Características – Resumen
  31. Para tener en cuenta Aspectos fundamentales(2/3) Gestión de fallos Aquí

    debemos ser capaces de gestionar los fallos, algo nos ayudará la nube pero esta en nuestras manos usar técnicas más allá de la salud y recuperación de la nube. Lo habitual es usar: reintentos, recuperaciones de tipo roll-back, restablecer transacciones y volver al principio de la misma, control en los reintentos para evitar duplicidades, etc. Una lista recogida en Orleans: https://dotnet.github.io/orleans/docs/deployment/handling_failures.html Streaming Nos permite un calculo independen diente en cada grano del flujo, lo que otorga una potencia que nos permite tratar en cada parte del flujo los datos como queramos. Se puede usar Kafka, EventHub, Apache Spark, … Los sistemas actuales usan un modo unificado pero Orleans nos permite tratarlo de forma individual otorgando le poder de hacer lo que deseemos en cada punto del programa.
  32. Para tener en cuenta Aspectos fundamentales(3/3) A nivel de streaming

    Orleans sigue los siguientes requisitos: • Flujos flexibles. Nos da le poder de elegir como configurar un flujo. • Topologías dinámicas. Podemos cambiarlas en tiempo de ejecución. • Granularidad fina en los flujos. Nos permite una gestión final de flujo y no una unificada. • Distribución. Soporta una gran cantidad de flujos, elasticidad, recuperación rápida ante falos, eficiente con los recursos y respuesta virtual en tiempo real. Mas información: https://dotnet.github.io/orleans/docs/streaming/streams_why.html Persistencia Bases de datos. Orleans permite almacenar el estado del Grano en Azure Storages, SQL, … pero esto no es para todo aunque permita almacenar l estado del grano y al activase recoja los datos, tienes que tener en cuenta que todo no se puede hacer y posiblemente tendrás que trabajar con acceso nativo en los granos. Aquí Dapr y su implementación de actores no da una flexibilidad enorme. Por ejemplo, patrón para cache: https://github.com/OrleansContrib/DesignPatterns/blob/master/Smart%20Cache.md
  33. Sección 3 Ciclo de vida

  34. Este ejemplo lo que va a realizar es enviar telemetría

    de un dispositivo y dicha telemetría la vamos a enrutar a un storage para su posterior análisis. Lanza VS Code y ejecuta el ejemplo. Deja que envíe mensajes cada segundo o cada cinco segundos, a tu parecer. Yo para la demo usaré 1 segundo. csharpRouteSample – Enrutamiento de telemetría https://github.com/jmfloreszazo/HandsOnIoTAzure Un vistazo a… Routing(3/16)
  35. ¡Gracias! Puedes encontrarme buscando por jmfloreszazo en https://jmfloreszazo.com