Hola Sebastian Pacheco
Estoy traduciendo las respuestas del inglés, así que por favor disculpa cualquier error gramatical.
Gracias por tu consulta tan detallada. Estás pensando en los aspectos correctos al considerar escalabilidad y seguridad para un escenario de ingesta masiva desde dispositivos médicos y con integraciones externas.
Te comento algunos puntos clave:
Seguridad y Capa de Exposición
Exponer Azure Functions directamente al exterior no es lo más recomendable en escenarios sensibles como el manejo de datos médicos. Aunque las funciones soportan autenticación basada en claves o identidades, no brindan un control completo.
Recomendación: Utilizar API Management (APIM) como capa frontal. APIM ofrece un control más granular: filtrado por IP, limitación de llamadas (rate limiting), autenticación (OAuth2/JWT), monitoreo centralizado, etc.
- Si optas por APIM, puedes deshabilitar el acceso público de la Function App usando integración con VNet + Private Endpoints, permitiendo que solo APIM se comunique con la función de forma segura.
- Application Gateway es más adecuado para aplicaciones web. Si todo es vía APIs, APIM por sí solo es suficiente.
Ingesta de Eventos
Dado que mencionas aproximadamente 8,000 dispositivos, es muy recomendable desacoplar la ingesta del procesamiento para evitar cuellos de botella y asegurar durabilidad.
Event Hubs (o IoT Hub, si necesitas identificar y gestionar dispositivos individualmente) es la mejor opción. Estas soluciones están preparadas para manejar millones de eventos por segundo.
Las Azure Functions pueden suscribirse a estos eventos y escalar automáticamente según la carga. Este patrón es común en escenarios de IoT o telemetría.
También podrías implementar procesamiento por lotes o aplicar lógica de control de flujo dentro de las funciones si es necesario.
Recomendaciones:
- Para integraciones con proveedores externos, nuevamente APIM es una buena opción si el intercambio es vía REST.
- Asegura todos los puntos de entrada (Event Hub, APIM, Azure Functions) usando identidad administrada, RBAC y reglas de red.
- Asegúrate de centralizar los logs (por ejemplo, en Azure Monitor o Log Analytics) para trazabilidad y generación de alertas.
Hazme saber si tienes alguna pregunta y estaré encantado de ayudarte.
Si la información proporcionada fue útil, no olvide “Aceptar respuesta” y “Votar”, esto también será útil para otros miembros de la comunidad