Tolerancia a fallos y disponibilidad

En un sistema compuesto por  nodos de cómputo distribuidos la probabilidad de que se produzca un fallo aumenta, pero se debe garantizar que el sistema siga funcionando a pesar de ellos. Y minimizando las pérdidas de información y/o rendimiento, es decir, garantizando una calidad de servicio mínima a los usuarios.

Desde el punto de vista de la arquitectura, la principal herramienta que se puede utilizar para resolver este problema es la redundancia, es decir, incluir recursos adicionales a los estrictamente necesarios para la operación normal del sistema. La redundancia siempre incrementa el coste de la arquitectura, por lo que es importante elegir adecuadamente el tipo de recurso adicional que se va a utilizar.
Existen distintos tipos de redundancia, principalmente hardware, software y  de información. Y se puede aplicar a diferentes niveles (físico, sistema operativo, aplicación). Por ejemplo, en lo que se refiere al hardware, dos de los elementos críticos para conseguir la tolerancia a fallos que se suelen incluir en todos los diseños actuales son las SAI (Sistemas de Alimentación Ininterrumpida) para la alimentación y los RAID para el almacenamiento.

A veces el concepto de la tolerancia a fallos se confunde con el de disponibilidad, pero, aunque estén relacionados, no se refieren exactamente a lo mismo. La disponibilidad es la capacidad de un sistema de garantizar la continuidad en su operación ante cualquier situación. Los usuarios deben tener, la mayor parte del tiempo, la capacidad de acceder a la arquitectura para lanzar trabajos, realizar tareas de configuración y mantenimiento, recoger resultados, etc. Esta capacidad del sistema se suele cuantificar con el porcentaje de tiempo que ha estado disponible para los usuarios (se habla de alta disponibilidad cuando este porcentaje está en un valor a partir de los tres nueves, es decir, por encima de un 99.9%).

Obviamante debemos tener resuelta la tolerancia a fallos para conseguir sistemas de alta disponibilidad. Pero la continuidad en el servicio no sólo se ve amenazada por fallos o desastres, también existen discontinuidades en el servicio por paradas programadas, por ataques de denegación de servicio o por picos de demanda del servicio, sólo por poner algunos ejemplos.

Big Data


El término Big Data surge cuando los conjuntos de datos con los que se trabaja son demasiado costosos de capturar, compartir, almacenar, buscar, segmentar, visualizar y analizar con las herramientas hardware y software tradicionales. Se suele asociar este concepto a volúmenes de datos de exabytes y zettabytes (es decir, en órdenes de magnitud de 10 a la 18 y de 10 a la 21 respectivamente). 

Aunque tradicionalmente esta dificultad para extraer información y conocimiento valiosos de grandes conjuntos de datos se daba sólo en aplicaciones científicas, en la actualidad son las aplicaciones industriales y empresariales las que más rápidamente están incrementando sus necesidades de procesamiento de datos. Esto se debe sobre todo a la utilización de Internet y redes sociales, a los nuevos paradigmas de computación como Pervasive Computing (asociado a conceptos como Smart City o Internet of Things) y a la generalización de tecnologías como RFID, loa sensores wireless o los dispositivos móviles. Según un informe de IBM el 90% de los datos que se manejan en soporte digital actualmente, han sido creados en los dos últimos años. Y los datos se consideran hoy en día un recurso, al menos tan valioso como el resto de recursos de una organización. Siempre y cuando se pueda extraer de ellos conocimiento valioso para la toma de decisiones.

Es muy difícil hacer un resumen de todas las tecnologías, conceptos y metodologías que se asocian en la actualidad a Big Data, ya que además es un término que han adoptado rápidamente tanto los fabricantes de hardware como los de software. Pero intentaremos hacer un recorrido por las más importantes en entradas futuras.

¿Qué es una SmartCity?

Durante los últimos años se han llevado a cabo proyectos consistentes en la introducción de elementos domóticos e inmóticos para la gestión inteligente de casas, espacios comerciales e infraestructuras. Los distintos sistemas que concurren en una infraestructura (iluminación, calefacción, ventilación, climatización, anti incendios, video, megafonía, CCTV, control de accesos, suministros de energía, CPD…) han requerido de sistemas de información que han facilitado su integración y han proporcionado información que ha permitido realizar una gestión inteligente de dichos entornos. Cuando los conceptos de integración de sistemas, acceso a información en tiempo real, eficiencia, sostenibilidad o reducción de emisiones se extrapolan a la gestión integral de las infraestructuras y servicios que conviven en una ciudad (riegos, iluminación, tráfico, sistemas electromecánicos, recogida de residuos, etc…) es cuando surge el concepto de SmartCity.

