Microcomputadoras – Algunas recomendaciones desde la experiencia para sacarles el máximo provecho

Escrito por: Marcos Ezquerra 

Desde hace bastante tiempo el equipo de Fx2 viene experimentado diferentes soluciones y alternativas con la microcomputadora Raspberrry PI, en principio pensando en soluciones para IoT, luego fuimos transitando hacia soluciones de hardware sustituto para procesar información distribuida.

Nuestra experiencia inició como una estrategia para mitigar problemas en proyectos de bajo presupuesto y luego de algunos ensayos decidimos remplazar microcontroladores Arduino y computadoras por microcomputadoras Raspberry PI.

Compartimos algunas conclusiones que se basan en nuestra experiencia en ambientes reales, con productos y servicios en ejecución, y que más allá de un tema de costos, la inclusión de las microcomputadoras nos ayudó distribuir mejor el trabajo de cada pieza de software.

Fijar el alcance de tareas en la microcomputadora

Si bien parece algo trivial, en múltiples oportunidades se comete el error de darle más tareas que las necesarias al microcomputador.

La microcomputadora tiene una capacidad de procesamiento y salida de audio/video muy interesante. Durante el proceso de desarrollo de las soluciones suele suceder que “es más rápido” o “tiene impacto mínimo en el backend” delegar tareas de procesamiento hacia el exterior, en este escenario esto debe ser revisado.

Recomendación: definir de forma específica la/s tarea/s que debe realizar la microcomputadora y los datos que debe enviar y recibir. Actualizar el backend para que cumpla con las necesidades de recibir/enviar información al nodo.

 

No almacenar información innecesaria

Almacenar logs o registros de operaciones o datos es algo útil al inicio del proyecto para entender el circuito total del sistema que ahora se distribuye en múltiples puntos.

Una vez que se ha obtenido y estabilizado el ciclo de trabajo, prescindir de los logs y registros en las microcomputadoras o determinar un mecanismo de limpieza periódico y eficaz es algo fundamental.

Recomendación: los logs y registros de seguimiento se deben enviar a un repositorio externo y/o en todo caso se debe poder activar y desactivar a gusto.

Backend

El procesamiento en puntos distribuidos para extracción de información es algo extremadamente útil, nos permite concentrar el esfuerzo en resolver pocas tareas concretas con un procesador dedicado, obtener la información en tiempo real y tomar acciones.

Es importante que el backend (servidor / servicios) sea sólido y coherente con lo que pide y devuelve a cada uno de los puntos de procesamiento.

Cada resultado de tarea procesada la debemos poder mapear a un servicio o microservicio y este debe exigir el conjunto de datos óptimo (lo necesario y suficiente).

Recomendación: un backend desarrollado por expertos y con tecnologías modernas hace la diferencia en este tipo de soluciones.

Ventajas a factores externos

Las microcomputadoras presentan también algunas ventajas a los problemas o factores externos. Son muy eficientes para recuperarse ante el corte de energía, se debe prever iniciar la cantidad necesaria de servicios para no saturar el inicio y que quede rápidamente en línea.

El consumo es muy bajo, con lo cual si hay UPS para darle continuidad casi que no influyen en el consumo comparados con otros equipos.

Recomendación: asegurarse, antes de instalarla en sitio, de que el re-inicio luego de un corte de energía es limpio y no tiene demoras. Si se debe conectar a servicios de otros equipos, preveer que estos pueden no estar activos aún.

 

Seguridad

Mediante configuración adecuada la microcomputadora es segura, depende de cómo la configuremos y que queremos proteger.

Recomendación: Cargar la información necesaria al inicio, tanto con Linux como con Windows IOT esto es vital. Tener un setup mínimo de seguridad (cambiar o deshabilitar lo innecesario, no usar usuarios/password por defecto, instalar un firewall)  

En este linnk tiene mucha información detallada al respecto: https://www.raspberrypi.org/documentation/configuration/security.md

No tentarse con el martillo para todos los clavos

Las soluciones de software son cada vez mas demandantes en tiempos de respuesta, calidad y usabilidad, proactividad y efectividad.

No siempre las microcomputadoras son la solución en ambientes con puntos de procesamiento distribuidos. Hay escenarios en que la toma de decisiones y el cambio de paramétrica debe ser centralizado.

Recomendación: las microcomputadoras son interesantes para procesar pequeños volúmenes de información en tiempo real de forma repetitiva, para interactuar con dispositivos físicos gracias a su array de inputs/outputs GPIO, para puntos remotos que requieran otros dispositivos que se conecten por USB.