Visión general
En el contexto del desarrollo de software y los sistemas informáticos, una aplicación resiliente se refiere a un sistema que puede recuperarse rápidamente de interrupciones o fallos inesperados sin afectar al uso productivo. La resiliencia abarca varias características que permiten a los servicios mantener la funcionalidad y la integridad en condiciones difíciles. Para definir y lograr la resiliencia de las aplicaciones, las organizaciones deben tener en cuenta muchos requisitos no funcionales (NFR ), que son un conjunto de restricciones o cualidades que un sistema debe tener más allá de sus requisitos funcionales para ser considerado resiliente.
Aunque muchas organizaciones implementan procesos o políticas para mejorar su resiliencia, es difícil comprender plenamente su postura de resiliencia o escalar la resiliencia de la aplicación. La práctica de mejorar la resiliencia requiere que una organización planifique, defina, configure, opere, evalúe y actúe continuamente para abordar los problemas. Concert pone en práctica el camino para lograr la resiliencia de las soluciones y facilita la evaluación de los datos aislados y la obtención de resultados.
Utilizando la dimensión Resiliencia, puede seleccionar los NFR que más importan a su organización de una biblioteca de NFR, definir objetivos de resiliencia (perfiles y posturas) para cada aplicación o entorno, y proporcionar métricas de entrada para realizar un seguimiento del progreso a lo largo del tiempo.
- Disponibilidad : este tipo de NFR está estrechamente relacionado con la resiliencia, ya que se refiere a la proporción de tiempo en que un sistema está operativo y accesible para su uso. Puede utilizar varias estrategias para lograr una alta disponibilidad, como la implementación de redundancia multinivel (conmutación por error), tolerancia a fallos, equilibrio de carga, programa de mantenimiento regular, supervisión y planificación de recuperación ante desastres.
- Mantenibilidad : este tipo de NFR se refiere a la facilidad con la que se puede modificar un sistema para corregir fallos, mejorar el rendimiento o adaptarse a los cambios. Un alto nivel de mantenimiento es fundamental para reducir los costes a largo plazo, mejorar la agilidad del sistema y garantizar que este pueda evolucionar con las necesidades empresariales. Se logra mediante estrategias como el diseño modular, el código y la documentación de alta calidad, las pruebas automatizadas, la integración y el despliegue continuos (CI/CD), el control de versiones y la refactorización periódica.
- Observabilidad : este tipo de NFR se refiere a lo bien que se pueden entender los estados internos de un sistema basándose en sus resultados externos para garantizar que funciona de manera eficiente, fiable y segura. Una alta observabilidad es fundamental para la depuración y la resolución de problemas de manera eficiente, la supervisión del rendimiento y la seguridad, y la planificación de la capacidad. Se logra mediante estrategias como el registro exhaustivo, la recopilación y el análisis de métricas, el rastreo distribuido, las herramientas de supervisión, las alertas y la revisión y mejora periódicas.
- Recuperabilidad : este tipo de NFR se refiere a la capacidad de un sistema para volver a un estado plenamente operativo después de una interrupción o fallo. Una alta capacidad de recuperación es importante para la continuidad del negocio, la integridad de los datos y la satisfacción del usuario, ya que garantiza que su aplicación pueda recuperarse de los incidentes y minimizar el tiempo de inactividad y la pérdida de datos. Se logra a través de estrategias como hacer copias de seguridad de los datos con regularidad y contar con un proceso de restauración probado, establecer redundancia en el sistema, automatizar el proceso de recuperación, realizar pruebas periódicas y planificar la respuesta a incidentes.
- Escalabilidad : este tipo de NFR se refiere a la capacidad de un sistema para manejar una carga mayor de manera eficiente sin una degradación significativa del rendimiento o un aumento excesivo de los recursos. La alta escalabilidad es importante porque permite acomodar el crecimiento y la eficiencia de costes, al tiempo que garantiza el rendimiento de las aplicaciones incluso bajo una carga pesada. La TI se logra utilizando estrategias comunes como el escalado horizontal y vertical, el equilibrio de carga, el uso de la arquitectura de microservicios, el almacenamiento en caché y otras.
- Usabilidad : este tipo de NFR se refiere a lo fácil de usar e intuitiva que es una aplicación o un sistema. La usabilidad es fundamental para la adopción y el compromiso del usuario y es un reflejo directo de lo bien que comprende y empatiza con sus usuarios. Hay muchas formas de mejorar la usabilidad de su aplicación, como seguir un enfoque de diseño centrado en el usuario, asegurándose de que todas las interfaces de usuario y recursos sean sencillos, intuitivos, coherentes y accesibles.
Basándose en la evaluación, Concert genera una puntuación de resiliencia para cada NFR y tipo de NFR aplicados durante la evaluación, así como una puntuación de evaluación global que indica la postura de resiliencia de la aplicación o entorno en cuestión. La puntuación global de resiliencia de cada aplicación se basa en la integridad y calidad de los datos de resiliencia (métricas de entrada) disponibles para su evaluación con respecto a los NFR especificados. Cada tipo de NFR se puntúa en función de varios NFR, cada uno de los cuales se puntúa en función de varias métricas de entrada. Cada métrica de entrada se puntúa en una escala estandarizada de 100 puntos basada en niveles de puntuación estándar.
A medida que realiza un seguimiento y toma medidas para cumplir con los NFR definidos en función de las evaluaciones de resiliencia de Concert , mejora la postura de resiliencia de cada aplicación y de su organización en su conjunto, garantizando la disponibilidad y el rendimiento continuos de las aplicaciones a pesar de eventos inesperados o desafiantes, desde algo tan pequeño como una solicitud de cambio de código o un parche hasta eventos grandes como ciberataques, desastres naturales o trastornos económicos.