Serie #1 sobre Confiabilidad: Confiabilidad vs. Resistencia

Por David Bills, Jefe Estratega de Confiabilidad, Informática Confiable

Siempre que hablo con los clientes y socios sobre confiabilidad, tengo presente que aunque los objetivos y prioridades varían de una organización a otra y de un cliente a otro, al final todo el mundo quiere que su servicio funcione. Como cliente, uno desea poder hacer cosas en línea y en el momento que más le convenga. Como organización – o proveedor de un servicio – uno busca que sus clientes lleven a cabo las tareas que deseen, en cualquier momento.

Este es el primero de una serie de cuatro artículos acerca de la creación de un servicio resistente. En mis primeras dos publicaciones, abordaré el tema en lo relativo a estrategia empresarial y después nos sumergiremos en los detalles técnicos. La serie completa de cuatro publicaciones cubrirá:

1. Confiabilidad vs resistencia – ¿Cuál es la diferencia entre confiabilidad y resistencia y por qué es importante?
2. Riesgos comunes relacionados con la confiabilidad – El modelo DIAL (Descubrimiento, Incorrección, Autorización/Autenticación, Límites/Latencia) es una abreviatura nemotécnica útil que ayuda a los equipos a generar lluvias de ideas respecto a posibles fallas de interacción entre los componentes de su servicio de una manera estructurada. La generación de lluvias de ideas respecto a modos y puntos de falla es una fase clave en la creación de modelos sobre resistencia y su análisis (RMA) y puede ayudar a los equipos a mejorar la confiabilidad de su servicio.
3. Técnicas para el mejoramiento de la confiabilidad – Considerando la "D" y la "A" del modelo DIAL, analizaremos algunas técnicas para el mejoramiento de la confiabilidad relacionadas con el descubrimiento y la autenticación que usted puede incorporar en su diseño.
4. Técnicas para el mejoramiento de la confiabilidad – En cuanto a la "I" y la "L" del modelo DIAL, analizaremos algunas técnicas para el mejoramiento de la confiabilidad relacionadas con la incorrección y los límites que usted puede incorporar en su diseño.

Mi intención es proporcionar una visión clara de la manera en que Microsoft percibe la confiabilidad, así como los procesos y técnicas que utilizamos para mejorar la confiabilidad de los servicios proporcionados a nuestros clientes.

Entonces, ¿qué es la confiabilidad? Cuando le pregunto a los clientes y socios, las respuestas más comunes tienen que ver con consistencia en rendimiento, velocidad, disponibilidad –y quizá más significativamente– resistencia. Todos estamos de acuerdo en que, para que un sistema o servicio sea resistente, el usuario debe creer que 'siempre funciona'.

La Sociedad de Confiabilidad del Instituto de Ingeniería Eléctrica y Electrónica (IEEE) señala que la confiabilidad [en ingeniería] es "una disciplina de ingeniería relacionada con el diseño que aplica el conocimiento científico para asegurar que un sistema llevará a cabo su función durante el tiempo requerido en un entorno determinado, incluyendo la posibilidad de poner a prueba y brindar soporte al sistema a lo largo de todo su ciclo de vida". En lo relativo a software, definen la confiabilidad como "la probabilidad de una operación sin fallas de un software durante un periodo determinado de tiempo en un entorno específico".

Básicamente, un servicio confiable en la nube es aquel que funciona como el diseñador lo programó, cuando se necesita y donde quiera que el cliente esté conectado. Esto no quiere decir que todos los componentes deben funcionar perfectamente todo el tiempo. Este último punto nos lleva a lo que en mi parecer es la diferencia entre confiabilidad y resistencia.

 La confiabilidad es la respuesta del servicio en la nube que los proveedores luchan por conseguir: es el resultado. Resistencia es la capacidad de un servicio en la nube para soportar ciertos tipos de fallas y aún así seguir siendo funcional desde la perspectiva del cliente. En otras palabras, la confiabilidad es el resultado y la resistencia es el camino para lograr el resultado. Un servicio puede considerarse confiable simplemente porque nunca ha fallado ninguna parte del mismo. Sin embargo, el servicio no puede considerarse resistente porque esas capacidades de mejoramiento de la confiabilidad quizás nunca se hayan puesto a prueba.

El punto clave aquí es la importancia de enfocarse en la capacidad de resistencia y en diseñarla e integrarla a su servicio en cada etapa del ciclo de vida de desarrollo del software. Para saber más acerca de los fundamentos en la construcción de un servicio en línea confiable, consulte nuestro documento estratégico 'Introducción al diseño de servicios confiables para la nube'.