Insights

Noticias, novedades e información sobre el mundo Hard Tech

Excelencia Operativa: haga que sus sistemas sean operations-friendly y confiables.

por: Inmetrics em

| 24.04.2019

Excelencia operativa. Este término no es ninguna novedad y ciertamente has oído hablar varias veces, ¿no es verdad? Pero antes de entrar en conceptos y definiciones de lo que es Excelencia Operativa, es importante citar algunos testimonios de personas que adoptaron las tecnologías del DevOps sin estar preparados.

  • “Compré DevOps y aún no he visto grandes resultados.”
  • “Adopté una solución de monitoreo adecuada a ese mundo nuevo y ahora tengo otro dashboard para cuidarlo. ¡No sé para dónde debo mirar!”
  • “Mi equipo de trabajo está sobrecargado con la cantidad de alertas y notificaciones que todas estas herramientas de supervisión están generando!”
  • “Kubernetes, Openshift, Containers. tengo todo y no mejora nada.”
  • “Los incidentes ahora tardan mucho tiempo para ser solucionados, porque hay mucha información, una complejidad mayor, y no hay una buena visibilidad de lo que realmente está ocurriendo en el ambiente.”

Imagino que esto ocurre o ya ocurrió en su ambiente de trabajo (o en el de un amigo) y la pregunta que queda es: ¿cuál es el problema?

Años tratando los problemas de nuestros clientes y conversando con personas que pasaron por ese tipo de situación, mostraron que esto ocurre porque las empresas primero buscan soluciones a través de herramientas y olvidan que quienes operan esas herramientas y plataformas son personas.

Aunque algunas presentaciones y algunos proveedores pueden tratar de convencerlo de lo contrario, la verdad es que las herramientas no son mágicas. Ellas están aquí para hacer la vida de las personas mejores si, y sólo si, hay un objetivo claro a ser alcanzado y existir un plan bien definido.

Está bien. ¿Y la Excelencia Operativa?

Bueno, es un método para hacer sistemas (¿y por qué no, servicios?) mejores y más sostenibles. Es parte de su misión de hacerlos más confiables y escalables a través de la optimización de las arquitecturas, procesos y, por supuesto, de las personas que lo construyen y lo operan.

No se equivoca, ese estado no será alcanzado por error. El roadmap necesario para llegar al estado del arte implica aprender un nuevo conjunto de habilidades de uso diario; actualizar procesos y herramientas; y abrazar un mindset con tres principios fundamentales, que te permitirá sumergir de cabeza en esa piscina de agua tibia.

Principio #1 — Drift into failure

Si usted tiene (o trabaja) en un negocio que no puede parar, seguramente usted ya se ha hecho preguntas como “¿Qué sucede cuando su servicio no está disponible?” O “¿Qué sucede cuando los usuarios no pueden interactuar en línea con su aplicación?”. Los eventos que causan una indisponibilidad de sus servicios son bastante impactantes, ya sea por el lado financiero, así como por la imagen y / o credibilidad de su empresa.

Por otro lado, debido a las complejidades de los sistemas y también a los constantes cambios que ocurren en el día a día, sabemos también que fallas siempre existirán. La discusión aquí no es sobre SI ocurrirá algún problema en su aplicación que dejará no disponible, lenta o con errores, y sí CUANDO.

Como dice Bejamin Treylor Sloss (VP 24×7 Engineering de Google): “100% is the wrong reliability target for basically everything”. El foco no es evitar que fallas ocurran a cualquier costo, lo que se debe buscar constantemente es:

¿Cómo prepararse para cuando ocurra este evento?

¿Cómo mitigar el riesgo?

¿Cuán rápido tu sistema puede recuperarse?

Lección: espere fallas. Un componente puede fallar o interrumpirse en cualquier momento. Los componentes dependientes fallarán en cualquier momento. Habrá fallos de red. Los discos quedarán sin espacio.

Descubra las debilidades de su sistema / proceso / operación, revele los riesgos, haga parte de la cultura blameless y lo más importante:

Principio # 2 – Data is the most valuable asset

Ya estamos de acuerdo en que los sistemas siempre están fallando, ¿no? Pero no es porque siempre están fallando que usted debe buscar que los servicios sean perfectos el 100% del tiempo.

¿Sus usuarios están felices?

Es en este punto que los conceptos de SLI / SLO / Error Budget entran en el juego. Si usted no ha leído nuestro artículo sobre este tema, por favor, pare aquí, lea y luego vuelva de nuevo. No tiene problema, espero. Vea aquí.

Básicamente es posible saber, a través de estos enfoques y medidas, si la calidad de servicio es lo suficientemente buena, es decir, se evalúa si el servicio está en buen estado para el usuario final o no.

¿Cuál es el comportamiento de su usuario?

Además de saber si un servicio está en un estado confiable o no, también es necesario rastrear lo que cada usuario realiza en su sistema. Para cada paso, usted debe medir: duración, resultado, operación, registros, errores, argumentos, segmentos y otros detalles relevantes en la ejecución de su producto.

Con este conjunto de datos usted puede hablar sobre la robustez y errores que sus usuarios más reciben con frecuencia, facilitando así su conversación con las áreas de negocio de su empresa, y consiguiendo también crear un proceso de mejoras continuas, o innovaciones incrementales, de su producto.

Lección: Instrumento todo. Utilice datos de producción para encontrar problemas en la producción. James Hamilton ya decía: “La garantía de calidad de un sistema crítico es un problema de minería de datos y visualización”.

Principio #3 — Ordering the alphabet soup

Usted ya debe haber leído en los artículos, oído en los acontecimientos o incluso en una charla de bar, términos como DevOps, DevSecOps, BizDevOps, Lean, Agile, SRE, UX, Chaos Engineering, Kubernetes, Serverless, Microservices, Big Data Systems, Immutable Infrastructure , UX, Infra-Code, NoSQL, ChatOps, Operation as a Service, etc. Es importante subrayar que todos estos movimientos, prácticas, enfoques, disciplinas y tecnologías son muy recientes. Y esto todo suena muy bien para nuestros oídos.

Pero hay algo que generalmente no se admite con tanta frecuencia: construir y mantener sistemas complejos en producción es muy difícil, demorado y estresante.

En la práctica, nuestro día a día no es nada simple, y mucho se debe a dos factores:

  • # 1 Hemos depilado a muchos Iaques: una serie interminable de pequeñas tareas que tenemos que hacer antes de poder trabajar en lo que realmente es importante
  • # 2 Checklists sin fin para mantener sistemas productivos son muy largos y complejos

Quien cuida de operación tiene bastante cosas para aprender con quien desarrolla un sistema (y viceversa). Gestionar todo ese día a día se está haciendo cada vez mejor gracias a una tendencia que es: tratar cada vez más la infraestructura como código.

Lección: Automatice sus tareas repetitivas. Las personas cometen fallas, necesitan dormir y olvidan cosas. Algunos de los beneficios de transformar su operación / infraestructura en código son:

  • Reducción de la necesidad de intervención manual
  • Más personas son capaces de realizar tareas
  • Aumento del re-uso
  • Confiabilidad en el proceso y la ejecución
  • Control de versiones
  • Todo está documentado

Tenga en cuenta que la automatización debe ser vista como un socio del equipo, y no un sustituto para las actividades / acciones de los seres humanos.

Escrito por:

Thiago Maciel, Tecnico especialista en inmetrics

¿Quieres saber más sobre el tema? Póngase en contacto con nosotros.