SRE
SITE RELIABILITY ENGINEERING
SRE. ingeniería de fiabilidad del sitio
La optimización de los productos implica nuevas necesidades y expertos capaces de afrontarlas. Esta constante evolución de los sistemas tecnológicos genera retos, ofreciendo nuevas oportunidades desde el punto de vista profesional.
La transformación digital trae consigo una serie de cambios y entre ellos, un nuevo perfil especialista. Se trata de o ingeniería de fiabilidad del sitio o SRE por sus siglas en inglés (Site Reliability Engineering).
Este ‘concepto’ fue ideado por el actual vicepresidente de Ingeniería de Google, Benjamín Treynor Sloss en 2003. Su propósito por aquel entonces era analizar y optimizar cualquier tipo de proceso para asegurarse que todos los sitios web de Google estuvieran disponibles, fueran confiables y útiles para los usuarios. A partir de estas necesidades surgió el concepto SRE que funciona, además, como puente entre los equipos de desarrollo y operaciones.
INNOVACIÓN – CONFIANZA – FIABILIDAD DEL DATO
¿QUÉ ES SRE?
Con él nos referimos a una práctica de gestión IT que busca reducir cualquier interrupción de los servicios para garantizar la estabilidad y fiabilidad de los sistemas. Las organizaciones utilizan SRE para garantizar que sus aplicaciones de software sigan siendo confiables en medio de actualizaciones frecuentes de los equipos de desarrollo.
Quizá estés pensando que un ingeniero de SRE hace las mismas labores que un gestor de sistemas, y lo cierto es que guarda ciertas similitudes. Ambas buscan solventar errores, mantener los sistemas de modo que el usuario no se vea afectado por fallos o interrupciones, pero la diferencia principal se encuentra en el enfoque.
Tradicionalmente, desde la gestión de sistemas, los equipos de trabajo hacen su labor de mantenimiento identificando problema que acontecen en los procesos y poniéndoles solución. Por otro lado, el site reliability engineering trabaja desde la proactividad, con un enfoque desde el software. Es decir, su propósito es la identificación de posibles incidencias y la resolución de las mismas antes de que el usuario pueda notarlas.
¿Cómo funciona?
El equipo de SRE establece las métricas clave y crea un presupuesto de errores determinado por el nivel de tolerancia al riesgo del sistema. Si el número de errores es bajo, el equipo de desarrollo puede lanzar nuevas funciones. Sin embargo, si los errores superan el presupuesto de errores permitido, el equipo suspende los nuevos cambios y resuelve los problemas existentes.
Por ejemplo, un ingeniero de fiabilidad del sitio utiliza un servicio para monitorear las métricas de rendimiento y detectar el comportamiento anómalo de las aplicaciones. Si hay problemas con la aplicación, el equipo de SRE envía un informe al equipo de ingeniería de software. Los desarrolladores corrigen los casos denunciados y publican la aplicación actualizada.
SRE vs DevOps
DevOps es una cultura de software que rompe los límites tradicionales de los equipos de desarrollo y operaciones. Con DevOps, los desarrolladores e ingenieros de operaciones usan herramientas de software para mejorar la colaboración y mantenerse al día con el rápido ritmo de las versiones de actualizaciones de software.
Mientras que SRE es la implementación práctica de DevOps. DevOps proporciona la base filosófica de lo que se tiene que hacer para mantener la calidad del software en medio de los plazos de desarrollo cada vez más cortos. La ingeniería de fiabilidad del sitio ofrece las respuestas sobre cómo lograr el éxito de DevOps.
SRE garantiza que el equipo de DevOps logre el equilibrio correcto entre velocidad y estabilidad.
Funciones del SRE
Un ingeniero de fiabilidad del sitio es un experto en TI que utiliza herramientas de automatización para monitorear y observar la fiabilidad del software en el entorno de producción. También tienen experiencia en encontrar problemas en el software y escribir códigos para solucionarlos. Las siguientes son algunas de las responsabilidades de fiabilidad del sitio.
operaciones
Los ingenieros de fiabilidad del sitio dedican hasta la mitad de su tiempo al trabajo de operaciones. Esto incluye varias tareas, como las siguientes:
- Respuesta ante incidentes de emergencia
- Administración de cambios
- Administración de la infraestructura de TI
- Los ingenieros utilizan las herramientas de SRE para automatizar varias tareas de operaciones y aumentar la eficiencia del equipo.
Soporte del sistema
Los ingenieros de fiabilidad del sitio trabajan en estrecha colaboración con el equipo de desarrollo para crear nuevas funciones y estabilizar los sistemas de producción. Crean un proceso de SRE para todo el equipo de software y están disponibles para dar soporte a los problemas de escalamiento. Y lo que es más importante, los equipos de fiabilidad del sitio proporcionan procedimientos documentados al servicio de atención al cliente para ayudarlos a tratar las quejas de manera efectiva.
mejora de los procesos
Los ingenieros de fiabilidad del sitio mejoran el ciclo de vida del desarrollo de software al realizar revisiones posteriores a los incidentes. El equipo de SRE documenta todos los problemas de software y las soluciones respectivas en una base de conocimientos compartida. Esto le sirve al equipo de software a responder de manera eficiente a problemas similares en el futuro.
BENEFICIOS
- Colaboración mejorada entre los equipos de desarrollo y operaciones. Los desarrolladores a menudo tienen que hacer cambios rápidos en una aplicación para lanzar nuevas funciones o corregir errores críticos. Por otro lado, el equipo de operaciones debe garantizar una prestación de servicios sin problemas. Por lo tanto, el equipo de operaciones utiliza prácticas de SRE para monitorear de cerca cada actualización y responder rápidamente a cualquier problema que surja debido a los cambios.
- Mejora de la experiencia del cliente
- Planificación de operaciones mejorada frente a incidentes para minimizar el impacto
PRINCIPIOS CLAVE DE SRE O ING. DE FIALIBILIDAD DEL SITIO
- Monitoreo de aplicaciones
- Implementación del cambio gradual
- Automatización para mejorar la fiabilidad
La fiabilidad y la confianza deben de estar presentes en todos los pasos del proceso. Por ese mismo motivo, el especialista en Site Reliability Engineering aporta sus conocimientos en cada fase, ofreciendo una visión global en busca de la mejora continua. En colaboración con los equipos de desarrollo y operaciones contribuyen a generar un enfoque integrado que optimiza el rendimiento y aumenta la satisfacción de los usuarios.