No existen ciudades inteligentes. El desarrollo de una Smart City ofrece a los ciudadanos la posibilidad de actuar de forma inteligente, acercándoles toda la tecnología que se despliega en una ciudad (sensores, medidores, controladores, cámaras, sistemas de información). Los ciudadanos pueden aprovecharse de este despliegue tecnológico:

  • Reduciendo los tiempos de desplazamiento ya que conocen en tiempo real y a través de cualquier tipo de dispositivo móvil el estado del tráfico y la disponibilidad de plazas de parking.
  • Reduciendo los costes energéticos ya que se les proporciona información contextualizada de sus hábitos de consumos.
  • Incrementando la facilidad de acceso a lugares públicos porque se lleva a cabo una gestión de alarmas que permite reaccionar en tiempo real ante posibles averías de escaleras, pasadores urbanos…

Además de tener un impacto positivo y directo sobre los ciudadanos, las administraciones públicas se aprovechan de las inversiones realizadas, reduciendo drásticamente los costes asociados a las infraestructuras.

En este documental ofrecido por Informe Semanal, se tratan tres casos de éxito de aplicación del concepto SmartCity en las ciudades de Málaga, Rivas Vaciamadrid y el distrito 22@ de Barcelona. En particular, en la ciudad de Málaga la inclusión de inteligencia a la red de farolas de la ciudad ha permitido que los costes se reduzcan hasta un 30% o que se reduzcan las emisiones de C02 hasta un 20%.

Para finalizar, una de las claves que permite que una ciudad se convierta en SmartCity está en la integración de todos los sistemas que conviven en ella y la incorporación de sistemas de información que faciliten dicha integración y proporcionen la información necesaria en tiempo real para que los ciudadanos puedan tomar decisiones inteligentes.


Windows, Linux y transacciones de entre 2 y 12 segundos

En anteriores entradas se ha tratado el concepto de sistema tiempo real y qué características hacen que un sistema se considere tiempo real. De estas entradas pueden extraerse estas dos conclusiones:

  • Un sistema tiempo real no debe confundirse con uno que deba ejecutar tareas o gestionar información en intervalos pequeños de tiempo.
  • Un sistema en tiempo real debe asegurar que se cumplen las latencias.

En algún foro, ha surgido la siguiente discusión: ¿pueden considerarse sistemas operativos como Windows o Linux sistemas RTOS (Real Time Operating Systems)? La respuesta es no por varios motivos, pero el principal es que son sistemas operativos que no garantizan tiempos de respuesta deterministas.

¿Qué significa esto? Que la probabilidad entra en su funcionamiento (son estocásticos), es decir no se puede prever que un resultado se produzca siempre con la misma latencia. ¿Y qué factores hacen que un SO sea determinista? Principalmente dos, la planificación de procesos y el tratamiento de interrupciones de E/S.

Ninguno de los dos sistemas operativos mencionados gestiona estos dos aspectos de manera que se pueda garantizar el cumplimiento de unas latencias deterministas. Por este motivo no pueden utilizarse en entornos de tiempo real "estricto" o tradicional.

En paralelo a esta cuestión, surge otra discusión. Para la supervisión, control y gestión de información desde centros de control de infraestructuras y entornos industriales se requieren normalmente latencias de entre 2 y 12 segundos. ¿Son Windows y Linux capaces de realizar transacciones en este rango de tiempos aunque no me puedan garantizar que siempre van a tardar lo mismo en ejecutar las mismas tareas? La respuesta es afirmativa. Actualmente Windows tiene la capacidad de realizar transacciones de entre 0.1 ms y 100 ms, y Linux de alrededor de 1ms.

Por tanto, si nuestro sistema es realmente de tiempo real (valga la redundancia), no podemos utiilizar los sistemas operativos habituales y será necesario recurrir a sistemas RTOS diseñados específicamente con este objetivo. Pero para las típicas aplicaciones de supervisión y control de infraestructuas y entornos fabriles, con las latencias antes mencionadas, suele ser más que suficiente cualquiera de estas dos alternativas.