Cambiar el marco
De todas las unidades de este módulo, realmente es una de las más importantes. En esta unidad, se tendrán en cuenta algunas ideas que podrían cambiar la forma de entender la importancia de la supervisión y sus motivos. Para algunos, esto puede cambiar radicalmente todo lo que piensan sobre la supervisión para mejorar la confiabilidad.
Replanteamiento n.º 1: Confiabilidad desde la perspectiva del cliente
Hemos analizado varios aspectos de la confiabilidad que se pueden supervisar, pero parece que lo único que hemos hecho ha sido añadir más elementos a la lista de cosas que se podrían supervisar. Vamos a presentarle una idea que podría ayudarle a centrarse en qué debería supervisar para mejorar la confiabilidad:
La confiabilidad debe medirse desde la perspectiva del cliente, no desde la perspectiva del componente.
Esto es muy importante. Debería leerlo de nuevo porque es muy importante. Antes, se hubiera optado por "supervisarlo todo". Si es algo que se podía medir con un contador, o se podía incluir en un gráfico o se podía poner en un panel, entonces debería supervisarse. "Medir desde la perspectiva del cliente" es una máxima mucho más específica.
Echemos un vistazo a un breve escenario en el que se demuestra esta idea claramente.
Escenario
Usted está a cargo de la ejecución del sitio web de comercio electrónico de su empresa. Tiene una granja de servidores web con 100 instancias de servidor. De repente, 14 de estas 100 instancias dejan de funcionar debido a un error del sistema operativo, una actualización de software, una fluctuación de energía u otro evento inesperado. Estas 14 instancias están ahora totalmente fuera de servicio.
Revisión: 86 instancias de servidor están operativas, 14 instancias de servidor no funcionan.
¿Cuál de las siguientes afirmaciones se cumple en esta situación?
A: No es importante. Puede solucionar el problema en algún momento cuando tenga tiempo para hacerlo.
B: Es algo grave. Debe dejar lo que esté haciendo y conseguir que esas 14 instancias de servidor vuelvan a funcionar lo antes posible.
C: Es una crisis existencial para la empresa. Debe notificarse a los altos directivos y poner a todo el personal manos a la obra para que se ocupe de la situación lo antes posible, aunque suponga despertarlos en mitad de la noche.
Dedique un momento a pensar detenidamente en este escenario antes de responder y luego siga leyendo. ¿Cree que la respuesta es A, B o C?
La respuesta correcta no es A, ni B ni C; es "depende". Más concretamente, "depende de cómo los clientes estén notando esta interrupción".
Si ha diseñado el sitio de forma que los clientes ni siquiera se hayan dado cuenta de lo que está pasando en el back-end y las otras 86 instancias del servidor están asumiendo la carga sin problemas, entonces no hay ninguna crisis. Podría ser un incidente de gravedad 3 o 4, posiblemente incluso una incidencia de soporte técnico.
Si la interrupción dejó paralizado todo el negocio y está perdiendo sumas importantes de dinero cada minuto que los servidores están inactivos, probablemente sea una buena razón para pulsar el botón rojo y poner en guardia a todo el mundo. También podría haber un punto intermedio en el que la respuesta sea "B".
Una vez más, la confiabilidad debe medirse desde la perspectiva del cliente, no desde la perspectiva del componente. Por eso el recuento de componentes de "14 de 100 máquinas no funcionan", aunque era totalmente exacto, no era el dato más importante en este escenario desde el punto de vista de la confiabilidad.
Esta idea se sostiene incluso cuando hablamos de la supervisión basada en componentes más tradicionales. Si descubre que el servidor de base de datos se está ejecutando con una carga de CPU del 50 %, ¿eso es bueno o malo? Si llega hasta el 90 %, ¿es mejor o peor? Si el servicio está funcionando bien y los usuarios están satisfechos, un 90 % podría ser excelente porque significa que ha mejorado considerablemente el uso de los recursos. Pero si los usuarios se quejan de lo lento que funciona la aplicación con una carga de CPU del 50 %, es probable que el 90 % no sea una mejora.
Replanteamiento n.º 2: Niveles adecuados de confiabilidad
Para establecer esta idea adecuadamente, deberíamos echar un vistazo rápido a su origen. Esta idea proviene de la ingeniería de confiabilidad de sitios (SRE). Podemos extraer varias ideas útiles (incluida la de esta sección) simplemente examinando detenidamente la definición de SRE:
Nota:
La ingeniería de confiabilidad de sitios es una disciplina de ingeniería que permite a una organización lograr el nivel adecuado de confiabilidad en sus sistemas, servicios y productos de manera sostenible.
Hay tres palabras importantes en esta definición:
Confiabilidad: se ha hablado bastante sobre la importancia de la confiabilidad en la unidad de introducción, por lo que no se detendrá en este punto.
Sostenibilidad: en este contexto, la "sostenibilidad" hace referencia al rol de los individuos en el proceso. Es fundamental crear un procedimiento de operaciones sostenible. Los sistemas, servicios y productos confiables están creados por personas. Si no hacemos nada para asegurarnos de que nuestro trabajo sea sostenible, es decir, si despertamos a nuestros empleados cada noche a las 3:00 a. m. con una notificación, si no les damos tiempo para estar con su familia, si no tienen la oportunidad de dedicar tiempo a ocuparse de sí mismos, entonces no podrán crear sistemas confiables. Según SRE, es importante que implementemos un procedimiento de operaciones que sea sostenible en el tiempo, para que nuestra gente pueda aportar lo mejor de sí misma al trabajo.
Adecuado: esta es la palabra que puede ser el punto de inflexión para algunos usuarios. Hace mucho tiempo, en el mundo de las operaciones, el objetivo era asegurarse de que todo funcionara de manera ininterrumpida. El objetivo era que todo funcionara correctamente durante todo el día, toda la semana, todo el mes y todo el año. Nunca era aceptable que algo dejara de funcionar. Una de las cosas que el diseño de confiabilidad de los sitios aportó a al debate de las operaciones fue la noción de que, en lugar de eso, deberíamos esforzarnos por conseguir un nivel adecuado de confiabilidad.
Vamos a profundizar en esta idea. Un punto clave que hay que tener en cuenta es que el 100 % de confiabilidad casi nunca es el objetivo adecuado. Salvo algunas excepciones, como los dispositivos médicos o la aviación, realmente no es necesario que las cosas sean confiables al 100 %; de hecho, un 100 % de confiabilidad a menudo no es posible.
Este es un ejemplo de la afirmación de que a menudo no es posible: hoy en día se usan sistemas que dependen de otros sistemas. Puede que esté usando un software que tiene que llamar a un procesador de pagos o a un sistema de autenticación. Si el procesador de pagos o el sistema de autenticación no son confiables al 100 %, puede ser muy difícil que el sistema sea confiable al 100 %.
El otro aspecto complicado sobre el objetivo de una confiabilidad del 100 % es que no debe haber tiempo de inactividad. Esto significa también que no hay ninguna posibilidad de realizar cambios que cree que podrían ocasionar un tiempo de inactividad. No consigue capacidad de aumento, aunque es algo que probablemente le interese tener y lo necesite.
Es útil empezar a ver las cosas desde la perspectiva: "¿cuál es el nivel de confiabilidad adecuado?" para algo concreto que está intentando hacer funcionar. Volviendo al tema que nos ocupa, nuestra supervisión deberá ser compatible con este objetivo.
Teniendo en cuenta estos dos planteamientos, pongámonos manos a la obra y veamos algunas herramientas que serán útiles para lograr nuestros objetivos.