En busca del Software Perfecto o el menor número de fallos posibles
Como sabemos, aquí en Pandora FMS nuestra labor es la monitorización, siempre de manera flexible, y la cual consiste, en pocas palabras, en verificar que todo vaya bien. En un mundo perfecto no sería necesaria la monitorización pero, como la mecánica cuántica a nivel infinitesimal rige este universo que apenas conocemos, hay cantidad de cosas que pueden ir mal. Un servidor sin memoria RAM del tipo ECC puede verse afectado por la radiación solar o cósmica, ocasionando resultados impredecibles.
Como sabemos que “si hay muchas maneras de hacer algo, una de esas maneras saldrá mal”, siempre se ha programado desde el punto de vista de agregar redundancia, una tras otra, para así minimizar los eventos indeseables. En este artículo no nos adelantaremos tanto en el futuro, sino que visitaremos conceptos clave que hemos expuesto con anterioridad para luego sí hablar sobre el Software Perfecto, su búsqueda y la verificación de su existencia.
Software Perfecto y monitorización
Una de las premisas de Pandora FMS consiste en estar en contacto permanente con nuestros usuarios, y este blog va de ello, para manteneros actualizados y conocer vuestras inquietudes acerca de nuestro software y la monitorización en general. A partir de la versión 7 (New Generation) escogimos la vía de la Liberación Continua de software para minimizar el impacto en las actualizaciones y con la mejora -y corrección- de pocos elementos puntuales, todo en aras de la perfectibilidad. Sin embargo, esto no es suficiente debido a muchos factores tanto internos como externos.
Factores internos
Ya os dijimos cómo va esto de la Liberación Continua de software en detalle. Es una tendencia hoy en día por parte de todas las casas de software el alcanzar el Software Perfecto. Mientras más cambios hagamos en un sistema, mayor probabilidad de encontrar resultados adversos.
En computación no existen los errores como tal, sino excepciones. Por ejemplo, todos sabemos que al dividir cualquier número entre cero el resultado es el infinito; sin embargo, en matemáticas hay funciones que cuando se les aplica la teoría de límites y derivadas pueden producir un valor fijo y exacto: ésa es una excepción. Siempre programamos para evitar las divisiones entre cero, pero pocas veces recordamos que no siempre obtendremos infinito -u otro resultado no acorde- como respuesta.
Lo que queremos indicar es que no alcanzamos nunca la perfección, sino que estamos dispuestos siempre a correr un riesgo muy pequeño: cuando obtenemos de un programa o sistema un 99% de satisfacción tendemos a indicar que “todo va bien”. Incluso Pandora FMS, con su monitorización dinámica, no nos agobia con alarmas innecesarias (siempre haya transcurrido un buen período de tiempo recolectando valores para discernir lo que es normal en una empresa pero no lo es en otras).
Desde luego, en este siglo XXI nos valemos no solamente de usuarios beta, sino que automatizamos las pruebas al máximo y además las empresas, para tener una mayor confianza, a medida que pasa el tiempo ofrecen recompensas monetarias a todos aquellos y aquellas que puedan descubrir alguna vulnerabilidad en el software.
Una vulnerabilidad es otra de esas excepciones de las que hablamos: probablemente por sí solas no molesten en absoluto a los usuarios, y corregirlas costará tiempo y dinero a los programadores y encargados del desarrollo. El problema radica en las insanas intenciones que albergan terceros para obtener cualquier tipo de beneficio indebido. Generalmente, en estos casos el cazarrecompensas de manera privada hace llegar su descubrimiento, le es retribuido económicamente su silencio hasta que la casa de software corrige la vulnerabilidad y es hasta ese momento en que el buscador de fortuna hace su alharaca pública (hasta le hacen caravana en los medios). Como vemos, en esos casos particulares todos ganan.
Factores externos
Como dijimos al principio, los servidores utilizan memoria RAM más costosa con Error-Correcting Code o ECC (Código de corrección de errores) para garantizar al CPU la entrega y recepción de datos. También un sobrevoltaje debido a la caída de un trueno sobre las líneas eléctricas, por más aparatos de protección que se tengan, pueden afectar de manera imprevista. Pero no solo los fenómenos naturales son culpables de contratiempos en nuestro trabajo.
La NASA y el software perfecto
Desde los albores de los ordenadores, la Administración Nacional de la Aeronáutica y del Espacio (National Aeronautics and Space Administration, o simplemente NASA) de los Estados Unidos ha dado cuenta de los ordenadores y su uso fue particularmente útil para cuando, a finales de los años 60, llegamos a la Luna. La misión que logró la hazaña fue la del Apolo 11 y la principal responsable del desarrollo del sistema operativo utilizado fue la doctora Margaret Hamilton.
Fue el 20 de julio de 1969 cuando las preocupaciones de esta brillante mujer sobre el Software Perfecto fueron cristalizadas en un rotundo éxito en el momento del alunizaje. La historia da para hacer una película, pero aquí os diremos que el ordenador de a bordo fue diseñado para utilizar un máximo del 85% de su capacidad de cálculo, discernir sobre cuáles tareas eran prioritarias y en caso de presentarse un glitch software reiniciar y continuar exactamente con los mismos valores al momento del infortunio.
Para aquella época todo esto era una verdadera hazaña y lo mejor del caso era que ninguno de los astronautas debía preocuparse en absoluto. Todo esto era transparente al usuario… o casi. En el momento del alunizaje, desde el centro de control de vuelo en Tierra ordenaron a los tripulantes el activar el radar de encuentro (“rendevouz radar”) que sirve para conectar dos naves espaciales, para luego emprender el regreso. La buena idea era que en caso de que fallara el alunizaje el radar estuviera encendido y funcionando para conectar al transbordador en órbita a 110 kilómetros de la Luna y traer sanos y salvos a nuestros héroes.
El radar tenía tres modos de funcionamiento: automático, manual y sincronizado con la computadora de a bordo. Se pensaba que los dos primeros modos no afectaban para nada a los cálculos de alunizaje, y de hecho lo operaron en modo manual… sin saber que bajo ciertas circunstancias muy particulares, por medio de la misma fuente de alimentación eléctrica que alimentaba ambos equipos, el radar comenzó a añadir “ruido” que el sistema operativo interpretaba como datos de monitorización enviados por el radar.
Como el sistema operativo sabía que estos datos no tenían nada que ver con el alunizaje, eran desechados continuamente e incluso varias veces reinició el ordenador sin que lo supieran los astronautas ni el equipo en Tierra. Y todo hubiera quedado allí, sin pena ni gloria, hasta que la carga de CPU sobrepasó el 85% y se dispararon las alarmas.
En total fueron cinco avisos de advertencia que casi hacen abortar la misión, de no ser porque buscaron las descripciones de los valores 1201 y 1202… para conocer que simplemente indicaba que quedaba menos de 15% de capacidad de cálculo. Sabiendo esto en tiempo real, finalizaron su cometido para gloria de la Humanidad.
El Software Libre y el Software Perfecto
Lamentamos desilusionaros: no son lo mismo, ni son sinónimos. La única ventaja del Software Libre es que podremos nosotros mismos analizar el código fuente, repararlo e incluso mejorarlo, siempre bajo nuestra absoluta responsabilidad y con la obligación de compartir todas nuestras modificaciones. Es entonces que el software libre es una herramienta o modelo para allanar el camino a la perfectibilidad del software y junto a la ingeniería de software algún día podrá ser alcanzado. Precisamente, en Pandora FMS, desde 2004, apostamos a este camino.
Nuestro destino: mudarnos de la Tierra
Cuando vayamos al espacio no tendremos los beneficios de la integración continua de software para entregarnos los parches necesarios. Incluso en esos casos tenemos que hacernos a la idea de la monitorización de los más diversos dispositivos. Cuando visitemos otros mundos, seguro que contaremos con la monitorización para alcanzar nuestras metas, por muy ambiciosas que parezcan hoy.
¿Dudas, comentarios? ¡Contactadnos! ¿Tenéis alguna historia o anécdota sobre la búsqueda del Software Perfecto? Dejad vuestros comentarios abajo.
Eso sí, antes de hacerlo, ¿por qué no dedicas unos minutos a conocer Pandora FMS?
Pandora FMS es un software de monitorización flexible, capaz de monitorizar dispositivos, infraestructuras, aplicaciones, servicios y procesos de negocio.
¿Quieres conocer mejor qué es lo que Pandora FMS puede ofrecerte? Descúbrelo entrando aquí: https://pandorafms.com/es
Si cuentas con más de 100 dispositivos para monitorizar puedes contactar con nosotros a través del siguiente formulario: https://pandorafms.com/es/contactar/
Además, recuerda que si tus necesidades de monitorización son más limitadas tienes a tu disposición la versión OpenSource de Pandora FMS. Encuentra más información aquí: https://pandorafms.org/es/
No dudes en enviar tus consultas. ¡El equipazo de Pandora FMS estará encantado de atenderte!
Programador desde 1993 en KS7000.net.ve (desde 2014 soluciones en software libre para farmacias comerciales en Venezuela). Escribe regularmente para Pandora FMS y ofrece consejos en el foro. También colaborador entusiasta en Wikipedia y Wikidata. Machacador de hierros en gimnasios y cuando puede se ejercita en ciclismo también. Fanático de la ciencia ficción. Programmer since 1993 in KS7000.net.ve (since 2014 free software solutions for commercial pharmacies in Venezuela). He writes regularly for Pandora FMS and offers advice in the forum. Also an enthusiastic contributor to Wikipedia and Wikidata. Crusher of irons in gyms and when he can he exercises in cycling as well. Science fiction fan.