Todas las Noticias en Películas, Avances de Películas y Reseñas.

Ingeniería de resiliencia y cómo puede mejorar DevOps

Introducción

Cuando un equipo de desarrollo de software comienza por primera vez el viaje de desarrollo de una pieza de software, apenas se analiza lo que puede salir mal y lo que saldrá mal. Más bien, los objetivos son el motor principal y así deberían ser. Pero detrás de la confianza del éxito de cada miembro del equipo, en algún momento algo saldrá mal y, con suerte, no descarrilará todo el proyecto.

¿Qué pasaría si esta inminente sensación de pavor se utilizara de manera productiva? ¿Podría utilizarse el conocimiento de que algo saldrá mal para hacer que el producto final sea más resistente y, en general, un producto mucho más superior? La ingeniería de resiliencia intenta responder positivamente a estas preguntas.

Nos sentamos con Grigor Khachatryan, un veterano en desarrollo de software e ingeniería de infraestructura que ha visto muchas tendencias de desarrollo ir y venir y tiene una gran experiencia en resolver dilemas de infraestructura a gran escala en nuevas empresas en etapa de crecimiento, y le preguntamos qué hace que la ingeniería de resiliencia sea diferente del pasado. tendencias y por qué tiene poder de permanencia como metodología.

Lo bajo

En lugar de una adopción de tecnología o marco, la ingeniería de resiliencia se ha convertido en un cambio en la cultura del desarrollo de software. Viendo cómo Google Ingeniería de confiabilidad del sitio (SRE) mejoró drásticamente las experiencias de los usuarios en Internet, los desarrolladores de software se apresuraron a adoptar algunas de las lecciones aprendidas por Google, pero las hicieron encajar mejor en las ideas de DevOps. Quizás la mayor diferencia entre la SRE y la ingeniería de resiliencia es que la primera se basa en reaccionar adecuadamente cuando las cosas fallan. Este último se centra en el desarrollo de estrategias de respuesta a largo plazo. A Grigor le gusta mirar ingeniería de resiliencia desde la siguiente perspectiva,

Recomendado:  Nothing Phone 1 finalmente obtiene Android 14 Beta 1

“La ingeniería de resiliencia se trata de construir sistemas que puedan adaptarse y tomar automáticamente el mejor curso de acción cuando ocurren problemas comunes. Cualquier deficiencia encontrada a través de las pruebas se soluciona antes de que el sistema pueda volverse verdaderamente resiliente”.

Con el desarrollo de las prácticas de ingeniería de resiliencia llegó la comprensión de que confiar en marcos puede evitar que las grandes corporaciones, en particular las que dependen de la computación en la nube, sufran largos períodos de inactividad. Grigor señala que computación en la nube,

“Ampliar y hacer crecer una empresa requiere ampliar servidores y otras tecnologías diseñadas para manejar grandes cantidades de datos. Sin embargo, con velocidades de Internet ultraaltas y cantidades masivas de datos generados por sitios web, extraer los datos correctos puede llevar mucho tiempo y mucho tiempo”. de dinero.

Es por eso que cada vez más empresas optan por migrar sus sitios web, análisis de datos y otros detalles comerciales a servicios en la nube. Estos servicios están diseñados para permitir análisis de datos y resultados rápidos con funciones de automatización diseñadas para acelerar las cosas”.

El énfasis de la computación en la nube en la escalabilidad y la automatización significó que los marcos de ingeniería de resiliencia encajarían perfectamente en casa. Para evitar el uso excesivo de tiempo y dinero en análisis de datos, por ejemplo, se requiere un marco creado para manejar cualquier cosa que se le pueda presentar. Pero esto plantea la pregunta en qué debería consistir dicho marco para lograr este objetivo.

Marcos resilientes

Para tener un marco de este tipo que satisfaga las necesidades del desarrollo moderno se requieren al menos tres factores que se cumplan. Esos factores son si se basa en datos, si establece hábitos y árboles de decisión, y si puede diseñar incidentes reproducibles. Por tanto, es aconsejable examinar cada uno de estos factores de forma aislada.

Recomendado:  Twitter suspende 'intencionalmente' aplicaciones de terceros, afirman informes

Producir hábitos y árboles de decisión

Cuando las cosas se rompen, y lo harán, es necesario encontrar una solución como cuestión prioritaria. Pero, ¿qué pasa si el problema se ha encontrado en el pasado y se ha desarrollado una solución adecuada? ¿Podría esa respuesta convertirse en un método estandarizado para abordar problemas similares en el futuro? Al crear soluciones repetibles a los problemas, los desarrolladores pueden confiar en lo que funcionó en el pasado, lo que elimina en gran medida el miedo al fracaso de la ecuación. Si se desarrolla una solución de este tipo y puede ser repetible, quienes busquen resolver problemas futuros podrán centrarse en los detalles y modificar la solución para satisfacer mejor las necesidades actuales.

Basado en datos

La ingeniería de resiliencia se basa en datos; lo que es más, depende de poder acceder a datos relevantes cuando sea necesario. En última instancia, esto significa que es necesario capturar datos a lo largo del ciclo de desarrollo y la cadena de entrega. Esto es importante porque si surge un problema en una determinada parte del ciclo de desarrollo de la cadena de entrega, la solución se puede encontrar haciendo retroceder el desarrollo hasta donde surge el origen del problema.

Ingeniería en torno a incidentes reproducibles

Este factor es uno de los más favorecidos por los desarrolladores, ya que parece mostrar cómo la ingeniería de resiliencia puede unirse para construir un producto con bases sólidas. Para este factor es fundamental la idea de que lo aprendido de incidentes anteriores se puede aplicar para mejorar drásticamente los productos futuros. Agregar datos y árboles de decisión a este proceso significa que las soluciones se pueden automatizar. Esto ayuda a que los incidentes parezcan más manejables en lugar de un desastre, ya que el equipo tendrá un manual al que recurrir para resolver rápidamente un incidente. Luego, el incidente en sí se puede convertir en algo reproducible y se puede desarrollar una solución automatizada.

Recomendado:  ¿Por qué la transcodificación es esencial para una transmisión exitosa?

Conclusión

La ingeniería de resiliencia está lejos de ser una tendencia. Más bien, es una idea que puede cambiar rápidamente la cultura de desarrollo de equipos para superar desafíos imprevistos con confianza. Grigor señala que adoptar esa mentalidad junto con tecnologías basadas en la nube fue más que ventajoso para aquellos con quienes trabajó. indicando eso,

“Ha resuelto nuestros problemas de escalabilidad y resiliencia al implementar, escalar y administrar automáticamente nuestras aplicaciones en contenedores. Ahora, si un componente falla, otros continúan funcionando para que nuestros clientes no se vean afectados durante el tiempo de inactividad”.

ⓒ 2023 . .

Etiquetas: