En esta charla, comentamos los beneficios de Azure Relay para conectar nuestras aplicaciones en la nube. Usamos una raspberry pi, que ejecutará una aplicación realizada en .NET Core la cual enviará información den tiempo real de los autobuses de Madrid
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Autobuses de Madrid en tiempo real con Azure Relay
1. 20.12.2017
Plain Concepts
Tech Day
Carlos Landeras y Rodrigo Cabello
Los autobuses de Madrid en tiempo real con
Azure Relay, .Net Core y una Raspberry Pi
Software Engineers
2. #PlainConceptsTechDay 2
9:00 – 9:45 CSS Grid Layout - ¡Se acabaron los hacks, larga vida al CSS!
9:45 - 10:30 Desarrollo de aplicaciones multiplataforma utilizando Xamarin
10:30 - 11:15 Docker: de principante a pro
11:15 - 11:25 ¿Qué es la Fundación Theodora?
11:25 - 11:45 Break
11:45 - 12:30 Los autobuses de madrid en tiempo real con Azure Relay,
.Net Core y una Raspberry Pi
12:30 - 13:15 Swagger Code Generation: Cuando front encontró a back
13:15 - 14:00 Entrega contínua con Visual Studio Team Services
Plain
Concepts
Tech Day
3. @plainconcepts 3
Más de 9 años de experiencia en
tecnologías .NET y desarrollo de
aplicaciones Web. Apasionado de las
nuevas arquitecturas y herramientas Front-
End.
Carlos Landeras
Experiencia de más de 8 años en el
desarrollo de aplicaciones web. Apasionado
de las nuevas tecnologías y aplicaciones que
utilizan técnicas basadas en Inteligencia
Artificial.
Rodrigo Cabello
SOFTWARE ENGINEER SOFTWARE ENGINEER
@mrcabellom @Carlos_Lande
6. • Socket de comunicación es un recurso que se utiliza para transferir
datos entre aplicaciones.
• Extensión del protocolo HTTP para simular un socket. Utilizan el
puerto 80/443 (TLS). Proporcionan un canal de comunicación
bidireccional y full-dúplex sobre un único socket TCP.
• En los navegadores web, se utilizan para mantener un flujo de
comunicación constante.
• API WebSockets para la mayoría de navegadores web.
WebSocket
@plainconcepts 6
INTRODUCCIÓN
var connection = new WebSocket('ws://html5rocks.websocket.org/echo');
8. • Azure Relay es uno de los pilares de la plataforma Azure Service
Bus.
• Permite exponer servicios de redes corporativas en la nube (Sin
realizar cambios intrusivos o abrir nuevas conexiones en el
firewall).
• Azure Relay cuenta con dos servicios:
• Conexiones híbridas: Websockets
• WCF Relays: Windows Communication Foundation (WCF).
• Conexiones híbridas:
• Evolución segura y de protocolo abierto. Basada en
WebSockets y Http.
• Sustituye a BizTalk Services.
Azure Relay
@plainconcepts 8
INTRODUCCIÓN
9. • Permite establecer una comunicación bidireccional entre dos aplicaciones utilizando un streaming binario.
• Se puede configurar fácilmente a través del portal de Azure.
• Mecanismo de autenticación basado en SHA-256.
• Azure Relay permite hasta 25 clientes con el Rol de Agente de escucha.
• Librerías disponibles para:
• .NET Framework, .NET Core
• Node.js
Azure Relay
@plainconcepts 9
INTRODUCCIÓN
10. • Creando nuestro namespace de Relay
• Añadimos un nuevo recurso Relay en Azure.
• Seleccionamos nuestro nombre de enpoint (*.servicebus.windows.net)
• Seleccionamos la localización del rendezvous point.
Azure Relay
@plainconcepts 10
CONEXIONES HÍBRIDAS
11. • Creando una conexión híbrida
• Seleccionamos el identificador de nuestra conexión.
• Elegimos si la conexión será autenticada.
• Creamos las políticas de acceso compartidas.
• Cada política tiene su propia clave primaria.
Azure Relay
@plainconcepts 11
CONEXIONES HÍBRIDAS
12. • Roles de Agente de escucha y Remitente.
• Conexiones mediante Web Sockets Secure (443).
• wss://{namespace}/$hc/{name}?sb-hc-action=…&sb-hc-token=
Azure Relay
@plainconcepts 12
PROTOCOLOS DE CONEXIÓN
18. • ¿Qué es una Raspberry Pi?
• Ordenador de placa simple (SBC) de bajo coste desarrollado en el Reino Unido en 2011
• Arquitectura ARM.
• Sistemas Operativos soportados:
• Raspbian
• Noobs
• Ubuntu
• Windows IoT
• GPIO (Python, C, C++) Acceso a sensores.
.NET Core ARM
@plainconcepts 18
RASPBERRY PI
19. • Si tenemos varios SDK instalados, tenemos que añadir como target la version del sdk 2.0.0
• Comprobamos que nuestro proyecto tiene como target dicha versión ejecutando el commando dotnet –version
dentro de la carpeta de la solución.
• Publicando el Proyecto con la línea de commandos
.NET Core ARM
@plainconcepts 19
CONFIGURACIÓN DEL ENTORNO
> dotnet publish -c Release –r linux-arm
20. • Raspbian Linux OS
• Dotnet runtime 2.0.0
• Ejecutar dotnet AzureRelay.dll
• Ejecutar ./AzureRelay (nativo)
.NET Core ARM
@plainconcepts 20
RASPBIAN ARM RASPBERRY PI
> sudo apt-get install curl libunwind8 gettext
> curl -sSL -o dotnet.tar.gz
https://dotnetcli.blob.core.windows.net/dotnet/Runtime/release/2.0.0/dotnet-
runtime-latest-linux-arm.tar.gz
> sudo mkdir -p /opt/dotnet && sudo tar zxf dotnet.tar.gz -C /opt/dotnet
> sudo ln -s /opt/dotnet/dotnet /usr/local/bin
24. www.plainconcepts.com
MADRID
Paseo de la Castellana 163, 10º
28046 Madrid. España
T. (+34) 91 5346 836
BILBAO
Calle Ledesma 10-bis 3º
48001 Bilbao. España
T. (+34) 94 6073 371
BARCELONA
Carrer Compte d’Urgell 240 4º A
08036 Barcelona. España
T. (+34) 93 7978 566
SEVILLA
Avenida de la innovación s/n
Edificio Renta Sevilla, 3º A
41020 Sevilla. España
T. (+34) 600 58 75 43
DUBAI
Dubai Internet City. Building 1
73030 Dubai. EAU
T. (+971) 4 551 6653
LONDON
Impact Hub Kings Cross
24B York Way, N1 9AB
London. UK
SEATTLE
8201 164th Ave NE
Redmond, WA 98052
Washington
T. (+1) 206 708 1285